Tipos de SSRF

O SSRF pode apresentar-se de duas maneiras, Basic ou Blind.

Acessando Arquivos Internos

Retomando nosso exemplo do envio de fotos para o blog, quando vimos ser possível carregar um objeto externo à aplicação, indagamos: O que aconteceria se o servidor não fizesse a distinção entre objetos externos e internos? Seria possível acessar arquivos internos? Sim, isso mesmo: a técnica de Server Side Request Forgery viabiliza acessar arquivos internos através de fuzzing. Com esse método, o atacante pode verificar a existência de arquivos de seu interesse para obter acesso aos mesmos. Desta maneira, seria preciso realizar a seguinte requisição para obter acesso a um possível arquivo passwd:

Escaneando Portas

Uma vez que o firewall foi ultrapassado, pela realização de requisições para a rede interna, baseando-se no tempo de resposta das requisições, pode-se escanear as portas para descobrir quais estão abertas ou fechadas. Por exemplo, a seguinte requisição possui código de resposta HTTP 200 (OK):

Enumerando Serviços

Ao escanear portas, também é possível enumerar serviços obtendo suas respectivas versões. Com estas informações em mãos, pode-se desenvolver ataques direcionados a serviços específicos, aumentando assim as chances de sucesso. Valendo-se da utilização de exploits públicos, essa técnica torna um eventual ataque contra um serviço específico (com a versão específica) mais eficiente.

Atacando Aplicações Internas

É comum no ambiente empresarial a utilização de aplicações internas, que são acessadas somente através da rede interna, ou pelo menos assim deveriam ser, pois fazem parte da intranet da empresa. Infelizmente, também é comum que tais aplicações tenham um nível de segurança baixo, quando comparadas às aplicações externas. Isso acontece porque, devido ao fato de estarem na intranet, trazem uma sensação de segurança falsa e ilusória, que as acompanha desde a fase de desenvolvimento. Por isso mesmo, através de um SSRF, ataques a tais aplicações são possíveis.

Mitigando o SSRF

De forma geral existem dois casos em que um SSRF pode acontecer:

  1. A aplicação permite o envio de requisições para qualquer IP externo ou domínio.

Recomendações de Segurança

Resumindo, seguem algumas recomendações de segurança, de acordo com nosso objetivo de contribuir para um mundo digital mais seguro:

  • Desabilitar URL schemas não utilizados, como ftp://, sftp:// e http://;
  • Utilizar uma allow-list com os IPs necessários para o funcionamento da aplicação.

REFERÊNCIAS