Os invasores cibernéticos estão sempre atentos a qualquer vulnerabilidade em potencial que possa ser explorada por várias táticas e técnicas, como phishing, ataque de força bruta, injeção de malware, engenharia social, hacking na Web e muito mais para cumprir suas intenções maliciosas e paralisar organizações e empresas.

Neste blog, vamos esclarecer duas das técnicas de hacking da Web mais comuns e populares entre os hackers: ataque de injeção de SQL e script entre sites (XSS).

O ataque de injeção SQL 

A injeção de SQL é um método de ataque comum e predominante que visa os bancos de dados das vítimas por meio de aplicativos da web. Ele permite que ciberataques acessem, modifiquem ou excluam dados e, assim, manipulem os bancos de dados da organização. Para qualquer organização, os dados são um dos ativos mais críticos e valiosos, e um ataque em seu banco de dados pode causar estragos em todo o negócio.

Os dados podem incluir registros de clientes, informações privilegiadas ou pessoais, dados críticos para os negócios, dados confidenciais ou registros financeiros de uma organização.

De acordo com a MITRE ATT&CK, os invasores cibernéticos geralmente exploram aplicativos voltados para o público para obter uma posição inicial na rede de uma organização. Esses aplicativos geralmente são sites, mas também podem incluir bancos de dados como SQL.

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

Um ataque de injeção SQL é realizado através das seguintes etapas:

1. Um invasor pesquisa o banco de dados de destino.

2. O invasor identifica vulnerabilidades na página da Web ou aplicativo para explorar. Um exemplo de vulnerabilidade do SQL é a validação insuficiente da entrada do usuário. O invasor pode criar e enviar seu próprio conteúdo de entrada explorando essa vulnerabilidade.

3. Além disso, eles criam entradas SQL maliciosas e as injetam nas consultas SQL padrão.

4. Isso permite que o invasor execute ações nefastas e maliciosas no aplicativo da Web e explore o banco de dados. Eles então podem extrair informações confidenciais, contornar controles de segurança, modificar registros ou excluir todo o banco de dados.

Script entre sites 

O ataque de script entre sites (XSS), ou cross-site scripting, é uma técnica de ataque popular usada por hackers para atingir aplicativos da web. Aqui, os invasores injetam scripts maliciosos do lado do cliente nos navegadores ou páginas da Web de um usuário, permitindo que baixem malware no sistema do usuário alvo, personifiquem o alvo e executem exfiltração de dados, sequestro de sessão, alterações nas configurações do usuário e muito mais.

De acordo com a MITRE ATT&CK, cross-site scripting é um exemplo de técnica de comprometimento drive-by usada por adversários para obter acesso inicial dentro da rede. A técnica visa explorar as vulnerabilidades do site por meio de scripts ou códigos maliciosos do lado do cliente. Isso fornece a eles acesso a sistemas na rede interna e também permite que eles usem sites comprometidos para direcionar as vítimas a aplicativos maliciosos destinados a roubar e adquirir tokens de acesso a aplicativos (usados para fazer solicitações de API autorizadas e legítimas em nome de usuários/serviços para acessar recursos em aplicativos de nuvem ou SaaS).

Como funciona um ataque XSS? 

Um ataque XSS é realizado através das seguintes etapas:

1. O invasor explora as vulnerabilidades de um site, como usar seu formulário para injetar um script malicioso no banco de dados do site.

2. O script malicioso é salvo no banco de dados do site vulnerável.

3. O usuário vítima solicita uma página da Web do site.

4. O banco de dados do site inclui o script malicioso em resposta à página solicitada e o envia ao usuário vítima.

5. O script malicioso é ativado sempre que o usuário vítima executa qualquer ação na página da Web ou visita o site comprometido.

6. O script malicioso envia os dados privados da vítima (como cookies de sessão) para o servidor do invasor.

Tipos de ataque XSS 

XSS é amplamente categorizado em três tipos, que são:

  • XSS refletido: o usuário vítima (cliente) envia, sem saber, um script malicioso (carga útil) como parte da solicitação regular ao aplicativo ou site da Web vulnerável (servidor). Como resposta, o aplicativo retornará o script malicioso para o usuário vítima, que ao carregar executará o script malicioso. Como o script malicioso é refletido do servidor para o cliente, ele é chamado de XSS refletido.

  • XSS armazenado: o invasor armazena a carga nos servidores comprometidos, que é entregue quando o usuário visita o site. Como o script malicioso é armazenado no aplicativo da Web, ele é chamado de XSS armazenado.
  • XSS baseado em DOM: o invasor explora a vulnerabilidade desses aplicativos usando um Document Object Model (DOM) — uma interface da web de programação para páginas da web.

O invasor injeta o script malicioso no DOM por meio de uma URL, por exemplo, e quando o usuário executa qualquer ação nessa página ou visita a página por meio dessa URL, o aplicativo atualiza o DOM para executar o script malicioso.

Diferenças entre injeção SQL e ataque XSS 

Embora a injeção de SQL e o ataque XSS sejam técnicas comuns de hacking na Web, existem algumas diferenças importantes entre os dois.

 

Ataque de injeção de SQL

Ataque de script entre sites

Definição do ataque

Uma técnica de ataque em que os invasores visam aplicativos orientados a dados e comprometem bancos de dados de usuários/organizações executando determinadas ações.

Uma técnica de ataque em que os invasores executam códigos maliciosos nos navegadores dos usuários vítimas que eles podem controlar.

Ponto de entrada

O acesso inicial no ataque SQL é obtido por meio da técnica de compromisso drive-by.

O acesso inicial no ataque XSS é obtido através da exploração da técnica de aplicação voltada para o público.

Técnica de ataque

O invasor injeta consultas SQL maliciosas no campo de entrada do formulário da web.

O invasor injeta scripts maliciosos do lado do cliente em páginas/sites da web.

 

Impacto

Após a execução bem-sucedida, o invasor pode adicionar, excluir ou modificar o banco de dados existente e ignorar os controles de segurança.

Após a execução bem-sucedida, o invasor pode realizar sequestro de sessão, roubo de credenciais, exfiltração de dados, personificar o usuário vítima, sequestro de conta, etc.

Linguagem de ataque

A linguagem mais comum usada no ataque é o SQL.

A linguagem mais comum usada no ataque é o JavaScript.

 

Embora a injeção de SQL e o ataque de script entre sites continuem a ser populares entre os invasores, o monitoramento contínuo, o teste e a implantação das melhores medidas preventivas ajudarão as organizações a impedir que seus sites se tornem vítimas de tais ataques e a neutralizar quaisquer ameaças preventivamente.

Esse post foi traduzido da nossa página em inglês SIEM Expert Talks, e sua autoria original é de Kritika Sharma.