Entenda os Ataques XSS – Cross-Site Scripting

O script entre sites (XSS-Cross-Site Scripting) é um tipo de vulnerabilidade de segurança normalmente encontrada em aplicativos da Web que permite a injeção de código por usuários mal-intencionados nas páginas da Web visualizadas por outros usuários. Exemplos desses códigos incluem HTML e scripts do lado do cliente. Esta vulnerabilidade pode ser usada por invasores para ignorar controles de acesso, como a mesma diretiva de origem.

Recentemente, vulnerabilidades desse tipo foram exploradas para criar poderosos ataques de phishing e explorações de navegadores.

Essa vulnerabilidade geralmente é mais significante do que outras porque um invasor poderá injetar um script apenas uma vez e atingir um grande número de outros usuários com pouca necessidade de engenharia social ou poderá infectar um aplicativo da Web com um virus cross-site scripting.

Os invasores que exploram as vulnerabilidades de script entre sites tratam cada classe desta vulnerabilidade com um vetor de ataque específico, conforme os cenários apresentados a seguir:

Ataque de tipo 0

  1. João envia uma URL para Maria (via e-mail ou outro mecanismo) de uma página da Web mal-intencionada.
  2. Maria clica no link.
  3. Um JavaScript na página da Web mal-intencionada abre uma página HTML vulnerável no computador de Maria.
  4. A página HTML vulnerável contém JavaScript, que é executado localmente, no computador de Maria.
  5. O script malicioso de João agora pode executar comandos com os privilégios que Maria possui em seu próprio computador.

Ataque de tipo 1

  1. Maria frequentemente visita um site específico, que é hospedado por Antônio. O site de Antônio permite que Maria faça login com credenciais de usuário/senha e armazene informações confidenciais, como informações de faturamento.
  2. João observa que o site de Antônio contém uma vulnerabilidade XSS refletida que é, de longe, o tipo mais comum.
  3. João cria um URL para explorar a vulnerabilidade e envia um e-mail para Maria, fazendo parecer que ele veio de Antônio (ou seja, o e-mail é falsificado).

4. Maria visita o URL fornecido por João enquanto está logada no site de Antônio.

  1. O script malicioso incorporado na URL é executado no navegador da Maria, como se viesse diretamente do servidor de Antônio. O script rouba informações confidenciais (credenciais de autenticação, informações de faturamento, etc.) e as envia para o servidor da Web de João sem o conhecimento de Maria.

Ataque de tipo 2

  1. Antônio hospeda um site que permite aos usuários postar mensagens, comentários e outros conteúdos no site para posterior visualização por outros membros.
  2. João percebe que o site de Antônio é vulnerável a um ataque de XSS tipo 2,ou seja, vulnerabilidade persistente.
  3. João publica uma mensagem, de natureza controversa, que pode encorajar muitos outros usuários do site a visualizá-la.
  4. Após a simples visualização da mensagem postada, os cookies de sessão dos usuários do site ou outras credenciais poderão ser tiradas e enviadas para o servidor Web de João sem o seu conhecimento.
  5. Mais tarde, João entra como outros usuários do site e envia mensagens em seu nome ….

NOTA: os cenários apresentados são apenas uma ilustração dos métodos mais comuns de ataques XSS e não englobam todos os vetores de ataque, Praticamente não há limites para a variedade de ataques de XSS.

Como evitar um ataque de XSS?

            O Lado do Web Developer

Mitigar os ataques de XSS é uma tarefa dos desenvolvedores dos websites, e uma das mais difíceis de se fazer; são vários métodos: bibliotecas Anti-XSS ( já vi algumas para .NET, PHP e Java), o Content Security Policy, o uso da flag HttpOnly, o X-XSS, evitar algumas tags html com JavaScript,…. A utilização de um Web Application Firewall (WAF) também ajuda a contra ataques não somente de XSS, mas muitas vezes também de SQL Injection, DDoS, entre outros. Bem, não sou um DevSecOps para detalhar esta lista que só tem crescido e deixado mais difícil a vida dos invasores.

O Lado do Usuário (a Vítima)

Como o atacante não tem como alvo diretamente sua vítima – ele explora uma vulnerabilidade em um site que a vítima pode visitar – o ataque efetivo é quase imperceptível para um usuário.

Infelizmente, os navegadores não têm como saber se um script é ou não confiável e, portanto, executa automaticamente qualquer script que receber. Com isso, os scripts maliciosos podem ter acesso a qualquer informação sigilosa armazenada ou salva pelo navegador na página. Isso significa que os ataques de XSS são quase impossíveis de reconhecer.

Para um usuário se proteger contra um ataque de XSS não basta evitar sites não confiáveis. Os conselhos básicos são:

– Instale um antivírus conceituado no seu computador

– Ative a atualização automática dos seus aplicativos

– Baixe uma ferramenta capaz de verificar vulnerabilidades no código de um site. Por enquanto, isso não é para um usuário comum; já tenho o esboço de um post que trata deste tema com mais profundidade

FONTE PRIMÁRIA: </xssed>

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s