Sequestro de sessão (session hijacking)

🚨 sequestro de sessão (ou session hijacking) é uma técnica usada por invasores para assumir o controle de uma sessão legítima entre um usuário e um servidor. Aqui estão algumas informações importantes sobre isso:

  • Definição: O sequestro de sessão ocorre quando um invasor intercepta e assume uma sessão estabelecida entre um usuário e um host. Isso pode ser aplicado a qualquer recurso autenticado, como um servidor da Web ou uma conexão Telnet.

  • Métodos: Existem várias maneiras de realizar o sequestro de sessão:

    • Adivinhando um ID: O invasor tenta adivinhar um ID de sessão válido.
    • Sniffing de sessão: O invasor monitora o tráfego de rede para obter um cookie de sessão e assumir o controle.
    • Ataques do lado do cliente: Isso inclui ataques como XSS (Cross-Site Scripting) e códigos JavaScript maliciosos.
  • Vulnerabilidades: Alguns fatores que contribuem para o sucesso do sequestro de sessão incluem IDs de sessão previsíveis, algoritmos fracos de geração de IDs, transmissão de texto claro e falta de bloqueio de contas para IDs inválidos.

icon DICAS PARA SE PROTEGER DO SESSION HIJACKING

  • Use conexões seguras: utilize sempre conexões criptografadas (HTTPS).
  • Desative o armazenamento de senha: não permita que seu navegador ou dispositivo armazene suas senhas (pode usar um gerenciador de senhas para isso).
  • Fique de olho nas atividades suspeitas em sua conta, como logins de locais desconhecidos ou atividades que você não reconhece.
  • Não faça nenhuma solicitação/autorização sem antes verificar se o site é confiável.
  • Não instale apps desconhecidos em seu dispositivo sem antes verificá-los.

icon EXEMPLO ILUSTRATIVO DE SESSION HIJACKING - SNIFFING DE SESSÃO

session hijacking

Session hijacking é muito utilizado por sites fraudulentos (phishing).

icon FERRAMENTAS & COMPLEMENTARES

Acredito que a forma mais fácil de ter session hijacking do lado do dev é quando ele intencionalmente decide usar um ID facil (como os ID autoincremetais) como ID de sessão.

Nesse caso ele poderia usar ID's semi aleátorios ou totalmente aleatórios como:

Eu poderia citar outros tipos de ID como usar md5 ... e outros hashs mas como eu não sou tão informado assim neste assunto passei os que são realmente usados em produção em grandes empresas e que seria a melhor adoção.

Atenção: Não use qualquer ID, principalmente não use qualquer HASH pois pode haver chance de colisão

Bom ponto, porém infelizmente a grande maioria desses ataques também ocorre quando o usuário instala algum app malicioso (malware) em seu dispositivo. Quando o app malicioso tem controle sobre o dispositivo, é quase inevitável o roubo do ID da sessão.
Concordo plenamente com esta afirmação. Quando um usuário instala malware em seu dispositivo, ele inadvertidamente dá aos invasores acesso aos seus dados pessoais. É apenas uma questão de tempo até que um ID de sessão seja roubado. É muito importante ter cuidado ao baixar aplicativos e arquivos, especialmente de fontes não confiáveis. É melhor verificar várias vezes do que gastar tempo e dinheiro para restaurar a segurança mais tarde
Seu ponto de vista é muito pertinente. A maioria dos usuários nem percebe o quão perigoso o malware pode ser. Depois de instalar esse software, eles correm o risco de perder o controle de seu dispositivo e, com ele, todos os dados pessoais. O sequestro de ID de sessão é apenas um dos muitos problemas que podem ser encontrados. Não só é importante ter cuidado, mas também é importante manter seus programas antivírus e sistemas de segurança atualizados.

Uma estratégia pra nós, devs, é implementar solicitação de senha ou confirmação 2 fatores, sempre que houver atualização de dados sensíveis, ex: trocar email, dados pessoais, etc. Tentar minimizar o máximo de ações possíveis do atacante, nesse tipo de incidente.

2FA não impede o criminoso de acessar a conta do usuário caso ele tenha o ID da sessão, só impede métodos tradicionais como login usando nome de usuário/e-mail e senha ou alterações na conta que exigem o 2FA (igual você informou). Um exemplo real disso é que vários canais de Youtubers, contas de Instagram e afins já foram hackeados dessa forma, mesmo tendo 2FA. Sim, 2FA é bom, mas infelizmente não impede o criminoso de boicotar o canal do usuário, como por exemplo: privar conteúdos, excluir conteúdos, fazer transmissão fraudulenta, fazer golpe usando o perfil da vítima e dentre outras ações.
Exatamente, não impede. Tanto é que meu ponto visa tentar minimizar algumas ações maliciosas, pois proteger 100% nenhuma plataforma garante. Excluir vídeos do YouTube, por exemplo, não é uma tarefa comum que um usuário faria. Se há várias exclusões, os algoritmos do YouTube deveriam minimamente confirmar de alguma forma, se aquela pessoa está de fato querendo fazer aquilo, criando mais camadas adicionais de segurança, pedindo senha, etc. para minimizar riscos. As plataformas precisam investir mais em segurança, nesses pontos.
Compreendo, deveria fazer igual algumas plataformas. Por exemplo, no Discord, caso tenha 2FA ativado, sempre que vai adicionar um bot ao servidor que tem 2FA, ele pede o 2FA. Quando vai excluir o servidor, o Discord pede o 2FA, ao meu ver também acho que as plataformas deveriam implementar mais camadas de segurança.
É um bom caminho mesmo. Excelente post!
Sempre, em meu tempo livre, faço posts no TabNews sobre educação em cibersegurança, prevenção de golpes, dicas de segurança e afins. Agradeço a todos que estão engajando em meus posts, já que é um conteúdo que quase ninguém dá tanta importância. Só buscam conhecimento quando o B.O. já aconteceu com eles. A maioria age depois do incidente ter ocorrido, sempre com uma atitude "reativa", não "proativa".