OWASP_BSB_20120827_TOP10_ISMAELROCHA

27
OWASP Top Ten e Guia de Testes OWASP como frameworks para verificação de segurança para aplicações web Ismael Rocha Gonçalves [email protected]

Transcript of OWASP_BSB_20120827_TOP10_ISMAELROCHA

OWASP Top Ten e Guia de Testes OWASP como frameworks para verificação de segurança para

aplicações web

Ismael Rocha Gonçalves

[email protected]

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

TESTE DE INTRUSÃO

- Planejamento

- Descobrimento

- Ataque

- Relato

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 (&gt, &lt 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