26
Estudo visando a mitigação do ataque SQL Injection em aplicações web CENTRO UNIVERSITÁRIO UNA / UNATEC CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 4º PERÍODO NOITE

Estudo visando a mitigação do ataque sql injection em aplicações web

Embed Size (px)

DESCRIPTION

Projeto Aplicado - UNATEC - 2011Estudo visando a mitigação do ataque sql injection em aplicações web PHP / MySQL

Citation preview

Page 1: Estudo visando a mitigação do ataque sql injection em aplicações web

Estudo visando a mitigação do ataque SQL Injection em aplicações web

CENTRO UNIVERSITÁRIO UNA / UNATEC

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

4º PERÍODO NOITE

Page 2: Estudo visando a mitigação do ataque sql injection em aplicações web

Projeto Aplicado

• Apresentação

• Problema Motivador

• Justificativa

• Objetivos

• Fundamentação Teórica

• Interdisciplinaridade

• Metodologia

• Proposta de Solução

• Conclusão

• Dúvidas

Page 3: Estudo visando a mitigação do ataque sql injection em aplicações web

Apresentação

• Integrantes:

– André Andrade

– Diego Marlon

– Heberth Moreira

– Janaína Louback

– Thiago Sinésio

– Tiago Carmo

Page 4: Estudo visando a mitigação do ataque sql injection em aplicações web

Problema Motivador

• Juntamente com o crescimento da internet surgiram:

– Riscos do mundo virtual;

– Invasões;

– Fraudes.

Page 5: Estudo visando a mitigação do ataque sql injection em aplicações web

Justificativa

• Os riscos relacionados à internet cresceram com o avanço da tecnologia;

• Não é possível erradicar todas as vulnerabilidades relacionadas à Tecnologia da Informação, no entanto, é necessário torná-las gerenciáveis visando reduzir o impacto que podem causar;

• Dentre as diversas falhas existentes, estima-se que 60% dos sistemas que são fortemente ligados a um banco de dados são vulneráveis a ataques de injeção de código, como por exemplo, o SQL Injection.

Page 6: Estudo visando a mitigação do ataque sql injection em aplicações web

Objetivos

• Objetivo Geral:

– Desenvolver um modelo de solução que demonstre falhas de SQL

Injection, incentivando aos desenvolvedores o uso de boas práticas bem como a propagação do conhecimento necessário para colaborar com o aumento da segurança da informação e da segurança na internet.

Page 7: Estudo visando a mitigação do ataque sql injection em aplicações web

Objetivos

• Objetivos Específicos:

– Desenvolver um artigo relacionado ao SQL Injection ;

– Criar um ambiente de testes que identifique as principais falhas de SQL Injection em sites e sistemas para web e apresentar suas soluções;

– Aplicar os conhecimentos adquiridos durante o curso.

Page 8: Estudo visando a mitigação do ataque sql injection em aplicações web

Fundamentação Teórica

• Segurança na Web;

• Segurança da Informação;

• SQL Injection;

• Trabalhos Relacionados.

Page 9: Estudo visando a mitigação do ataque sql injection em aplicações web

Interdisciplinaridade

• Gerência de Projetos:

– Utilizamos o software

Artia como ferramenta

para o gerenciamento e distribuição de atividades.

Página de atividades do Artia

Page 10: Estudo visando a mitigação do ataque sql injection em aplicações web

Interdisciplinaridade

• Engenharia de Requisitos:

– A disciplina de engenharia de requisitos visa demonstrar o levantamento

dos requisitos funcionais e não funcionais de um software;

– Como nosso trabalho não tem por objetivo o desenvolvimento de um software, levantamos como requisito apenas o objetivo geral do trabalho, que é demonstrar as melhores práticas para a mitigação de ataques de SQL Injection.

Page 11: Estudo visando a mitigação do ataque sql injection em aplicações web

Interdisciplinaridade

• Criptografia e Segurança de Sistemas:

– Foco do trabalho (SQL Injection);

– Criptografia de senhas na proposta de solução.

Page 12: Estudo visando a mitigação do ataque sql injection em aplicações web

Interdisciplinaridade

• Direito e Ética na Computação:

– Questões éticas da cibercultura englobam o SQL Injection, no entanto no

Brasil, não existe leis que regulamentam os crimes eletrônicos.

Page 13: Estudo visando a mitigação do ataque sql injection em aplicações web

Interdisciplinaridade

• Arquitetura de Sistemas:

– Na disciplina de arquitetura de sistemas concluímos que é muito

importante que os softwares tenham uma boa proteção contra o SQL Injection. Devido a segurança da informação que deve ser feita, uma vez que explorando a falha, podemos obter todas informações da base de dados, incluindo acesso a alteração e exclusão dos dados;

– Essa proteção abrange os quatro pilares da segurança: confiabilidade, integridade, disponibilidade e autenticidade.

Page 14: Estudo visando a mitigação do ataque sql injection em aplicações web

Metodologia

• Pesquisas:

– Periódicos científicos;

– Livros;

– Sites;

– Artigos técnicos.

Page 15: Estudo visando a mitigação do ataque sql injection em aplicações web

Metodologia

• Ferramentas:

– XAMPP 1.7.3 (Apache 2.2, MySQL 5.1, PHP 5.3, PHPMyAdmin 3.2);

– Windows Seven Professional, versão 6.1 (compilação 7600);

– MySQL Workbench 5.2 CE;

– PHP, HTML, CSS e JavaScript;

– Havij 1.15 free (ITSecTeam Security Research);

– Artia.

Page 16: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Desenvolvemos o modelo do banco de dados necessário para a implementação do ambiente de testes. A estrutura conta com uma tabela de usuários e uma de notícias;

• Este ambiente tem falhas propositais para os testes.

Modelo gerado com o MySQL Workbench 5.2 CE

Page 17: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Os testes serão feitos de forma manual pelo método POST (formulário de login) e automatizada pelo método GET (URL de acesso a notícia).

Formulário de login

URL de acesso a notícia

Page 18: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste automatizado:

– Não é necessário conhecimento sobre SQL Injection;

– A ferramenta utilizada foi o software Havij 1.15 Free;

– Acesso completo e rápido à base de dados.

Page 19: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste automatizado:

Havij – Tela inicial

Page 20: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste automatizado:

Havij – Acessando os dados

Page 21: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste manual:

SQL Injection manual – Inserindo código SQL no campo de usuário para acesso privilegiado

a área restrita do sistema

Tela de administração de conteúdo do sistema, onde o hacker conseguiu acesso como

administrador.

Page 22: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste manual: Como funciona?

O sistema considera a consulta SQL válida, ignorando os parâmetros de usuário e senha

...e é retornado um valor do banco de dados, normalmente o primeiro que é o administrador do sistema

Observação: no ambiente de testes com a falha, o campo de senha não é criptografado.

Page 23: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Boas práticas de desenvolvimento sugeridas pelo The PHP Group:

– Nunca utilizar o super-usuário (root);

– Tratamento de tipos de variáveis;

– Tratamento das entradas do sistema (utilizando métodos de escape);

– Tratamento de mensagens de erro.

Page 24: Estudo visando a mitigação do ataque sql injection em aplicações web

Proposta de Solução

• Teste prático

Page 25: Estudo visando a mitigação do ataque sql injection em aplicações web

Conclusão

• A solução para o SQL Injection é muito simples, mas é necessário que a equipe de desenvolvimento conheça bem como ele funciona e as possibilidades que a linguagem de desenvolvimento fornece para evitar esse tipo de ataque.

Page 26: Estudo visando a mitigação do ataque sql injection em aplicações web

Dúvidas