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

25
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

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

Page 1: 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

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

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.

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

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

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

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

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

JUSTIFICATIVABoas práticas de desenvolvimento vem sendo aprimoradas

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

MAS...DEVIDO A FALTA DE EXPERIÊNCIA DO DESENVOLVEDOR

ocorrem falhas no tratamento das requisições deinformação

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

POSSIBILITANDO DESSA FORMAINJEÇÃO DE CÓDIGO

tais como:injeção de SQLde SO (Sistema Operacional) ede LDAP.

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

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.

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

ILUSTRAÇÃO

Fonte: XKCD

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

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.

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

METODOLOGIAEm um ambiente controladoUsando sqlmapForam executados testes qualitativosEm 8 web sites

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

METODOLOGIA

APÓS DIAGNÓSTICODemonstrar a facilidade em obter informações restritas

usuários administrativose outros dados.

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

sqlmap

Fonte: sqlmap.org

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

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

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

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

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

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

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

...E NÃO É SÓ!

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

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

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

RESULTADOS PARCIAIS8 websites avaliados3 apresentaram problemas

Dados recebidos por GET e POST não foramsanitizadosPermitindo execução de código arbitrário pelo backend

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

...EM OUTRAS PALAVRAS:Backend não filtrou as informações

Repassou o comando ao SGBDque retornou TODAS as informações do website

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

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.

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

?Perguntas

Comentários

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

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

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

IMAGENS

1. XKCD: Exploits of a Mom - https://www.xkcd.com/327/

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

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/