OWASP Top Ten e Guia de Testes OWASP como frameworks para verificação de segurança para
aplicações web
Ismael Rocha Gonçalves
AGENDA
• Palestrante
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
PALESTRANTE
• Especialista em SI, CISSP, MCSO
• Mais de 5 anos de experiência em SI para aplicações web e desktop
• Projetos
• Contribuidor OWASP
OBJETIVOS
• Fornecer em linhas gerais SI para web
– OWASP Top Ten
– Guia de Testes OWASP
• Processo estruturado de verificação de segurança
– OWASP Application Security Verification Standard
• Ciclo de Desenvolvimento Seguro
– OpenSAMM/Microsoft SDLC
OWASP
• OWASP Foundation
– Sem fins lucrativos, comunidade, segurança em software
– DISA (EUA), ENISA (Europa), CCRIC (Canadá), ANSSI (França)
– Projetos com foco em proteção, detecção e ciclo de vida de software
– Ferramentas, documentos, fóruns e capítulos livres
OWASP TOP TEN
• 2003,2004,2007 e 2010
• Foco em riscos críticos
• Foco na educação de desenvolvedores, engenheiros, gerentes, organizações
• Referência PCI DSS, DISA etc.
OWASP TOP TEN
A1 – Injeção A2 – Cross site scripting (XSS) A3 – Falha no gerenciamento de sessão A4 – Referência insegura a objetos A5 – Cross site request forgery (CSRF) A6 – Configuração de Segurança Defeituosa A7 – Armazenamento criptográfico inseguro A8 – Falha de Restrição acesso URL A9 – Proteção insuficiente camada de transporte A10 – Redirecionamento e reenvio não validados
Guia de Testes OWASP
• Framework de testes de segurança
• Entender o que, por quê, quando, onde e como testar aplicações web
• Metodologia de classificação de riscos
– Identificação dos riscos
– Fatores para estima de probabilidade
– Fatores para estima de impacto no negócio
– Determinação da severidade do risco
TESTE DE INTRUSÃO
• Técnica exploratória para determinar o nível de risco associado a uma vulnerabilidade ou a um conjunto de vulnerabilidades de determinado alvo
• Simula um ataque real a um sistema ou infraestrutura
• Processo amplo, fases pré e pós-ataques
ESTUDO DE CASO
• Planejamento – Tipo de teste
• Gray-box
– Estratégia de teste: • Externo à rede
• Informação de vulnerabilidades para correção
• Sem credenciais e sem conhecimento de detalhes de infraestrutura, exceto endereço IP
– Escopo • http://www.alvo.com.br
ESTUDO DE CASO
• Planejamento – Restrições
• Inspeção de segurança código-fonte
• Engenharia social
• Negação de serviço
• Modificação/exclusão de informações restritas
• Testes de lógica de negócio
• Testes em áreas restritas da aplicação
– Período: • De 2 a 9 de MM de YYYY
• Sem restrição de horário
ESTUDO DE CASO
• Descobrimento
– Levantamento de Informações
• Ferramenta automatizada – Versão do Servidor, bibliotecas, tecnologias
– Árvore de diretórios com pontos de entradas
– Informações sensíveis
• Inspeção manual de códigos HTML – Ajax
ESTUDO DE CASO
• Descobrimento
– Resultados
• Versão do Servidor Web: Apache
• Tecnologia PHP: versão 5.1.6
• Scripts com ponto de entrada (ferramenta): 167
• Scripts Ajax: 4
ESTUDO DE CASO
• Descobrimento
– Análise de Vulnerabilidades
• Em acordo com escopo e limitações
• Utilização dos testes Guia de Testes OWASP
• Análise automatizada e manual e análise crítica
• CVE
ESTUDO DE CASO
• Descobrimento
– Testes realizados (Gerência de Configuração)
• OWASP-CM-001 – SSL/TLS Testing
• OWASP-CM-002 – DB Listener Testing
• OWASP-CM-003 – Infrastructure configuration Mgt test
• OWASP-CM-007 – Infrastructure and app admin interfaces
ESTUDO DE CASO
• Descobrimento
– Testes realizados (Testes de Autenticação)
• OWASP-AT-001 – Credential transport over encrypted channel
• OWASP-AT-002 – Test for user enumeration
• OWASP-AT-006 – Test for vulnerable remember me password
ESTUDO DE CASO
• Descobrimento
– Testes realizados (Gerência de sessão)
• OWASP-SM-001 – Testing for session mgt schema
• OWASP-SM-003 – Testing for session fixation
ESTUDO DE CASO
• Descobrimento
– Testes realizados (Validação de dados)
• OWASP-DV-001 – Testing for Reflected XSS
• OWASP-DV-005 – SQL Injection
ESTUDO DE CASO
• Ataque
– Verifica grau de profundidade das vulnerabilidades
– OWASP-DV-005 Sql Injection
– Conformidade com regras acordadas na fase de planejamento
– Desenvolvido exploits
ESTUDO DE CASO
• Ataque – Exemplo exploit:
• http://www.alvo.com.br/site/ajax/ajax.php?id=12222%20union%20select%201,1,concat%28nome,%20%27%20%27,%20login,%20%27%20%27,%20senha%29,1%20from%20USUARIOS--
– Objetivo • Obter os campos nome, login e senha da tabela USUARIOS
banco de dados ALVO.
ESTUDO DE CASO
• Ataque – Resultados: mais de 2700 contas de
usuários/senhas, acesso administrativo.
– Senhas armazenadas em hash:
– Rainbow Tables, tabelas com entradas pré-computadas
HASH MD5 Texto Claro
4a45c297942c77ad3a47ac4650e7e90a !@#123qwe
1ac0111bb4011eeb099059a87548bcb2 kelly12!@
e10adc3949ba59abbe56e057f20f883e 123456
64760ea431d3ace72ffa9065ed1b706e 1005197
eb52b9e89e7272b9742ce97bed92a98a 04010612
ESTUDO DE CASO
• Relato (riscos OWASP Top Ten) Item OWASP Top
Ten
Id Vulnerabilidade Item OWASP Testing
Guide
Risco
A1 – Injeção 01 Injeção de Comandos SQL OWASP-DV-005 Muito Alto
A2 – Cross Site
Scripting
02 Cross-site-scripting OWASP-DV-001 Médio
A6 – Configuração de
segurança defeituosa
03 Versão insegura PHP OWASP-CM-003 Alto
04 Slow HTTP OWASP-CM-003 Alto
05 Interfaces administrativas abertas OWASP-CM-007 Alto
A7 – Armazenamento
criptográfico inseguro
06 Armazenamento de senhas com
hash sem salt
- Médio
A9 – Proteção
insuficiente da camada
de transporte
07 Canal inseguro para autenticação OWASP-AT-001 Alto
ESTUDO DE CASO
• Relato (recomendações) Id Vulnerabilidade Recomendação
01 Injeção de Comandos SQL Utilizar APIs que forneçam suporte para queries parametrizadas
(STTUTARD, 2008).
02 Cross-site-scripting Validar os dados de entrada e saída oriundos de formulários e requisições get;
utilizar entidades HTML (>, < etc). (STTUTARD, 2008)
03 Versão insegura PHP Atualizar versão do PHP (STTUTARD, 2008).
04 Slow HTTP Aplicar processo de hardening no servidor web (QUALYS).
05 Interfaces administrativas abertas Restringir acesso às interfaces administrativas a uma rede segura/interna.
06 Armazenamento de senhas com hash
sem salt
Utilizar algoritmo de hash seguro e aplicar técnica de salt (STTUTARD,
2008).
07 Canal inseguro para autenticação Implementar protocolo SSL/TLS compatível com as melhores práticas
(STTUTARD, 2008) .
DEMO
• A1 – Injeção
• A2 – XSS
• A3/A7 – Falha no Gerenciamento de Sessão/Armazenamento criptográfico inseguro
• A10 – Redirecionamento e reenvios não validados
CONCLUSÃO
• Segurança permeia todos os processos e sistemas não foge à regra
• Sempre haverá riscos, mas apoiado em boas práticas pode-se levá-los a um nível adequado
• OWASP Top Ten – Boa referência/introdução
• Guia de testes OWASP – Base sólida para testes web
• Ferramentas não são tudo
REFERÊNCIAS
• http://www.md5decrypter.co.uk/
• https://www.owasp.org/index.php/Main_Page
• https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
• https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf
• http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf