Boas práticas de programação com Object Calisthenics
OWASP_BSB_20120827_TOP10_ISMAELROCHA
1. OWASP Top Ten e Guia de Testes OWASP como
frameworks para verificação de segurança para
aplicações web
Ismael Rocha Gonçalves
ismaelrg@gmail.com
2. AGENDA
• Palestrante
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
3. PALESTRANTE
• Especialista em SI, CISSP, MCSO
• Mais de 5 anos de experiência em SI para
aplicações web e desktop
• Projetos
• Contribuidor OWASP
4. 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
5. 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
6. 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.
7. 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
8. 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
9. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. ESTUDO DE CASO
• Descobrimento
– Testes realizados (Validação de dados)
• OWASP-DV-001 – Testing for Reflected XSS
• OWASP-DV-005 – SQL Injection
20. 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
21. ESTUDO DE CASO
• Ataque
– Exemplo exploit:
• http://www.alvo.com.br/site/ajax/ajax.php?id=12222%20un
ion%20select%201,1,concat%28nome,%20%27%20%27,%2
0login,%20%27%20%27,%20senha%29,1%20from%20USUA
RIOS--
– Objetivo
• Obter os campos nome, login e senha da tabela USUARIOS
banco de dados ALVO.
22. 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
23. ESTUDO DE CASO
• Relato (riscos OWASP Top Ten)
Item OWASP Top Id Vulnerabilidade Item OWASP Testing Risco
Ten Guide
A1 – Injeção 01 Injeção de Comandos SQL OWASP-DV-005 Muito Alto
A2 – Cross Site 02 Cross-site-scripting OWASP-DV-001 Médio
Scripting
A6 – Configuração de 03 Versão insegura PHP OWASP-CM-003 Alto
segurança defeituosa 04 Slow HTTP OWASP-CM-003 Alto
05 Interfaces administrativas abertas OWASP-CM-007 Alto
A7 – Armazenamento 06 Armazenamento de senhas com - Médio
criptográfico inseguro hash sem salt
A9 – Proteção 07 Canal inseguro para autenticação OWASP-AT-001 Alto
insuficiente da camada
de transporte
24. 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 Utilizar algoritmo de hash seguro e aplicar técnica de salt (STTUTARD,
sem salt 2008).
07 Canal inseguro para autenticação Implementar protocolo SSL/TLS compatível com as melhores práticas
(STTUTARD, 2008) .
25. 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
26. 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