Introdução aos testes de invasão
10/06/2015De tempos em tempos nos deparamos com notícias sobre empresas de grande porte que foram vítimas de algum tipo de ciberataque. O que chama atenção é que os invasores não fizeram uso da última e mais recente vulnerabilidade descoberta, em vez disso estão explorando falhas antigas de injeção de SQL, aplicando ataques de engenharia social contra os funcionários ou simplesmente estão fazendo ataques de força bruta para descobrir senhas fracas. Resumindo, as empresas acabam expondo detalhes pessoais de seus clientes em consequência de brechas de segurança que poderiam ter sido evitadas com correções.
A função de um teste de invasão é descobrir esses problemas antes que um invasor o faça e além disso fornecer recomendações sobre como corrigir os problemas encontrados e evitar futuras vulnerabilidades. Veremos a seguir as fases que compõem um teste de invasão.
Preparação
Nesta fase todo o escopo do teste é definido, quais endereços IP
ou
hosts
deverão ser testados, que tipo de teste deverá ser feito, se é
permitido realizar um ataque de engenharia social e ainda é dedicado
um tempo para entender os objetivos de negócio do cliente.
Além disso é comum a exigência de que os testes sejam realizados somente em uma janela de horários específica ou em dias determinados, todos esses detalhes são discutidos na etapa de preparação.
Coleta de dados
Nesta fase toda a coleta de informações disponíveis é aplicada por um
processo chamado de OSINT
(Open Source Intelligence). É aqui que
começamos a utilizar ferramentas como scanners de portas com o objetivo
de identificar quais sistemas estão em uso, bem como as respectivas
versões.
Análise de vulnerabilidades
Aqui as vulnerabilidades começam a ser encontradas, neste ponto podemos determinar até onde uma estratégia de exploração de falha pode ser bem-sucedida. É nesta fase que utilizamos scanners de vulnerabilidades que aplicam comparações com as versões dos softwares detectados na coleta de dados em uma base de vulnerabilidades para obter um bom chute a respeito de quais bugs podem estar presentes no sistema alvo.
Vale lembrar que embora os scanners de vulnerabilidades sejam ferramentas fantásticas, elas não substituem o raciocínio crítico de uma verificação manual.
Exploração de falhas
A fase mais esperada, neste ponto a execução de exploits é aplicada contra
as vulnerabilidades encontradas, com o uso de ferramentas como por exemplo
o Metasploit
, ou ainda de forma manual.
Pós-exploração
Nesta fase é onde determinamos o que a invasão obtida na etapa anterior significa para o cliente. Durante o processo de pós-exploração de falhas, informações sobre o sistema invadido são coletadas, por exemplo um dump da base de dados pode ser feito ou ainda tentar usar a máquina explorada para atacar outros sistemas que não estavam anteriormente visíveis.
Relatórios
A última fase de um teste de invasão é a geração dos relatórios, aqui todas as descobertas são informadas de maneira detalhada. É comum explicar o que ele está fazendo de forma correta para introduzir os pontos que devem ser melhorados, em seguida detalhar sobre como você conseguiu invadir o sistema, o que foi descoberto e o que fazer para corrigir. Vale lembrar que o relatório deve ser escrito de forma clara para que todos incluindo o pessoal que não seja da área técnica possam ler.
Tipos de testes de invasão
Os testes de invasão podem ser classificados em tipos, conforme a quantidade de informações apresentadas ao profissional de segurança:
-
Blind
simula todas as condições de um atacante real, onde o mesmo possui acesso apenas às informações públicas do alvo, o cliente sabe que será testado e o que será feito durante o teste. -
Double Blind
possui as mesmas características doBlind
, porém a equipe de TI do alvo não é avisada sobre a execução do teste. -
Gray Box
as informações fornecidas sobre o alvo são parciais de forma a antecipar a execução do teste. -
Double Gray Box
possui as mesmas características doGray Box
, porém a equipe de TI do alvo não sabe quais testes serão executados. -
Tandem
todas as informações sobre o alvo são passadas para o atacante e o alvo sabe exatamente o que será testado. -
Reversal
simula um atacante que tem conhecimento total sobre o alvo, porém o alvo não sabe que será atacado, muito menos que testes serão realizados.
Particularmente eu gosto de resumir em apenas dois tipos e costumo
chamá-los de Blackbox
(sem informações relevantes ou qualquer acesso) e
Whitebox
(com o máximo de informações relevantes).
Finalizando
Abordarei com detalhes e exemplos práticos em outros posts cada uma das etapas que foram listadas aqui.
Se você ficou interessado sobre o assunto e quer aprender mais deixe o seu comentário e confira a grade dos workshops: Começando com testes de invasão e Web hacking na prática.
Happy Hacking ;)