pentest api-security vault aws ssm okta idor bola appsec
Vault API — Test Cases
Organized test ideas and checklists for the Vault API engagement. Track execution in Vault API - Evidence Log; promote confirmed issues to Vault API - Findings.
Authentication
- Okta enforcement — is every endpoint protected?
- Bearer token validation — signature, issuer, audience, binding
- Token expiration and refresh behavior
- Replay — can a captured token be reused?
- Token leakage — responses, logs, referrer headers, client-side storage
- Unauthenticated access attempts on all endpoints
Authorization / BOLA / IDOR
- Cross-team access — Team A user requesting Team B secrets
- Object-level access control — per-secret / per-resource enforcement
- Resource ID manipulation — swap IDs in path, body, or query
- Team ID manipulation — client-supplied vs server-derived Team ID
- Application ID manipulation
- Parameter path / name manipulation
Important
Core question: Is Team ID trusted from the request, or derived from authenticated identity? See Vault API - Kickoff Questions.
Team Isolation
- Team A vs Team B — horizontal privilege escalation
- Identity-to-team association — server-side enforcement?
- Multi-team identity — are boundaries maintained per team?
- Enumeration — can one team list another team’s resources?
Function-Level Authorization
Test each operation independently per role/team:
- Read
- Create
- Update
- Delete
- Rotate
- Admin / management functionality
Tip
A user authorized to read Team A secrets must not implicitly gain delete or rotate access unless explicitly granted.
- Can a lower-privileged operation (read) be chained into a higher-privileged one (delete/rotate)?
Secret Handling
Check for leakage through:
- API responses (values, partial values, hints)
- Error messages and stack traces
- Application and infrastructure logs
- Debug or verbose modes
- Metadata fields (timestamps, owners, paths)
- Caching layers (CDN, proxy, client cache headers)
Business Logic
- Abuse of legitimate flows (e.g., create-then-read across teams)
- Replay of state-changing requests
- Chaining operations to bypass checks
- Workflow bypass — skipping required steps in secret lifecycle
Input Validation
- IDs — integer, UUID, sequential, predictable
- Parameter names and paths — traversal, namespace escape
- Metadata fields — injection or override
- Structured input — JSON fields that influence authorization
Rate / Resource Controls
- Enumeration — listing secrets, teams, or applications
- Excessive requests — bulk retrieval
- Resource consumption — large payloads, rotation storms
- Rate limits (if any — see Vault API - Kickoff Questions)
Error Handling
- Sensitive data in error responses
- Verbose errors exposing internal paths or IDs
- Behavior when authentication succeeds but authorization should fail
Logging / Audit
- Are access attempts logged with identity, team, and resource?
- Do failed authorization attempts generate alerts?
- Where are security/audit logs available? (see Vault API - Kickoff Questions)
AWS Permission Boundary
- Least privilege — does the backend role exceed what Vault should need?
- SSM resource scoping — path-level IAM restrictions
- Impact assessment — what happens if Vault authorization is bypassed?
- What does the Vault backend AWS role have access to?
See Vault API - Architecture > AWS SSM Parameter Store.
Environment Separation
- Test, Staging, Production — distinct endpoints, credentials, data
- Identity crossover — can a staging token reach production?
- Data crossover — production secrets in non-production environments
- Permission crossover — broader IAM in lower environments
- Are tokens bound to environment, or reusable across environments?
Key Questions (Testing Checklist)
Use during active testing; unresolved items → Vault API - Kickoff Questions.
- Who can access which secrets?
- Is Team ID trusted from the request, or derived from authenticated identity?
- Can one team enumerate another team’s resources?
- Are read, write, delete, and rotate permissions independently enforced?
- What does the Vault backend AWS role have access to?
- Can paths or identifiers escape intended namespaces?
- Are secrets exposed in errors, logs, or metadata?
- Are Test, Staging, and Production isolated?
- Are sensitive actions audited?