Você está na página 1de 48

MATC99 Segurana e Auditoria

de Sistemas de Informao
Segurana em Aplicaes web Reconhecimento
Italo Valcy <italo@dcc.ufba.br>

Italo Valcy Seg e Auditoria de SI, 2013.1

Licena de uso e distribuio

EstematerialfoibaseadonocursoTestedeinvasodeAplicaes
Web,oferecidopelaEscolaSuperiordeRedesdaRNPedeautoria
deNelsonUto/CpqD.Maisinformaes:http://www.scribd.com/ESR_RNP

Italo Valcy Seg e Auditoria de SI, 2013.1

2 / 48

Introduo

Italo Valcy Seg e Auditoria de SI, 2013.1

3 / 48

Introduo
Teste de invaso (teste de intruso, teste de
penetrao ou pentest):
Mtodo usado para checar a segurana de um
sistema, simulando ataques reais e explorando
vulnerabilidades

Processo cclico, que depende do


conhecimento do auditor
Diferente da varredura de vulnerabilidades

Italo Valcy Seg e Auditoria de SI, 2013.1

4 / 48

Introduo
Podem ser classificados pela quantidade de
informaes disponibilizadas ao auditor
Teste caixa-preta: mesmas condies de um atacante
real (apenas informaes pblicas: IP/DNS, ramo de
negcio, etc)
Teste caixa-branca: todas as informaes so
fornecidas ao auditor (topologias, plataformas usadas,
cdigos-fonte, etc.). Simula ex-colaboradores
Teste caixa-cinza: fornece algumas informaes ao
auditor que um atacante real descobriria, cedo ou tarde.
Maior agilidade no pentest.

Italo Valcy Seg e Auditoria de SI, 2013.1

5 / 48

Introduo
Metodologia OSSTMM 3 (Open Source Security Testing
Methodology Manual)
Foco na equipe (capacidade de detectar e se defender de um
ataque) e no na aplicao

Classificao sobre a equipe de segurana do ambiente:


Teste duplo-cego: teste caixa-preta, onde a equipe de segurana
da aplicao no informada
Teste duplo-cinza: teste caixa-cinza, onde a equipe sabe quando
o teste ocorrer, mas no sabe os vetores de teste
Teste reversa: teste caixa-branca, sem que a equipe de
segurana seja informada

Italo Valcy Seg e Auditoria de SI, 2013.1

6 / 48

Introduo
Testes de invaso so importantes no
desenvolvimento e manuteno de software
seguro:
Evitam que vulnerabilidades sejam inseridas em
ambiente de produo
Avaliam a susceptibilidade dos sistemas a novos
tipos de ataque
Avaliam a capacidade da equipe de segurana a
detectar ataques

Italo Valcy Seg e Auditoria de SI, 2013.1

7 / 48

Metodologia de teste de invaso


A definio e uso de uma metodologia prdefinida importante
Permite que diferentes pessoas cheguem aos
mesmos resultados
Permite que o experimento seja reproduzido

Italo Valcy Seg e Auditoria de SI, 2013.1

8 / 48

Metodologia de teste de invaso

Italo Valcy Seg e Auditoria de SI, 2013.1

9 / 48

Metodologia de teste de invaso


Autorizao e escopo

Primeiro passo: autorizao, por escrito, para


realizao dos testes
Definir tipo de teste, janelas de trabalho, insumos
a serem fornecidos pelo contratante
Ao contratante, cabe definir se a equipe de
segurana ser informada ou no
Posicionamento do auditor: internamente ou
externamente
Segmento de rede interno ou sujeito a firewalls (WAF)

Italo Valcy Seg e Auditoria de SI, 2013.1

10 / 48

Metodologia de teste de invaso


Reconhecimento

Levantar informaes que possam auxiliar no


teste de invaso
Servidores e S.O.'s que suportam a aplicao
Linguagens de programao utilizadas
Potenciais usurios do sistema

Italo Valcy Seg e Auditoria de SI, 2013.1

11 / 48

Metodologia de teste de invaso


Mapeamento

Criar o mapa da aplicao, com as informaes


coletadas na etapa de reconhecimento
Estruturao dos componentes
Funcionalidades ofertadas
Pontos de entrada de informao
Tecnologias utilizadas

Italo Valcy Seg e Auditoria de SI, 2013.1

12 / 48

Metodologia de teste de invaso


Identificao de vulnerabilidades
A partir do mapa da aplicao, deve-se proceder com a
descoberta de vulnerabilidades
Guia OWASP enumera verificaes a cerca de diversas
vulnerabilidades. Exemplos:
Levantamento de informaes: Ex: exibio de comandos SQL,
devido a erros de sintaxe
Gerenciamento de sesses: tratamento inseguro de
identificadores de sesses
Autorizao: permite a realizao de operaes sem os devidos
privilgios (ex: desabilitar itens do menu, mas no valida as
requisies)
Validao de dados
Negao de servio

Italo Valcy Seg e Auditoria de SI, 2013.1

13 / 48

Metodologia de teste de invaso


Explorao de vulnerabilidades

Fase que visa violar os requisitos explcitos e


implcitos de segurana da aplicao
Exemplo: sequestro de sesso

O teste de invaso no deve parar quando um


ataque for bem-sucedido
Aps a fase de explorao o auditor obtm um
maior nvel de acesso aplicao, ou melhor
compreenso dela
A aplicao agora pode ser auditada por outro ngulo

O processo cclico
Italo Valcy Seg e Auditoria de SI, 2013.1

14 / 48

Metodologia de teste de invaso


Documentao
Deve ser paralelo a todas as atividades descritas
Inicia com o contrato formal
Permeia as quatro fases do teste de invaso

Tudo que for encontrado deve estar no relatrio, mesmo


aquilo que no pde ser explorado
O relatrio deve ser detalhado (pr-condies,
ferramentas, mtodos)
Deve incluir recomendao de correo

Italo Valcy Seg e Auditoria de SI, 2013.1

15 / 48

Metodologia de teste de invaso


Apresentao dos resultados

O fechamento da atividade de auditoria a


apresentao dos resultados
Equipe tcnicas
Detalhes tcnicos das vulnerabilidades

Membros da diretoria
Impactos decorrentes dos ataques possveis

Italo Valcy Seg e Auditoria de SI, 2013.1

16 / 48

Ferramentas bsicas

Italo Valcy Seg e Auditoria de SI, 2013.1

17 / 48

Ferramentas
O auditor deve ter s mos um conjunto de
ferramentas (livres ou proprietrias) para
trabalhar
Notebook com opes de ferramentas e scripts

No geral as ferramentas livres so muito boas


Exceo: varredores automticos de
vulnerabilidades

Italo Valcy Seg e Auditoria de SI, 2013.1

18 / 48

Ferramentas
Categorias de ferramentas importantes:
Navegadores web
Proxies de interceptao
Web spiders
Fuzzers
Varredores de portas de servio
Varredores de vulnerabilidades
Outras ferramentas
Italo Valcy Seg e Auditoria de SI, 2013.1

19 / 48

Navegadores web
Fundamental na auditoria de aplicaes web
Diferenas no uso do HTTP e no tratamento de
HTML
Alguns ataques so especficos para navegadores

Fonte: NetMarketShare
Italo Valcy Seg e Auditoria de SI, 2013.1

20 / 48

Proxies de interceptao
Permite interceptar e modificar requisies e
respostas HTTP
Executa na mesma mquina que o navegador
Navegador direciona o trfego para o proxy

Permite interceptar trfego HTTP/HTTPS

Italo Valcy Seg e Auditoria de SI, 2013.1

21 / 48

Proxies de interceptao
Exemplo de proxy para HTTPS

Italo Valcy Seg e Auditoria de SI, 2013.1

22 / 48

Proxies de interceptao
Ferramentas

WebScarab: ferramenta livre, mantida pelo


OWASP, em Java. Permite uso de plugins
Paros: ferramenta livre, em Java. Funciona
como proxy de interceptao, spider e varredor
de vulnerabilidades;
Burp Suite: plataforma integrada de testes,
comercial, pode ser usada em todas as etapas.
A verso community inclui apenas mdulos
bsicos

Italo Valcy Seg e Auditoria de SI, 2013.1

23 / 48

Web spiders
Tambm conhecida como web crawlers
Objetivo montar automaticamente o mapa da
aplicao
Simples para contedo esttico
Difcil para aplicaes web atuais (javascript, forms,
tipos de dados, autenticao)
Deve reconhecer retornos de erro

Alto risco para execuo totalmente automatizada


(ex: execuo de aes indesejadas/perigosas)
Exemplos: wget, webshag
Italo Valcy Seg e Auditoria de SI, 2013.1

24 / 48

Fuzzers
Usado para identificar falhas no tratamento e
validao de informaes
Testar valores fora do padro esperado
Testes de cross-site scripting

Existem vetores de teste especfico para cada


tipo de item de entrada
Exemplos: Spike, Peach Fuzzing, WebFuzzer
(mdulo do WebScarab)

Italo Valcy Seg e Auditoria de SI, 2013.1

25 / 48

Varredores de portas e servios


Analisa uma ou mquinas e identifica portas abertas, servios,
verses de servios, etc.
Pressupe a correta implantao da camada de transporte do
modelo TCP/IP
Tipos mais comuns:
Varredura TCP: tenta estabelecer uma conexo TCP com o alvo
Varredura SYN: envia um SYN e aguarda um SYN-ACK, ento
envia um FIN
Varredura UDP: envia um pacote UDP e caso receba ICMP Port
Unreachable, a porta est fechada
Varredura FIN: envia um FIN e caso receba um RST, a porta est
fechada

Italo Valcy Seg e Auditoria de SI, 2013.1

26 / 48

Varredores de portas e servios


Ferramentas

Exemplo: nmap
Pode ser usado para varrer uma mquina ou uma
rede
Interface grfica: Zenmap, NmapSI

Italo Valcy Seg e Auditoria de SI, 2013.1

27 / 48

Varredores de vulnerabilidades
Visa encontrar vulnerabilidades em um ativo, de forma
automatizada
Envio de requisies e anlise de respostas
Ex: busca por diretrios conhecidos em certas plataformas

Depende da qualidade do mapeamento, ferramentas


atuais no so timas
Deteco automtica depende da descrio clara da
assinatura e resposta esperada de um ataque
Cross-site scripting refletido
Alguns tipos de SQL injection
Alguns tipos de injeo de comandos
Navegao e listagem de diretrios
Italo Valcy Seg e Auditoria de SI, 2013.1

28 / 48

Varredores de vulnerabilidades
Estudo de Doup, Cova, Vigna (2010), contra a
aplicao WackoPicko (16 vulnerabilidades)

Italo Valcy Seg e Auditoria de SI, 2013.1

29 / 48

Varredores de vulnerabilidades
Outras ferramentas:
Netcat: permite envio/recebimento de dados via TCP
e UDP, em modo raw.
OpenSSL: permite trabalhar com SSL e TLS,
inclusive estabelecendo conexes (s_client: como
netcat, porm TCP)
Nikto: varredura de servidores web em busca de
arquivos padres, verses com vulnerabilidades
conhecidas, etc.
Metasploit framework: base de dados de exploits.
w3af: Web Application Attack and Audit Framework.
Italo Valcy Seg e Auditoria de SI, 2013.1

30 / 48

Reconhecimento

Italo Valcy Seg e Auditoria de SI, 2013.1

31 / 48

Reconhecimento
Visa levantar o mximo possvel de informaes do aplicativo
Qual tipo de informao est sendo buscada?
Nomes de funcionrios
Identificadores de usurios
Informaes diversas sobre os usurios
Tecnologias empregadas (ex: plataformas, linguagens)
Servidores e topologias de rede (ex: scan de portas e servios)
Configuraes dos componentes
Recursos que o servidor web disponibiliza (ex: cpias de segurana de
arquivos)
Arquivos robots.txt

Italo Valcy Seg e Auditoria de SI, 2013.1

32 / 48

Reconhecimento
Levantamento de informaes em fontes pblicas

Muitas informaes esto disponveis em


fontes pblicas:
Redes sociais
Grupos de discusso
Anncios de emprego (ex: linkedin)
WHOIS
DNS (ex: open zone transfer)

Italo Valcy Seg e Auditoria de SI, 2013.1

33 / 48

Reconhecimento
Google hacking

Utiliza mecanismos de busca do Google para


encontrar vulnerabilidades de software e de
configuraes em sistemas disponveis na
internet
No aplicvel para sistemas acessveis apenas da
Intranet

Os conceitos e mecanismos podem ser


aplicados em outros buscadores

Italo Valcy Seg e Auditoria de SI, 2013.1

34 / 48

Google hacking
Regras bsicas
O google ignora algumas palavras fornecidas (tidas como comum)
Use o smbolo * em substituio de termos desconhecidos
Case-insensitive (exceto termo OR)
Os termos so procurados em qualquer local da pgina (ttulo,
corpo, URL)
Agrupamento com aspas duplas
Limite de termos na busca (32 termos)
Ordem dos termos afeta a busca
Operador OR (maisculo) pode ser usado (AND padro)
Operador -, filtra pginas com presena do termo seguido
Operador +, fora incluso de termos ignorados pelo Google, alm
de desabilitar sinnimos

Italo Valcy Seg e Auditoria de SI, 2013.1

35 / 48

Google hacking
Operadores avanados

Alguns operadores avanados podem refinar a


busca
Sintaxe geral: operador:termo de busca
Exemplos:
site
intitle / allintitle (ex: allintitle:index of images)
inurl / allinurl (ex: allinurl:admin password)
filetype
link
author (vlido para o google groups)
Italo Valcy Seg e Auditoria de SI, 2013.1

36 / 48

Google hacking
Operadores avanados

Operadores comeados por all devem ser


empregados sozinhos em uma busca
Pode-se aplicar os operadores - e OR em
conjunto aos operadores avanados

Italo Valcy Seg e Auditoria de SI, 2013.1

37 / 48

Google hacking
Operadores avanados Exemplos

Italo Valcy Seg e Auditoria de SI, 2013.1

38 / 48

Identificao de SO, servios e portas


Para cada ativo, o auditor deve listar o S.O.,
servios e portas abertas
Passivo: sniffer do trfego do ativo
Ativo: interao com o servidor ou elemento de rede

Ferramenta utilizada: nmap


Exemplo: nmap -A -T4 <IP>
-A habilita deteco de nome/verso do S.O., nmap
scripts engine (NSE) e traceroute.
-T4 habilita a consulta rpida modo agressivo (4)

Italo Valcy Seg e Auditoria de SI, 2013.1

39 / 48

Identificao do servidor web


Existem diversas formas de descobrir o
servidor web, deve-se conferir com mais de
uma opo
Mais simples: solicitar um recurso inexistente e
verificar a pgina de erro (por padro inclui
assinatura)

Italo Valcy Seg e Auditoria de SI, 2013.1

40 / 48

Identificao do servidor web


Mtodo mais robusto: analise de
comportamento em diferentes situaes:
Cabealho Server (resposta)
Ordem dos cabealhos (resposta)
Tratamento de requisies mal formadas
Protocolos e verses inexistentes

Italo Valcy Seg e Auditoria de SI, 2013.1

41 / 48

Identificao do servidor web


Exemplo
Mtodo HEAD em Apache, lighttpd, nginx e Tomcat

Italo Valcy Seg e Auditoria de SI, 2013.1

42 / 48

Identificao do servidor web


Exemplo
Para automatizar:

Italo Valcy Seg e Auditoria de SI, 2013.1

43 / 48

Mtodos HTTP no servidor


interessante saber os mtodos HTTP
permitidos em um servidor
Mtodos perigosos: PUT, DELETE, etc.

Mecanismo de descoberta: OPTIONS

Italo Valcy Seg e Auditoria de SI, 2013.1

44 / 48

Deteco de VirtualHosts
Comum hospedar diversos sites em um
servidor
Virtual Hosting (IP-based, name-based)
Diferenciao pelo cabealho Host

Como detectar:
Resoluo de nomes e
comparao
Ferramentas de mapeamento
IP => domnio DNS

Italo Valcy Seg e Auditoria de SI, 2013.1

45 / 48

Descoberta de arquivos/diretrios
Google hacking: mecanismo de descoberta no
intrusivo
Ferramenta mais agressiva: Nikto
Testa a presena
de certos itens de
configurao
Base previamente
cadastrada

Italo Valcy Seg e Auditoria de SI, 2013.1

46 / 48

Identificao de SO, servios e portas


Exemplo nmap

Italo Valcy Seg e Auditoria de SI, 2013.1

47 / 48

Prtica
Prtica: 02
./download-pratica.sh 02

Italo Valcy Seg e Auditoria de SI, 2013.1

48 / 48