PermDock
Security

OWASP API Security Top 10

How PermDock features map to the OWASP API Security Top 10 2023, entry by entry, and which entries other layers own.

The OWASP API Security Top 10 2023 lists the most common ways HTTP APIs fail. Three of its entries are authorization failures at the object, property and function level, which is the decision PermDock makes. This page maps PermDock features to each entry so a team, or an agent auditing a team's code, can check coverage item by item.

Scope of this mapping

PermDock decides authorization in process. Authentication is upstream (authentication): PermDock reads a verified subject and never verifies a password or a session. Server-side request forgery, gateway configuration and the inventory of deployed hosts belong to the application, the network and the platform. For those entries this page names PermDock's part and says where the primary control lives.

Mapping table

IDNamePermDock mitigation
API1Broken Object Level AuthorizationEvery instance action is decided on the loaded row: protect with a data loader, where conditions such as { authorId: principal.id }, and a loader that returns null or throws denies. permdock.where narrows list queries before they run, and generated RLS repeats the rule in Postgres (policies).
API2Broken AuthenticationNot PermDock's control. Subjects come only from verified tokens, sessions or API keys; core never reads a subject from a body, a query string or an unsigned header, and anything it cannot verify is the anonymous subject (threat model).
API3Broken Object Property Level Authorizationfields on a grant lists the properties a subject may read or write; pick redacts responses and --fields views redacts in Postgres. Boundary validation parses each body against the resource schema, so an unknown property never reaches a rule (field-level grants).
API4Unrestricted Resource Consumptionlimit grants cap how often a subject exercises a permission, enforced by a server-owned LimitStore; HTTP adapters answer 429 with Retry-After and the RateLimit fields (limits, RateLimit headers). Request size and timeouts stay with the server.
API5Broken Function Level AuthorizationOne permission per action, decided on every route by protect; an admin action is a permission like any other, never a path prefix. Deny overrides allow, and permdock scan lists role checks written outside PermDock (scan).
API6Unrestricted Access to Sensitive Business Flowsapproval: 'human' puts a person in front of a sensitive action, with a token bound to principal, actor, permission and arguments; limit grants cap the rate of a flow such as purchases or invitations (approvals). Bot detection stays with the edge.
API7Server Side Request ForgeryNot PermDock's control. Conditions are a JSON AST with no network access, and PermDock never fetches a URL from a decision input.
API8Security MisconfigurationFail-closed defaults: an unknown permission, a thrown loader or a down decision point denies. permdock doctor reports misconfigurations, and HTTP refusals are RFC 9457 Problem Details (doctor, Problem Details).
API9Improper Inventory ManagementThe catalog lists every permission, and permdock openapi writes x-permdock-permissions and the security requirements on each operation. The shipped rulesets/permdock.yaml makes a linter flag an operation with a permission and no security (OpenAPI). Host and version inventory stays with the platform.
API10Unsafe Consumption of APIsData PermDock reads from elsewhere is validated before use: client refresh responses, snapshots and hosted policy documents are parsed as data and never executed, and a remote decision point is consumed through permdock/pdp, which denies on any unknown or invalid response (remote PDP).

Using this page in an audit

Check API1, API3 and API5 per route: each route calls protect, each instance action has a data loader, and each response that carries restricted properties goes through pick. permdock doctor and permdock scan cover the parts a tool can find; the rest is a code review against the table.

Sources

Last updated on

On this page