Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra

11.611 visualizações

Publicada em

O objetivo da apresentação é demonstrar metodologias e ferramentas que são utilizadas para avaliar a segurança de aplicações web através de auditorias do tipo teste de invasão. As aplicações são expostas aos principais ataques conhecidos e, a partir daí, avalia-se os resultados obtidos: invasão, exposição de informação, execuções arbitrárias, entre outros. Também serão tratadas medidas de mitigação das vulnerabilidades

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
11.611
No SlideShare
0
A partir de incorporações
0
Número de incorporações
7.843
Ações
Compartilhamentos
0
Downloads
164
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  • Aprendendo a atacar (e proteger) aplicações web através de jogos de guerra

    1. 1. Copyright © 2011 Clavis Segurança da Informação. Todos os direitos reservados. Atacando (e protegendo) aplicações web Rafael Soares Ferreira Clavis Segurança da Informação [email_address]
    2. 2. $ whoami <ul><li>Sócio Diretor Grupo Clavis
    3. 3. Pentester
    4. 4. Incident Handler
    5. 5. Hacker Ético
    6. 6. Instrutor e Palestrante </li></ul>
    7. 7. • Injeções OWASP Top 10 2010 - A1 OWASP Top 10 2007 - A2 • Cross Site Scripting (XSS) OWASP Top 10 2010 - A2 OWASP Top 10 2007 - A1 Principais Ameaças
    8. 8. • Dados não esperados • Strings interpretadas como comandos • SQL, Shell, LDAP, etc... • SQL é o caso mais comum Injeções Principais Ameaças
    9. 9. SELECT id FROM usuarios WHERE nome = '$nome' AND senha = '$senha' ; <form method=&quot;post&quot; action=&quot;http://SITE/login.php&quot;> <input name=&quot;nome&quot; type=&quot;text&quot; id=&quot;nome&quot;> <input name=&quot;senha&quot; type=&quot;password&quot; id=&quot;senha&quot;> </form> Client-Side: Server-Side: Principais Ameaças Injeções - Exemplos
    10. 10. ' OR 'a'='a SELECT id FROM usuarios WHERE nome = '$nome' AND senha = ' ' OR 'a'='a ' ; Client-Side: O Exploit! Server-Side: Principais Ameaças Injeções - Exemplos
    11. 11. Principais Ameaças Injeções - Exemplos Código PHP: $query = &quot;SELECT * FROM usuarios WHERE username = '&quot; . $_REQUEST[‘usr'] . “’ AND passwd=‘“ . $_REQUEST[‘pwd’] . “’”; Exploração: login.php?usr=’+OR+‘1’=‘1’--&pwd=a query <- SELECT * FROM usuarios WHERE username = ‘’ +OR+‘1’=‘1’--’ AND passwd=‘a’
    12. 12. Principais Ameaças Injeções - Exemplos Código Java: String query = &quot;SELECT * FROM usuarios WHERE username = '&quot; + req.getParameter(&quot;usr&quot;) + &quot;' and passwd = '&quot; + req.getParameter(&quot;pwd&quot;) +&quot;'&quot;; Exploração: login.jsp?usr=admin’--&pwd=a query <- SELECT * FROM usuarios WHERE username = ‘ admin’--’ AND passwd=‘a’
    13. 13. www.seginfo.com.br Tradução da Tirinha “Exploits of a mom” do xkcd Principais Ameaças Injeções - Exemplos
    14. 14. • Injeção de Comandos • Exemplo: DNS lookup em domínios passados pelo usuário Principais Ameaças Injeções - Exemplos
    15. 15. Código: $dominio = param(‘dominio'); $nslookup = &quot;/usr/bin/nslookup&quot;; Exploit: clavis.com.br%20%3B%20/bin/ls%20-l Principais Ameaças Injeções - Exemplos
    16. 16. Resultado: /usr/bin/nslookup clavis.com.br ; /bin/ls -l Além do resultado do nslookup, o atacante receberá a lista dos arquivos que estão no diretório da aplicação Principais Ameaças Injeções - Exemplos
    17. 17. <ul><li>Tratamento de entradas </li></ul><ul><li>Validação por whitelist </li></ul><ul><li>Minimize os privilégios </li></ul><ul><li>OWASP: </li></ul>SQL_Injection_Prevention_Cheat_Sheet Principais Ameaças Injeções - Recomendações
    18. 18. • Enviados ao browser do usuário • Posts, URLs, javascript, etc... • Todo Browser é “vulnerável”: javascript:alert(document.cookie) • Redirecionamento e/ou roubo de dados Cross-Site Scripting (XSS) Principais Ameaças
    19. 19. Principais Ameaças Cross-Site Scripting (XSS)
    20. 20. • Persistente • Não Persistente Tipos: Principais Ameaças Cross-Site Scripting (XSS)
    21. 21. • Persistente Dados enviados sem tratamento para usuários Principais Ameaças Cross-Site Scripting (XSS)
    22. 22. Principais Ameaças Cross-Site Scripting (XSS)
    23. 23. • Não Persistente Dados enviados de volta sem tratamento e executado no browser da vítima. Principais Ameaças Cross-Site Scripting (XSS)
    24. 24. Principais Ameaças Cross-Site Scripting (XSS)
    25. 25. • Código vulnerável <?php echo “Hello ” . $_GET[‘name’] . ”.n”; ?> • Requisição index.php?name=<script>alert(1)</script> Principais Ameaças Cross-Site Scripting (XSS)
    26. 26. Principais Ameaças Cross-Site Scripting (XSS) <ul><li>Validação de entrada </li></ul><ul><li>Validação de saída </li></ul><ul><li>Validação de elementos do DOM </li></ul><ul><li>OWASP </li></ul>XSS Prevention Cheat Sheet
    27. 27. Outras Ameaças <ul><li>Quebra de Autenticação / Sessão </li></ul><ul><li>Referência direta à objetos
    28. 28. Cross-Site Request Forgery (CSRF)
    29. 29. Falhas de Configuração </li></ul>
    30. 30. Outras Ameaças <ul><li>Armazenamento Inseguro </li></ul><ul><li>Falha na Restrição de Acesso à URLs
    31. 31. Canal Inseguro
    32. 32. Redirecionamentos Não-Validados </li></ul>
    33. 33. Referências <ul><li>OWASP Top 10 </li></ul>https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project <ul><li>OWASP Testing Guide </li></ul>https://www.owasp.org/index.php/Category:OWASP_Testing_Project
    34. 34. <ul><ul><li>Ambientes Controlados </li></ul></ul><ul><ul><li>Cenários Híbridos </li></ul></ul><ul><ul><li>Simuladores </li></ul></ul>Wargames O que são?
    35. 35. <ul><ul><li>Pesquisa </li></ul></ul><ul><ul><li>Treinamento </li></ul></ul><ul><ul><li>Diversão </li></ul></ul>Wargames Para que servem?
    36. 36. Wargames <ul><ul><li>Ambiente para estudo </li></ul></ul><ul><ul><li>Homologação de ambientes </li></ul></ul><ul><ul><li>Simuladores de Guerras Cibernéticas </li></ul></ul>Springfield
    37. 37. Wargames <ul><ul><li>Máquinas de várias plataformas </li></ul></ul><ul><ul><li>Topologias fictícias </li></ul></ul><ul><ul><li>Ataques simulados </li></ul></ul>Springfield - Características
    38. 38. Conclusão <ul><ul><li>Teste / descubra novas vulnerabilidades </li></ul></ul><ul><ul><li>Treine sua equipe de RI / hardening </li></ul></ul><ul><ul><li>Aprenda ataques e defesa </li></ul></ul><ul><ul><li>Divirta-se! </li></ul></ul>
    39. 39. Lembrete... <ul><ul><li>Grandes poderes trazem grandes </li></ul></ul>responsabilidades <ul><ul><li>A internet NÃO é um grande Wargame! </li></ul></ul><ul><ul><li>Use SEMPRE ambientes controlados! </li></ul></ul>
    40. 40. Dúvidas? Perguntas? Críticas? Sugestões?
    41. 41. Fim... Muito Obrigado! Rafael Soares Ferreira [email_address] @rafaelsferreira

    ×