Cross-Site Request F orgery é uma das formas mais comuns de ataque de spammers e golpistas online. A exploração desse ataque é um pouco complexa, sua prevalência é comum.
Mas os ataques CSRF podem ser previstos facilmente e seu impacto é moderado.
Cenário CSRF
Neste cenário, temos um atacante, usuário, atacantes e servidor de destino. Um invasor pode compartilhar o link malicioso com um usuário de várias maneiras.
O compartilhamento de links pode ser feito por meio de mídias sociais, e-mail e de muitas maneiras diferentes. Depois que o usuário clica no link, ele vai para o servidor da web do invasor.
Agora, a solicitação do servidor do invasor também carrega a solicitação maliciosa incorporada , que faz com que o navegador do usuário emita uma solicitação ao site de destino.
Todo o processo de CSRF é para obter o usuário autenticado, que já está autenticado no site de destino. Portanto, essa é uma das condições normalmente necessárias para um CSRF bem-sucedido.
Cross-Site Request Forgery
Neste cenário, estamos tendo um usuário transferindo dinheiro em um site de banco, agora o usuário faz o login no banco e faz a autenticação de solicitação de transferência de dinheiro.
A solicitação deve ser como este HTTP POST http://bank.com/transfer, uma vez que a solicitação processada, a fim de persistir, o servidor de estado do usuário enviará um Authcookie: 86GHTR.
Sendo a solicitação de postagem, existe um corpo de solicitação que consiste no número da conta alvo : 7895457898054 e onde o valor em dinheiro : 100000 deve ser transferido.
Agora, o invasor pode forjar essa solicitação e ele será o problema com o CSRF se conseguir enganar o navegador do usuário ao fazer essa solicitação, quando posso executar com êxito uma solicitação CSRF.
Portanto, agora um invasor executa isso: O invasor já está ciente do caminho de postagem HTTP, eles olham para o banco e dizem qual é a URL que você precisa postar para transferir dinheiro.
Eles já estão cientes dos campos, então só precisam da URL e do corpo da solicitação, pois se eles conseguirem que o usuário faça uma solicitação a essa parte com o corpo da solicitação.
Em seguida, o Auth Cookie será enviado automaticamente com a solicitação que os navegadores normalmente fazem, envie qualquer cookie com a solicitação válida para um domínio de destino.
Cross-Site Request Forgery Defesas
- CSRF é explorado se usarmos padrões previsíveis.
- Empregue tokens anti-falsificação, adicione aleatoriedade à solicitação.
- As solicitações válidas não devem ser originadas externamente.
- O referenciador deve estar nas solicitações de cada cabeçalho.
- Defesas do navegador nativo.
- Padrões de detecção de fraude.