11800430280
academy
Segurança
Privacidade
Desempenho
Português

O que é injeção de SQL e
como ela funciona?

Injeção de SQL é um tipo oculto de ataque cibernético em que o cibercriminoso insere o código dele em um site para violar as medidas de segurança e acessar dados protegidos. Uma vez instalado, ele pode controlar o banco de dados do site e sequestrar informações do usuário. Aprenda como os ataques de injeção de SQL funcionam, como combatê-los e como uma ferramenta antivírus robusta poderá te proteger contra as consequências.

AV-Lab-2022
2022
Teste de Malware Avançado
“Em Estado Selvagem”
AV-comp-top-product-2022
2022
Produto
Melhor Avaliado
avtest-award-bp-03-23
2022
Melhor
Proteção
SQL_injection-Hero
Escrito por Ivan Belcic
Publicado em Setembro 22, 2020

O que é injeção de SQL? E o que é SQL?

Antes de entrar na parte da injeção, vamos esclarecer primeiro o que é exatamente SQL. Desenvolvido no anos 1970s, SQL significa “Structured Query Language” (linguagem de consulta estruturada) e se tornou a linguagem padrão do gerenciamento de banco de dados. Se um site precisa de acesso ao banco de dados no seu servidor para encontrar ou editar informações, ele usará SQL para lidar com a “consulta” ou solicitação.

Hamburguer menu icon

Este artigo contém :

    SQL é uma linguagem ampla e flexível que oferece aos designers de banco de dados muitas possibilidades. Muitos designers criam bancos de dados com um conjunto exclusivo de regras de SQL para atender melhor às suas necessidades específicas. Você não pode simplesmente copiar e colar um SQL de banco de dados em outro, pois esses bancos de dados podem ter sido criados de duas maneiras completamente diferentes.

    Então, de onde vem a parte de injeção?

    Se um desenvolvedor web não tiver cuidado, ele poderá criar o site de maneira que uma pessoa mal intencionada pode causar efeitos indesejados no banco de dados. Assim acontecem as injeções de SQL (ou SQLI). O cibercriminoso insere ou injeta, código SQL maligno, uma forma de malware conhecida como payload, no site para enganá-lo e fornecer esse código ao banco de dados como uma consulta legítima.

    Os cibercriminosos usam ataques de injeção de SQL para entrar no banco de dados do site. Eles podem simplesmente querer causar caos ao excluir dados ou editar o banco de dados, especialmente se sites financeiros forem o alvo.

    Os ataques de injeção de SQL são possíveis apenas quando um site não tem limpeza de entrada, o processo de garantir que as entradas do usuário final não escapem pelas brechas e funciona como um código executável no lado do servidor. Isso exige mais trabalho do desenvolvedor, mas protege contra injeção de SQL, scripting entre sites e outros tipos de ataques de site.

    O que os ataques de injeção de SQL fazem?

    Os cibercriminosos usam ataques de injeção de SQL para entrar no banco de dados do site. Eles podem simplesmente querer causar caos ao excluir dados ou editar o banco de dados, especialmente se sites financeiros forem o alvo. Assim que o cibercriminoso consegue o controle do banco de dados, é fácil para ele bagunçar o saldo de conta das pessoas e desviar o dinheiro para a conta dele.

    Mas, com frequência, o cibercriminoso está em busca dos dados do usuário armazenados no site, como as credenciais de login. Ele pode usar esses dados para executar ações em nome dos usuários afetados ou compilar logins comprometidos em uma lista maior para vender a outros cibercriminosos na dark web. As pessoas que compram essas informações roubadas frequentemente fazem isso para cometer roubo de identidade e fraudes.

    Como acontece um ataque de injeção de SQL?

    Se o site não limpa as entradas corretamente, um cibercriminoso pode injetar um código SQL. Depois, o site entrega o código do cibercriminoso (o payload) ao servidor. Depois que o payload do cibercriminoso chega ao banco de dados do site no servidor, ele entra em ação e afeta o banco de dados para cumprir as metas do cibercriminoso.

    Os cibercriminosos podem usar ataques de injeção de SQL para invadir um banco de dados do site.Os cibercriminosos usam ataques de injeção de SQL para entrar no banco de dados do site.

    Veja como injetar SQL, mas não faça isso em casa!

    Icon_01Injeção de SQL pela entrada do usuário

    A injeção de SQL pela entrada do usuário é a maneira mais simples de conduzir ataques de injeção de SQL. Muitos sites coletam entradas do usuário e as passam para o servidor. Se você fez um pedido online e preencheu seu endereço, isso conta. O mesmo vale para a seção de comentários ou avaliações do usuário. Sem uma limpeza de entrada rigorosa, um formulário preenchível (ou caixa de comentário), é uma vulnerabilidade de injeção de SQL gritante.

    Em vez de preencher esses formulários com respostas e conteúdo padrão, os cibercriminosos que usam injeção de SQL tomam outro caminho: eles inserem uma cadeia de caracteres de código SQL. Quando um site com limpeza de entrada ruim envia o conteúdo do formulário ao servidor, o código do cibercriminoso é executado. Veja como a SQLI permite que cibercriminosos roubem dados do usuário ou interrompam operações do site.

    Como exemplo real, considere uma situação em que uma pessoa se candidata a emprego. O candidato se chama Bob Alice, mas em sua candidatura, ele escreve “contrate Bob Alice”. Quando o gerente de contratação lê o nome do candidato, a equipe de RH ouve “Contate Bob Alice” e assim enviam uma oferta de emprego oficial a Bob.

    Em vez de dar o nome verdadeiro, Bob enviou um payload de SQL que, quando executado no banco de dados, o gerente de contratação,  faz com que ele ganhe o emprego.

    Icon_02Injeção de SQL por modificação de cookie

    Cookies são pequenos arquivos hospedados no seu navegador que enviam informações sobre você aos sites. Às vezes, eles são úteis, como quando recuperam credenciais de login e preferências para sua conveniência. Outras vezes, são assustadores. Muitos sites usam cookies para rastrear seu comportamento na internet, além das páginas do site. Eles usam os insights obtidos do rastreamento para pesquisa de mercado e fins de publicidade. O segundo tipo de cookie é uma ferramenta de rastreamento web comum.

    Os cibercriminosos podem manipular ou “envenenar” cookies, então quando eles enviam informações de volta ao servidor dos site, eles entregam código SQL no banco de dados.

    Icon_03Injeção de SQL por variáveis do servidor

    Quando você insere um URL de site no navegador, há uma sequência rápida de comunicação que ocorre para levar você ao site. Como parte do processo, o navegador solicita uma lista de informações conhecidas como “variáveis de servidor” que ajuda a renderizar o site corretamente.

    Cibercriminosos inteligentes podem incluir um código SQL nas solicitações de navegador. Se elas não forem limpas corretamente, o código será inserido no banco de dados do site no servidor.

    Icon_05Injeção de SQL pelas ferramentas de hacking automatizadas

    Se tudo isso parece muito complicado, há uma opção mais fácil. Ferramentas de injeção de SQL automatizadas, como SQLMAP, detectarão e explorarão qualquer vulnerabilidade de injeção de SQL presente em um site e banco de dados.

    sqlmap é uma ferramenta de código aberto popular para gerentes de banco de dados e desenvolvedores de site que procuram corrigir os sites em relação à injeção de SQL. Mas não há nada que impeça que alguém use sqlmap por motivos mais malignos.

    Icon_04Ataques de SQL de segunda ordem

    A injeção de SQL de segunda ordem eleva a técnica com uma abordagem muito mais sofisticada. Como muitos sites limpam entradas diretas do usuário, os cibercriminosos injetarão SQL que é projetado para ser executado apenas em visitas subsequentes. Com contramedidas de limpeza de entrada básicas implantadas, o site alvo bloquearia um ataque de SQLI normal, conhecido também como ataque de “primeira ordem”. Mas um segundo ataque de injeção de SQL é uma bomba relógio. Veja o que acontece:

    Um cibercriminoso injetará um código no banco de dados que, por sua vez, não fará nada. Mas o código é projetado para alterar a maneira que o banco de dados funciona quando interpreta esse código como entrada de banco de dados. Então, quando o SQL de banco de dados inclui o código do cibercriminoso em suas funções, o ataque é disparado.

    Para ilustrar esse conceito, vamos usar um dos clássicos da literatura: o épico de Homero, a Odisseia. Durante a história, o herói Odisseu é capturado por um ciclope chamado Polifemo. Como parte do plano de fuga, Odisseu deixa Polifemo bêbado. Quando Polifemo pergunta seu nome, querendo agradecer pelo vinho, Odisseu responde “Eu sou ninguém”.

    Esse é o primeiro estágio de um ataque de SQL de segunda ordem: o engenhoso cibercriminoso, Odisseu, injeta o payload de SQL, que parece benigno, “foi ninguém” no banco de dados de Polifemo.

    Posteriormente, Odisseu deixa Polifemo cego. O ciclope enfurecido corre para contar aos irmãos que foi enganado e cegado por “eu sou ninguém”. Em resposta, todos riem. Em vez de ter sua vingança, Polifemo é humilhado e Odisseu consegue escapar.

    Essa é a segunda fase. O payload de SQL “Eu sou ninguém” é inofensivo sozinho, mas quando Polifemo (o banco de dados) tenta usá-lo, o ataque se revela.

    Por ser indetectável à primeira vista, a injeção de SQL de segunda ordem é uma maneira indireta e eficaz para os cibercriminosos evitarem os procedimentos básicos de limpeza de entrada.

    O impacto dos ataques de injeção de SQL

    Os ataques de injeção de SQL têm uma grande variedade de consequências. Um ataque de SQLI simples pode ter efeitos devastadores nas vítimas individuais, além das empresas atacadas.

    Efeitos da SQLI para as pessoas

    Embora a SQLI não tenha você como alvo direto, ao usar um site que foi vítima de um ataque, o impacto pode ser considerável. Ter uma conta ou enviar dados pessoais em um site atacado pode permitir que os cibercriminosos façam muito mais do que colocar as mãos nos seus dados pessoais.

    Os ataques de injeção de SQL podem ter consequências graves para as pessoas, como:

    • Prejuízo financeiro: um cibercriminoso pode usar SQLI em um banco ou outra instituição financeira para tirar dinheiro da sua conta.

    • Roubo de identidade: com controle sobre um banco de dados, os cibercriminosos podem capturar os dados e vendê-los na dark web. Eles também podem comprar esses dados e usá-los para cometer roubos de identidade.

    Você pode se proteger contra ataques potenciais de roubo de identidade com o Avast BreachGuard, que monitora seus dados na dark web e avisa se algum site que você usa foi comprometido em invasões ou outros ataques de segurança.

    Efeitos da SQLI para as empresas

    Como as empresas são os alvos diretos dos ataques de SQLI, elas enfrentam uma variedade de ataques maior. Quando um cibercriminoso entra em um banco de dados, ele pode fazer muitas coisas e, assim que as notícias são publicadas, a empresa atacada precisará trabalhar bastante com sua equipe de relações públicos no controle de danos.

    Veja algumas maneiras que os ataques de SQLI podem prejudicar as empresas:

    • Sabotagem: ao apagar um banco de dados empresarial ou vandalizar um site, um cibercriminoso pode facilmente colocar a empresa em uma espiral de caos.

    • Roubo de dados: muitos ataques de SQLI têm como objetivo roubar dados confidenciais: segredos comerciais, informações privilegiadas, propriedade intelectual protegida e, muitas vezes, informações de usuários e clientes.

    • Violações de segurança: um cibercriminoso pode conseguir usar o conteúdo de um banco de dados violado para acessar outras áreas da rede interna da empresa. Eventualmente, toda a rede poderá ser comprometida.

    • Perda de reputação: após sofrer os efeitos de um ataque de SQLI, pode ser difícil para a empresa recuperar a confiança dos clientes e do público em geral.

    Custos possíveis de ataques de SQLI

    Dado o escopo do que um cibercriminoso pode conseguir com a SQLI, os custos potenciais podem ser substanciais. Um estudo feito em 2014 descobriu que mesmo pequenos ataques de injeção de SQL podem custar aproximadamente US$ 200.000 para serem resolvidos e essas são apenas as consequências financeiras. 

    Um artigo da Ars Technica publicado nesse mesmo ano relatou que a marinha dos EUA gastou mais de meio milhão de dólares em resposta a um único ataque de injeção de SQL. E, como resultado do ataque, mais de 70 membros do serviço ficaram incapacitados de prosseguir com as solicitações de transferência por muitos meses.

    Além dos custos financeiros de lidar com um ataque, o prejuízo de longo prazo na reputação de uma empresa pode ser irreversível.

    Como posso impedir ataques de injeção de SQL?

    A menos que seja um desenvolvedor web, você não pode. A injeção de SQL não ataca você diretamente, por isso, não há maneira de detectar, reagir ou bloquear um ataque. E você não saberá se está usando um site comprometido até que os efeitos se revelem mais tarde.

    Impedir ataques de injeção de SQL é responsabilidade das pessoas que mantêm os sites que você usa. Mas, você não está totalmente impotente quando se trata de combater a SQLI. Comece agora mesmo com nossa ferramenta gratuita Avast Hack Check para ver se alguma credencial de login de site vazou. Se isso aconteceu, troque sua senha nesse site imediatamente.

    A ferramenta Avast Hack Check permite ver se alguma credencial de login do site vazou.Use o Avast Hack Check para descobrir se alguma credencial de login vazou.

    Como muitos ataques de injeção de SQL são usados para roubar dados do usuário, o Hack Check é uma maneira de reduzir o risco se seus dados se envolverem em um.

    Então, como posso evitar injeção de SQL?

    Embora não possa evitar que ataques de injeção de SQL ocorram, você pode reduzir a chance de ser afetado e mitigar os efeitos de ser envolvido em um. Torne os seguintes hábitos de navegação segura parte da sua rotina de internet:

    • não ofereça informações pessoais a sites obscuros. Em vez disso, insira dados sigilosos apenas em sites confiáveis, com fortes medidas de segurança implantadas. Mesmo que essa não seja uma garantia imbatível para evitar se envolver em uma injeção de SQL, é um começo. 

    • Acompanhe as notícias de segurança de tecnologia. As empresas anunciarão se e quando os bancos de dados foram violados por ataques de hacking. Acompanhe as notícias relacionadas aos sites que você usa, e se encontrar alguma história de SQLI, mude suas credenciais de login imediatamente.

    • Tenha bons hábitos de senha. Você pode reduzir o risco usando senhas exclusivas para cada conta. Siga as práticas recomendadas de criação de senha para ter uma vantagem contra os cibercriminosos.

    • Use um gerenciador de senha. Muitos gerenciadores de senha alertarão se um site foi comprometido. Nesse caso, você poderá alterar rapidamente sua senha difícil de descobrir por outra. Use um gerenciador que ofereça recursos para várias plataformas, para poder ter as senhas em todos os dispositivos.

    Tenha uma segurança digital abrangente com o Avast Free Antivirus

    Seu navegador não saberá se você acessou um site comprometido por injeção de SQL, mas você não precisará combater sozinho os cibercriminosos. É hora de chamar a cavalaria.

    O Avast Free Antivirus oferece segurança cibernética em tempo real em várias frentes para protegê-lo contra todos os tipos de ameaças online. Ele monitorará seu dispositivo quanto possíveis vulnerabilidades, inclusive Wi-Fi desprotegida, software desatualizado, apps suspeitos, ataques de phishing e, claro, rastros de malware.

    Melhore o nível da sua segurança digital com o antivírus em que mais de 400 milhões de usuários de todo o mundo confiam.

    Proteja seu Android contra ameaças

    com o Avast Mobile Security

    Baixar grátis

    Proteja seu iPhone contra ameaças

    com o Avast Mobile Security

    Baixar grátis
    Hacking
    Segurança
    Ivan Belcic
    22-09-2020