Pular para o conteúdo principal

Questão de Segurança da Informação — Ataques a Aplicações Web (XSS, CSRF, SQL Injection etc.) — VUNESP 2023

Segurança da InformaçãoAtaques a Aplicações Web (XSS, CSRF, SQL Injection etc.)
Código
vu196983
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )

Em uma API que apresenta a vulnerabilidade conhecida como BOLA (Broken Object Level Authorization), há o risco de que

  1. Aapesar de corretamente autenticado, um solicitante de requisições à API possa obter dados relacionados a objetos ou recursos aos quais não deveria ter acesso.
  2. Ba segurança do protocolo HTTPS seja quebrada, sendo possível que o atacante decripte requisições e respostas obtidas via monitoramento da comunicação por sniffer de rede.
  3. Ccódigo SQL malicioso seja injetado no banco de dados da aplicação por meio de formulários web que não são devidamente validados.
  4. Dcódigo JavaScript malicioso, introduzido por um atacante, possa ser executado no navegador de usuários que acessam o front-end web da aplicação.
  5. Eocorra estouro de pilha na aplicação que provê o serviço de back-end devido ao excesso de chamadas recursivas à mesma função.
Revelar gabarito e comentário

GabaritoA — apesar de corretamente autenticado, um solicitante de requisições à API possa obter dados relacionados a objetos ou recursos aos quais não deveria ter acesso.

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

Gabarito: letra A. A vulnerabilidade BOLA (Broken Object Level Authorization) ocorre quando a API não valida se o usuário autenticado tem permissão para acessar o objeto ou recurso específico que está solicitando — ou seja, um solicitante corretamente autenticado pode obter dados de objetos aos quais não deveria ter acesso. Essa é a definição central do BOLA, também conhecido como IDOR (Insecure Direct Object Reference), e é exatamente o que a alternativa A descreve.

O BOLA é uma falha de autorização em nível de objeto, que se manifesta quando a aplicação expõe referências diretas a objetos (como IDs numéricos em URLs ou corpos de requisição) e não verifica se o usuário logado é o dono ou tem permissão sobre aquele objeto específico. Por exemplo, em uma API de e-commerce, um usuário autenticado pode alterar o ID do pedido na requisição (de /pedidos/123 para /pedidos/456) e, se a API não validar a propriedade, ele consegue visualizar ou modificar o pedido de outro usuário. O problema não está na autenticação — o usuário está devidamente autenticado — mas sim na autorização, que não é verificada em nível de objeto.

Essa vulnerabilidade é uma espécie do gênero Broken Access Control (BAC), que é a categoria mais ampla de falhas de controle de acesso. Enquanto o BAC se preocupa com a pergunta "o usuário X tem permissão para acessar a funcionalidade Y?", o BOLA se concentra em "o usuário X tem permissão para acessar o objeto Z específico?". O BOLA ganhou destaque no contexto de APIs a ponto de se tornar uma categoria própria no OWASP API Security Top 10 (API1), enquanto o BAC é o A01 no OWASP Top 10 para aplicações web.

A distinção entre BOLA e outros ataques é crucial: o BOLA não envolve quebra de criptografia, injeção de código, execução de scripts ou estouro de memória. Ele explora exclusivamente a ausência de verificação de autorização em nível de objeto. A prevenção envolve implementar verificações de autorização em cada acesso a objeto, usar identificadores não previsíveis (como UUIDs), e aplicar o princípio do menor privilégio.

Guarde a fronteira entre BOLA (acesso a objetos específicos sem autorização) e os demais ataques (injeção, XSS, buffer overflow, quebra de criptografia): é exatamente nessa distinção que as alternativas se dividem.

BOLA (Broken Object Level Authorization)
  • 1Falha de autorização em nível de objeto
    • Usuário corretamente autenticado
    • Acessa objeto sem permissão
  • 2Também chamado IDOR
  • 3Categoria própria no OWASP API Security Top 10 (API1)
  • 4Prevenção
    • Verificação de autorização por objeto
    • Identificadores não previsíveis (UUID)
    • Menor privilégio
  • 5Distinção de outros ataques
    • SQLi: injeção de código
    • XSS: script no navegador
    • Buffer overflow: estouro de memória
    • MITM: quebra de criptografia
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa descreve com precisão o BOLA: um solicitante corretamente autenticado (a autenticação funcionou) obtém dados de objetos ou recursos aos quais não deveria ter acesso (a autorização falhou). É a definição literal da vulnerabilidade — o usuário está autenticado, mas a API não verifica se ele tem permissão para acessar aquele objeto específico. O termo-chave é "apesar de corretamente autenticado", que diferencia o BOLA de falhas de autenticação.

Alternativa B — ❌ Incorreta

Descreve a quebra do protocolo HTTPS e a decriptação de tráfego via sniffer de rede. Isso se refere a ataques de interceptação de comunicação, como o ataque man-in-the-middle (MITM) ou exploração de falhas criptográficas — não tem relação com BOLA, que é uma falha de autorização em nível de aplicação, não de transporte. O BOLA não depende de quebrar criptografia; o atacante usa a própria API legitimamente, apenas com IDs de objetos que não lhe pertencem.

Alternativa C — ❌ Incorreta

Descreve o SQL Injection (SQLi), ataque em que código SQL malicioso é injetado no banco de dados por meio de formulários web não validados. É uma vulnerabilidade de injeção, classificada como A03 no OWASP Top 10, e não tem relação com BOLA. Enquanto o SQLi explora a falta de validação de entrada para manipular consultas ao banco, o BOLA explora a falta de verificação de autorização sobre objetos específicos.

Alternativa D — ❌ Incorreta

Descreve o Cross-Site Scripting (XSS), ataque em que código JavaScript malicioso é executado no navegador de usuários que acessam o front-end. O XSS explora a confiança do navegador no site para executar scripts maliciosos, podendo roubar cookies, tokens de sessão e outras informações. É uma vulnerabilidade de injeção de scripts no lado do cliente, completamente distinta do BOLA, que é uma falha de autorização no lado do servidor.

Alternativa E — ❌ Incorreta

Descreve o estouro de pilha (stack overflow), que ocorre quando há excesso de chamadas recursivas à mesma função, causando esgotamento da memória de pilha. Isso é um tipo de buffer overflow, uma falha de programação que pode gerar indisponibilidade do serviço. Não tem relação com BOLA, que é uma falha de autorização em nível de objeto, não um problema de memória ou recursão.

NÃO CAIA NESSA!

A banca apresenta cinco vulnerabilidades reais de segurança (BOLA, quebra de HTTPS, SQLi, XSS e buffer overflow) e pede para identificar qual é o BOLA. O candidato que conhece apenas os ataques mais famosos (SQLi, XSS) tende a marcar uma dessas alternativas, mas o BOLA é uma falha de autorização — o usuário está autenticado, mas acessa objetos que não deveria. A palavra-chave é "apesar de corretamente autenticado": se a autenticação funcionou e mesmo assim há acesso indevido, o problema é de autorização, não de autenticação, criptografia ou injeção.

PEGA ESSA DICA!

Para diferenciar BOLA de outros ataques, faça a pergunta: "o que exatamente foi explorado?" Se foi a ausência de verificação de permissão sobre um objeto específico (IDOR), é BOLA. Se foi injeção de código, é SQLi/XSS. Se foi quebra de criptografia, é ataque de interceptação. Se foi estouro de memória, é buffer overflow. Memorize a tríade: BOLA = autorização em nível de objeto; BAC = autorização em nível de funcionalidade; autenticação = quem é o usuário.

Gabarito: letra A

Link permanente: /questoes/vu196983