Threat Model

This repository demonstrates how an adapter asks the Zero Trust Control Plane for authorization before executing a sensitive action. The threat model is intentionally narrow so the demo remains honest and testable.

ZT-Infra is the adapter-contract and audit-envelope layer. It is not the identity provider, policy engine, sandbox, or SIEM.

Scope

ZT-Infra protects against unauthorized tool calls.

In this public starter repository, that means:

Out Of Scope

ZT-Infra does not prevent LLM prompt injection. Prompt injection prevention is the application's responsibility.

Also out of scope for this starter repository:

Assets

The important assets are:

Trust Boundaries

Agent or app code
  -> adapter SDK
  -> Zero Trust Control Plane
  -> policy decision
  -> execution broker or downstream tool

The control plane is the policy boundary. The adapter must not execute the protected action until it receives allow.

For the local quickstart, the mock control plane is a developer convenience. It demonstrates request shape and fail-closed behavior, but it does not provide real cryptographic custody.

Threats And Mitigations

ThreatMitigation
Agent attempts unauthorized tool callDeny-by-default policy and guardedCall(...) skip execution on deny.
Unknown transient agent invokes a protected actionControl plane rejects unregistered actor values.
Adapter bypasses policy checkContract and tests require policy decision before execution; broker contributions must use guardedCall(...).
Dangerous action appears in demoDeny rule blocks aws.ec2.terminate_instances by default.
Audit record is edited locallyHash chain makes edits detectable when compared with the expected current hash and signature.
Audit signature is forged in local demoLocal demo labels signatures as MOCK_ECDSA_SHA_256; production must use KMS-backed signatures.
Control plane unavailableAdapter fails closed and skips protected execution.
Overbroad policy allows too muchABAC examples document least-privilege policy by actor, action, resource, environment, and approval context.
Prompt injection tells an agent to call a dangerous toolControl plane can deny the resulting tool call, but detecting prompt injection remains the application's responsibility.
Approved action performs harmful logicZT-Infra validates authorization, not business correctness of the approved function.
Approved action tries to exceed runtime permissionsExecution containment belongs to the broker layer. The Nono broker can map allowed actions to kernel-enforced Landlock or Seatbelt constraints.

Security Invariants

Adapter examples should preserve these invariants:

Residual Risk

This starter repository is not a production control plane. It is an onboarding artifact for adapter developers. Production deployments should add: