Questão nº 29
Questão de Análise de Sistemas · FGV TJDFT 2022 (nº 29)
PedidosSemEstresse é uma aplicação Web destinada a digitalizar o processo de pedidos de serviços de um órgão da administração pública. A interface de PedidosSemEstresse utilizada pelos usuários faz chamadas a uma API RESTful e não utiliza facilidades de login único (single sign-on – SSO). Recentemente, o usuário interno João utilizou suas próprias credenciais com privilégios somente de execução de métodos GET para explorar vulnerabilidades e teve acesso direto a API RESTful. Assim, João fez chamadas a métodos POST com sucesso.
Com base no OWASP Top Ten, a vulnerabilidade explorada por João é da categoria:
- AInjection;
- BBroken Access Control; (alternativa correta)
- CSoftware and Data Integrity Failures;
- DVulnerable and Outdated Components;
- EIdentification and Authentication Failures.
Resposta comentada
Gabarito Alternativa B
Conceito-chave: Broken Access Control (Controle de Acesso Quebrado) acontece quando o sistema não verifica corretamente se o usuário tem permissão para executar aquela ação (ex.: um usuário comum conseguindo fazer um POST que só um admin poderia). É como deixar a porta dos fundos aberta: a autenticação (quem é você) até funcionou, mas a autorização (o que você pode fazer) falhou.
- (A) Incorreta: Injection seria se João tivesse enviado comandos maliciosos (ex.: SQL) dentro dos parâmetros, mas o enunciado fala de explorar métodos HTTP, não de injeção de código.
- (B) Correta: João usou credenciais válidas (autenticação ok), mas com privilégio só de GET, e conseguiu executar POST. Isso é exatamente uma falha de autorização — o sistema não validou se ele tinha permissão para aquele método HTTP, caracterizando Broken Access Control.
- (C) Incorreta: Software and Data Integrity Failures envolve confiar em dados ou código sem verificar integridade (ex.: desserialização insegura), não é o caso de permissões de métodos HTTP.
- (D) Incorreta: Vulnerable and Outdated Components seria se a falha viesse de uma biblioteca ou framework desatualizado, mas aqui a causa é a falta de checagem de permissões na própria lógica da API.
- (E) Incorreta: Identification and Authentication Failures seria se João tivesse quebrado senha ou sessão, mas ele usou as próprias credenciais — a falha não está em provar quem é, e sim no que ele pode fazer depois de provar.
Armadilha da banca (no distrator E): Muitos alunos marcam Identification and Authentication Failures porque pensam "João usou credenciais", mas a pegadinha é que a autenticação funcionou (ele logou com sucesso). A falha está na autorização (permitir POST sem permissão), que é o coração do Broken Access Control. Lembre-se: autenticação = quem é você; autorização = o que você pode fazer.
Fonte: FGV TJDFT 2022 Analista Judiciário - Análise de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.