![Page 1: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/1.jpg)
Teste de Invasão em Aplicações Web Principais Técnicas de Exploração e Formas de Prevenção
Rafael Soares Ferreira Clavis Segurança da Informação [email protected]
![Page 2: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/2.jpg)
$ whoami
• Grupo Clavis
• Sócio Diretor Técnico
• Detecção e resposta a incidentes de segurança
• Testes de invasão em redes, sistemas e aplicações.
![Page 3: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/3.jpg)
Contatos
[email protected] rafaelsoaresferreira @rafaelsferreira www.facebook.com/rafaelsoaresferreira
![Page 4: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/4.jpg)
Principais Ameaças
• 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
![Page 5: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/5.jpg)
Principais Ameaças
Injeções
![Page 6: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/6.jpg)
Descrição
• Ocorre quando a aplicação envia dados não tratados para algum serviço interno.
• Pode ser feita via SQL, LDAP, Xpath, comandos de sistema operacional, argumentos de programas, etc.
• Descoberta por varreduras e/ou fuzzers
• Mais facilmente por verificação de código.
![Page 7: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/7.jpg)
Exemplo
SQLi: • Aplicação: OcoMon
• Versão: 2.0-RC6
• Bypass de autenticação via SQLi
• Validação de entradas feita client-side
![Page 8: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/8.jpg)
Exemplo
• Página inicial filtrando caracteres especiais através de javascript.
![Page 9: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/9.jpg)
Exemplo
• É possível editar a função de validação, ou impedi-la de ser executada no navegador.
![Page 10: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/10.jpg)
Exemplo
• Sem a função de validação é possível submeter a string admin ‘ or ‘ -- que possibilita acesso ao sistema.
![Page 11: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/11.jpg)
Impactos
• Dependendo do tipo de injeção os danos causados podem ser: ü Perda ou corrupção de dados ü Negação de Serviço ü Falhas de autenticação ü Execução arbitrária de código e até
comprometimento total do sistema.
![Page 12: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/12.jpg)
Como se Prevenir
• Não utilizar dados não confiáveis em comandos e/ou queries.
• Rotinas de validação ou “escape” de caracteres.
• É aconselhável o uso de validação positiva nas entradas.
• Utilizar canonicalização de dados.
![Page 13: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/13.jpg)
Referências
• Ferramenta para detecção e exploração de SQLi http://sqlmap.sourceforge.net/ • Enterprise Security API – Input Validation http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/overview-summary.html • (OWASP) Reviewing Code for SQL Injection https://www.owasp.org/index.php/Reviewing_Code_for_SQL_Injection
![Page 14: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/14.jpg)
Principais Ameaças
XSS – Cross Site Scripting
![Page 15: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/15.jpg)
Descrição
• Ocorre quando uma aplicação inclui dados não tratados em um objeto enviado ao navegador.
• A detecção pode ser feita via teste de injeção ou
análise de código. • Existem 3 principais tipos:
ü Stored ü Reflected ü DOM based XSS
![Page 16: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/16.jpg)
Descrição
Stored: • Código injetado é armazenado permanentemente
na aplicação vulnerável (comentários, posts, logs, etc)
• A vítima recebe o código malicioso junto com alguma requisição feita.
![Page 17: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/17.jpg)
Exemplo
Stored: • Aplicação: dotProject
• Versão: 2.1.5
• Múltiplas Vulnerabilidades de XSS e SQLi
![Page 18: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/18.jpg)
Exemplo
• Na submissão de arquivos é possível inserir um código malicioso no campo descrição.
![Page 19: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/19.jpg)
Exemplo
<script>alert('xss')</script>
![Page 20: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/20.jpg)
Exemplo
• O código então será submetido a todos que visualizarem a descrição de tal arquivo.
![Page 21: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/21.jpg)
Impactos
• Atacante pode executar scripts no navegador da vítima para: ü Roubo de informações de sessão ü Pichação de Sites ü Inserção de conteúdo malicioso ü Redirecionamento de usuários e etc.
• Além da exposição de informações dos usuários,
tal falha pode denegrir a imagem da instituição responsável pela aplicação.
![Page 22: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/22.jpg)
Como se Prevenir
• “Escapar” caracteres vindo de fontes não confiáveis e que serão utilizados no contexto do navegador (body, atributos, JavaScript, CSS, URL).
• A validação positiva é sempre interessante mas é
preciso atentar para peculiaridades da aplicação em questão pois caracteres especiais e codificações diversas podem fazer parte da rotina da aplicação.
![Page 23: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/23.jpg)
Referências
• Definição do CWE sobre Cross-Site Scripting http://cwe.mitre.org/data/definitions/79.html • RSnake's XSS Attack Cheat Sheet http://ha.ckers.org/xss.html • (OWASP) Reviewing Code for Cross-site scripting https://www.owasp.org/index.php/Reviewing_Code_for_Cross-site_scripting
![Page 24: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/24.jpg)
Outras Ameaças
• Quebra de Autenticação / Sessão
• Referência direta à objetos
• Cross-Site Request Forgery (CSRF)
• Falhas de Configuração
• Armazenamento / Canal Inseguro
![Page 25: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/25.jpg)
Referências
• OWASP Top 10 https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project • OWASP Testing Guide https://www.owasp.org/index.php/Category:OWASP_Testing_Project • OWASP Code Review Guide https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project
![Page 26: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/26.jpg)
Dúvidas?
Perguntas? Críticas?
Sugestões?
![Page 27: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/27.jpg)
Siga a Clavis
http://clav.is/slideshare http://clav.is/twitter http://clav.is/facebook
![Page 28: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações](https://reader036.vdocuments.pub/reader036/viewer/2022062419/557606cfd8b42a0d5e8b4597/html5/thumbnails/28.jpg)
Muito Obrigado!
Rafael Soares Ferreira Clavis Segurança da Informação
@rafaelsferreira