detecting-broken-object-property-level-authorization
Ajuda seu agente a encontrar falhas em APIs que expõem ou permitem modificar dados indevidamente. Protege contra acesso a informações sensíveis.
O que ela faz
Esta ferramenta ajuda a encontrar falhas de segurança em APIs. Ela verifica se a API está mostrando informações que não deveria (como senhas ou salários) ou se permite que usuários alterem dados que não deveriam ter acesso, como mudar o próprio nível de permissão para administrador.
Quando usar
- ✓Ao investigar um problema de segurança em um aplicativo.
- ✓Ao criar testes para garantir que uma API é segura.
- ✓Quando você suspeita que dados sensíveis estão sendo expostos indevidamente.
Exemplo do que pedir para a IA
“Verifique se a API de usuários expõe campos como 'salário' ou 'senha' nas respostas.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A ferramenta compara os dados que a API retorna com o que é esperado. Ela também tenta enviar dados extras ou modificados para ver se a API aceita alterações indevidas em campos sensíveis.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill detecting-broken-object-property-level-authorizationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/detecting-broken-object-property-level-authorization/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Detecção de Autorização Quebrada em Nível de Propriedade de Objeto
Visão Geral
Autorização Quebrada em Nível de Propriedade de Objeto (BOPLA), classificada como API3:2023 no OWASP API Security Top 10, combina duas classes de vulnerabilidade relacionadas: Exposição Excessiva de Dados (API retornando mais dados do que o necessário) e Atribuição em Massa (API aceitando mais dados do que o pretendido). Mesmo quando as APIs aplicam a autorização em nível de objeto corretamente, elas podem falhar em controlar quais propriedades específicas de um objeto um usuário pode ler ou modificar. Atacantes exploram isso lendo propriedades sensíveis de respostas da API ou injetando propriedades adicionais em corpos de requisição para modificar campos aos quais não deveriam ter acesso.
Quando Usar
- Ao investigar incidentes de segurança que exigem a detecção de autorização quebrada em nível de propriedade de objeto
- Ao construir regras de detecção ou consultas de caça a ameaças para este domínio
- Quando analistas de SOC precisam de procedimentos estruturados para este tipo de análise
- Ao validar a cobertura de monitoramento de segurança para técnicas de ataque relacionadas
Pré-requisitos
- API alvo com endpoints que retornam ou aceitam dados de objeto
- Documentação ou esquema da API (especificação OpenAPI preferida)
- Burp Suite ou Postman para manipulação de requisições de API
- Múltiplas contas de usuário com diferentes níveis de privilégio
- Python 3.8+ com a biblioteca requests para testes automatizados
- Autorização para realizar testes de segurança
Padrões de Vulnerabilidade
Exposição Excessiva de Dados
A API retorna propriedades de objeto que o cliente não precisa:
// GET /api/v1/users/123
// Response includes sensitive fields the UI doesn't display:
{
"id": 123,
"username": "john_doe",
"email": "john@example.com",
"name": "John Doe",
"ssn": "123-45-6789", // Sensitive - not needed by UI
"salary": 95000, // Sensitive - not needed by UI
"internal_notes": "VIP client", // Internal - should not be exposed
"password_hash": "$2b$12...", // Critical - never expose
"role": "admin", // May enable privilege discovery
"created_by": "system_admin", // Internal metadata
"credit_card_last4": "4242" // PCI compliance violation
}
Atribuição em Massa
A API vincula dados fornecidos pelo cliente a propriedades internas do objeto sem filtragem:
// Normal user update request
PUT /api/v1/users/123
Content-Type: application/json
{
"name": "John Updated",
"email": "new@example.com",
"role": "admin", // Attacker-injected: privilege escalation
"is_verified": true, // Attacker-injected: bypass verification
"discount_rate": 100, // Attacker-injected: business logic abuse
"account_balance": 999999 // Attacker-injected: financial fraud
}
Metodologia de Teste
#!/usr/bin/env python3
"""Scanner de Vulnerabilidade BOPLA
Testa APIs para Autorização Quebrada em Nível de Propriedade de Objeto,
incluindo Exposição Excessiva de Dados e Atribuição em Massa.
"""
import requests
import json
import sys
from typing import Dict, List, Optional, Set
from dataclasses import dataclass, field
from copy import deepcopy
@dataclass
class BOPLAFinding:
endpoint: str
method: str
vulnerability_type: str # "excessive_exposure" ou "mass_assignment"
severity: str
property_name: str
details: str
class BOPLAScanner:
SENSITIVE_PROPERTY_PATTERNS = {
"critical": [
"password", "password_hash", "secret", "token", "api_key",
"private_key", "secret_key", "access_token", "refresh_token",
],
"high": [
"ssn", "social_security", "tax_id", "credit_card", "card_number",
"cvv", "bank_account", "routing_number",
],
"medium": [
"salary", "income", "internal_notes", "admin_notes",
"created_by", "modified_by", "ip_address", "session_id",
"role", "permissions", "is_admin", "is_superuser", "privilege",
],
"low": [
"phone", "address", "date_of_birth", "dob", "age",
"gender", "ethnicity", "religion",
]
}
MASS_ASSIGNMENT_FIELDS = [
("role", "admin"),
("is_admin", True),
("is_verified", True),
("is_active", True),
("email_verified", True),
("account_type", "premium"),
("discount_rate", 100),
("credit_limit", 999999),
("permissions", ["admin", "write", "delete"]),
("account_balance", 999999),
("subscription_tier", "enterprise"),
("rate_limit", 999999),
]
…
Perguntas frequentes
O que é 'Broken Object Property Level Authorization' (BOPLA)?
É um tipo de falha de segurança onde a API não controla corretamente quais partes (propriedades) de um objeto (como um usuário ou um pedido) um usuário pode ver ou modificar. Isso pode levar à exposição de dados sensíveis ou à alteração indevida de informações.
Quais são os dois tipos de problemas que essa ferramenta detecta?
Ela detecta 'Exposição Excessiva de Dados' (a API mostra mais informações do que o necessário) e 'Atribuição em Massa' (a API aceita dados para campos que não deveria, permitindo alterações indevidas).
Preciso ser um programador experiente para usar isso?
Não necessariamente. A ferramenta é projetada para ajudar a identificar problemas de segurança. No entanto, para configurar e executar os testes automatizados, pode ser útil ter algum conhecimento básico de programação e ferramentas como Burp Suite ou Postman.
Detalhes
Descrição original do autor
Detect and test for OWASP API3:2023 Broken Object Property Level Authorization (BOPLA), covering excessive data exposure in API responses and mass assignment via injected request-body properties. Use when reviewing API responses/requests for over-exposed or over-writable object fields, or building detection rules and test cases for property-level authorization gaps that object-level checks miss.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5643
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC