Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

28
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]

description

Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações. A Clavis Segurança da Informação tem o prazer de informar que, através do Grupo de Pesquisa em Computação Aplicada, fechou parceria com o CEFET-RJ para ministrar uma palestra aberta e gratuita sobre o tema “Teste de Invasão em Aplicações – principais técnicas, exploração e formas de prevenção” no dia 25/04, as 20:30, no Auditório 3 do CEFET, no endereço Rua General Canabarro, 485 – Maracanã, na cidade do Rio de Janeiro – RJ.A palestra será ministrada pelo Diretor Técnico da Clavis, Rafael Soares Ferreira, e terá como objetivo demonstrar algumas das mais críticas ameaças a aplicações web. Serão demonstradas maneiras de identificar, explorar e mitigar cada uma das ameaças.A Clavis Segurança da Informação tem o prazer de informar que, através do Grupo de Pesquisa em Computação Aplicada, fechou parceria com o CEFET-RJ para ministrar uma palestra aberta e gratuita sobre o tema “Teste de Invasão em Aplicações – principais técnicas, exploração e formas de prevenção” no dia 25/04, as 20:30, no Auditório 3 do CEFET, no endereço Rua General Canabarro, 485 – Maracanã, na cidade do Rio de Janeiro – RJ.A palestra será ministrada pelo Diretor Técnico da Clavis, Rafael Soares Ferreira, e terá como objetivo demonstrar algumas das mais críticas ameaças a aplicações web. Serão demonstradas maneiras de identificar, explorar e mitigar cada uma das ameaças.

Transcript of Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

Page 1: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

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

$ 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

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

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

Principais Ameaças

Injeções

Page 6: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

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

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

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

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

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

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

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

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

Principais Ameaças

XSS – Cross Site Scripting

Page 15: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

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

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

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

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

Exemplo

<script>alert('xss')</script>

Page 20: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

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

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

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

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

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

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

Dúvidas?

Perguntas? Críticas?

Sugestões?

Page 27: Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações

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

Muito Obrigado!

[email protected]

Rafael Soares Ferreira Clavis Segurança da Informação

@rafaelsferreira