domingo, 24 de fevereiro de 2013

SQL Injection. Como evitar?


SQL Injection. Como evitar?
 

Nos posts passados, falei sobre o SQL Inejction, uma técnica em que os hackers usam queries SQL para atacar web aplications (banco de dados vulneráveis na web).
Através dessas queries, os hackers descobrem qual banco de dados usado, usuários administradores do banco de dados, podem efetuar operações dentro dessas tabelas, enfim, podem fazer o que quiserem, e o pior, só vamos perceber depois que o estrago está feito. Esse estrago pode ser desde uma simples invasão até credenciais de usuários roubadas.
Apesar dessa ameaça, existem algumas maneiras de evitar esse tipo de ataque. Para isso, é necessário tomar alguns cuidados ( a maioria simples procedimentos).

São eles:
·         Estabeleça uma política de segurança rígida e criteriosa limitando o acesso dos seus usuários.
·         Faça a validação da entrada de dados no formulário:
·         Não permitir caracteres como: (') , (--) e (;) 
·         Não permitir palavras como insert , drop , delete, xp.
·         Limite a entrada de texto para o usuário no formulário de entrada de dados (usuário e senha).
·         Fazer o tratamento adequado de erros não expondo informações sobre a estrutura dos seus dados (mostrando tipo de caracteres, nomes de tabelas e usuários);
·         Faça um log para auditoria dos erros ocorridos e das operações mais importantes da aplicação.
·         Sempre valide entrada de usuário testando tipo, comprimento, formato e intervalo.
·         Nunca construa instruções SQL ou Transact-SQL diretamente da entrada do usuário.
·         Use procedimentos armazenados (stored Procedures) para validar entrada de usuário.
·         Nunca concatene entrada de usuário que não seja validada.
·         Teste o conteúdo de variáveis de cadeia de caracteres e só aceite valores esperados. Rejeite entradas que contenham dados binários, sequências de escape e caracteres de comentário. Isso pode ajudar a impedir injeção de script e proteger contra explorações de excesso de buffer.
O SQL Injection é uma das principais técnicas de invasão utilizadas na atualidade, especialmente em aplicações web. Isso se dá, pois as aplicações web estão disponíveis a uma grande quantia de usuários, externos e internos.
No próximo post, vamos falar sobre as ferramentas mais usadas nesse tipo de ataque (HAVIJ, SQL Ninja e SQL Map).
Comentários são sempre bem vindos, se for para enriquecer o tema, ainda melhor. Também vale colocar sugestões ou até mesmo criticas.
Grande abraço a todos.

Nenhum comentário:

Postar um comentário