Upload
owasp-brasilia
View
468
Download
2
Embed Size (px)
Citation preview
OWASP Top Ten e Guia de Testes OWASP como frameworks para verificação de segurança para
aplicações web
Ismael Rocha Gonçalves
Fabricio Braz
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
Ismael Rocha
• Especialista em SI, CISSP, MCSO
• Mais de 5 anos de experiência em SI para aplicações web e desktop
• Projetos
• Contribuidor OWASP (Cheat Sheet, Testing Guide v4)
Fabricio Braz
• Líder OWASP Brasília • Sócio Fundador - Sr. Nimbus • D.Sc. – UnB & FAU (USA)
– Design de software e padrões de arquitetura para segurança.
• SERPRO – UnB – Microsoft – SDL (Segurança no Ciclo de Desenvolvimento) no PSDS (PROCESSO
SERPRO de Desenvolvimento de Soluções).
• Disciplina Segurança de Software – UnB – Especialização em Segurança da Informação e Comunicações.
• BSIMM PT-BR • http://softwareseguro.blogspot.com • .NET, Java • Twitter - fabriciobraz
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
Objetivos
• Fornecer em linhas gerais SI para web
– OWASP Top Ten
– Guia de Testes OWASP
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
• https://www.owasp.org • 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
autônomos. • Creative Commons.
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
OWASP Top 10
• 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 Brasília
OWASP Top 10 (2010)
A1: Injeção
A2: Cross Site Scripting (XSS)
A3: Autenticação e Gerenciamento de Sessão Comprometidos
A4: Referencias Inseguras Diretas a Objetos.
A5: Cross Site Request Forgery (CSRF)
A6: Configuração Insegura
A7: Falha para Restringir Acesso a URL
A8: Redirecionamentos e Encaminhamentos Não Validados
A9: Armazenamento Criptográfico Inseguro
A10: Proteção Insuficiente na Camada de Transporte OWASP Brasília
A1 – Injeção
• Subverter a aplicação a partir da inclusão de comandos não desejados no dado enviado para o interpretador.
Injeção significa…
• Recebe as strings e as interpreta como comandos
• SQL, OS Shell, LDAP, XPath, Hibernate, etc…
Interpretadores…
• Muitas aplicações são suscetíveis.
• Mesmo que seja simples de se evitar.
Injeção SQL ainda continua muito comum
• Geralmente severo. Toda a base dados pode ser lida ou modificada.
• Pode inclusive conceder acesso ao esquema completo da base, acesso a contas, ou ainda, acesso ao sistema operacional.
Impacto típico
OWASP Brasília
Injeção LDAP
OWASP Brasília
Injeção LDAP
OWASP Brasília
Injeção LDAP
OWASP Brasília
Injeção LDAP
• Alvo
– Comprometer a base de contas de usuários.
• Método
– Injeção de Código
• Proteção
– Validação de entrada
– Defesa em profundidade
OWASP Brasília
A2 – Cross-Site Scripting (XSS)
•O dado bruto do atacante é enviado ao navegador de um usuário inocente.
Ocorre quando…
•Armazenado em banco de dados.
•Refletido de uma entrada web (campo de formulário, campo oculto, URL, etc…).
•Enviado diretamente via cliente rico JavaScript.
Dato bruto …
•Tente essa instrução em seu navegador – javascript:alert(document.cookie).
Virtualmente toda aplicação web possui este problema
•Roubo de sessão de usuário, roubo de dado sensível, reescrita de página web, redirecionamento de usuário a um usuário de phishing ou malware.
•Mais Severo: Instala um proxy XSS que permite ao atacante observar e direcionar todo o comportamento do usuário em um site vulnerável e redirecionar o usuário a outros sites.
Impacto Típico
OWASP Brasília
XSS
• Alvo – Comprometer a confiança que o usuário deposita no
conteúdo do site.
• Método – Injeção de Código
• Proteção – Validação de entrada e saída
– Encoding • <script>alert(document.cookie)</script>
• <script>alert(document.cookie)%lt;/script>
OWASP Brasília
A3 - Autenticação e Gerenciamento de Sessão
Comprometidos
• Significa que as credenciais precisam acompanhar cada requisição.
• Deve-se usar SSL para tudo que exija autenticação.
HTTP é um protocolo que não mantem estado (stateless).
• O SESSION ID é usado para manter a sessão, uma vez que o HTTP não o faz.
• O SESSION ID é comumente exposto pela rede, nos browsers, em logs,…
Falhas de gerenciamento de sessão
• Mudança de senha, lembrança de senha, questão secreta, logout, endereço. de email, etc…
Fique atento aos side-doors
• Contas de usuários comprometidas ou sequestro de sessão.
Impacto comuim
OWASP Brasília
Autenticação Comprometida
Custom Code
Acc
ou
nts
Fin
ance
Ad
min
istr
atio
n
Tran
sact
ion
s
Co
mm
un
icat
ion
Kn
ow
led
ge M
gmt
E-C
om
me
rce
Bu
s. F
un
ctio
ns
1 Usuário envia suas credenciais
2 O site usa rescrita de URL
(ex., colocando a sessão na URL)
3 O usuário clica no link http://www.hacker.com em um forum
www.sm.com?JSESSIONID=9FA1DB9EA...
4
O atacante procura nos logs de www.hacker.com por referer que contenha JSESSIONID
5 O atacante usa o JSESSIONID e se apodera da conta da vítima
OWASP Brasília
A4 – Referências Inseguras Diretas a Objetos
• Isso é em parte imposição de “Autorização” apropriada, juntamente
com A7 – Falha em Restringir Acesso a URL.
Como você protege o acesso aos seus dados?
• Listar somente os objetos autorizados para o usuário corrente, ou ocultar referencias a objetos em campos ocultos
• … e não impor tais restrições no servidor
• Isso é conhecido como controle de acesso da camada de apresentação, e não funciona.
• O atacante simplesmente adultera os valores dos parâmetros.
Um erro comum …
• Acesso não autorizado a arquivos ou dados pelos usuários.
Impacto Típico
OWASP Brasília
Referências Inseguras Diretas a Objetos
• O atacante percebe que o parâmetro de sua conta é 6065
?acct=6065
• Ele tenta o próximo numero
?acct=6066
• O atacante tem acesso a informação da conta da vítima
https://www.onlinebank.com/user?acct=6065
OWASP Brasília
A5 - Cross Site Request Forgery (CSRF)
• Um ataque no qual o browser da vítima é enganado de modo a enviar um comando a uma aplicação web vulnerável.
• A vulnerabilidade é causada pelo fato dos navegadores incluírem automaticamente dados de autenticação do usuário (session ID, endereço IP, credenciais de domínio Windows, …) em cada requisição.
Cross Site Request Forgery
• E se um atacante puder tomar posse de seu mouse e fazê-lo clicar em links em seu web banking?
• O que eles podem obrigá-lo a fazer?
Imagine…
• Iniciar transações (transferir fundos, encerrar cessão, desativar conta).
• Acessar dados sensíveis.
• Alterar detalhes da conta.
Impacto Comum
OWASP Brasília
CSRF Ilustrado
3
2
Atacante coloca uma armadilha em um site (ou via email) 1
Apesar de logar no site vulnerável, usuário acessa o site do atacante
O site vulneravel recebe requisições legítimas da vítima e realiza a ação requisitada
A tag <img> é carregada pelo navegador – envia requisição GET (incluindo credenciais) ao site vulnerável
Custom Code
Acc
ou
nts
Fin
ance
Ad
min
istr
atio
n
Tran
sact
ion
s
Co
mm
un
icat
ion
Kn
ow
led
ge M
gmt
E-C
om
me
rce
Bu
s. F
un
ctio
ns
Uma tag <img> oculta contém um ataque a um site vulnerável
Aplicação com vulnerabilidade CSRF
OWASP Brasília
CSRF
• Alvo – Comprometer a confiança que o site deposita no
browser.
• Método – Injeção de Código
• Proteção – Validação de entrada e saída – Utilização de tokens – Encoding
• <script>alert(document.cookie)</script> • <script>alert(document.cookie)%lt;/script>
OWASP Brasília
A6 – Configuração Insegura
•Tudo que esteja entre a rede a plataforma
•Não se esqueça do ambiente de desenvolvimento
Aplicações web dependem de uma base segura
•Pense em todos os locais nos quais seu código fonte esteja
•A segurança não deve depender de um código secreto
Seu código fonte é secreto?
•Todas as credenciais devem mudar em produção
GC deve estender a todas as partes da aplicação
• Instalação de backdoor via brecha não corrigida na rede ou no servidor
•Exploração de falhas de XSS devido a falta de atualização de frameworks da aplicação
•Acesso não autorizado a contas, funcionalidades ou dados padrão da aplicação, ou funcionalidade não usada mas disponível em razão de configuração falha do servidor
Impacto Típico
OWASP Brasília
Hardened OS
Web Server
App Server
Framework
A6 – Configuração Insegura
App Configuration
Custom Code
Acc
ou
nts
Fin
ance
Ad
min
istr
atio
n
Tran
sact
ion
s
Co
mm
un
icat
ion
Kn
ow
led
ge M
gmt
E-C
om
mer
ce
Bu
s. F
un
ctio
ns
Test Servers
QA Servers
Source Control
Development
Database
Insider
OWASP Brasília
A7 - Falha em Restringir Acesso a URL
• Isso é em parte imposição de “Autorização” apropriada, juntamente com
A4 - Referências Inseguras Diretas a Objetos
Como você protege o acesso as URLs (páginas)?
• Mostrar apenas links e opções de menu autorizados
• Isso é conhecido como controle de acesso da camada de apresentação, e não funciona
• O atacante simplesmente adultera os valores dos parâmetros
Um erro comum …
• Os atacantes invocam funções e serviços a elas não autorizados
• Acesso a outras contas e dados de usuários
• Execução de ações com privilégio elevado
Impacto Típico
OWASP Brasília
Falha em Restringir Acesso a URL
• O atacante percebe que a url tem correlação com sua conta /user/getAccounts
• Ele a modifica para outro diretório (papel)
• /admin/getAccounts, ou
• /manager/getAccounts
• O atacante visualiza outras contas além da sua
https://www.onlinebank.com/user/getAccountshttps://www.onlinebank.com/user/getAccounts
OWASP Brasília
A8 - Redirecionamentos e
Encaminhamentos Não Validados
• E com frequência incluem parâmetros fornecidos pelo usuário na URL de destino.
• Caso elas não sejam validadas, o atacantes pode direcionar a vitima para o site que desejar.
Redirecionamento em aplicações web é muito comum
• Eles enviam internamente a requisição para uma nova página da mesma aplicação.
• Em alguns casos os parâmetros definem a página alvo.
• Caso não seja validado, o atacante pode conseguir usar uma encaminhamento não validado para subverter as verificações de autenticação e autorização.
Encaminhamentos são comuns também
• Redireciona a vítima a site de malware e phishing.
• A requisição do atacante é encaminhada para para verificações de segurança já realizadas, permitindo acesso não autorizado a dados e funções.
Impacto Típico
OWASP Brasília
A8 - Redirecionamentos e Encaminhamentos Não Validados
3
2
O atacante envia o ataque a vitima pode email ou site web
De: TAM Fidelidade Assunto: Prêmio de 10.000 pontos A TAM tem por hábito premiar os clientes que mais usam nossos serviços, por esta razão estamos concedendo 10.000 pontos para você. Para garantir esses pontos preencha o formulário disponível neste link
1
A aplicação redireciona a vítima ao site do atacante.
A requisição enviada a um site vulnerável, incluindo o site do atante como parâmetro. Isso redirecionará a vítima ao site do atacante
Custom Code
Acc
ou
nts
Fin
ance
Ad
min
istr
atio
n
Tran
sact
ion
s
Co
mm
un
icat
ion
Kn
ow
led
ge M
gmt
E-C
om
me
rce
Bu
s. F
un
ctio
ns
4 O site malicioso instala um malware na vítima
A vítima clica no link contendo um parâmetro não validado
Evil Site
http://www.irs.gov/taxrefund/claim.jsp?year=2006& … &dest=www.evilsite.com OWASP Brasília
A8 - Redirecionamentos e Encaminhamentos Não Validados
2
O atacante ataca uma página vulnerável que ele tenha acesso 1
A aplicação autoriza a requisição, que continua para uma página vulnerável
A requisição enviada a uma página vulnerável que o usuário possua acesso. O redirecionamento envia o usuário diretamente a uma página privada, subvertendo o controle de acesso.
3 O encaminhamento de página falha em validar o parâmetro, enviado o atacante a uma página não autorizada, subvertendo o controle de acesso public void doPost( HttpServletRequest request,
HttpServletResponse response) { try { String target = request.getParameter( "dest" ) );
... request.getRequestDispatcher( target
).forward(request, response); } catch ( ...
Filter
public void sensitiveMethod( HttpServletRequest request, HttpServletResponse response) {
try { // Do sensitive stuff here. ...
} catch ( ...
OWASP Brasília
A9 – Armazenamento Criptográfico Inseguro
• Falha na identificação de todos os dados sensíveis.
• Falha em se identificar todos os locais que tais dados sensíveis são armazenados:
• Bando de dados, arquivos, diretórios, arquivos de log, backups, etc.
• Falha em proteger de forma apropriada esses dados em todos os locais.
Armazenamento inseguro de dados sensíveis
• Os atacantes acessam e modificam informação confidencial ou privada:
• ex., cartão de crédito, registros de histórico de saúde, dados financeiro (seus ou de seus clientes).
• Os atacantes podem extrair os segredos para montar o quebra-cabeças dos ataque.
• Constrangimento para a empresa, insatisfação do cliente e perda de confiança.
• Custo para resolver o incidente, como em forense, envio de cartas de desculpas, reemissão de milhões de cartões de créditos, fornecimento de seguro contra falsificação de identidade.
• Condenações na justiça e/ou multas.
Impacto Típico
OWASP Brasília
A9 – Armazenamento Criptográfico Inseguro
A9 – Armazenamento Criptográfico Inseguro
Usuario: fabricio; Senha: OWASPSafePass Senha ASCII: 79 87 65 83 80 83 97 102 101 80 97 115 115
Usuario: fabricio; Senha: 7900 8700 6500 8300 8000 8300 9700 10200 10100 8000 9700 11500 11500
A10 – Proteção Insuficiente na Camada de Transporte
• Falha na identificação de todos os dados sensíveis
• Falha na identificação de todos os locais em que os dados sensíveis são enviados: • Na web, para banco de dados, para parceiros de negócio, em comunicação
interna.
• Falha em se proteger de forma apropriada este dado em qualquer local.
Transmissão insegura de dados sensíveis
• Os atacantes acessam o modificam dados confidenciais ou informação privada: • Ex., cartão de crédito, prontuários médicos, dados financeiros (de você ou de seus
clientes).
• Atacantes extraem segredos para compor outros ataques.
• Constrangimento para a empresa, insatisfação do cliente e perda de confiança.
• Custo para resolver o incidente, como em forense, etc.
• Condenações na justiça e/ou multas.
Impacto Típico
OWASP Brasília
Proteção Insuficiente na Camada de Transporte
Código Adaptado
Funcionários
Parceiros Vítima Externa
Sistemas Backend
Atacantes Externos
1
Atacantes externos roubam credenciais e dados fora da rede
2
Atacantes internos roubam credenciais e dados da rede interna
Atacantes Internos
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
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
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
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
OWASP Brasília
Teste de Intrusão
- Planejamento
- Descobrimento
- Ataque
- Relato
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
Estudo de Caso
• Descobrimento
– Testes realizados (Validação de dados)
• OWASP-DV-001 – Testing for Reflected XSS
• OWASP-DV-005 – SQL Injection
OWASP Brasília
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
OWASP Brasília
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.
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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) .
OWASP Brasília
Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
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
OWASP Brasília
• Obrigado!
• H2hc
– Discount code: ECT12
OWASP Brasília