Skip to content

Pen-test schedule: claim & authz ​

Process for a periodic adversarial review of LivePane claim pairing and authorization. This is a manual / process schedule, not an automated test suite. Closing the documentation ticket does not require running a live pen test — it only requires this schedule and scope to exist and stay discoverable.

Cadence ​

SettingValue
CadenceQuarterly (once per calendar quarter), plus an extra pass after material claim/authz design changes
OwnerTBD — security owner (placeholder; assign a named person or role before the first scheduled run)
Trigger (ad-hoc)Large changes to claim lifecycle, machine tokens, WorkspaceAccess / PaneAccess, invites/roles, or capability catalog surfaces

Record the planned window (e.g. “Q3 2026”) and owner in the team calendar or security runbook when the placeholder is filled.

Scope (in) ​

Adversarial review should exercise positive and negative authz: authorized actors succeed; unauthorized actors get 401/403/404 as designed (no silent success, no cross-tenant leak).

Claim start / complete ​

FocusWhat to exercise
Claim startAgent (or unauthenticated caller) starts claim; codes are short-lived; cannot mint usable machine identity without owner confirm
Claim complete / confirmOnly workspace owner can confirm; non-owners and outsiders rejected; expired / replayed codes fail closed
Claim complete (agent)Completing with a valid code yields machine credentials only for the intended workspace/machine; no cross-workspace bind

See product flow: Claim a machine.

Machine-token auth ​

FocusWhat to exercise
Heartbeat / agent APIMachine (device) token authenticates agent heartbeats and command paths; user SPA/PAT cannot impersonate a machine without that secret
Token rotation / unclaimAfter unclaim or token invalidation, old machine credentials stop working
ScopeMachine token cannot act as a user session or mint broader PATs

WorkspaceAccess / PaneAccess ​

FocusWhat to exercise
WorkspaceAccessMembership, owner, and create-grant checks are the only choke for workspace authz (HTTP controllers and capability authorize()). Non-members cannot list or mutate workspace resources
PaneAccessPane control / watch rules (controller, invitees, create-grant) hold under direct ID probes and capability invokes
DriftSame decision for HTTP vs capability catalog for the same action (no “works on one surface only” bypass)

Invite / role paths ​

FocusWhat to exercise
Workspace invitationsInvite, accept, revoke; role after accept matches intended membership; revoked invites unusable
Create grantMembers without create grant cannot create panes / drive freeform agent work; owners can grant and revoke
Pane invitesInvitees get intended watch/control only; no workspace-wide escalation from a single pane invite

Capability catalog surfaces ​

FocusWhat to exercise
SurfacesAuthz on http, mcp, cli, and agent catalog paths for claim-adjacent and workspace/pane capabilities
PAT profilesScoped developer PATs cannot exceed profile abilities; privileged / system capabilities stay off product mounts
Catalog parityNo sensitive capability reachable without matching authorize rules (see MCP & CLI)

Scope (out) ​

  • Full automated red-team suite in CI (this doc is process only)
  • Generic web/app XSS/CSRF beyond claim/authz impact (see Session security)
  • Full MFA product or path-allowlist product implementation (see Agent residual risk)
  • Non-authz performance or UX reviews

Method (lightweight) ​

Not a fixed vendor SOW. Minimum bar for each scheduled run:

  1. Threat notes — short list of abuse cases for claim start/complete, machine token, WorkspaceAccess/PaneAccess, invites, catalog.
  2. Manual adversarial checks — scripted or hand-held requests against staging (or a dedicated env): wrong role, wrong workspace, expired claim code, stolen-looking machine token, capability invoke without membership.
  3. Code path skim — confirm new endpoints/caps still call WorkspaceAccess / PaneAccess (or claim domain authorities) rather than ad-hoc membership queries.
  4. Findings triage — severity, owner, ticket; fix or accept risk with rationale.

Automated unit/feature tests remain the day-to-day regression net; this quarterly pass is for authz design gaps and dual-surface drift that tests may miss.

Evidence to keep ​

After each run, retain enough to prove the review happened and what was found. Prefer a private security store or issue tracker — not production secrets in this docs package.

ArtifactPurpose
Date + envWhen and where (staging URL / build id)
Owner / participantsWho ran the review
Scope checklistClaim start/complete, machine token, WorkspaceAccess/PaneAccess, invites/roles, capability surfaces — checked off
FindingsID, severity, repro summary, status (open / fixed / accepted)
Follow-up ticketsLinks to issues for remediations
AttestationOne-line “Q* YYYY pen-test claim+authz complete” in calendar or security log

Do not commit live claim codes, machine tokens, SPA tokens, or production credentials into the repo.

What this page does not claim ​

  • No live pen test is required to publish or “complete” this documentation page.
  • No automated pen-test suite is shipped or mandated by this page.
  • No guarantee that a quarterly pass finds every bug — it is a scheduled adversarial review with a fixed scope checklist.
  • Owner is a placeholder until a named security owner is assigned.