Um pentest, ou teste de intrusão, é um ataque cibernético simulado contra um sistema para avaliar a sua segurança
Por Lucas Lança e Cássio Lima, membros da equipe de cibersegurança na Kryptus EED. S.A.
O aumento no número e na gravidade dos ataques hackers, bem como a conscientização dos danos que os mesmos podem causar a uma organização, escancarou a necessidade em buscar serviços especializados na área de segurança da informação que tenham potencial de evitar ou mitigar tais ataques.
Um pentest, ou teste de intrusão, é um ataque cibernético simulado contra um sistema para avaliar a sua segurança.
O intuito é testar e validar a implementação de segurança, identificar vulnerabilidades e sugerir melhorias aos mecanismos de defesa e políticas de segurança de uma organização.
Em princípio, a diferença entre um teste de intrusão e um ataque hacker é apenas a autorização para realização do ataque e a mitigação de danos quando realizado em ambiente de produção.
A prática de formar grupos de especialistas em invasão de computadores para testar a segurança de sistemas surgiu na década de 70.
Conhecidos como tiger teams, esses profissionais ajudaram a estabelecer os parâmetros e a metodologia do que é conhecido como pentest; foram os precursores dos penetration testers.
Apesar de presentes no âmbito da segurança da informação desde aquela época, somente na última década a figura do hacker profissional ganhou maior aceitação em meio à sociedade.
Considerando a crescente necessidade de contratação de serviços de terceiros em cibersegurança, convém compreender as situações em que é adequada a realização de um teste de intrusão, bem como as diferentes formas de testes de intrusão que podem ser realizadas.
De um modo geral, testes de penetração costumam ser categorizados como black-box, grey-box, ou white-box, classificação relacionada à quantidade de informação que o pentester receberá sobre a aplicação.
Em um teste black-box não é fornecido nenhuma informação sobre a aplicação ou a infraestrutura a ser atacada.
O pentester é colocado na posição do hacker comum. Tem como finalidade determinar as vulnerabilidades em um sistema que são passíveis de abuso a partir do exterior do ambiente e frequentemente as etapas de enumeração de superfície acabam ocupando um tempo maior nesse tipo de teste em busca de um acesso inicial.
Grey-box é o teste em que o pentester tem algum conhecimento interno do sistema, como usuário comum ou até mesmo como um usuário com mais privilégios, bem como alguma informação sobre a infraestrutura ou o funcionamento da aplicação.
Tem como objetivo realizar uma avaliação mais aprofundada do que o teste black-box e possibilita o desenvolvimento dos testes de forma mais direcionada para sistemas de maior risco. A partir de contas internas do sistema é possível simular ataques de adversários que possuem um acesso contínuo ao sistema.
Testes white-box são aqueles em que é fornecido acesso completo ao código fonte, à documentação, entre outros.
Esse tipo de teste pode incluir análise estática do código, assim como testes dinâmicos. Tal análise em tese necessita de mais tempo para ser realizada e tem o potencial de identificar todas as vulnerabilidades existentes na aplicação.
Os diferentes tipos de testes de penetração podem ser realizados em vários cenários, como aplicações web, mobile ou diretamente na infraestrutura do cliente.
Podem também ser realizados em diferentes momentos no ciclo de desenvolvimento da aplicação, ou para atender a demandas específicas, por exemplo, para a verificação da segurança de uma aplicação de terceiro que está sendo comprada, para atender requerimentos de compliance ou verificar se a atual postura de segurança corresponde às expectativas da empresa.
Essa variedade de situações é uma das características do setor, que exige profissionais altamente capacitados e qualificados para desenvolver as atividades em ambientes muito diferentes e adaptar os conhecimentos acerca de uma vasta gama de vulnerabilidades e erros de desenvolvimento aos sistemas em teste.
Uma vez definido o escopo e objetivos do teste, é fornecido acesso à equipe de pentesters, que irão seguir com os testes conforme o ambiente no qual a aplicação se insere e o(s) frameworks adotados para realização dos testes.
A efetiva realização de testes depende muito da habilidade do pentester em realizar a enumeração do ambiente, busca sistemática de pontos passíveis de abuso, identificação dos possíveis vetores de ataque, tentativa de abuso, tentativa de elevação de privilégios e retorno à fase de enumeração.
Os resultados dos testes podem ser reportados ao cliente de diferentes formas, geralmente seguindo os padrões de relatórios estabelecidos em frameworks de realização de testes de intrusão ou através de plataformas integradas à equipe de desenvolvimento, dependendo da inserção do teste no ciclo de desenvolvimento.
Além de indicar as vulnerabilidades identificadas, costuma-se fornecer recomendações de possíveis soluções e indicar referências que possam contribuir no desenvolvimento da solução ou no entendimento do problema.
Feitas as eventuais correções, é recomendável a realização de reteste para garantir que os problemas identificados foram devidamente sanados.
Ataques hackers estão cada vez mais comuns e eventualmente atingirão a maior parte das empresas. A realização de testes de intrusão é parte fundamental do processo de avaliação e melhoria de segurança de uma aplicação ou sistema.
Para uma organização é necessário o estabelecimento de políticas de segurança que busquem minimizar a superfície de ataque e a preparem-na para responder aos incidentes de segurança quando eles vierem. Não se deve mais pensar ‘se o ataque vai ocorrer’ e sim, ‘quando o ataque vai ocorrer’.
A Kryptus oferece soluções de pentest em aplicações web, aplicações móveis android e iOS, infraestrutura, hardware/firmware e revisão de código fonte.
Kryptus aposta em expansão do mercado de Autoridades Certificadoras (ACs)
Kryptus discute a ubiquidade da Criptografia e Identidade Digital durante o Rio Innovation Week
Kryptus e ITI: Parceria arrojada na inovação da ICP-Brasil