O documento fornece uma introdução às ferramentas de auditoria de vulnerabilidades em aplicações web, explicando o que são, para que servem, como funcionam e como devem ser avaliadas. Discute os principais tipos de ferramentas, incluindo comerciais, open source e SaaS, e fornece exemplos de ferramentas populares como Netsparker e Nikto. Também aborda onde testar as ferramentas e as conclusões sobre seu uso.
1. OWASP @ ISCTE-IUL
Ferramentas de Auditoria de Vulnerabilidades em
Aplicações Web
ISCTE-IUL/DCTI Nuno Teodoro
Instituto Superior de Ciências do Trabalho e da Empresa nuno.filipe.teodoro@gmail.com
Instituto Universitário de Lisboa nfteodoro@hotmail.com (IM)
Departamento de Ciências e Tecnologias de Informação
http://pt.linkedin.com/in/nunoteodoro
http://www.facebook.com/nuno.teodoro
2. Um pouco sobre mim...
2
Licenciado em Engenharia Informática (ISCTE)
Mestrando em Engenharia Informática – SIGC (ISCTE)
Consultor na área de SCCM – Noesis
Colaborador NetMuST
Tese de Mestrado em Segurança Aplicacional – Ethical
Hacking
OWASP @ ISCTE-IUL Abril 2010
3. O que são e para que servem?
3
Ferramentas que automatizam testes nas aplicações web
Testes geralmente concentram-se mas vulnerabilidades
mais comuns
XSS
SQL Injection
Buffer Overflow
...
Geralmente utilizadas no fim do CVDS
OWASP @ ISCTE-IUL Abril 2010
4. O que são e para que servem?
4
CVDS
OWASP @ ISCTE-IUL Abril 2010
5. Motivação – Os mitos
5
Está numa rede Usamos
com firewalls protocolos
proprietários
Temos anti-vírus O nosso SO é
“seguro”
A nossa
aplicação
Usamos Usamos
está segura
passwords encriptação de
“seguras” dados
Usamos SSL ........
OWASP @ ISCTE-IUL Abril 2010
6. Motivação – A realidade
6
Software bug bites U.S.
Military
— BBC, Mar 18,2003
OWASP @ ISCTE-IUL Abril 2010
7. Motivação – A realidade
7
OWASP @ ISCTE-IUL Abril 2010
8. Motivação
8
E se fosse possível
carregar num botão e
ver que
vulnerabilidades
eliminar?
Scan
Vulnerabilities
OWASP @ ISCTE-IUL Abril 2010
9. Antes dos Web Scanners
9
Um pouco de história
Achilles proxy (2000)
Robert Cardona
Proxy que exibia todos os pedidos e respostas e permitia a sua edição
Era complicado
Tinha muitos bugs
Permitia comprometer muitas aplicações naquela altura
OWASP @ ISCTE-IUL Abril 2010
10. Modo Geral de Funcionamento
10
Efectuam crawling numa aplicação web
OWASP @ ISCTE-IUL Abril 2010
11. Modo Geral de Funcionamento
11
Localizam vulnerabilidades na camada aplicacional
Realizam testes de penetração – análise activa através da
simulação de ataques
Manipulam mensagens HTTP
Inspeccionam mensagens HTTP
Detectam atributos suspeitos
Efectuam fuzzing
Inpecção de código
...
OWASP @ ISCTE-IUL Abril 2010
12. Modo Geral de Funcionamento
12
Crawling
Inicializar lista
com URLs
Wanderers, robots, InfoSpiders [Fim]
spiders, fish, Procurar fim
worms...
Focused Crawler
[Sem URLs]
Escolher URL
da lista
Web Context Focused
Crawler
crawlers Ir para o URL
Naive Best-First
Crawler
Efectuar parsing
SharkSearch da página
Adicionar URLs
à lista
OWASP @ ISCTE-IUL Abril 2010
13. Que ferramentas usar e porquê?
13
A escolha das ferramentas a usar é muito complicada
Existem muitas ferramentas comerciais e Open Source
Nem todas devolvem os mesmos resultados
Não sabemos até que ponto os resultados são fiáveis
OWASP @ ISCTE-IUL Abril 2010
14. Escolha da ferramenta - WASSEC
14
Web Application Security Scanner Evaluation Criteria
Secção 1 - Protocol Support
Secção 2 - Authentication
Secção 3 - Session Management
Secção 4 - Crawling
Secção 5 - Parsing
Secção 6 - Testing
Secção 7 - Command and Control
Secção 8 - Reporting
OWASP @ ISCTE-IUL Abril 2010
15. Escolha da ferramenta - WASSEC
15
Secção 1 - Protocol Support
Devem ser suportados todos os protocolos mais usados pelas
aplicações web
HTTP 1.0
HTTP 1.1
SSL / TLS
HTTP Keep Alice
....
OWASP @ ISCTE-IUL Abril 2010
16. Escolha da ferramenta - WASSEC
16
Secção 2 - Authentication
Deve suportar as autenticações mais utilizadas, de modo a ser
capaz de testar aplicações que requiram essa autenticação
Basic
Digest
HTTP Form-based
...
OWASP @ ISCTE-IUL Abril 2010
17. Escolha da ferramenta - WASSEC
17
Secção 3 - Session Management
Durante os testes a uma aplicação web, é essencial que a
ferramenta consiga manter uma sessão aberta e válida durante os
testes
Este cenário é necessário para:
Web crawiling
Fases de testes
Criar manter uma sessão
OWASP @ ISCTE-IUL Abril 2010
18. Escolha da ferramenta - WASSEC
18
Secção 4 – Crawling
Esta função é fundamental pois permite que a ferramenta esteja
“consciente” de todos os caminhos dentro de uma aplicação web
Definir um URL de início
Definir extensões para exclusão
Definir um máximo de profundidade de crawling
Detectar páginas de erro
OWASP @ ISCTE-IUL Abril 2010
19. Escolha da ferramenta - WASSEC
19
Secção 5 – Parsing
O processo de mapeamento do crawler é feito através do parsing
de diferentes tipos de conteúdos para extrair informações
Esta informação é de elevada importância e refere-se a:
HTML
JavaScript
VBScript XML
....
OWASP @ ISCTE-IUL Abril 2010
20. Escolha da ferramenta - WASSEC
20
Secção 6 – Testing
Esta é a funcionalidade mais relevante numa ferramentas de
auditoria
Configuração de testes
Nome do Host ou IP
Extensões de ficheiros
Cookies
...
Capacidades de testes
Autenticação
Autorização
Ataques do lado do cliente
OWASP @ ISCTE-IUL
... Abril 2010
21. Escolha da ferramenta - WASSEC
21
Secção 7 - Command and Control
Têm bastante influência na usabilidade por isso deve ser
considerado um critério importante
Controlo das capacidades de scan
Calendarização
Pause e Resume
Real-time scans
...
Interfaces fornecidas
Extensão e interoperabilidade
Existência de APIs
Conjugação com outras ferramentas
OWASP @ ISCTE-IUL Abril 2010
22. Escolha da ferramenta - WASSEC
22
Secção 8 - Reporting
As ferramentas deverão ser capazes de produzir relatórios e de
suportar costumização dos mesmos
Tipos de relatórios
Sumário executivo
Relatório técnico detalhado
Informação sobre cada vulnerabilidade e medidas de mitigação
Costumização
Formato
PDF
XML
OWASP @ ISCTE-IUL Abril 2010
27. Ferramentas de Auditoria
27
RSS Database security HTTP general
HTTP proxying / extensions
editing assessment testing /
and fingerprinting
caching
Browser-based SQL
HTTP tampering injection
/ editing / scanning
replaying
Web services
enumeration /
Ajax and scanning /
XHR fuzzing
scanning
Cookie editing / Web application security
poisoning malware, backdoors, and
evil code
OWASP @ ISCTE-IUL Abril 2010
28. Ferramentas de Auditoria - SECTOOLS
28
Top 10 - sectools
1 2 3 4
Nikto WebScarab
5 6 7 8
libwhisker Wikto
9 10
OWASP @ ISCTE-IUL Abril 2010
29. Ferramentas de Auditoria - Avaliação
29
Preparação
Testes
Comparação de resultados
OWASP @ ISCTE-IUL Abril 2010
30. Ferramentas de Auditoria - Avaliação
30
Preparação
Determinar quais os pontos do WASSEC são mais importante
Cada utilizador tem as suas necessidades e preferências pessoais
Avaliar um conjunto de características adicionais
Custo de aquisição
Custos de suporte
Custos adicionais (e.g. hardware)
Facilidade de utilização
Qualidade da documentação
Disponibilidade de suporte (telefone, web, e-mail, etc)
Disponibilidade de formação
Capacidades de update das capacidades do produto
Restrições de licença
OWASP @ ISCTE-IUL Abril 2010
31. Ferramentas de Auditoria - Avaliação
31
Preparação
Decidir que ferramentas serão alvo da avaliação
Obter a última versão de cada ferramenta
Efectuar uma lista das aplicações web que serão testadas
Consumo de tempo!
Escolher mais que uma tecnologia
Autorizações para efectuar os testes
Documentar as características das aplicações caso os resultados
sejam para ser tornados públicos
OWASP @ ISCTE-IUL Abril 2010
32. Ferramentas de Auditoria - Avaliação
32
Testes
As ferramentas permitem várias configurações para efectuar os
testes
Devem ser usadas essas várias configurações
Maior cobertura de vulnerabilidades
Configurar vários níveis de defesa
Nível 0 – sem defesas
Nível 1 – nível 0 + filtros
Nível 2 – nível 1 + funções especiais
…
OWASP @ ISCTE-IUL Abril 2010
34. Ferramentas de Auditoria - Avaliação
34
Comparação de resultados
Para cada teste avaliar os pesos dados segundo as nossas
preferências da WASSEC
Próximo documento WASSEC já prevê os pesos mais comuns dos
utilizadores
Avaliar características extra definidas por nós
OWASP @ ISCTE-IUL Abril 2010
35. Prós e Contras
35
Prós
Recursos temporais limitados
Podem poupar muito tempo em vulnerabilidades facilmente
detectáveis pelas ferramentas
Boas soluções custo/eficácia
Soluções PaS
Recursos humanos limitados
Exige pouco conhecimento técnico
Boa solução para as fases finais do CVDS
Automatização de testes frequentes
OWASP @ ISCTE-IUL Abril 2010
36. Prós e Contras
36
Contras
Fiabilidade das ferramentas
Não são A solução
Não significa que não existam falhas se estas não forem contradas
Têm limitações
Custos
Tempo de scanning
Dependendo da aplicação, o próprio crawling pode demorar dias
OWASP @ ISCTE-IUL Abril 2010
37. Web Application Attack and Audit
37
Framework
Web Application Attack and Audit Framework
http://w3af.sourceforge.net/
Autor: Andres Riancho
“w3af is a Web Application Attack and Audit Framework. The
project's goal is to create a framework to find and exploit
web application vulnerabilities that is easy to use and extend.”
OWASP @ ISCTE-IUL Abril 2010
44. Onde Testar?
44
Importante pedir autorizações para testar aplicações
web reais
Problemas legais caso contrário
Lei do cibercrime
Permite perceber até que ponto as ferramentas são
eficazes a descobrir quais vulnerabilidades
Diferentes configurações para a mesma vulnerabilidade
OWASP @ ISCTE-IUL Abril 2010
45. Conclusões
45
O que sao web scanners
Para que servem
Como funcionam
Como devem ser avaliados
OWASP @ ISCTE-IUL Abril 2010
46. Conclusões
46
Pros
Contras
Onde Testar
OWASP @ ISCTE-IUL Abril 2010
47. OWASP @ ISCTE-IUL
Ferramentas de Auditoria de Vulnerabilidades em
Aplicações Web
ISCTE-IUL/DCTI Nuno Teodoro
Instituto Superior de Ciências do Trabalho e da Empresa nuno.filipe.teodoro@gmail.com
Instituto Universitário de Lisboa nfteodoro@hotmail.com (IM)
Departamento de Ciências e Tecnologias de Informação
http://pt.linkedin.com/in/nunoteodoro
http://www.facebook.com/nuno.teodoro