2011 01-18.campus party 2011

1,107 views

Published on

  • Be the first to comment

  • Be the first to like this

2011 01-18.campus party 2011

  1. 1. Pentest emaplicações webNelson Uto, M.Sc.
  2. 2. Agenda Motivação. (In)segurança de software. Metodologia de testes de invasão. Reconhecimento. Mapeamento. Descoberta e exploração de vulnerabilidades.
  3. 3. Importante NUNCA procure vulnerabilidades em sistemas, quaisquer que sejam, sem a devida autorização!!!
  4. 4. Ambiente de teste
  5. 5. Motivação “any program, no matter how innocuous it seems, can harbor security holes” Cheswick e Bellovin, 1994.
  6. 6. Exemplo
  7. 7. Distribuição de vulnerabilidades Aplicações Sistema Operacional Rede Fonte: SANS
  8. 8. Vulnerabilidades mais comuns – CVE
  9. 9. Segurança de software Trindade de problemas [McGraw]: Complexidade; Conectividade; Extensibilidade. Embutir segurança quando o SW já estiver pronto? Segurança deve ser considerada em todo o ciclo de desenvolvimento de software!!
  10. 10. Vulnerabilidades por fase do SDLC Fase VulnerabilidadeEspecificação Microsoft BobArquitetura e projeto Topologia de rede Escolha de algoritmos criptográficos fracosCodificação Tratamento inadequado de errosImplantação Infraestrutura subjacente vulnerável Gerenciamento inadequado de chaves
  11. 11. OWASP Top Ten 2010 (1) A1 – Injeção A2 – Cross-site Scripting (XSS) A3 – Falhas em autenticação e gerenciamento de sessões A4 – Referência direta a objetos insegura A5 – Cross-site Request Forgery (CSRF)
  12. 12. OWASP Top Ten (2) A6 – Falhas na configuração de segurança A7 – Armazenamento criptográfico inseguro A8 – Acesso irrestrito a URLs A9 – Proteção inadequada no transporte de informações A10 – Redirecionamentos não validados
  13. 13. Teste de invasão em aplicações web O que é um teste de invasão? Tipos de teste: Caixa preta; Caixa branca; Caixa cinza.
  14. 14. Metodologia
  15. 15. Ferramentas básicas Navegadores web. Proxies de interceptação. Web spiders. Fuzzers. Varredores de portas e serviços. Varredores de vulnerabilidades.
  16. 16. ReconhecimentoInformações interessantes Informações: Nomes de funcionários e informações sobre eles. Identificadores de usuários. Tecnologias empregadas. Servidores e topologia de rede. Configurações dos componentes. Recursos disponibilizados pelos servidores.
  17. 17. ReconhecimentoLevantamento de infos em fontes públicas Redes sociais. Grupos de discussão. Anúncios de emprego. WHOIS. DNS.
  18. 18. ReconhecimentoGoogle Hacking Técnica que utiliza mecanismos de busca para identificar vulnerabilidades de software e de configuração em sistemas acessíveis pela Internet. Aplicável não somente ao Google Search. Exemplo: site:<domínio> login OR logon site:<domínio> "This file was generated by Nessus".
  19. 19. ReconhecimentoInformações sobre infraestrutura Identificação de SOs, portas e serviços. Identificação de servidores web. Métodos suportados pelo servidor web. Detecção de hosts virtuais. Descoberta de arquivos e diretórios.
  20. 20. Mapeamento Deve resultar em um mapa da aplicação. Passos: Cópia das páginas e recursos da aplicação. Identificação dos pontos de entrada de informação. Relacionamento com as informações de reconhecimento.
  21. 21. Descoberta e exploração de vulnerabilidadesValidação no lado cliente da aplicação Validações no lado cliente devem ser realizadas apenas como uma pré-filtragem. Muito fácil de serem burladas. Muito comum em sistemas Web.
  22. 22. Descoberta e exploração de vulnerabilidadesXSS (1) Um dos problemas mais populares. Permite transportar código malicioso até o navegador de outros usuários. Código é executado no contexto da aplicação vulnerável.
  23. 23. Descoberta e exploração de vulnerabilidadesXSS (2) – Exemplo
  24. 24. Descoberta e exploração de vulnerabilidadesXSS (3) – Armazenado
  25. 25. Descoberta e exploração de vulnerabilidadesXSS (4) – Cenários Sequestro de sessão. Escravização de navegador web. Varredura de redes.
  26. 26. Descoberta e exploração de vulnerabilidadesInjeção de SQL (1) Usuário injeta código SQL em campos da interface. Aplicação não trata a entrada corretamente e executa o código injetado.
  27. 27. Descoberta e exploração de vulnerabilidadesInjeção de SQL (2) Interface da Campo: Blah aplicação AplicaçãoSELECT * FROM TABELA WHERE COLUNA = ´Blah´
  28. 28. Descoberta e exploração de vulnerabilidadesInjeção de SQL (3) Interface da Campo: ´ or 1 = 1;-- aplicação AplicaçãoSELECT * FROM TABELA WHERE COLUNA = ´´ or 1 = 1;--’
  29. 29. Descoberta e exploração de vulnerabilidadesFalhas no ger. de sessões e autenticação São falhas comuns em aplicações web. Permitem acesso ilegítimo.
  30. 30. Nelson Uto, nelson_uto (at) yahoo.com.br Dúvidas?

×