Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvimento seguro: Identificando possíveis vulnerabilidades de páginas web com sqlmap

673 views

Published on

Slides da apresentação feita durante a InovaMundi 2014, na Universidade Feevale.
http://www.feevale.br/inovamundi

Published in: Software
  • Be the first to comment

  • Be the first to like this

Desenvolvimento seguro: Identificando possíveis vulnerabilidades de páginas web com sqlmap

  1. 1. DESENVOLVIMENTO SEGURO: IDENTIFICANDO POSSÍVEIS VULNERABILIDADES DE PÁGINAS WEB COM sqlmap Fábio Júnior Beneditto - Graduando em Sistemas para Internet Prof. Me. Daniel Dalalana Bertoglio - Orientador Versão 0.1
  2. 2. TEMA De acordo com o relatório OWASP Top 10 - 2013 [1], há uma vulnerabilidade que se mantém em primeiro lugar desde 2010: A INJEÇÃO DE CÓDIGO EM PÁGINAS E APLICAÇÕES WEB.
  3. 3. OWASP OPEN WEB APPLICATION SECURITY PROJECT O objetivo principal do OWASP Top 10 é educar desenvolvedores, projetistas, arquitetos, gestores e organizações sobre as consequências das mais importantes vulnerabilidades de segurança de aplicações web. Fonte: OWASP
  4. 4. OWASP TOP 10 2013 A1: Injeção de código A2: Quebra de autenticação e Gerenciamento de Sessão A3: Cross-Site Scripting (XSS) A4: Referência Insegura e Direta a Objetos A5: Configuração Incorreta de Segurança A6: Exposição de Dados Sensíveis A7: Falta de Função para Controle do Nível de Acesso A8: Cross-Site Request Forgery (CSRF) A9: Utilização de Componentes Vulneráveis Conhecidos A10: Redirecionamentos e Encaminhamentos Inválidos Fonte: OWASP
  5. 5. JUSTIFICATIVA Boas práticas de desenvolvimento vem sendo aprimoradas
  6. 6. MAS... DEVIDO A FALTA DE EXPERIÊNCIA DO DESENVOLVEDOR ocorrem falhas no tratamento das requisições de informação
  7. 7. POSSIBILITANDO DESSA FORMA INJEÇÃO DE CÓDIGO tais como: injeção de SQL de SO (Sistema Operacional) e de LDAP.
  8. 8. E, COMO OCORRE? Dados não confiáveis são enviados para um interpretador como parte de um comando ou consulta. Esses dados manipulados podem iludir o mesmo para que este execute comandos indesejados ou permita o acesso a dados não autorizados, causando prejuízos.
  9. 9. ILUSTRAÇÃO Fonte: XKCD
  10. 10. OBJETIVOS Identificar falhas de desenvolvimento mais comuns Apresentar possíveis soluções para que sejam corrigidas e, posteriormente, evitadas Melhorar o nível de conhecimento dos desenvolvedores a partir da resolução dos problemas encontrados.
  11. 11. METODOLOGIA Em um ambiente controlado Usando sqlmap Foram executados testes qualitativos Em 8 web sites
  12. 12. METODOLOGIA APÓS DIAGNÓSTICO Demonstrar a facilidade em obter informações restritas usuários administrativos e outros dados.
  13. 13. sqlmap Fonte: sqlmap.org
  14. 14. O QUE É SQLMAP? É uma ferramenta Open Source para pentests que: automatiza processo de detecção e exploração de falhas de SQL Injection, e expõe os dados do DB do servidor Fonte: sqlmap.org [2]
  15. 15. DENTRE SUAS MUITAS FEATURES Suporte COMPLETO a seis técnicas de SQL injection: boolean-based blind time-based blind error-based UNION query-based stacked queries out-of-band. Fonte: sqlmap.org [2]
  16. 16. PRINCIPAL FORMA DE USO Através de URLs do tipo $_GET[]: $ python sqlmap.py ‐u "http://target/vuln.php?id=1" ‐‐batch Fonte: sqlmap.org [2]
  17. 17. ...E NÃO É SÓ!
  18. 18. O QUE MAIS PODE SER FEITO: Download e upload de qualquer arquivo Executar comandos arbitrários e receber seus retornos através do Banco de Dados, quando o SGBD for MySQL, PostgreSQL ou Microsoft SQL Server Fonte: sqlmap.org [2]
  19. 19. RESULTADOS PARCIAIS 8 websites avaliados 3 apresentaram problemas Dados recebidos por GET e POST não foram sanitizados Permitindo execução de código arbitrário pelo backend
  20. 20. ...EM OUTRAS PALAVRAS: Backend não filtrou as informações Repassou o comando ao SGBD que retornou TODAS as informações do website
  21. 21. CONSIDERAÇÕES FINAIS A identificação e correção de vulnerabilidades de código, e a melhoria das habilidades dos desenvolvedores faz com que seja produzido melhor e mais seguro código, antes de sua publicação na internet. Dessa forma, aumentamos: a segurança das informações e a credibilidade da empresa desenvolvedora.
  22. 22. ?Perguntas Comentários
  23. 23. REFERÊNCIAS 1. Relatório OWASP Top 10 2013 - https://www.owasp.org/images/9/9c/OWASP_Top_10_2013_PT-BR.pdf 2. sqlmap - 3. sqlmap Wiki - http://sqlmap.org https://github.com/sqlmapproject/sqlmap/wiki
  24. 24. IMAGENS 1. XKCD: Exploits of a Mom - https://www.xkcd.com/327/
  25. 25. CRÉDITOS DA APRESENTAÇÃO por Fábio Beneditto Usuário GNU/Linux desde 1999, Desenvolvedor Web desde 2008, trabalha com as linguagens de programação PHP e Javascript e atualmente se dedica ao estudo de Segurança da Informação. Cursa Sistemas para Internet na Universidade Feevale. fabio@altoscodigos.tk github.com/fabiobeneditto powered by: reveal.js http://lab.hakim.se/reveal-js/

×