terça-feira, agosto 16, 2011

,

Auditoria Teste de Invasão (Pentest)




Testes de invasão têm por objetivo verificar a resistência de redes,
sistemas ou aplicações em relação aos atuais métodos de ataque.
Diariamente são descobertas novas falhas nos mais variados sistemas, por
isso é de fundamental importância auditorias preventivas, mais
especificamente, Testes de Invasão, que podem dar um diagnóstico real
sobre a segurança dos ativos em questão.





Algumas vezes é difícil justificar o ROI (Return of Investment) de um
teste de invasão para os tomadores de decisão. É preciso mostrar os
custos resultantes de um ataque bem sucedido (por exemplo, o prejuízo
causado pela indisponibilidade de um site comercialmente ativo – seja um
portal de vendas ou para anúncio de serviços) e compará-los ao custo de
um teste de invasão, que pode indicar quão protegido o Cliente está
deste risco. Além disso, cada vez mais normas internacionais estão
recomendando (ou exigindo) testes de invasão periódicos a todos que
querem entrar em conformidade com as mesmas.





O objetivo deste artigo é descrever as etapas de um teste de invasão,
mostrando que a estrutura dos testes segue modelos cuidadosamente
estruturados em passos bem definidos. Afinal, apesar das óbvias
semelhanças, há uma série de diferenças entre um ataque simulado
contratado e um ataque malicioso real. E é o que veremos à seguir.


  1. Planejamento e Preparação

  2. Avaliação

    1. Obtenção de Informação

    2. Sondagem e Mapeamento

    3. Identificação de Vulnerabilidades

    4. Exploração



  3. Documentação e Relatório

  4. Conclusões

  5. Recomendações de leitura



Planejamento e Preparação



Antes do início do Teste de Invasão é executado um levantamento
inicial de informações para planejamento e modelagem dos testes. São
levantados detalhes da infraestrutura contemplada, equipamentos e
recursos que serão necessários durante os testes, bem como os tipos de
ataque a compor a simulação constituem algumas das informações definidas
nesta etapa. 





Antes do início dos testes, é necessário a assinatura do
NDA (do inglês, Non-Disclosure Agreement, ou Termo de Confidencialidade)
onde fica salvaguardada a confidencialidade das informações que
eventualmente serão acessadas pelo analista responsável pelos testes.





É preciso estabelecer também prazos, janelas de tempo para execução
dos testes e também pontos de contato para tratamento de questões
especiais. Durante o planejamento também é decidido que tipo de teste
será feito, pois isso implica diretamente na quantidade de informações a
que o analista terá acesso. O teste pode ser classificado de 2
maneiras: Informações sobre o ambiente e Informações sobre os testes. De
acordo com o nível de informações que serão passadas sobre o ambiente, o
teste pode ser classificado como caixa preta, caixa branca ou caixa
cinza (híbrido).





Em um teste caixa preta, há pouco ou nenhum conhecimento sobre o
ambiente a ser avaliado, e tudo deve ser descoberto pelo analista. Em
testes caixa branca, analogamente, o avaliador tem acesso irrestrito a
qualquer informação que possa ser relevante ao teste, para conduzi-lo
supondo o pior cenário, em que o atacante conseguiu obter todos os
detalhes sobre o(s) alvo(s).





Testes caixa cinza (ou híbridos) envolvem
conhecimento limitado sobre o alvo, muitas vezes sendo o mínimo
necessário para conduzir o teste da forma desejável.Por outro lado, os testes podem ser classificados como anunciado ou não anunciado, que indicam se a equipe responsável pela TI
e todos os demais colaboradores terão ciência da execução dos testes ou
não.





Há vantagens e desvantagens em anunciar o teste à equipe local.
Por um lado, é possível evitar alardes caso o ataque seja detectado, e
muita informação valiosa pode ser compartilhada para melhor orientar o
ataque. Por outro lado, não é incomum ver administradores de redes e
sistemas conscientes de um Teste de Invasão “burlando” o mesmo através
de mudanças estruturais, comportamentais e melhorias temporárias,
assumindo o serviço como um ataque pessoal ao seu trabalho e tratando o
avaliador como uma ameaça ao seu emprego. 





Nesse tipo de teste também
pode ser avaliado o tempo e a qualidade da resposta da equipe local aos
ataques proferidos.


Avaliação



Esta é a fase onde os testes são efetivamente executados. Geralmente a
abordagem desta fase é feita dividindo-a em várias etapas, conforme
veremos detalhadamente a seguir.


Obtenção de Informação



A coleta de informações é essencial para modelar os ataques e
determinar quais vetores podem ser explorados mais facilmente. O
primeiro passo é vasculhar a Internet atrás de toda informação
disponível sobre o alvo. As técnicas mais comuns são consultas a
serviços de WHOIS e DNS
(através de ferramentas como whois, dig e nslookup), sites de busca (por
exemplo, Google), listas de discussão, blogs corporativos e de
colaboradores, Engenharia Social e Dumpster Diving. Essa última
consiste na busca por informações contidas em lixos corporativos, tais
como documentos impressos e mídias descartadas sem o devido cuidado.


A coleta passiva de informações não exige nenhum contato com o
sistema alvo, a informação é coletada (principalmente) a partir de
fontes públicas e, geralmente, serve como uma avaliação sobre o alvo no
quesito exposição de informação.


Sondagem e Mapeamento



Após a coleta de informações públicas sobre o alvo, inicia-se o
processo de mapeamentos e varreduras da rede e dos recursos em questão.
Dentre as atividades executadas nessa etapa, destacamos:


  • Identificação de hosts vivos

  • Portas e serviços em execução

  • Mapeamento da rede

  • Identificação de sistemas operacionais

  • Identificação de rotas



Esse mapeamento ajudará no refino das informações adquiridas
anteriormente e para confirmar ou descartar algumas hipóteses sobre os
sistemas alvo.


Identificação de Vulnerabilidades



Uma vez identificados os sistemas e serviços pertencentes à rede em
questão, o próximo passo é detectar qual deles possui vulnerabilidades
conhecidas ou caminhos que possam ser explorados para a invasão.
Vulnerabilidades conhecidas (e documentadas) podem ser encontradas em
listas especializadas, sites de fornecedores de softwares e portais
especializados.


Após a enumeração das vulnerabilidades descobertas, é feita uma
estimativa de impacto de cada uma delas, além da identificação dos
vetores de ataque e cenários para exploração.


Exploração



Através das vulnerabilidades e vetores de ataque encontrados, são
disparados os ataques visando a obtenção de acesso não autorizado com o
maior nível de privilégios possível. Para cada vulnerabilidade
identificada, busca-se o seguinte:


  • Encontrar ou desenvolver código/ferramenta para prova de conceito (é
    recomendado que tais provas sejam testadas em ambiente controlado,
    principalmente se forem desenvolvidas por terceiros)

  • Confirmar ou refutar a existência de vulnerabilidades

  • Documentar o caminho utilizado para exploração, avaliação do impacto e prova da existência da vulnerabilidade

  • Obter acesso e, se possível, escalar privilégios.



Para explorar as vulnerabilidades encontradas podem ser utilizados
inúmeros ataques, dependendo do tipo de falha encontrada. Veremos a
seguir como funcionam os principais ataques.





Captura de Tráfego

É o processo de interceptar e examinar informações que trafegam pela
rede, visando testar se os algoritmos e protocolos utilizados na
comunicação dos sistemas garantem a integridade e privacidade das
informações em trânsito.





Buffer Overflow

É quando um buffer de tamanho determinado recebe mais dados do que o
esperado. A idéia é sobrescrever parte da pilha, mudando o valor de
variáveis, parâmetros e até endereço de retorno, culminando em execução
arbitrária de código.





Quebra de Senha

Geralmente feito através do ataque de força bruta que consiste em
enumerar todos os possíveis candidatos e verificar qual deles satisfaz o
problema. O custo computacional de ataques deste tipo é proporcional ao
número de candidatos a solução e, em casos de senhas que seguem as boas
práticas, pode demorar muito tempo. Um ataque particular de força bruta
é o chamado “ataque dicionário” que busca quebrar senhas que consistem
em palavras existentes em dicionário, independente do idioma.





Injeção de Código

Busca explorar aplicações que não tratam as entradas do usuário de forma
correta. Dessa forma um atacante pode “injetar” códigos que serão
interpretados pela servidor que os está recebendo. Essa injeção pode ser
feita via formulários, URIs, Cookies, parâmetros e etc. O caso mais
comum é a injeção de consultas SQL (SQL injection) que visa exposição e/ou alteração de informações contidas no banco de dados utilizado pela aplicação.





Cross-site Script (XSS)

Ataques XSS não persistentes surgem quando dados passados pelo Cliente
são utilizados sem validação para gerar uma página de resultados. Podem
acontecer também de forma persistente, no caso dos dados passados pelo
cliente serem gravados diretamente no servidor, estando publicamente
acessíveis, sem a devida validação ou limitação. Um exemplo típico é
quando fóruns web interpretam tags html escritas por usuários dentro de
seus posts.





Negação de Serviço

Ataques que visam submeter a máquina alvo a uma situação de desempenho
extremamente baixo ou indisponibilidade completa , geralmente através de
esgotamento de recursos.


Documentação e Relatório



Deve ser gerada uma documentação ao longo de todo o teste, a fim de
manter registros de todas as atividades de forma transparente,
informações como escopo do projeto, ferramentas utilizadas, datas e
horas dos testes, lista de todas as vulnerabilidades identificadas e
exploradas, assim recomendações para execução de melhorias.


Conclusões



Testes de invasão devem fazer parte do programa de segurança da
informação das empresas. Há diversas formas de se tratar a segurança de
uma rede, sistema ou aplicação, e o teste de invasão é apenas uma das
possíveis ferramentas, porém é a que apresenta resultados mais
concretos, com o mínimo de falsos positivos/negativos. É preciso atentar
para a importância de auditorias preventivas, além de compreender a
necessidade da percepção exata da exposição dos ativos de TI aos riscos existentes.


Em uma próxima oportunidade serão abordados mais detalhadamente os
tipos de ataques e ferramentas relacionadas, entre outros temas sobre
Testes de Invasão.


Recomendações de leitura



Pra terminar, algumas sugestões de leitura. São metodologias para
testes de invasão que vão ajudar a ter uma visão mais ampla sobre o
assunto e a modelar testes deste tipo para qualquer realidade.


Fonte:  Rafael Soares. || Wikipedia ||

0 comentários:

Postar um comentário