Cross-Site Request Forgery (CSRF) e suas ameaças
Apesar do Cross-Site Request Forgery não ser uma vulnerabilidade nova, ainda vemos inúmeras aplicações suscetíveis a ele.
O ataque funciona através da inclusão de um link ou script malicioso em uma página que irá disparar uma ação na aplicação-alvo em que o usuário, vítima, possui acesso e encontra-se autenticado no momento da execução do código. Estão em risco aplicações web que não adotam controles para validação da legitimidade da requisição a ser processada.
O Cross-Site Request Forgery (CSRF), portanto, é um tipo de exploração indireta e mal-intencionada das funções de uma aplicação em que comandos são transmitidos a partir de um usuário em que a aplicação confia, sem o consentimento deste. Ao contrário do Cross-Site Scripting (XSS), que explora a confiança que um usuário tem num site em particular, o CSRF explora a confiança que um site tem no browser do usuário. O CSRF é um ataque difícil de ser detectado, já que a requisição do atacante fica mascarada pelo browser e endereço IP das requisições legítimas (feitas pelo usuário legítimo).
Características comuns ao CSRF:
- Envolvem sites que dependem da identidade de um usuário
- Explora a confiança que o site tem na identidade desse usuário
- Engana o navegador do usuário para o envio de solicitações HTTP para um site de destino
- Envolvem solicitações HTTP com efeitos colaterais
- O atacante precisa conhecer o formato da solicitação para poder forjá-la, criando o código malicioso (clique aqui para entender melhor o que é um formato de solicitação)
Todas as funções disponíveis por uma aplicação Web vulnerável estão suscetíveis a este ataque: a criação de um usuário, a aprovação de uma etapa de workflow, liberação de pagamentos, compras, envio de e-mail etc.
Sua aplicação depende de cadastro de usuários? Você pode estar vulnerável a esse tipo de ataque. Não corra riscos, teste a vulnerabilidade de sua aplicação.