Download - Desenvolvimento seguro: Identificando possíveis vulnerabilidades de páginas web com sqlmap
DESENVOLVIMENTO SEGURO:IDENTIFICANDO POSSÍVEIS VULNERABILIDADES DE
PÁGINAS WEB COM
sqlmapFábio Júnior Beneditto - Graduando em Sistemas para Internet
Prof. Me. Daniel Dalalana Bertoglio - Orientador
Versão 0.1
TEMADe acordo com o relatório OWASP Top 10 - 2013 [1],
há uma vulnerabilidade que se mantém em primeiro lugardesde 2010:
A INJEÇÃO DE CÓDIGO EM PÁGINAS E APLICAÇÕES WEB.
OWASPOPEN WEB APPLICATION SECURITY PROJECT
O objetivo principal do OWASP Top 10 éeducar desenvolvedores, projetistas,
arquitetos, gestores e organizações sobre asconsequências das mais importantes
vulnerabilidades de segurança de aplicaçõesweb.
Fonte: OWASP
OWASP TOP 10 2013A1: Injeção de códigoA2: Quebra de autenticação e Gerenciamento de SessãoA3: Cross-Site Scripting (XSS)A4: Referência Insegura e Direta a ObjetosA5: Configuração Incorreta de SegurançaA6: Exposição de Dados SensíveisA7: Falta de Função para Controle do Nível de AcessoA8: Cross-Site Request Forgery (CSRF)A9: Utilização de Componentes Vulneráveis ConhecidosA10: Redirecionamentos e Encaminhamentos Inválidos
Fonte: OWASP
JUSTIFICATIVABoas práticas de desenvolvimento vem sendo aprimoradas
MAS...DEVIDO A FALTA DE EXPERIÊNCIA DO DESENVOLVEDOR
ocorrem falhas no tratamento das requisições deinformação
POSSIBILITANDO DESSA FORMAINJEÇÃO DE CÓDIGO
tais como:injeção de SQLde SO (Sistema Operacional) ede LDAP.
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 indesejadosou permita o acesso a dados não autorizados,
causando prejuízos.
OBJETIVOSIdentificar falhas de desenvolvimento mais comunsApresentar possíveis soluções para que sejam corrigidase, posteriormente, evitadasMelhorar o nível de conhecimento dos desenvolvedores apartir da resolução dos problemas encontrados.
METODOLOGIAEm um ambiente controladoUsando sqlmapForam executados testes qualitativosEm 8 web sites
METODOLOGIA
APÓS DIAGNÓSTICODemonstrar a facilidade em obter informações restritas
usuários administrativose outros dados.
O QUE É SQLMAP?É uma ferramenta Open Source para pentests que:
automatiza processo de detecção eexploração de falhas de SQL Injection, eexpõe os dados do DB do servidor
Fonte: [2]sqlmap.org
DENTRE SUAS MUITAS FEATURESSuporte COMPLETO a seis técnicas de SQL injection:
boolean-based blindtime-based blinderror-basedUNION query-basedstacked queriesout-of-band.
Fonte: [2]sqlmap.org
PRINCIPAL FORMA DE USOAtravés de URLs do tipo $_GET[]:
$ python sqlmap.py ‐u "http://target/vuln.php?id=1" ‐‐batch
Fonte: [2]sqlmap.org
...E NÃO É SÓ!
O QUE MAIS PODE SERFEITO:
Download e upload de qualquer arquivoExecutar comandos arbitrários e receber seus retornosatravés do Banco de Dados, quando o SGBD for MySQL,PostgreSQL ou Microsoft SQL Server
Fonte: [2]sqlmap.org
RESULTADOS PARCIAIS8 websites avaliados3 apresentaram problemas
Dados recebidos por GET e POST não foramsanitizadosPermitindo execução de código arbitrário pelo backend
...EM OUTRAS PALAVRAS:Backend não filtrou as informações
Repassou o comando ao SGBDque retornou TODAS as informações do website
CONSIDERAÇÕES FINAISA identificação e correção de vulnerabilidades de código,e a melhoria das habilidades dos desenvolvedoresfaz 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 ea credibilidade da empresa desenvolvedora.
?Perguntas
Comentários
REFERÊNCIAS
1. Relatório OWASP Top 10 2013 -
2. sqlmap -
3. sqlmap Wiki -
https://www.owasp.org/images/9/9c/OWASP_Top_10_2013_PT-BR.pdf
http://sqlmap.org
https://github.com/sqlmapproject/sqlmap/wiki
CRÉDITOS DA APRESENTAÇÃOpor Fábio Beneditto
Usuário GNU/Linux desde 1999, Desenvolvedor Web desde 2008, trabalhacom 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.
[email protected]/fabiobeneditto
powered by: reveal.jshttp://lab.hakim.se/reveal-js/