O que é Sequestro de Sessão?

Publicados: 2023-04-27

O sequestro de sessão é um tipo de ataque cibernético que os proprietários de sites WordPress precisam conhecer. Também conhecido como sequestro de sessão TCP, o sequestro de sessão faz com que os invasores pareçam usuários conectados corretamente. O invasor assume uma sessão de usuário obtendo seu ID de sessão sem o conhecimento ou permissão do usuário válido. Depois que um invasor rouba o ID de sessão de um usuário, ele pode se disfarçar como o usuário-alvo. O invasor poderá fazer tudo o que o usuário autorizado pode fazer depois que o usuário autorizado fizer login no mesmo sistema.

Uma das piores coisas que os hackers podem fazer com uma sessão sequestrada é obter acesso a um aplicativo da Web ou controles de servidor sem autenticação. Quando um invasor sequestra a sessão de um usuário, ele não precisa se autenticar, desde que a sessão esteja ativa. O aplicativo que gerou a sessão pensa que é o usuário autenticado cuja sessão foi sequestrada.

Em outras palavras, o hacker terá o mesmo acesso que o usuário comprometido. Como o usuário legítimo já autenticou sua sessão antes do ataque acontecer, um seqüestro bem-sucedido permite que um invasor ignore completamente a autenticação.

Neste guia, vamos nos aprofundar nos detalhes do seqüestro de sessão. Mostraremos exatamente o que você precisa fazer para evitar que isso aconteça em seu site WordPress.

O que exatamente é uma sessão?

Uma sessão é simplesmente uma série de interações entre terminais de comunicação que ocorrem em uma única conexão HTTP.

O Hypertext Transfer Protocol (HTTP) é fundamental para a web. É o que permite usar links de hipertexto e carregar páginas da web. HTTP também é um protocolo de camada de aplicativo para passar informações entre dispositivos em uma rede.

Uma característica chave do HTTP é que ele é “sem estado”. Isso significa que não salva nenhum dado sobre clientes (como você e seu navegador) que abrem uma sessão com um site. Cada sessão é completamente nova. HTTP não preserva dados sobre usuários de suas sessões anteriores.

Lidando com a apatridia

Aplicativos da Web como o WordPress precisam rastrear o estado entre várias conexões do mesmo usuário e de usuários diferentes. Ele precisa identificar a sessão de cada usuário após o login — possivelmente em mais de um dispositivo ou navegador.

Quando um usuário faz login em um aplicativo como o WordPress, o servidor cria uma sessão. A sessão manterá o “estado” da conexão para o usuário armazenando parâmetros que são exclusivos para eles. As sessões são mantidas ativas no servidor durante todo o período em que o usuário estiver conectado ao aplicativo.

Uma sessão termina quando um usuário sai do sistema ou após um período predefinido sem atividade. Quando uma sessão do usuário termina, o aplicativo deve excluir seus dados da memória do servidor.

Identificadores de Sessão

IDs de sessão (ou “chaves” ou “tokens”) são os identificadores exclusivos de sessão. Normalmente, são sequências alfanuméricas longas e aleatórias que o servidor e o cliente transmitem um ao outro. O aplicativo de autenticação normalmente armazena IDs de sessão em URLs, cookies ou campos ocultos em páginas da web.

Embora os IDs de sessão sejam úteis para manter o estado em um sistema sem estado, eles também apresentam alguns riscos potenciais à segurança. Por exemplo, se entendermos os algoritmos que geram IDs de sessão para um aplicativo da Web, podemos gerá-los nós mesmos. Além disso, se o aplicativo da Web não estiver usando criptografia SSL para criptografar HTTP como HTTPS, ele transmitirá IDs de sessão de forma clara. Em uma rede pública, qualquer pessoa pode espionar conexões não criptografadas e roubar IDs de sessão.

Como exatamente o seqüestro de sessão funciona na prática?

Um ataque de seqüestro de sessão bem-sucedido é extremamente furtivo. Eles geralmente são feitos em redes muito ocupadas com muitas sessões de comunicação ativas.

Algumas das formas mais comuns de seqüestro de sessão usam:

  • IDs de token de sessão previsíveis
  • Sessão de detecção
  • Sidejacking de sessão
  • Mal-in-the-browser
  • Script entre sites
  • Fixação de sessão

Vamos dar uma olhada em cada um desses vetores de ameaça individualmente.

IDs de token de sessão previsíveis

Muitos servidores da Web usam algoritmos personalizados ou padrões predefinidos para gerar seus IDs de sessão. Quanto maior a previsibilidade geral de um token de sessão exclusivo, mais fraco ele é.

E mais fácil é para um hacker prever.

Sniffing de Sessão

A detecção de sessão é um dos métodos mais simples e básicos que os hackers usam para sequestro de sessão na camada de aplicativos.

Um invasor usará um farejador de pacotes, como Wireshark, ou um proxy como OWASP Zed para capturar o tráfego de rede. Se esse tráfego contiver IDs de sessão não criptografados para conexões entre clientes e um site, os IDs poderão ser roubados. Os hackers podem usar o ID ou token válido para obter rapidamente acesso não autorizado ao site e às contas de seus usuários.

Sessão Sidejacking

Um invasor pode usar o sniffing de pacotes para interceptar cookies de sessão para usuários quando eles fazem login em um site. Se as páginas de login não forem criptografadas ou se for usada uma criptografia fraca, um cibercriminoso pode sequestrar facilmente as sessões do usuário dessa maneira.

Man-In-the-Browser

Nesse ataque, o invasor precisa inicialmente infectar o computador ou o navegador da vítima com malware.

Esse malware pode modificar invisivelmente as informações de transação do navegador e criar transações sem que o usuário perceba. As solicitações do navegador corrompido são iniciadas pelo dispositivo físico da vítima, portanto, são consideradas válidas.

Script entre sites

Um cibercriminoso pode explorar vulnerabilidades de aplicativos ou servidores para injetar código arbitrário nas páginas da Web de um site. Isso fará com que os navegadores dos visitantes executem esse código quando uma página comprometida for carregada.

Quando somente HTTP não é definido em cookies de sessão, é possível roubar uma chave de sessão por meio de código injetado. Isso daria aos invasores tudo o que eles precisam para sequestrar uma sessão do usuário.

Fixação de Sessão

Isso usa um ID de sessão válido que ainda não foi autenticado. Usando a fixação de sessão, um invasor tentará induzir um usuário a se autenticar com esse ID específico.

Depois que a autenticação acontece, um invasor agora tem acesso total ao computador da vítima.

A fixação de sessão explora uma grande limitação em como o aplicativo da web gerencia um ID de sessão.

O que um hacker ganha com o seqüestro de sessão?

Quando um hacker sequestra uma sessão, ele pode fazer qualquer coisa que um usuário legítimo foi autorizado a fazer naquela sessão ativa.

O seqüestro de sessão mais eficaz - e prejudicial - pode resultar em:

  • Contas bancárias comprometidas
  • Itens de compras on-line não autorizados on-line
  • Roubo de identidade
  • Roubo de dados de sistemas internos da empresa

Não é bom! Uma sessão de seqüestro de sessão bem-sucedida pode causar muitos danos.

Quais são alguns exemplos de seqüestro de sessão?

No outono de 2012, dois pesquisadores de segurança chamados Juliano Rizzo e Thai Duong anunciaram o CRIME, um ataque que tira proveito de um vazamento de informações na taxa de compressão de solicitações TLS como um canal lateral. Isso permitiu que eles descriptografassem as solicitações feitas pelo cliente ao servidor.

Por sua vez, isso permitiu que eles pegassem o cookie de login de um usuário e sequestrassem a sessão, representando-o em destinos online de alto valor, como sites de comércio eletrônico e bancos.

Esta demonstração mostrou como um hacker poderia executar esse tipo de ataque para recuperar os cabeçalhos de uma solicitação HTTP.

CRIME trabalha para descriptografar cookies HTTPS que são definidos por sites para lembrar usuários autenticados usando força bruta. O código de ataque força o navegador da vítima a enviar solicitações HTTPS especialmente criadas para um site de destino e analisa a variação em seu comprimento após a compactação para determinar o valor do cookie de sessão da vítima. Isso é possível porque o SSL/TLS utiliza um algoritmo de compactação chamado DEFLATE, que elimina strings duplicadas, como vimos acima.

O código de ataque não pode ler o cookie de sessão incluído nas solicitações por causa dos mecanismos de segurança do navegador. No entanto, ele pode controlar o caminho de cada nova solicitação e inserir diferentes strings na tentativa de corresponder ao valor do cookie.

Os valores do cookie de sessão podem ser muito longos. Eles são construídos com letras maiúsculas e minúsculas e dígitos.

Como resultado, o código de ataque CRIME precisa iniciar um número muito grande de solicitações para descriptografá-los, o que pode levar vários minutos.

Prevenção de Sequestro de Sessão

É importante lembrar que os invasores podem roubar e reutilizar IDs de sessão (ou outros valores de cookies confidenciais) quando transmitidos ou armazenados de forma insegura. Embora 100% de proteção não seja uma garantia, o uso de criptografia é uma grande defesa.

Quando os usuários autenticam, SSL e cookies seguros precisam ser obrigatórios. E quando usuários autenticados visitam mais de uma página segura, eles precisam ser forçados a usar HTTPS.

Além disso, os proprietários de sites WordPress precisam usar o plug-in de segurança iThemes Security Pro WordPress para proteção contra seqüestro de sessão. O recurso Dispositivos confiáveis ​​incorporado ao iThemes Security Pro funcionará 24 horas por dia, sete dias por semana, para ajudar a manter seu site protegido contra esse ataque perigoso. Saiba como configurá-lo para os usuários do seu site.

Compreendendo e prevenindo o seqüestro de sessão

Com as informações deste guia, você sabe tudo o que precisa para proteger seu site WordPress contra o seqüestro de sessão:

  1. Certifique-se de que seu site esteja totalmente criptografado usando SSL e forçará os usuários a permanecerem em HTTPS.
  2. Baixe e instale o plug-in iThemes Security Pro.

Ao seguir essas etapas simples, você protegerá seu site contra o seqüestro de sessão.