Injeção SQL
Segurança da Informação – 9º período – Engenharia da Computação
Alunos: Adriano Jorge Farias, Leonardo Bernardo e Paulo Estevão.
Resumo Injeção de SQL
Injeção de SQL (SQL Inject) é um ataque virtual onde um código mal-intencionado é inserido em cadeias de caracteres que são passados para uma instância do SQL para análise e execução.
Um ataque SQL pode resultar em perca e roubo de informações, dependendo dos dados pode ser um grande prejuízo ou problema.
Existem 5 tipos de SQL Inject, são eles:
1) Poorley Filtered Strings
São strings mal-filtradas, onde o usuário faz entrada ao sistema e não é filtrado. Por falta desse filtro um código mal-intencionado pode ser inserido e transmitir uma instrução SQL.
2) Incorrect type handling
Ocorre quando uma entrada não é verificada quanto ao tipo, sendo possível inserir um código SQL em campos numéricos, textos, etc.
3) Signature Evasion
Os sistemas de prevenção de intrusos podem ser facilmente explorados usando o próprio encode da URL, sendo mascarado, assim o sistema de detecção não pode registrar este ataque, deixando passar esta assinatura.
4) Filter Bypassing
Devido a codificação de caracteres GBK (caracteres usado na China) muitas vezes é possível passar um código malicioso a um servidor que utiliza esse tipo de codificação.
5) Blind SQl Inject
A maioria dos ambientes SQL seguros não permitem que você veja a saída em forma de mensagens de erros, sendo assim vulnerável a uma injeçãoo de SQL, de forma escondida para o atacante.
Para prevenir de ataques SQL Inject deve-se usar API seguras e parametrizadas para acesso a bancos de dados, analisar detalhadamente todas as entradas de dados efetuadas pelos usuários, a fim de se retirar os caracteres especiais, usando um analisador de sintaxe específico, usar “White list“ de validação de entrada, com a forma canônica apropriada, removendo quaisquer caracteres espúrios.