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

2,190 views
2,050 views

Published on

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

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,190
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
70
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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
  2. 2. Projeto Aplicado• Apresentação • Metodologia• Problema Motivador • Proposta de Solução• Justificativa • Conclusão• Objetivos • Dúvidas• Fundamentação Teórica• Interdisciplinaridade
  3. 3. Apresentação• Integrantes: – André Andrade – Diego Marlon – Heberth Moreira – Janaína Louback – Thiago Sinésio – Tiago Carmo
  4. 4. Problema Motivador• Juntamente com o crescimento da internet surgiram: – Riscos do mundo virtual; – Invasões; – Fraudes.
  5. 5. 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.
  6. 6. 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.
  7. 7. 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.
  8. 8. Fundamentação Teórica• Segurança na Web;• Segurança da Informação;• SQL Injection;• Trabalhos Relacionados.
  9. 9. 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
  10. 10. 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.
  11. 11. Interdisciplinaridade• Criptografia e Segurança de Sistemas: – Foco do trabalho (SQL Injection); – Criptografia de senhas na proposta de solução.
  12. 12. 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.
  13. 13. 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.
  14. 14. Metodologia• Pesquisas: – Periódicos científicos; – Livros; – Sites; – Artigos técnicos.
  15. 15. 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.
  16. 16. 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
  17. 17. 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). URL de acesso a notícia Formulário de login
  18. 18. 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.
  19. 19. Proposta de Solução• Teste automatizado: Havij – Tela inicial
  20. 20. Proposta de Solução• Teste automatizado: Havij – Acessando os dados
  21. 21. Proposta de Solução• Teste manual: Tela de administração de conteúdo do sistema, onde o hacker conseguiu acesso como administrador. SQL Injection manual – Inserindo código SQL no campo de usuário para acesso privilegiado a área restrita do sistema
  22. 22. Proposta de Solução• Teste manual: Como funciona? O sistema considera a consulta SQL válida, ...e é retornado um valor do banco de dados, normalmente ignorando os parâmetros de usuário e senha o primeiro que é o administrador do sistemaObservação: no ambiente de testes com a falha, o campo de senha não é criptografado.
  23. 23. 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.
  24. 24. Proposta de Solução• Teste prático
  25. 25. 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.
  26. 26. Dúvidas

×