[PENTEST] Baixo - Exposição de Documentação da API sem Autenticação
Description
01 - STAKEHOLDER (quem valida e esclarece):
02 - PROBLEMA (cenário e/ou dor):
Durante os testes, identificamos que a documentação da API está publicamente acessível sem a necessidade de autenticação. Esse tipo de exposição permite que qualquer usuário não autenticado visualize todos os endpoints, parâmetros e métodos disponíveis na API.
Para reproduzir a vulnerabilidade, acessamos a área autenticada da aplicação e clicamos no botão que redireciona para a documentação da API.
Identificamos que a documentação da API pode ser visualizada de forma autenticada.
Abrimos uma aba anônima no navegador e acessamos a URL da documentação da API.
Por fim, podemos confirmar que é possível acessar a documentação mesmo sem estar autenticado, o que evidencia a exposição indevida de informações sensíveis.
OBS: Podemos utilizar da URL criada na barra de endereços e alterar o parâmetro &env= para qualquer outra tenant que não temos permissão de administrador que conseguimos acessar a documentação da API.
Recomendações
Recomendamos restringir o acesso à documentação da API, aplicando autenticação adequada (por exemplo, autenticação baseada em roles, permitindo apenas usuários administradores ou desenvolvedores internos). Além disso, recomenda-se:
-
Não expor documentação da API em ambientes de produção.
-
Utilizar ferramentas de gerenciamento de APIs que permitam controle de acesso granular.
-
Manter ambientes de homologação/QA para disponibilizar a documentação apenas internamente
Swagger à nível de Tenant e Org
Aparentemente mostrou a documentação, embora não tenha se autenticado.
Trocando parâmetro na URL para tenant que sou App Admin apenas e não tenho acesso ao swagger pela UI, entrou como autenticado.
03 - OBJETIVO (solução proposta):
04 - QUEM PODE USAR (perfis de usuários):
05 - ASSETS (links e arquivos relevantes):
06 - CRITÉRIOS DE ACEITE:
-
Swagger deve retornar os endpoints apenas se tiver um Authorization token valido, inclusive para endpoints que não requerem autenticação.