Introdução ao CSRF?

CSRF, XSRF ou falsificação de referência entre sites é um tipo de ataque que ocorre em um site quando um site mal-intencionado delega sua solicitação a outro site ou aplicativo da Web que possui um usuário autenticado. Nesse tipo de ataque, usando o navegador autenticado da vítima, um invasor pode acessar o site total ou parcialmente.

Como funciona?

  • Funciona apenas se a vítima em potencial estiver autenticada.
  • Um invasor pode entrar em um site ignorando o processo de autenticação usando um ataque CSRF.
  • Os ataques de CSRF entram em uso nos cenários em que uma vítima com direitos adicionais executa alguma ação e outras não podem acessar ou executar essas ações. Por exemplo, serviços bancários online.

O ataque do CSRF é executado em duas partes principais

  • O primeiro passo é atrair o usuário / vítima para clicar em um link ou carregar uma página que é maliciosa. A engenharia social é usada pelo atacante para enganar a vítima.
  • O segundo passo é enganar a vítima enviando uma solicitação forjada ao navegador da vítima. Esse link redirecionará as solicitações de aparência legítima para um site. O atacante terá os valores ou detalhes da vítima que ele deve estar procurando, uma vítima o teria preenchido pensando que a solicitação é legítima. O invasor também terá os detalhes dos cookies associados ao navegador da vítima.

Principais conceitos do CSRF

  • Um invasor envia solicitações maliciosas para um site no qual o usuário visita um invasor acredita que a vítima é validada nesse site específico.
  • O navegador da vítima é autenticado no site de destino e é usado para rotear as solicitações maliciosas para o site de destino.
  • Aqui, o navegador de uma vítima ou um site com métodos preventivos de CSRF implementados nele não é vulnerável, um site afetado é a principal vulnerabilidade.

Como é possível evitar a falsificação de solicitações entre sites (CSRF)?

Existem vários métodos preventivos de CSRF, alguns deles são:

  • Faça logoff dos aplicativos Web enquanto não estiver trabalhando nele.
  • Proteja seus nomes de usuário e senhas.
  • Não permita que os navegadores lembrem a senha.
  • Enquanto você estiver trabalhando em um aplicativo e conectado a ele, evite navegar.

Tokens Anti-CSRF

A implementação mais comum para interromper a falsificação de solicitação entre sites (CSRF) é usar um token relacionado a um usuário selecionado e pode ser encontrado como um formulário oculto em cada estado, formulário dinâmico presente no aplicativo online.

1. Este token referido como um token CSRF funciona da seguinte maneira:

  • O cliente solicita uma página HTML que possui um formulário.
  • Na resposta desta solicitação, o servidor anexa dois tokens. Ele envia um como cookie e mantém outros tokens em um campo de formulário oculto. Esses tokens são gerados aleatoriamente.
  • O cliente envia o token de volta ao servidor depois que ele envia o formulário. O token de cookie é enviado como um token e o token de formulário é enviado dentro dos dados do formulário
  • O servidor não responde ou rejeita a solicitação se uma solicitação não tiver as duas solicitações.

Agora, um invasor que está tentando forjar a solicitação precisará adivinhar os tokens anti-CSRF junto com as senhas de autenticação do usuário. Esses tokens são invalidados após algum tempo e depois que a sessão termina. Isso faz com que o invasor adivinhe o token difícil.

2. Cookies do mesmo site

Existem alguns cookies associados a uma origem ou site e, quando uma solicitação é enviada para essa origem específica, os cookies são enviados junto com ela. Tais solicitações são chamadas solicitações de origem cruzada. Durante esse processo, os cookies são enviados a terceiros, o que possibilita ataques de CSRF.

3. Mesmo atributo de cookie do site

  • Para impedir ataques CSRF, o mesmo atributo de cookie do site pode ser usado. Desativa o uso de terceiros para um cookie específico.
  • Isso é feito pelo servidor ao definir o cookie; Em seguida, solicita que o navegador envie o cookie apenas quando o usuário estiver usando o aplicativo Web diretamente.
  • Agora, se alguém tentar solicitar algo do aplicativo Web, o navegador não enviará o cookie.
  • No entanto, evita o ataque do CSRF.

Isso tem uma limitação: os cookies do mesmo site não são suportados nos navegadores modernos, enquanto os aplicativos da Web que usam cookies do mesmo site não são suportados nos navegadores mais antigos.

Exemplos de CSRF

Abaixo, explicamos alguns exemplos de CSRF:

1. Usando solicitações GET:

Suponha que você tenha implementado e projetado um site, o banking.com, para executar ações como transações on-line usando solicitações GET. Agora, um invasor inteligente que sabe criar uma URL maliciosa pode usar elemento para obter o navegador silenciosamente carregar a página

Exemplo de um elemento de imagem HTML que contém uma URL maliciosa:

2. Uma das técnicas abaixo pode ser usada para fazer o mesmo:

  • Enviando um email com conteúdo HTML
  • Ao plantar um script ou um URL mal-intencionado nas páginas que um usuário provavelmente visitará enquanto realiza transações on-line.

3. Usando solicitações POST

Há um equívoco geral sobre as solicitações HTTP POST de que os ataques CSRF podem ser evitados ao permitir solicitações HTTP POST, o que na verdade não é verdadeiro. O invasor pode criar um formulário usando HTML ou JavaScript e usar a funcionalidade de envio automático para enviar a solicitação POST sem exigir que o usuário clique em um botão de envio.

Conclusão

Os cookies são vulneráveis, pois são enviados automaticamente com a solicitação, o que permite que os invasores implementem o CSRF e enviem solicitações maliciosas. O efeito de uma vulnerabilidade CSRF também depende do privilégio da vítima, cujo Cookie está sendo enviado com a solicitação do invasor. Embora a recuperação de dados não seja o escopo principal de um ataque CSRF, as mudanças de estado certamente terão um efeito adverso no aplicativo da Web que está sendo explorado. Portanto, é recomendável impedir que seu site use métodos preventivos para proteger seu site contra a CSRF.

Artigos recomendados

Este foi um guia para o que é CSRF. Aqui discutimos o conceito-chave, tokens anti-CSRF, como seu trabalho e exemplos de CSRF. Você também pode acessar nossos outros artigos sugeridos para saber mais -

  1. O que é o Java Hibernate?
  2. O que é o ASP.NET?
  3. O que é o AWS Lambda?
  4. O que é XHTML?