introdução à sql injection

16
SQL Injection Breno Grillo

Upload: ledsifes

Post on 20-Jul-2015

96 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Introdução à SQL Injection

SQL Injection

Breno Grillo

Page 2: Introdução à SQL Injection

Características

➔ Nº 1 - OWASP Top Ten (2013)

➔ Fácil aprendizado

➔ Exploração simples

➔ Comumente encontrada

➔ Nível de detecção médio

➔ Impacto tecnológico severo

➔ Alto impacto nos negócios

Page 3: Introdução à SQL Injection

OWASP

➔ Comunidade livre e aberta

➔ Não possui fins comerciais

➔ Extensa comunidade

➔ Grande quantidade de conteúdo

➔ Fontes de informação confiáveis

Page 4: Introdução à SQL Injection

OWASP - Top 10

➔ Relatório atualizado

➔ Dados detalhados

➔ Detalhes das mudanças de cenário

➔ Altamente explicativo

➔ Propõe soluções

https://www.owasp.org/

Page 5: Introdução à SQL Injection

Cenário

➔ Não validação de inputs

➔ Estrutura simples de banco

➔ Não utilização de frameworks

➔ Acesso direto ao banco de dados

Page 6: Introdução à SQL Injection

Como acontece?

➔ Levantamento de dados

➔ Inferência sobre modelo

➔ Testes de inputs

➔ Execução de código injetado

➔ Colheita de resultados

Page 7: Introdução à SQL Injection

Exemplo

➔ Sistema vulnerável:

◆ psscrum.herokuapp.com

➔ Código do sistema:

◆ https://github.

com/bsampaio/PHP-

ProjetoScrum

Page 8: Introdução à SQL Injection

Como mitigar?

➔ Validação de inputs

◆ Front-end

◆ Back-end

➔ Utilização de frameworks

➔ Tratamento de erros e mensagens

➔ Implementação de Log

Page 9: Introdução à SQL Injection

Como mitigar?

➔ Validação de inputs - Front-end

◆ Javascripts com Regex

◆ Campos tipados

Page 10: Introdução à SQL Injection

Como mitigar?

➔ Validação de inputs: Back-end

◆ Regex

◆ Prepared Statements

◆ Aspas simples

Page 11: Introdução à SQL Injection

Como mitigar?

➔ Frameworks seguros

◆ Java: Spring

◆ PHP: CakePHP, Zend

◆ Python: Django (QuerySets)

Page 12: Introdução à SQL Injection

Exemplo

➔ Sistema com vunerabilidades

mitigadas:

◆ scruuum.herokuapp.com

➔ Código do sistema:

◆ https://github.

com/bsampaio/CakePHP-

PSScrum

Page 13: Introdução à SQL Injection

Lição

➔ Não seja ingênuo

➔ SEMPRE busque informação

➔ Pense fora da caixa

➔ Tente estar um passo à frente

➔ Teste seu software

Page 14: Introdução à SQL Injection

Derrota…?

Eu acho que o lado negro da força não ficou feliz com o seu conhecimento…Mas saiba que essa foi só uma de muitas batalhas.O OWASP ainda tem mais 9 ameaças classificadas como mais comuns.

Se informe: www.owasp.org

Page 15: Introdução à SQL Injection

Cuidados Reais!

http://xkcd.com/327/

Page 16: Introdução à SQL Injection

Referências

➔ https://www.owasp.org/➔ https://www.owasp.

org/images/9/9c/OWASP_Top_10_2013_PT-BR.pdf

➔ http://www.w3schools.com/sql/sql_injection.asp

➔ http://www.acunetix.com/websitesecurity/sql-injection/