A injeção de SQL é uma cyberattack que aproveita a má validação de entrada em consultas SQL. Se um aplicativo usar entrada de usuário não confiável em uma consulta SQL a um banco de dados, então a entrada do usuário deliberadamente malformada poderá modificar a consulta. Os ataques de injeção de SQL podem ser usados para acessar, modificar ou excluir dados do banco de dados.
aplicativos que executam consultas SQL com base na entrada do usuário são potencialmente vulneráveis a ataques de injeção de SQL. Por exemplo, um aplicativo da web pode utilizar consultas SQL para implementar um processo de autenticação. O usuário fornece seu nome de usuário, que o aplicativo usa para procurar o hash da senha da conta desse usuário. Se o hash da senha fornecida pelo usuário corresponder a esse hash de senha, o usuário autenticará com êxito e obterá acesso à sua conta.
Se o aplicativo da web não realizar a validação do nome de usuário antes de incluí-lo em uma consulta SQL, um nome de usuário deliberadamente malformado poderá ser mal interpretado pelo programa. Por exemplo, as consultas SQL geralmente usam aspas simples (') ou aspas duplas (“) para denotar dados em um comando. Por exemplo, um comando para consultar o registro de um cliente em um banco de dados baseado no nome de usuário user pode ser SELECIONE *FROM clientes ONDE nome de usuário=”usuário”.
Um invasor que executa um ataque de injeção de SQL contra seu comando pode incluir aspas duplas em sua entrada para que alguns de seus dados sejam interpretados como código. Por exemplo, considere o nome de usuário usuário” OU “1”=”1.
Quando inserida na consulta SQL, a consulta se torna SELECIONE *FROM clientes ONDE nome de usuário=”usuário” OU “1”=”1”. Em vez de procurar registros onde o nome de usuário corresponde ao valor fornecido pelo usuário, esta consulta retornará registros que correspondam a uma das duas condições. O primeiro é o teste pretendido nome de usuário=”usuário”, que retornaria o registro do usuário.
A segunda condição é o teste “1”=”1”. Como isso é sempre verdade, retornará todos os registros do banco de dados. Isso pode permitir que o invasor extraia informações confidenciais sobre outros usuários ou potencialmente permitir que o invasor ignore a autenticação ou se autentique como outro usuário.
Os ataques SQLi podem ser usados para atingir diferentes propósitos e podem ser executados de várias maneiras. Os três principais tipos de SQLi incluem:
Os ataques SQLi aproveitam a validação de entrada deficiente ao usar dados não confiáveis para comandos SQL. Muitos ataques SQLi envolvem o uso de um caractere inesperado, como aspas simples ou duplas, na entrada do usuário.
Realizar a validação de entrada antes de incluir dados fornecidos pelo usuário em consultas SQL pode ajudar a reduzir a ameaça de ataques SQLi. Por exemplo, um aplicativo pode restringir a entrada do usuário a um determinado conjunto de caracteres, como permitir apenas nomes de usuário alfanuméricos ou bloquear a inclusão de determinados caracteres na entrada do usuário. No entanto, a validação de entrada, embora importante, não é suficiente para proteger contra ataques de injeção de SQL. Os invasores podem contornar listas de permissões ou listas de bloqueio usando combinações inesperadas de caracteres para evitar bloqueios.
Por esta razão, as empresas também devem implantar um Firewall de aplicativo da web (Web Application Firewall, WAF) (WAF) ou, idealmente, Proteção de aplicativos da Web e API (WAAP) diante de aplicativo da web e API que realizam consultas SQL. Essas soluções podem ajudar a identificar e bloquear solicitações maliciosas que tentam explorar SQLi e outros ataques contra aplicativos da web e API.
Os ataques SQLi são um dos muitos ataques que representam uma ameaça à segurança de uma organização. segurança do aplicativo (AppSec). As organizações precisam de soluções de segurança que possam proteger seus aplicativos e bancos de dados voltados para a Internet, tanto no local quanto na nuvem.
Check Point CloudGuard AppSec fornece recursos WAAP automatizados que aprendem como um aplicativo funciona e evita que solicitações ilegítimas e maliciosas cheguem a aplicativos vulneráveis. Para saber mais sobre o CloudGuard AppSec e sua capacidade de proteção contra SQLi e outros ataques, confira isto e-Book. Você também é bem-vindo inscreva-se para uma demogratuita para ver você mesmo os recursos do CloudGuard AppSec.