OWASP TOP 10 - SSRF

2022-05-30

A OWASP é uma entidade internacional sem fins lucrativos que atua de forma colaborativa com o fortalecimento da segurança de software no mundo todo.

De anos em anos ela atualiza a sua lista com as dez vulnerabilidades mais comuns na atualidade. A mais recente, de 2021, é:

OWASP TOP 10: 2021

1. Broken Access Control
2. Cryptographic Failures
3. Injection
4. Insecure Design
5. Security Misconfiguration
6. Vulnerable and outdated components
7. Identification and Authentication Failures
8. Software and Data Integrity Failures
9. Security Logging and Monitoring Failures
10. Server-Side Request Forgery (SSRF)

Nesse artigo, iremos explorar a vulnerabilidade 10, além de ver algumas formas de previnir ataques SSRF da ótica da pessoa desenvolvedora de software.

SSRF

Server-Side Request Forgery - ou SSRF - é uma das adições da OWASP à lista de 2021. Ele funciona “enganando” o servidor, o levando a fazer uma requisição a uma rede externa, mas de forma que pareça estar sendo realizada uma requisição para uma rede interna. Assim, os atacantes conseguem acesso a áreas que não deveriam ser acessadas externamente, como intranets ou páginas administrativas. Este tipo de ataque pode expor dados sensíveis como metadados da cloud onde o serviço é hospedado, arquivos internos com informações sensíveis ou até mesmo executar ataques RCE ou DoS dentro do servidor.

Como se proteger via software

A forma mais simples de evitar este problema é proteger a entrada do usuário, garantindo que somente as informações que são esperadas sejam permitidas. A melhor forma de garantir isso ainda é com uma boa cobertura de testes, tanto unitários quanto e2e. Desabilitar redirecionamentos HTTP, o uso de um URL Schema, port e destination, com uma lista das entradas autorizadas, o não envio de raw responses para o cliente e a garantia de consistência da URL também são medidas recomendadas para mitigar os riscos de um ataque SSRF.

Na camada do frontend, a OWASP tem uma recomendação extra: o uso de criptografia de rede (como por exemplo VPNs) para lidar com grupos de usuários dedicados e/ou gerenciáveis.

Existem ainda outras 9 vulnerabilidades, das quais iremos tratar em artigos posteriores.

Lista de referências

OWASP - Server-Side Request Forgery Prevention Cheat Sheet CWE-918 Server-Side Request Forgery (SSRF) SSRF bible