CSRF - Cross Site Request Forgery
O que é CSRF
Cross-Site Request Forgery (CSRF), ou falsificação de solicitação entre sites, é um tipo de ataque que força um usuário autenticado a executar ações indesejadas em uma aplicação web na qual está autenticado.
Mecanismos de Ataque
O CSRF explora a confiança que um site tem no navegador do usuário, fazendo com que este envie requisições não autorizadas sem o seu conhecimento.
Tipos de Ataques
GET
Em ataques CSRF utilizando o método GET, o invasor cria um link malicioso que, ao ser carregado pelo navegador da vítima, realiza uma ação indesejada na aplicação alvo.
POST via Formulário
No caso de ataques CSRF utilizando o método POST, o invasor cria um formulário HTML que, ao ser submetido pela vítima, envia dados maliciosos para a aplicação alvo.
Mitigação/Prevenção
Tokens Anti-CSRF
Uma das principais medidas de prevenção contra CSRF é a utilização de tokens anti-CSRF, que são valores secretos e únicos gerados pelo servidor e incluídos em formulários ou requisições.
SameSite Cookies
Atributos de cookie como SameSite
podem ser configurados para restringir o envio de cookies em requisições cross-site, ajudando a prevenir ataques CSRF.
Verificação de Cabeçalhos HTTP
A verificação dos cabeçalhos Origin
ou Referer
nas requisições pode ser utilizada para assegurar que elas se originam de fontes confiáveis, auxiliando na prevenção de ataques CSRF.
Ferramentas
OWASP CSRFGuard: Uma biblioteca Java que implementa tokens anti-CSRF para proteger aplicações web contra ataques CSRF.
CsFire: Uma extensão para Firefox que mitiga o impacto de ataques CSRF removendo informações de autenticação de requisições cross-site.
Desafios CTF e Write-ups
Para aprofundar o entendimento sobre CSRF, é recomendável praticar com desafios de Capture The Flag (CTF). Abaixo, alguns desafios relacionados a CSRF e seus respectivos write-ups:
PortSwigger Web Security Academy - CSRF vulnerability with no defenses:
Desafio: CSRF vulnerability with no defenses
TryHackMe - CSRF: The Art of Sneaky Online Mischief:
Desafio: TryHackMe CSRF Room
Write-up: Solução do TryHackMe CSRF Room
Cybertalents - Wrong Token Web Challenge:
Desafio: Wrong Token Challenge
Write-up: Solução do Wrong Token Challenge
Considerações Adicionais
É importante destacar que ataques CSRF podem ser combinados com outras vulnerabilidades, como Cross-Site Scripting (XSS), para aumentar seu impacto. Além disso, usuários podem se proteger evitando clicar em links suspeitos e mantendo seus navegadores atualizados.
Referências
Autor
Atualizado