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
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%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.
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                   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
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 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) .
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_Pag
  e
• 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_BSB_20120827_TOP10_ISMAELROCHA

  • 1.
    OWASP Top Tene 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 emSI, CISSP, MCSO • Mais de 5 anos de experiência em SI para aplicações web e desktop • Projetos • Contribuidor OWASP
  • 4.
    OBJETIVOS • Fornecer emlinhas 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 TestesOWASP • 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
  • 10.
    TESTE DE INTRUSÃO - Planejamento - Descobrimento - Ataque - Relato
  • 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 (&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 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 permeiatodos 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
  • 27.
    REFERÊNCIAS • http://www.md5decrypter.co.uk/ • https://www.owasp.org/index.php/Main_Pag e • 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