O documento apresenta frameworks para verificação de segurança de aplicações web, como OWASP Top Ten e Guia de Testes OWASP. Os palestrantes discutem os objetivos da palestra, a organização OWASP, os frameworks mencionados e um estudo de caso de teste de intrusão.
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
Fabricio Braz
2. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
3. 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)
• ismaelrg@gmail.com
4. 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
5. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
6. Objetivos
• Fornecer em linhas gerais SI para web
– OWASP Top Ten
– Guia de Testes OWASP
OWASP Brasília
7. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
8. • 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
9. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
10. 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
11. 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
12. A1 – Injeção
Injeção significa…
• Subverter a aplicação a partir da inclusão de comandos não desejados no dado
enviado para o interpretador.
Interpretadores…
• Recebe as strings e as interpreta como comandos
• SQL, OS Shell, LDAP, XPath, Hibernate, etc…
Injeção SQL ainda continua muito comum
• Muitas aplicações são suscetíveis.
• Mesmo que seja simples de se evitar.
Impacto típico
• 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.
OWASP Brasília
16. 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
17. A2 – Cross-Site Scripting (XSS)
Ocorre quando…
• O dado bruto do atacante é enviado ao navegador de um usuário inocente.
Dato bruto …
• Armazenado em banco de dados.
• Refletido de uma entrada web (campo de formulário, campo oculto, URL, etc…).
• Enviado diretamente via cliente rico JavaScript.
Virtualmente toda aplicação web possui este problema
• Tente essa instrução em seu navegador – javascript:alert(document.cookie).
Impacto Típico
• 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.
OWASP Brasília
18. 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
19. A3 - Autenticação e
Gerenciamento de Sessão
Comprometidos
HTTP é um protocolo que não mantem estado (stateless).
• Significa que as credenciais precisam acompanhar cada requisição.
• Deve-se usar SSL para tudo que exija autenticação.
Falhas de gerenciamento de sessão
• 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,…
Fique atento aos side-doors
• Mudança de senha, lembrança de senha, questão secreta, logout, endereço.
de email, etc…
Impacto comuim
• Contas de usuários comprometidas ou sequestro de sessão.
OWASP Brasília
20. Autenticação Comprometida
1 Usuário envia suas
Knowledge Mgmt
Communication
Administration
Bus. Functions
Transactions
E-Commerce
credenciais
Accounts
Finance
www.sm.com?JSESSIONID=9FA1DB9EA...
O site usa rescrita de URL 2 Custom Code
(ex., colocando a sessão na URL)
3 O usuário clica no link http://www.hacker.com
em um forum
O atacante procura nos logs de www.hacker.com por referer
que contenha JSESSIONID 4
5 O atacante usa o JSESSIONID e
se apodera da conta da vítima
OWASP Brasília
21. A4 – Referências Inseguras
Diretas a Objetos
Como você protege o acesso aos seus dados?
• Isso é em parte imposição de “Autorização” apropriada, juntamente
com A7 – Falha em Restringir Acesso a URL.
Um erro comum …
• 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.
Impacto Típico
• Acesso não autorizado a arquivos ou dados pelos usuários.
OWASP Brasília
22. Referências Inseguras Diretas a
Objetos
• O atacante percebe
https://www.onlinebank.com/user?acct=6065 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
OWASP Brasília
23. A5 - Cross Site Request Forgery
(CSRF)
Cross Site Request Forgery
• 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.
Imagine…
• 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?
Impacto Comum
• Iniciar transações (transferir fundos, encerrar cessão, desativar conta).
• Acessar dados sensíveis.
• Alterar detalhes da conta.
OWASP Brasília
24. CSRF Ilustrado
Atacante coloca uma armadilha em um site (ou via email)
1
Aplicação com
Uma tag <img> oculta vulnerabilidade CSRF
contém um ataque a um
site vulnerável
Knowledge Mgmt
Communication
Administration
Bus. Functions
Transactions
E-Commerce
Accounts
Finance
Apesar de logar no site vulnerável, usuário
2 acessa o site do atacante
Custom Code
3
O site vulneravel recebe
A tag <img> é carregada requisições legítimas da
pelo navegador – envia vítima e realiza a ação
requisição GET (incluindo requisitada
credenciais) OWASP Brasília
ao site
vulnerável
25. 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
26. A6 – Configuração Insegura
Aplicações web dependem de uma base segura
• Tudo que esteja entre a rede a plataforma
• Não se esqueça do ambiente de desenvolvimento
Seu código fonte é secreto?
• Pense em todos os locais nos quais seu código fonte esteja
• A segurança não deve depender de um código secreto
GC deve estender a todas as partes da aplicação
• Todas as credenciais devem mudar em produção
Impacto Típico
• 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
OWASP Brasília
27. A6 – Configuração Insegura
Knowledge Mgmt
Communication
Administration
Bus. Functions
E-Commerce
Transactions
Accounts
Finance
Database
Custom Code
App Configuration
Development
Framework
App Server
QA Servers
Web Server
Hardened OS
Insider Test Servers
Source Control
OWASP Brasília
28. A7 - Falha em Restringir Acesso
a URL
Como você protege o acesso as URLs (páginas)?
• Isso é em parte imposição de “Autorização” apropriada, juntamente com
A4 - Referências Inseguras Diretas a Objetos
Um erro comum …
• 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
Impacto Típico
• 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
OWASP Brasília
29. Falha em Restringir Acesso a
URL
• O atacante percebe que
https://www.onlinebank.com/user/getAccounts 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
OWASP Brasília
30. A8 - Redirecionamentos e
Encaminhamentos Não Validados
Redirecionamento em aplicações web é muito comum
• 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.
Encaminhamentos são comuns também
• 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.
Impacto Típico
• 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.
OWASP Brasília
31. A8 - Redirecionamentos e
Encaminhamentos Não Validados
1 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
A aplicação redireciona
3 a vítima ao site do
estamos concedendo 10.000 pontos para você.
Para garantir esses pontos preencha o atacante.
formulário disponível neste link
Knowledge Mgmt
Communication
Administration
Bus. Functions
E-Commerce
Transactions
Accounts
A vítima clica no link contendo um parâmetro não
Finance
2 validado
Custom Code
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 Evil Site
4 O site malicioso instala um
http://www.irs.gov/taxrefund/claim.jsp?year=2006 malware na vítima
& … &dest=www.evilsite.com OWASP Brasília
32. A8 - Redirecionamentos e
Encaminhamentos Não Validados
1 O atacante ataca uma página vulnerável que ele tenha acesso
A requisição enviada a uma
página vulnerável que o
usuário possua acesso. O
redirecionamento envia o public void sensitiveMethod(
usuário diretamente a uma HttpServletRequest request,
HttpServletResponse response) {
página privada, subvertendo try {
// Do sensitive stuff here.
o controle de acesso. ...
}
catch ( ...
2 A aplicação autoriza a
requisição, que continua Filter
para uma página 3 O encaminhamento de página falha em
vulnerável validar o parâmetro, enviado o
atacante a uma página não autorizada,
public void doPost( HttpServletRequest request, subvertendo o controle de acesso
HttpServletResponse response) {
try {
String target = request.getParameter( "dest" ) );
...
request.getRequestDispatcher( target
).forward(request, response);
}
catch ( ...
OWASP Brasília
33. A9 – Armazenamento Criptográfico
Inseguro
Armazenamento inseguro de dados sensíveis
• 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.
Impacto Típico
• 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.
OWASP Brasília
36. A10 – Proteção Insuficiente na
Camada de Transporte
Transmissão insegura de dados sensíveis
• 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.
Impacto Típico
• 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.
OWASP Brasília
37. Proteção Insuficiente na Camada
de Transporte
Parceiros
Vítima Externa
Código Adaptado Sistemas Backend
Funcionários
1 2
Atacantes externos Atacantes internos
roubam credenciais e roubam credenciais e
dados fora da rede dados da rede interna
Atacantes Externos Atacantes Internos
OWASP Brasília
38. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
39. 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
40. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
41. 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
42. Teste de Intrusão
- Planejamento
- Descobrimento
- Ataque
- Relato
OWASP Brasília
43. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
44. 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
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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
51. 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
52. 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
53. 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
54. 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.
OWASP Brasília
55. 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
56. 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
OWASP Brasília
57. 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) .
OWASP Brasília
58. Agenda
• Palestrantes
• Objetivos
• OWASP
• OWASP Top Ten
• Guia de Testes OWASP
• Teste de Intrusão
• Estudo de Caso
• Demo
OWASP Brasília
59. 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
60. 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