APPLICATION SECURITY

IDOR: Você não deveria estar vendo isso

Lucas Veiga - CEO 05 de Julho, 2026 6 min de leitura

Imagine acessar o painel de um banco ou sistema corporativo e, ao alterar um único dígito no endereço do seu navegador, visualizar o extrato financeiro, faturas ou dados sensíveis de outra empresa. Isso é o IDOR (Insecure Direct Object Reference).

O que é IDOR na prática?

O IDOR ocorre quando um aplicativo expõe uma referência direta a um objeto de banco de dados interno ou arquivo, permitindo que um usuário manipule essa referência para acessar outros objetos sem a devida autorização. O OWASP categoriza essa falha sob o grupo de Broken Access Control (Quebra de Controle de Acesso) e, no contexto de APIs, é descrita como BOLA (Broken Object Level Authorization).

Essa vulnerabilidade reside unicamente na lógica de negócios implementada nos servidores. O sistema aceita a requisição, localiza o objeto correspondente ao ID informado e o entrega ao cliente sem validar se o usuário autenticado possui direitos legítimos sobre aquele recurso.

Cenário de Ataque Científico

Imagine uma API de faturamento que retorna PDFs de faturas de clientes através da seguinte chamada:

GET /api/v1/faturas/visualizar?id=10042 HTTP/1.1
Host: api.empresa.com.br
Authorization: Bearer jwt_token_usuario_A

Se o atacante, agindo como Usuário A, alterar o parâmetro id de 10042 para 10041 ou 10043, e a API responder com o arquivo PDF da fatura do Usuário B, a vulnerabilidade está caracterizada. O servidor realizou a busca baseando-se estritamente na chave primária direta do registro, sem checar a sessão do token JWT contra a propriedade do ID.

Por que essa falha é tão comum?

  • Superestimar Frameworks: Desenvolvedores assumem que filtros globais de autenticação (como checar se o token JWT é válido) são suficientes para a segurança da aplicação inteira, esquecendo-se da autorização em nível de registro.
  • Facilidade de Exploração: Não exige ferramentas complexas; qualquer script simples de automação de loop pode iterar IDs sequenciais e exfiltrar bancos de dados inteiros em minutos.
  • Dificuldade de Detecção por Scanners: Scanners automáticos de vulnerabilidade (DAST) raramente detectam IDORs, pois eles exigem o entendimento da regra de negócio (possuir dois tokens válidos de níveis de acesso iguais e testar recursos cruzados).

Estratégias de Mitigação Corporativa

Para anular o risco de IDOR em novos desenvolvimentos ou sistemas legados, a engenharia de software deve adotar duas abordagens fundamentais:

1. Controle de Acesso baseado no Usuário Logado

Nunca confie em IDs enviados na requisição para determinar a posse do recurso. Use o identificador do usuário extraído de forma segura da sessão ou token criptográfico validado no servidor para realizar consultas como:

SELECT * FROM faturas WHERE id = ? AND cliente_id = ?

2. Identificadores Não-Previsíveis (UUIDv4)

Substitua chaves sequenciais e previsíveis (como inteiros incrementais 1, 2, 3...) por UUIDs versão 4 (Universally Unique Identifier). Embora o UUID não previna o IDOR de forma isolada se o controle de acesso for falho, ele impossibilita o ataque de força bruta por adivinhação.

Conclusão

Garantir o controle de acesso estrito em nível de objeto (BOLA/IDOR) é um dos pilares de um desenvolvimento seguro. A ByteAbyss apoia organizações em auditorias de código-fonte (SAST) e testes manuais de penetração focados na validação lógica de negócios para assegurar a inviolabilidade de seus dados e sistemas críticos.