Estudo visando a mitigação do ataque   SQL Injection em aplicações web           CENTRO UNIVERSITÁRIO UNA / UNATEC     CUR...
Projeto Aplicado•   Apresentação            •   Metodologia•   Problema Motivador      •   Proposta de Solução•   Justific...
Apresentação• Integrantes:   – André Andrade   – Diego Marlon   – Heberth Moreira   – Janaína Louback   – Thiago Sinésio  ...
Problema Motivador• Juntamente com o crescimento da internet surgiram:   – Riscos do mundo virtual;   – Invasões;   – Frau...
Justificativa• Os riscos relacionados à internet cresceram com o avanço da tecnologia;• Não é possível erradicar todas as ...
Objetivos• Objetivo Geral:   – Desenvolver um modelo de solução que demonstre falhas de SQL     Injection, incentivando ao...
Objetivos• Objetivos Específicos:   – Desenvolver um artigo relacionado ao SQL Injection ;   – Criar um ambiente de testes...
Fundamentação Teórica•   Segurança na Web;•   Segurança da Informação;•   SQL Injection;•   Trabalhos Relacionados.
Interdisciplinaridade• Gerência de Projetos:   – Utilizamos o software   Artia como ferramenta   para o gerenciamento e   ...
Interdisciplinaridade• Engenharia de Requisitos:   – A disciplina de engenharia de requisitos visa demonstrar o levantamen...
Interdisciplinaridade• Criptografia e Segurança de Sistemas:   – Foco do trabalho (SQL Injection);   – Criptografia de sen...
Interdisciplinaridade• Direito e Ética na Computação:   – Questões éticas da cibercultura englobam o SQL Injection, no ent...
Interdisciplinaridade• Arquitetura de Sistemas:   – Na disciplina de arquitetura de sistemas concluímos que é muito     im...
Metodologia• Pesquisas:   – Periódicos científicos;   – Livros;   – Sites;   – Artigos técnicos.
Metodologia• Ferramentas:   – XAMPP 1.7.3 (Apache 2.2, MySQL 5.1, PHP 5.3, PHPMyAdmin 3.2);   – Windows Seven Professional...
Proposta de Solução• Desenvolvemos o modelo do banco de dados necessário para a  implementação do ambiente de testes. A es...
Proposta de Solução• Os testes serão feitos de forma manual pelo método POST  (formulário de login) e automatizada pelo mé...
Proposta de Solução• Teste automatizado:   – Não é necessário conhecimento sobre SQL Injection;   – A ferramenta utilizada...
Proposta de Solução• Teste automatizado:                        Havij – Tela inicial
Proposta de Solução• Teste automatizado:                        Havij – Acessando os dados
Proposta de Solução• Teste manual:                                                    Tela de administração de conteúdo do...
Proposta de Solução• Teste manual: Como funciona?     O sistema considera a consulta SQL válida,                ...e é ret...
Proposta de Solução• Boas práticas de desenvolvimento sugeridas pelo The PHP Group:   – Nunca utilizar o super-usuário (ro...
Proposta de Solução• Teste prático
Conclusão• A solução para o SQL Injection é muito simples, mas é necessário  que a equipe de desenvolvimento conheça bem c...
Dúvidas
Próximos SlideShares
Carregando em…5
×

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

2.293 visualizações

Publicada em

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

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.293
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
78
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×