Questão de Segurança da Informação — Autorização e Controle de Acesso (RBAC, ABAC, MAC, DAC e ACL) — FCC 2026
Segurança da Informação›Autorização e Controle de Acesso (RBAC, ABAC, MAC, DAC e ACL)
Código
fc142067
Banca
FCC
Órgão
ALERR
Ano
2026
Cargo
Ana Leg ( )
Uma Assembleia Legislativa disponibiliza uma API REST para consulta e gestão de documentos legislativos. Um endpoint permite acessar documentos por meio da seguinte requisição: GET /api/documentos/{documentId} Authorization: Bearer Durante testes de segurança, foi identificado que usuários autenticados conseguem acessar documentos de outros gabinetes simplesmente alterando o valor de {documentId} na URL, sem qualquer validação adicional no backend. Considerando o cenário descrito e as boas práticas de segurança da OWASP API Security Top 10 (2023), é possível concluir que se trata de uma vulnerabilidade
Aque poderia ser completamente mitigada somente substituindo os identificadores sequenciais por UUIDs aleatórios.
Bque poderia ser prevenida por meio da comparação entre o ID do usuário presente no JWT e o {documentId} na requisição.
Cde autenticação, pois o uso de JWT não impede que usuários acessem recursos de outros usuários.
Dde Broken Object Level Authorization (BOLA), pois o sistema não valida se o usuário autenticado tem permissão para acessar o objeto identificado por {documentId}.
Ede Broken Function Level Authorization (BFLA), pois o endpoint não restringe quais funções podem ser executadas.
Revelar gabarito e comentário▾
GabaritoD — de Broken Object Level Authorization (BOLA), pois o sistema não valida se o usuário autenticado tem permissão para acessar o objeto identificado por {documentId}.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Broken Object Level Authorization (BOLA) em APIs REST
Gabarito: letra D. O cenário descreve uma falha de Broken Object Level Authorization (BOLA) — a API autentica o usuário, mas não verifica se ele tem permissão para acessar o objeto específico identificado por {documentId}. A OWASP API Security Top 10 (2023) classifica essa vulnerabilidade como API1:2023 – Broken Object Level Authorization, que ocorre quando o backend confia apenas na autenticação e não valida a propriedade do recurso.
O problema central aqui é a distinção entre autenticação e autorização. Autenticação é o processo de verificar quem o usuário é (identidade); autorização é o processo de verificar o que esse usuário pode fazer (permissões). No cenário, o usuário está autenticado (Bearer token), mas o sistema não realiza a autorização no nível do objeto — ou seja, não confere se aquele documento pertence ao gabinete do usuário logado. Isso permite que um usuário acesse documentos de outros gabinetes simplesmente alterando o documentId na URL, caracterizando uma escalada de privilégios horizontal (usuário comum acessa dados de outro usuário da mesma categoria).
A OWASP define BOLA como a vulnerabilidade que ocorre quando uma API não verifica se o objeto pertencente ao identificador enviado na requisição pertence ao usuário autenticado. O exemplo clássico é uma API bancária onde o usuário pode consultar transações alterando o ID na URL, sem validação de propriedade. As consequências incluem violação de confidencialidade, violação de conformidade (LGPD, GDPR, PCI-DSS) e perda de confiança.
A prevenção adequada envolve implementar um mecanismo de autorização que verifique, em cada requisição, se o usuário autenticado tem permissão para acessar o objeto solicitado. Isso pode ser feito comparando o ID do usuário no JWT com o proprietário do recurso, ou usando políticas de acesso baseadas em papéis (RBAC) ou atributos (ABAC). A OWASP também recomenda preferir IDs aleatórios e imprevisíveis (como UUIDs) como medida complementar, mas isso não substitui a validação de autorização — apenas dificulta a descoberta de outros IDs.
A pegadinha desta questão está em confundir BOLA com Broken Function Level Authorization (BFLA). Enquanto BOLA protege o acesso ao objeto como um todo (API1), BFLA protege o acesso à funcionalidade/ação em si (API5). No cenário, o usuário acessa um documento (objeto) que não deveria — isso é BOLA. BFLA seria se o usuário conseguisse executar uma função administrativa (como deletar ou aprovar) sem ter permissão para tal.
NÃO CAIA NESSA!
A banca tenta confundir BOLA com BFLA. A diferença crucial: BOLA é sobre acessar objetos (dados) que não pertencem ao usuário; BFLA é sobre executar funções (ações) que o usuário não deveria executar. No enunciado, o usuário acessa um documento de outro gabinete — isso é acesso a objeto, não execução de função. Guarde: BOLA = objeto/dado; BFLA = função/ação.
Critério
BOLA (API1)
BFLA (API5)
Foco da vulnerabilidade
Acesso a objetos/dados (ex.: documento, registro)
Acesso a funções/ações (ex.: deletar, aprovar)
Exemplo típico
Alterar {documentId} na URL para acessar recurso alheio
Executar endpoint administrativo sem permissão
Tipo de escalada
Horizontal (usuário comum acessa dados de outro usuário)
Vertical (usuário comum executa função de admin)
Pergunta-chave
"O usuário pode acessar este objeto?"
"O usuário pode executar esta função?"
Classificação OWASP 2023
API1:2023
API5:2023
BOLA vs BFLA: BOLA (API1) (Acesso a objeto/dado, Ex.: documento de outro gabinete); BFLA (API5) (Execução de função/ação, Ex.: deletar, aprovar, configurar); Mitigação (Validar autorização por objeto, RBAC ou ABAC, UUID como medida complementar)
Alternativa A — ❌ Incorreta
Afirma que a vulnerabilidade poderia ser completamente mitigada apenas substituindo IDs sequenciais por UUIDs aleatórios. Isso é falso: UUIDs dificultam a descoberta de outros IDs, mas não impedem o acesso se o backend não validar a autorização. Um usuário que conhece o UUID de outro documento (por exemplo, via referência em outro lugar) ainda conseguiria acessá-lo. A OWASP recomenda UUIDs como medida complementar, não como solução única. A mitigação correta exige validação de autorização no backend.
Alternativa B — ❌ Incorreta
Afirma que a vulnerabilidade poderia ser prevenida somente pela comparação entre o ID do usuário no JWT e o documentId. Essa é uma medida válida de prevenção, mas a alternativa usa o termo "somente", tornando-a incorreta — existem outras formas de mitigação (RBAC, ABAC, políticas de acesso). Além disso, a comparação direta entre ID do usuário e documentId nem sempre é aplicável: em muitos casos, o documento pertence a um gabinete (grupo), não a um usuário individual. A validação correta deve verificar se o usuário pertence ao gabinete dono do documento.
Alternativa C — ❌ Incorreta
Classifica a vulnerabilidade como de autenticação, afirmando que o JWT não impede o acesso a recursos de outros usuários. Isso confunde autenticação com autorização. O JWT cumpre seu papel de autenticar o usuário; o problema é a falta de autorização no nível do objeto. A vulnerabilidade é de autorização (BOLA), não de autenticação. A alternativa C descreve corretamente o sintoma (JWT não impede acesso a recursos de outros), mas erra ao classificá-lo como falha de autenticação.
Alternativa D — ✅ Correta ⟵ GABARITO
Identifica corretamente a vulnerabilidade como Broken Object Level Authorization (BOLA), pois o sistema não valida se o usuário autenticado tem permissão para acessar o objeto identificado por {documentId}. Isso corresponde exatamente à definição da OWASP API1:2023: a API autentica o usuário, mas não verifica a propriedade do recurso. O usuário consegue acessar documentos de outros gabinetes alterando o ID na URL, sem validação adicional no backend.
Alternativa E — ❌ Incorreta
Classifica a vulnerabilidade como Broken Function Level Authorization (BFLA), afirmando que o endpoint não restringe quais funções podem ser executadas. Isso é incorreto: BFLA ocorre quando o usuário executa funções/ações que não deveria (como deletar, aprovar, configurar). No cenário, o usuário acessa um objeto (documento) que não deveria — isso é BOLA, não BFLA. A distinção é clara: BOLA protege o acesso ao objeto; BFLA protege o acesso à funcionalidade.
Gabarito: letra D — a vulnerabilidade é Broken Object Level Authorization (BOLA), pois o sistema não valida se o usuário autenticado tem permissão para acessar o objeto identificado por {documentId}.