The standard moved v0.4 -> v0.6. All four findings from our v0.4 review were adopted in v0.5, and v0.6 went further on two of them. §11 now requires a machine-readable declaration — prose cannot distinguish a declaration from a transcribed review. We had none. Added layer.yaml (form adapted from ops-warden's reference implementation), scripts/check_layer_conformance.py, and tests/test_layer_conformance.py. The check makes our central claim mechanical rather than asserted: no direct Tooling client in src/. The test exercises the negative case on a synthetic tree, so it fails if the checker goes blind. pyyaml is added as a DEV dependency only — `dependencies = []` is load-bearing for the §5 claim and stays empty. Adopted from v0.6: - containment is no longer ours (§9.2). Actuation is an Engine concept, unowned and held at zero; kings-guard proposes containment and never performs it. The register row is now a dependency, not our gap. - observation is scoped to Staff-reachable sources, with identity and secret observation pending — our finding 1, adopted near-verbatim. - access-engine DECLINED the authentication-evidence gap; owner is now the identity layer plus audit-core, reproposed and unassented. - §11 blocked-clean recorded, with the rule that it must not rank below conforming — our finding 2. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UEtvmYUBP2fDtirJGWn5MW Assistant: claude-code Assistant-Model: opus Assistant-Process: 4014379@bnt-lap001 Assistant-Session: 4af9e20f-1768-4afc-951b-b507784e382b
274 lines
12 KiB
Markdown
274 lines
12 KiB
Markdown
# INTENT
|
|
|
|
> **Layer: Staff.** *(NetKingdom Security Layer Model — current version
|
|
> `net-kingdom/canon/standards/security-layer-model_v0.6.md`, §4 catalog;
|
|
> ratified by `gate-house/decisions/decisions.md` GH-DEC-2026-001; assented here
|
|
> by `decisions/decisions.md` KG-DEC-2026-001 on 2026-08-28, against v0.1.)*
|
|
>
|
|
> **The machine-readable declaration required by §11 is `layer.yaml`**, checked
|
|
> by `scripts/check_layer_conformance.py` and tested in
|
|
> `tests/test_layer_conformance.py`. Prose cannot distinguish a declaration from
|
|
> a transcribed review, so the file is authoritative and this note is commentary.
|
|
>
|
|
> **Catalog entry (v0.6 §4):** adaptive defence and judgment; observation of
|
|
> Staff-reachable sources — identity and secret observation **pending**;
|
|
> **proposes** containment, which it does not own.
|
|
>
|
|
> kings-guard is **interactive and non-deterministic**. Acting at runtime does
|
|
> not make a repository an Engine; being agentic makes it Staff.
|
|
>
|
|
> **The binding rule (§5): Staff never touches Tooling directly. It acts only
|
|
> through Engine APIs.** kings-guard holds no direct client for a Tooling-layer
|
|
> system — no database connection, no OpenBao client, no cluster mutation, and
|
|
> no §5.1 diagnostic read or §5.2 conduit either. Under §11 that is
|
|
> **blocked-clean**: the capabilities needing such a contact sit at zero rather
|
|
> than being taken locally, and §11 rules that this MUST NOT rank below
|
|
> conforming.
|
|
>
|
|
> **Containment is not ours (§9.2).** v0.6 moved it off this repository
|
|
> entirely: reduce authority, require step-up, and isolate a workload are
|
|
> authority-changing operations, so they are rendered by an Engine and enforced
|
|
> by a PEP. **kings-guard proposes containment; it never performs it.** The
|
|
> actuation surface is unowned and held at zero estate-wide, so no argument
|
|
> anywhere may assume containment is automatic.
|
|
>
|
|
> **Posture contract.** kings-guard **publishes** posture; `gate-house` defines
|
|
> its authority meaning; `access-engine` renders it. Posture is not a privilege
|
|
> source. The asymmetry is absolute: kings-guard may **reduce** authority,
|
|
> **require step-up**, or **request containment**; it MUST NOT probabilistically
|
|
> manufacture additional authority. Every effector request carries an explicit
|
|
> authority boundary. Under incomplete observation this asymmetry is what bounds
|
|
> the damage: a suppressed event can only cost a tightening that should have
|
|
> happened, never manufacture authority through us (§8, §9.6).
|
|
|
|
> This file captures **why this repository exists**, the **direction it is
|
|
> moving toward**, and the **kind of system it is meant to become**.
|
|
> It is intentionally **aspirational and stable**, not a description of
|
|
> current implementation.
|
|
|
|
---
|
|
|
|
## One-liner
|
|
|
|
**Recursive adaptive defence for complex cloud environments: it declares
|
|
healthy intent, detects harmful deviation, requests bounded containment through
|
|
the owning engines, helps restore known-good operation, and retains governed
|
|
defensive memory.**
|
|
|
|
*"Control plane" is Engine-layer vocabulary (layer model §8) and is no longer
|
|
used here for kings-guard. kings-guard judges and proposes; engines decide and
|
|
act.*
|
|
|
|
---
|
|
|
|
## Why This Exists
|
|
|
|
Modern cloud environments are too dynamic to protect through identity, policy,
|
|
and perimeter rules alone.
|
|
|
|
Even when authentication, authorization, and secret custody are well designed,
|
|
the environment still changes continuously:
|
|
|
|
- workloads are rebuilt and redeployed;
|
|
- dependencies shift;
|
|
- operators, agents, and automations act with real authority;
|
|
- tenants share substrates while requiring strong isolation;
|
|
- legitimate identities can become compromised;
|
|
- harmful behavior can emerge from software that still looks formally allowed.
|
|
|
|
Security therefore needs a layer that does more than authenticate and allow.
|
|
It must continuously compare **declared healthy operation** against **observed
|
|
behavior**, decide whether the current state is acceptable, and coordinate
|
|
bounded response when it is not.
|
|
|
|
This repository exists to provide that adaptive layer.
|
|
|
|
---
|
|
|
|
## The Mission
|
|
|
|
> *Where we are going.*
|
|
|
|
Kings Guard aims to become a **recursive adaptive security system** for
|
|
multi-tenant, multi-operator, and agent-active environments.
|
|
|
|
It should make security an ongoing control loop:
|
|
|
|
```text
|
|
declare healthy intent
|
|
-> establish and attest identity
|
|
-> observe actual behavior
|
|
-> compare behavior with policy and intended scope
|
|
-> assess risk and confidence
|
|
-> respond within bounded authority
|
|
-> restore known-good operation
|
|
-> validate the outcome
|
|
-> retain governed security memory
|
|
```
|
|
|
|
The mature system should:
|
|
|
|
- model intended healthy operation explicitly;
|
|
- evaluate trust as temporary, scoped, and continuously reassessed;
|
|
- detect and contain disturbances near their origin;
|
|
- coordinate local and global defensive signals without collapsing tenant
|
|
boundaries;
|
|
- drive reconstitution and recovery, not only alerting;
|
|
- learn from incidents without normalizing compromise or leaking sensitive
|
|
tenant data.
|
|
|
|
---
|
|
|
|
## Responsibility Boundary
|
|
|
|
Kings Guard owns the **adaptive security assessment and response layer**.
|
|
|
|
### Kings Guard owns
|
|
|
|
- the model of healthy intent, tolerated variation, and harmful deviation;
|
|
- security phenotype assessment from observed state and behavior;
|
|
- normalized immune observations and signal contracts;
|
|
- posture assessment across compartments, subjects, and resources;
|
|
- bounded response policy for containment, inflammation, quarantine, and
|
|
reconstitution;
|
|
- recovery validation and governed immune memory;
|
|
- coordination between local autonomous defense and broader federated defense.
|
|
|
|
### Kings Guard does not own
|
|
|
|
- primary human, workload, or device identity issuance;
|
|
- login, MFA, token minting, or directory lifecycle;
|
|
- resource authorization policy administration;
|
|
- long-lived secret custody, lease issuance, or secret value delivery;
|
|
- infrastructure provisioning, workload deployment, or platform operations;
|
|
- general work coordination, task management, or live project state.
|
|
|
|
### System boundary
|
|
|
|
| Concern | Primary owner | Kings Guard responsibility |
|
|
| --- | --- | --- |
|
|
| Identity, authentication, MFA, and verified claims | `key-cape` (Tooling) | Consume identity and attestation as security inputs — **through `user-engine` / `access-engine`, never by connecting to key-cape's components**; do not replace identity. |
|
|
| Resource authorization and decision logs | `access-engine` (currently named `flex-auth`) | Contribute posture and risk context; never render or cache an authorization decision — it is the estate's only decision point (layer model §6). |
|
|
| Secret custody, delivery, leases, and rotation | OpenBao (Tooling), fronted by `secrets-engine` (Engine) | Consume secret-access evidence **through `secrets-engine`**, never through an OpenBao client; do not hold raw secret authority. |
|
|
| Operational SSH certificate issuance and access routing | `ops-warden` | Supply posture, evidence, or future response hooks; do not become the SSH issuing lane. |
|
|
| Infrastructure, runtime, and platform execution | Railiance repos and workload operators | Signal constraints, isolation, and reconstitution needs; do not own deployment mechanics. |
|
|
| Workstream and task coordination | `state-hub` | Emit non-secret evidence and integration events where appropriate; do not become a work tracker. |
|
|
|
|
#### Declared engine gaps
|
|
|
|
Capabilities kings-guard needs that no engine exposes today. Under the binding
|
|
rule these are gaps to close in the owning engine, not work to route around.
|
|
None is a standing licence to reach into Tooling.
|
|
|
|
These are **unowned capabilities**, not §5.3 declared contacts: kings-guard
|
|
makes no direct Tooling contact for any of them. v0.5 §11 added the
|
|
**blocked-clean** state for exactly this case, on kings-guard's finding, and
|
|
ruled that it MUST NOT rank below conforming.
|
|
|
|
`layer.yaml` is the authoritative machine-readable form; this table is the
|
|
human-readable view of it.
|
|
|
|
| `capability` | Needed for | `intended_owner` | `blocked_on` | `review` |
|
|
| --- | --- | --- | --- | --- |
|
|
| Authentication and assurance evidence (token assurance, attestation outcomes, authentication anomalies) exposed as an engine surface | identity-drift posture | identity layer + `audit-core` — **`access-engine` declined** (v0.6 §13); reproposed, not assented | no engine surface exists; kings-guard consumes fixtures only | 2026-11-28 |
|
|
| Secret-use evidence (lease, revocation, mount and rotation metadata) exposed as an engine surface | secret-abuse posture | `secrets-engine` | no engine surface exists; kings-guard consumes fixtures only | 2026-11-28 |
|
|
| Actuation surface — reduce authority, require step-up, isolate a workload — as a deterministic engine API carrying a decision record | containment kings-guard **proposes but does not own** | `access-engine` + runtime PEPs; not reviewed (`FLEX-DEC-2026-002`) | ruled an Engine concept held at zero (v0.6 §9.2); recorded here as a dependency, not a kings-guard gap to close | 2026-11-28 |
|
|
|
|
Until a gap closes, the corresponding posture lane stays advisory and
|
|
fixture-driven. kings-guard MUST NOT open a direct path to the Tooling system
|
|
to fill one. If diagnostic read-only observation of Tooling ever becomes
|
|
unavoidable, the layer model requires it to be declared in this file and
|
|
treated as a gap to close; **no such observation is declared today.**
|
|
|
|
---
|
|
|
|
## Design Principles
|
|
|
|
### 1. Intent before anomaly
|
|
|
|
Security should first ask whether behavior is compatible with declared healthy
|
|
operation, not merely whether it is statistically unusual.
|
|
|
|
### 2. Trust is temporary
|
|
|
|
Trust is not a permanent property of an identity, network location, or workload.
|
|
It is a time-bound judgment derived from identity, provenance, integrity,
|
|
context, and observed behavior.
|
|
|
|
### 3. Local containment first
|
|
|
|
Defensive action should happen as close as possible to the disturbed
|
|
compartment, with wider coordination only when impact crosses boundaries.
|
|
|
|
### 4. Bounded response over uncontrolled automation
|
|
|
|
Automated response must be explicitly scoped, reversible where possible, and
|
|
governed so defense does not become its own source of harm.
|
|
|
|
### 5. Recovery is part of security
|
|
|
|
Detection without reconstitution is incomplete. The system should restore
|
|
known-good operation and verify that restoration succeeded.
|
|
|
|
### 6. Memory must be governed
|
|
|
|
The system should learn from incidents, but memory must preserve tenant
|
|
confidentiality, prevent evidence poisoning, and avoid turning compromise into
|
|
"normal" behavior.
|
|
|
|
### 7. Replaceable implementations, stable contracts
|
|
|
|
Sensors, policy engines, response effectors, and deployment substrates may
|
|
change. Kings Guard should depend on stable capability contracts rather than one
|
|
mandatory product stack.
|
|
|
|
---
|
|
|
|
## What This Is
|
|
|
|
Kings Guard is:
|
|
|
|
- an adaptive defence concept and implementation home, in the Staff layer;
|
|
- a contract layer for healthy intent, observations, signals, posture, and
|
|
effectors;
|
|
- a coordination system for detection, containment, recovery, and memory;
|
|
- a reference architecture for recursive, compartment-aware cloud defense.
|
|
|
|
---
|
|
|
|
## What This Is Not
|
|
|
|
Kings Guard is not:
|
|
|
|
- an identity provider;
|
|
- an authorization registry;
|
|
- a secret store;
|
|
- a SIEM-only alerting surface;
|
|
- a generic deployment/orchestration repository;
|
|
- a justification to weaken tenant isolation in the name of global defense.
|
|
|
|
---
|
|
|
|
## Direction of Evolution
|
|
|
|
The repository should evolve through clear layers:
|
|
|
|
1. **Canonical model:** define the stable vocabulary for security genome,
|
|
phenotype, observation, signal, effector, tolerance, inflammation, and
|
|
immune memory.
|
|
2. **Assessment loop:** provide a minimal service that ingests observations,
|
|
evaluates posture against declared intent, and produces typed signals.
|
|
3. **Bounded response:** integrate with selected effectors for isolation,
|
|
throttling, revocation, or reconstitution under explicit policy.
|
|
4. **Recovery and validation:** prove that known-good restoration can be
|
|
coordinated and verified, not merely requested.
|
|
5. **Federated memory:** retain reusable defensive knowledge without exposing
|
|
tenant-confidential operational detail.
|
|
|
|
---
|
|
|
|
## Guiding Question
|
|
|
|
> **How can a cloud environment continuously distinguish healthy from harmful
|
|
> behavior, contain damage near its origin, and learn from incidents without
|
|
> centralizing too much trust or harming legitimate operation?**
|