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

Post on 03-Aug-2015

156 views 4 download

Transcript of 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.

ILUSTRAÇÃO

Fonte: XKCD

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.

sqlmap

Fonte: sqlmap.org

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

IMAGENS

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

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.

fabio@altoscodigos.tkgithub.com/fabiobeneditto

powered by: reveal.jshttp://lab.hakim.se/reveal-js/