Register kings-guard with State Hub
This commit is contained in:
parent
1075f18a1a
commit
42dfd27886
10 changed files with 3714 additions and 0 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# state-hub: track .claude/rules
|
||||||
|
# Claude Code local state (track shared rules; ignore machine-specific files)
|
||||||
|
.claude/*
|
||||||
|
!.claude/rules/
|
||||||
|
!.claude/rules/*.md
|
||||||
29
.repo-classification.yaml
Normal file
29
.repo-classification.yaml
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
repo_classification:
|
||||||
|
standard: Repo Classification Standard
|
||||||
|
version: '1.0'
|
||||||
|
classified_at: '2026-07-23'
|
||||||
|
classified_by: codex
|
||||||
|
category: product
|
||||||
|
domain: infotech
|
||||||
|
secondary_domains:
|
||||||
|
- government
|
||||||
|
capability_tags:
|
||||||
|
- access-control
|
||||||
|
- policy
|
||||||
|
- governance
|
||||||
|
- risk
|
||||||
|
- platform
|
||||||
|
- operations
|
||||||
|
business_stake:
|
||||||
|
- technology
|
||||||
|
- operations
|
||||||
|
- legal
|
||||||
|
- product
|
||||||
|
business_mechanics:
|
||||||
|
- control
|
||||||
|
- coordination
|
||||||
|
- adaptation
|
||||||
|
notes: Adaptive security assessment and bounded-response control plane for
|
||||||
|
multi-tenant cloud environments; consumes evidence from identity,
|
||||||
|
authorization, secret, and runtime systems without replacing their primary
|
||||||
|
authority.
|
||||||
222
AGENTS.md
Normal file
222
AGENTS.md
Normal file
|
|
@ -0,0 +1,222 @@
|
||||||
|
# kings-guard — Agent Instructions
|
||||||
|
|
||||||
|
## Repo Identity
|
||||||
|
|
||||||
|
**Purpose:** Adaptive immune security control plane for complex multi-tenant cloud environments.
|
||||||
|
|
||||||
|
**Domain:** infotech
|
||||||
|
**Repo slug:** kings-guard
|
||||||
|
**Topic ID:** `cee7bedf-2b48-46ef-8601-006474f2ad7a`
|
||||||
|
**Workplan prefix:** `KG-WP-`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## State Hub Integration
|
||||||
|
|
||||||
|
The Custodian State Hub tracks work across all domains. Interact via HTTP REST —
|
||||||
|
there is no MCP server for Codex agents.
|
||||||
|
|
||||||
|
| Context | URL |
|
||||||
|
|---------|-----|
|
||||||
|
| Local workstation | `http://127.0.0.1:8000` |
|
||||||
|
| Remote via tunnel | `http://127.0.0.1:18000` |
|
||||||
|
| Optional local edge relay | http://127.0.0.1:18080 |
|
||||||
|
|
||||||
|
When an operator has enabled the edge relay, set API_BASE to the relay URL.
|
||||||
|
Queueable writes return an explicit queued receipt if the central hub is
|
||||||
|
unreachable. Treat that as pending local evidence, then ask the operator to run
|
||||||
|
statehub outbox status/replay after connectivity returns.
|
||||||
|
|
||||||
|
### Orient at session start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Offline brief — works without hub connection
|
||||||
|
cat .custodian-brief.md
|
||||||
|
|
||||||
|
# Active workplans for this domain
|
||||||
|
curl -s "http://127.0.0.1:8000/workplans/?topic_id=cee7bedf-2b48-46ef-8601-006474f2ad7a&status=active" \
|
||||||
|
| python3 -m json.tool
|
||||||
|
|
||||||
|
# Check inbox
|
||||||
|
curl -s "http://127.0.0.1:8000/messages/?to_agent=kings-guard&unread_only=true" \
|
||||||
|
| python3 -m json.tool
|
||||||
|
```
|
||||||
|
|
||||||
|
Mark a message read:
|
||||||
|
```bash
|
||||||
|
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
|
||||||
|
-H "Content-Type: application/json" -d '{}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Log progress (required at session close)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -s -X POST http://127.0.0.1:8000/progress/ \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"summary": "what was done",
|
||||||
|
"event_type": "note",
|
||||||
|
"author": "codex",
|
||||||
|
"workplan_id": "<uuid>",
|
||||||
|
"task_id": "<uuid>"
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
Omit `workplan_id` / `task_id` when not applicable.
|
||||||
|
|
||||||
|
### Update task status
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"status": "progress"}'
|
||||||
|
# values: wait | todo | progress | done | cancel
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flag a task for human review
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"needs_human": true, "intervention_note": "reason"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session Protocol
|
||||||
|
|
||||||
|
**Start:**
|
||||||
|
1. `cat .custodian-brief.md` — domain goal and open workplans (offline-safe)
|
||||||
|
2. Check inbox: `GET /messages/?to_agent=kings-guard&unread_only=true`; mark read
|
||||||
|
3. Scan workplans: `ls workplans/` — note `status: ready`, `active`, or `blocked` files and open tasks
|
||||||
|
4. Check human-needed tasks: `GET /tasks/?needs_human=true`
|
||||||
|
|
||||||
|
**During work:**
|
||||||
|
- Update task statuses in workplan files as tasks progress
|
||||||
|
- Record significant decisions via `POST /decisions/`
|
||||||
|
|
||||||
|
**Close:**
|
||||||
|
1. Update workplan file task statuses to reflect progress
|
||||||
|
2. If finishing a workplan: hand off **residuals** as live work records first
|
||||||
|
(intake with `origin: residual` + `origin_ref: <WP-id>`, or a next workplan /
|
||||||
|
decision / engagement). Do not park leftovers only in prose or `SCOPE.md`.
|
||||||
|
Canon: `the-custodian/canon/standards/work-record-types_v0.1.md` § Residuals.
|
||||||
|
3. Log: `POST /progress/` with a summary of what changed (name handoff ids)
|
||||||
|
4. After workplan file changes, run:
|
||||||
|
```bash
|
||||||
|
statehub fix-consistency
|
||||||
|
```
|
||||||
|
Coding agents should run this directly; ask the operator only if the CLI or
|
||||||
|
State Hub API is unavailable. This syncs task status from files into the hub DB.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
{CREDENTIAL_ROUTING}
|
||||||
|
|
||||||
|
<!-- REPO-AGENTS-EXTENSIONS -->
|
||||||
|
<!-- Append repo-specific agent instructions below this marker.
|
||||||
|
The state-hub template sync preserves content after this line. -->
|
||||||
|
|
||||||
|
## Repo-Specific Notes
|
||||||
|
|
||||||
|
This repo is currently **docs-first**. There is no application runtime, package
|
||||||
|
manifest, or test suite yet. Do not invent build/test commands that do not
|
||||||
|
exist; add them only when the corresponding implementation lands.
|
||||||
|
|
||||||
|
## Working Set
|
||||||
|
|
||||||
|
Start with these files:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat INTENT.md
|
||||||
|
cat SCOPE.md
|
||||||
|
sed -n '1,260p' specs/NetKingdomImmuneArchitecture.md
|
||||||
|
sed -n '1,220p' history/InitialExploration.md
|
||||||
|
ls workplans/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
Current verification is structural, not runtime:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check markdown/frontmatter edits and workplan formatting
|
||||||
|
git diff --check
|
||||||
|
|
||||||
|
# Sync workplan/task state into State Hub after workplan changes
|
||||||
|
cd /home/worsch/state-hub && ./.venv/bin/statehub fix-consistency --repo kings-guard
|
||||||
|
```
|
||||||
|
|
||||||
|
When this repo gains executable code, extend this section with the real
|
||||||
|
install/test/lint/run commands in the same change.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Workplan Convention (ADR-001)
|
||||||
|
|
||||||
|
Work items originate as files in this repo — not in the hub. The hub is a
|
||||||
|
read/cache/index layer that rebuilds from files.
|
||||||
|
|
||||||
|
**File location:** `workplans/KG-WP-NNNN-<slug>.md`
|
||||||
|
|
||||||
|
**Archived location:** finished workplans may move to
|
||||||
|
`workplans/archived/YYMMDD-KG-WP-NNNN-<slug>.md`. The `YYMMDD` prefix is
|
||||||
|
the completion/archive date; the frontmatter `id` does not change.
|
||||||
|
|
||||||
|
**Ad Hoc Tasks:** small opportunistic fixes discovered during a session use
|
||||||
|
`workplans/ADHOC-YYYY-MM-DD.md` with task ids `ADHOC-YYYY-MM-DD-T01`, etc. Use
|
||||||
|
this only for low-risk work completed directly; create a normal workplan for
|
||||||
|
anything needing analysis, design, approval, dependencies, or multiple phases.
|
||||||
|
|
||||||
|
**Frontmatter:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
---
|
||||||
|
id: KG-WP-NNNN
|
||||||
|
type: workplan
|
||||||
|
title: "..."
|
||||||
|
domain: infotech
|
||||||
|
repo: kings-guard
|
||||||
|
status: proposed | ready | active | blocked | backlog | finished | archived
|
||||||
|
owner: codex
|
||||||
|
topic_slug: ...
|
||||||
|
created: "YYYY-MM-DD"
|
||||||
|
updated: "YYYY-MM-DD"
|
||||||
|
state_hub_workstream_id: "<uuid>" # fix-consistency — do not edit (legacy field name; workplan UUID)
|
||||||
|
---
|
||||||
|
```
|
||||||
|
|
||||||
|
Use `proposed` for a new draft, `ready` after review against current repo
|
||||||
|
state, and `finished` after implementation. `stalled` and `needs_review` are
|
||||||
|
derived health labels, not frontmatter statuses.
|
||||||
|
|
||||||
|
**Terminology:** workplan is the fleet term; `workstream` appears only in legacy
|
||||||
|
API/MCP/frontmatter bridges until `STATE-WP-0069` retires them — see
|
||||||
|
`the-custodian/canon/standards/workplan-terminology-fleet_v0.1.md`.
|
||||||
|
|
||||||
|
**Task block format** (one per `##` section):
|
||||||
|
|
||||||
|
```
|
||||||
|
## Task Title
|
||||||
|
|
||||||
|
` ` `task
|
||||||
|
id: KG-WP-NNNN-T01
|
||||||
|
status: wait | todo | progress | done | cancel
|
||||||
|
priority: high | medium | low
|
||||||
|
state_hub_task_id: "<uuid>" # written by fix-consistency — do not edit
|
||||||
|
` ` `
|
||||||
|
|
||||||
|
Task description text.
|
||||||
|
```
|
||||||
|
|
||||||
|
Status progression: `todo` → `progress` → `done`; use `wait` for waiting/blocked work and `cancel` for stopped work.
|
||||||
|
|
||||||
|
**Residuals when finishing:** actionable leftovers become live work records
|
||||||
|
before `status: finished` — usually an intake (`origin: residual`,
|
||||||
|
`origin_ref: KG-WP-NNNN`) or a spawned workplan. Residual is a *role*,
|
||||||
|
not a kind. Fleet list lives on State Hub, not in `SCOPE.md`.
|
||||||
|
|
||||||
|
To create a new workplan:
|
||||||
|
1. Write the file following the format above
|
||||||
|
2. Run `statehub fix-consistency` locally; ask the operator only if the CLI or
|
||||||
|
State Hub API is unavailable.
|
||||||
202
INTENT.md
Normal file
202
INTENT.md
Normal file
|
|
@ -0,0 +1,202 @@
|
||||||
|
# INTENT
|
||||||
|
|
||||||
|
> 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 security control plane for complex cloud environments: it
|
||||||
|
declares healthy intent, detects harmful deviation, contains damage locally,
|
||||||
|
restores known-good operation, and retains governed defensive memory.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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` and related IAM systems | Consume identity and attestation as security inputs; do not replace identity. |
|
||||||
|
| Resource authorization and decision logs | `flex-auth` | Contribute posture and risk context; do not become the authorization control plane. |
|
||||||
|
| Secret custody, delivery, leases, and rotation | `railiance-platform` and `secrets-engine` | Consume secret-access evidence and drive defensive posture; 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. |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 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 security control-plane concept and implementation home;
|
||||||
|
- 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?**
|
||||||
66
SCOPE.md
Normal file
66
SCOPE.md
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
# SCOPE
|
||||||
|
|
||||||
|
> Lightweight boundary for agents and contributors.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## One-liner
|
||||||
|
|
||||||
|
Adaptive security assessment and bounded-response layer for multi-tenant cloud
|
||||||
|
platforms.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Core Idea
|
||||||
|
|
||||||
|
`kings-guard` turns declared healthy intent plus observed runtime behavior into
|
||||||
|
posture judgments, typed security signals, and bounded response requests. It
|
||||||
|
consumes evidence from identity, authorization, secret, and runtime systems
|
||||||
|
without replacing those systems' primary authority.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## In Scope
|
||||||
|
|
||||||
|
- Canonical terminology and contracts for security genome, phenotype,
|
||||||
|
observation, signal, effector, tolerance, inflammation, and immune memory.
|
||||||
|
- Reference architecture and boundary documents for adaptive defense in
|
||||||
|
multi-tenant and agent-active environments.
|
||||||
|
- Minimal posture-evaluation loop design: ingest observations, compare against
|
||||||
|
intended healthy state, and emit typed posture/signal results.
|
||||||
|
- Integration seams to adjacent security systems such as `key-cape`,
|
||||||
|
`flex-auth`, `secrets-engine`, `ops-warden`, and the Railiance runtime
|
||||||
|
layers.
|
||||||
|
- Non-secret evidence, workplans, and repo-operational metadata.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Out of Scope
|
||||||
|
|
||||||
|
- Identity issuance, login, MFA, or token minting.
|
||||||
|
- Authorization policy administration or final resource allow/deny decisions.
|
||||||
|
- Secret custody, lease issuance, or raw secret-value delivery.
|
||||||
|
- Infrastructure provisioning, workload deployment, or cluster/platform
|
||||||
|
operations.
|
||||||
|
- Generic SIEM ownership, ticket tracking, or live work coordination beyond
|
||||||
|
this repo's own workplans.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Current State
|
||||||
|
|
||||||
|
- Markdown-first exploration repo. Current canon is `INTENT.md`,
|
||||||
|
`specs/NetKingdomImmuneArchitecture.md`, and `history/InitialExploration.md`.
|
||||||
|
- No executable service, schemas, or integration adapters exist yet.
|
||||||
|
- The first implementation strand should establish canonical contracts and a
|
||||||
|
minimal posture pilot before broader integrations.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Getting Oriented
|
||||||
|
|
||||||
|
- Start with: `INTENT.md`
|
||||||
|
- Architecture draft: `specs/NetKingdomImmuneArchitecture.md`
|
||||||
|
- Exploration notes: `history/InitialExploration.md`
|
||||||
|
- Agent instructions: `AGENTS.md`
|
||||||
|
- Workplans: `workplans/`
|
||||||
19
WORK-RECORDS.md
Normal file
19
WORK-RECORDS.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Work Records — kings-guard
|
||||||
|
|
||||||
|
> Generated by `statehub fix-consistency` (CUST-WP-0061-T04, work-record
|
||||||
|
> stage 3). Do not edit by hand — edit the source file/block listed for
|
||||||
|
> each record and re-run fix-consistency to refresh this index. Archived
|
||||||
|
> workplans are omitted; closed decisions/intakes/engagements stay listed
|
||||||
|
> so recently-resolved work is still visible. [auto]
|
||||||
|
|
||||||
|
| Kind | ID | Status | Lane | Source |
|
||||||
|
| --- | --- | --- | --- | --- |
|
||||||
|
| workplan | KG-WP-0001 | finished | — | workplans/KG-WP-0001-statehub-bootstrap.md |
|
||||||
|
| workplan | KG-WP-0002 | ready | — | workplans/KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md |
|
||||||
|
| task | KG-WP-0001-T01 | done | — | workplans/KG-WP-0001-statehub-bootstrap.md |
|
||||||
|
| task | KG-WP-0001-T02 | done | — | workplans/KG-WP-0001-statehub-bootstrap.md |
|
||||||
|
| task | KG-WP-0001-T03 | done | — | workplans/KG-WP-0001-statehub-bootstrap.md |
|
||||||
|
| task | KG-WP-0002-T01 | todo | — | workplans/KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md |
|
||||||
|
| task | KG-WP-0002-T02 | todo | — | workplans/KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md |
|
||||||
|
| task | KG-WP-0002-T03 | todo | — | workplans/KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md |
|
||||||
|
| task | KG-WP-0002-T04 | todo | — | workplans/KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md |
|
||||||
687
history/InitialExploration.md
Normal file
687
history/InitialExploration.md
Normal file
|
|
@ -0,0 +1,687 @@
|
||||||
|
# Adaptive Immune Security Architecture
|
||||||
|
|
||||||
|
Kings Guard Security is an exploration about how to establish robust security in a continuously changing complex IT environment.
|
||||||
|
|
||||||
|
How would the architecture of an it security system for a multitenant multipurpose it cloud platfrom look like that is inspired by analogy to a biological immune system?
|
||||||
|
|
||||||
|
A recursive, identity-centred security system that continuously distinguishes intended from harmful behaviour, contains disturbances locally, restores healthy operation, and learns from every incident without weakening tenant isolation.
|
||||||
|
|
||||||
|
The objective is not an impossible state in which nothing malicious ever enters. It is to preserve the platform’s **viability** by enabling it to:
|
||||||
|
|
||||||
|
1. anticipate threats,
|
||||||
|
2. withstand compromise,
|
||||||
|
3. contain damage,
|
||||||
|
4. recover healthy operation,
|
||||||
|
5. adapt its future defences.
|
||||||
|
|
||||||
|
This closely matches the NIST cyber-resiliency formulation of anticipating, withstanding, recovering from and adapting to adverse conditions. ([NIST Computer Security Resource Center][1])
|
||||||
|
|
||||||
|
Biologically, the architecture draws on barriers, innate immunity, adaptive immunity, signalling, memory, regulation and tissue repair. Innate immunity provides fast, general responses, while adaptive immunity develops specific responses and memory; both depend on regulation to avoid damaging the organism itself. ([NCBI][2])
|
||||||
|
|
||||||
|
## 1. The crucial interpretation of “self”
|
||||||
|
|
||||||
|
A simplistic security analogy would classify everything as either:
|
||||||
|
|
||||||
|
* self and trusted, or
|
||||||
|
* foreign and hostile.
|
||||||
|
|
||||||
|
That would be dangerous. A legitimate workload can be compromised, an administrator account can be hijacked, and a previously permitted behaviour can become harmful.
|
||||||
|
|
||||||
|
Therefore, **self must not mean “inside the network.”**
|
||||||
|
|
||||||
|
In this architecture, self means:
|
||||||
|
|
||||||
|
> A subject whose identity, provenance, integrity, current state, requested action and behavioural context remain consistent with explicitly declared intent.
|
||||||
|
|
||||||
|
This follows the zero-trust shift away from trusting network locations toward protecting identified users, workloads, resources and actions. NIST explicitly rejects implicit trust based solely on location or ownership and, for cloud-native systems, recommends policies based on application and service identities. ([NIST Computer Security Resource Center][3])
|
||||||
|
|
||||||
|
A workload should therefore continuously be able to answer:
|
||||||
|
|
||||||
|
* Who am I?
|
||||||
|
* Which tenant do I belong to?
|
||||||
|
* Which software and configuration am I running?
|
||||||
|
* Who authorized this deployment?
|
||||||
|
* Which capabilities may I exercise?
|
||||||
|
* Which data may I access?
|
||||||
|
* With whom may I communicate?
|
||||||
|
* What behaviour is expected from me?
|
||||||
|
* Is my current state consistent with that declaration?
|
||||||
|
|
||||||
|
This could be called the workload’s **security phenotype**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 2. Biological concepts and architectural counterparts
|
||||||
|
|
||||||
|
| Biological concept | Security counterpart | Architectural capability |
|
||||||
|
| ----------------------------- | -------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||||
|
| Genome | Canonical intended state | Signed architecture, configuration, policies, SBOMs, identities and capability declarations |
|
||||||
|
| Skin and mucosa | External barriers | Edge gateway, DDoS protection, ingress validation, protocol filtering |
|
||||||
|
| Organ boundaries | Tenant compartments | Tenant-specific identity, network, compute, data, key and policy boundaries |
|
||||||
|
| Cell membrane | Workload boundary | Workload identity, sandbox, runtime policy, least privilege |
|
||||||
|
| Self markers | Attested identity and provenance | Cryptographic workload identity, signatures, deployment provenance |
|
||||||
|
| Innate immunity | Immediate general defence | Deny-by-default, validation, rate limits, runtime rules, isolation |
|
||||||
|
| Pattern-recognition receptors | Security sensors | Kernel, network, identity, API, data and application telemetry |
|
||||||
|
| Antigen presentation | Normalized security evidence | Contextual observation records presented to decision services |
|
||||||
|
| Cytokines | Security signalling | Typed event fabric carrying alerts, state changes and response requests |
|
||||||
|
| Lymph nodes | Local correlation centres | Tenant-local detection, evidence aggregation and response coordination |
|
||||||
|
| Adaptive immunity | Incident-specific defence | New detections, policies, playbooks and countermeasures |
|
||||||
|
| Antibodies | Targeted countermeasures | Signatures, deny rules, revocations, filters and compensating controls |
|
||||||
|
| Complement system | Automated response primitives | Block, throttle, quarantine, terminate, revoke and rotate |
|
||||||
|
| Memory cells | Security memory | Threat knowledge, attack paths, successful countermeasures and lessons |
|
||||||
|
| Regulatory T cells | Safety and governance | Response limits, approval rules, suppression, rollback and exception control |
|
||||||
|
| Inflammation | Elevated defensive posture | Temporary restriction, increased telemetry and reduced trust |
|
||||||
|
| Tissue repair | Reconciliation and recovery | Immutable redeployment, restoration, secret rotation and validation |
|
||||||
|
|
||||||
|
The point is not to reproduce biology literally. The analogy provides a useful decomposition of **distributed protection, signalling, regulation, learning and repair**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 3. Top-level architecture
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TB
|
||||||
|
EXT["Users, Agents, Services, Devices and External Systems"]
|
||||||
|
|
||||||
|
subgraph GOV["Security Genome and Governance"]
|
||||||
|
INTENT["Intent and Capability Registry"]
|
||||||
|
CANON["Security Canon and Policy Sources"]
|
||||||
|
SUPPLY["Software and Configuration Provenance"]
|
||||||
|
RISK["Risk Appetite and Tenant Profiles"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph ICP["Platform Immune Control Plane"]
|
||||||
|
ID["Identity and Attestation Authority"]
|
||||||
|
MEMORY["Immune Memory and Countermeasure Graph"]
|
||||||
|
DECIDE["Policy and Response Decision Engine"]
|
||||||
|
REGULATE["Tolerance, Safety and Escalation Controller"]
|
||||||
|
AUDIT["Independent Audit and Validation"]
|
||||||
|
BUS["Security Signal Fabric"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph TENANT["Tenant Immune Compartment — repeated per tenant"]
|
||||||
|
MEMBRANE["Tenant Membrane"]
|
||||||
|
THYMUS["Admission and Deployment Education"]
|
||||||
|
APPS["Applications, Data and Workloads"]
|
||||||
|
SENTINELS["Local Sentinels"]
|
||||||
|
NODE["Tenant Immune Node"]
|
||||||
|
EFFECTORS["Local Response Effectors"]
|
||||||
|
HEAL["Recovery and Reconstitution"]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph PLATFORM["Shared Platform Compartments"]
|
||||||
|
SHARED["Brokered Shared Services"]
|
||||||
|
INFRA["Cluster, Network, Storage and Runtime"]
|
||||||
|
PLATFORM_SENTINELS["Platform Sentinels"]
|
||||||
|
end
|
||||||
|
|
||||||
|
EXT --> MEMBRANE
|
||||||
|
GOV --> ID
|
||||||
|
GOV --> DECIDE
|
||||||
|
GOV --> THYMUS
|
||||||
|
|
||||||
|
MEMBRANE --> APPS
|
||||||
|
THYMUS --> APPS
|
||||||
|
ID --> APPS
|
||||||
|
|
||||||
|
APPS --> SENTINELS
|
||||||
|
INFRA --> PLATFORM_SENTINELS
|
||||||
|
|
||||||
|
SENTINELS --> NODE
|
||||||
|
NODE --> BUS
|
||||||
|
PLATFORM_SENTINELS --> BUS
|
||||||
|
|
||||||
|
BUS --> DECIDE
|
||||||
|
MEMORY --> DECIDE
|
||||||
|
RISK --> REGULATE
|
||||||
|
DECIDE --> REGULATE
|
||||||
|
|
||||||
|
REGULATE --> EFFECTORS
|
||||||
|
EFFECTORS --> APPS
|
||||||
|
EFFECTORS --> MEMBRANE
|
||||||
|
EFFECTORS --> HEAL
|
||||||
|
|
||||||
|
HEAL --> APPS
|
||||||
|
BUS --> MEMORY
|
||||||
|
AUDIT --> MEMORY
|
||||||
|
AUDIT --> DECIDE
|
||||||
|
|
||||||
|
APPS <--> SHARED
|
||||||
|
```
|
||||||
|
|
||||||
|
The most important topological feature is that the architecture is **recursive**:
|
||||||
|
|
||||||
|
* every workload has a local protective boundary;
|
||||||
|
* every application has a security context;
|
||||||
|
* every tenant has an immune compartment;
|
||||||
|
* every cluster has a platform immune system;
|
||||||
|
* the complete cloud estate has a federated security system.
|
||||||
|
|
||||||
|
Local systems act autonomously within bounded authority, while higher levels coordinate events whose impact crosses compartments.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 4. Seven orthogonal security planes
|
||||||
|
|
||||||
|
## 4.1 Security Genome Plane
|
||||||
|
|
||||||
|
The genome describes what healthy operation is supposed to look like.
|
||||||
|
|
||||||
|
For each workload or capability, it should contain:
|
||||||
|
|
||||||
|
* tenant and ownership;
|
||||||
|
* intended purpose;
|
||||||
|
* software and configuration provenance;
|
||||||
|
* permitted interfaces;
|
||||||
|
* dependencies;
|
||||||
|
* permitted callers and destinations;
|
||||||
|
* data classifications;
|
||||||
|
* expected resource consumption;
|
||||||
|
* expected execution behaviour;
|
||||||
|
* availability and recovery requirements;
|
||||||
|
* applicable policies;
|
||||||
|
* known exceptions.
|
||||||
|
|
||||||
|
This connects naturally with your distinction between **stable INTENT and actual SCOPE**.
|
||||||
|
|
||||||
|
The immune system does not merely ask whether behaviour is statistically unusual. It asks:
|
||||||
|
|
||||||
|
> Is actual behaviour compatible with the declared intent and authorized scope?
|
||||||
|
|
||||||
|
This prevents the system from gradually learning that a persistent compromise is “normal.”
|
||||||
|
|
||||||
|
## 4.2 Identity and Attestation Plane
|
||||||
|
|
||||||
|
This plane establishes identity for:
|
||||||
|
|
||||||
|
* humans;
|
||||||
|
* agents;
|
||||||
|
* devices;
|
||||||
|
* workloads;
|
||||||
|
* services;
|
||||||
|
* deployment pipelines;
|
||||||
|
* infrastructure components;
|
||||||
|
* external organizations.
|
||||||
|
|
||||||
|
Human identity could remain within the **KeyCape IAM profile**, while workload identity is handled through a replaceable attestation contract.
|
||||||
|
|
||||||
|
SPIFFE/SPIRE is a strong implementation model because it provides cryptographically verifiable workload identities based on node and workload attestation rather than relying solely on long-lived secrets. Its trust-domain model also lends itself to tenant and platform compartmentation. ([spiffe.io][4])
|
||||||
|
|
||||||
|
An identity is not permanently trusted. It acquires a current **trust posture** derived from:
|
||||||
|
|
||||||
|
* strength of attestation;
|
||||||
|
* software integrity;
|
||||||
|
* configuration integrity;
|
||||||
|
* device or node state;
|
||||||
|
* recent behaviour;
|
||||||
|
* credential age;
|
||||||
|
* active incident context;
|
||||||
|
* requested resource sensitivity.
|
||||||
|
|
||||||
|
## 4.3 Membrane and Compartment Plane
|
||||||
|
|
||||||
|
There should be several nested membranes:
|
||||||
|
|
||||||
|
1. **platform membrane** between the cloud and the outside world;
|
||||||
|
2. **tenant membrane** between tenants;
|
||||||
|
3. **application membrane** around an application domain;
|
||||||
|
4. **workload membrane** around each execution unit;
|
||||||
|
5. **data membrane** around sensitive data sets;
|
||||||
|
6. **management membrane** around control-plane operations.
|
||||||
|
|
||||||
|
Each tenant should have its own:
|
||||||
|
|
||||||
|
* identity namespace;
|
||||||
|
* policy bundle;
|
||||||
|
* encryption context;
|
||||||
|
* secrets domain;
|
||||||
|
* network policy;
|
||||||
|
* data partition;
|
||||||
|
* telemetry partition;
|
||||||
|
* security memory scope;
|
||||||
|
* response authority.
|
||||||
|
|
||||||
|
Kubernetes supports multiple tenancy patterns, but its documentation explicitly distinguishes softer and harder isolation and notes trade-offs among security, complexity and cost. A biological architecture should therefore support several **isolation phenotypes**, rather than assuming namespaces alone are sufficient. ([Kubernetes][5])
|
||||||
|
|
||||||
|
A practical classification would be:
|
||||||
|
|
||||||
|
| Isolation class | Typical realization |
|
||||||
|
| --------------- | ---------------------------------------------------------------------- |
|
||||||
|
| Shared | Namespace and policy isolation |
|
||||||
|
| Reinforced | Virtual control plane, dedicated nodes or sandboxed runtimes |
|
||||||
|
| Strong | Dedicated cluster and tenant trust domain |
|
||||||
|
| Sovereign | Dedicated cloud account, keys, control plane and operational authority |
|
||||||
|
|
||||||
|
The risk profile of a tenant or workload determines the required isolation class.
|
||||||
|
|
||||||
|
## 4.4 Sentinel and Evidence Plane
|
||||||
|
|
||||||
|
Sentinels are distributed throughout the system:
|
||||||
|
|
||||||
|
* edge sentinels;
|
||||||
|
* API sentinels;
|
||||||
|
* identity sentinels;
|
||||||
|
* workload sentinels;
|
||||||
|
* kernel sentinels;
|
||||||
|
* network sentinels;
|
||||||
|
* data-access sentinels;
|
||||||
|
* control-plane sentinels;
|
||||||
|
* application-domain sentinels.
|
||||||
|
|
||||||
|
They produce normalized **security observations**, not immediately final conclusions.
|
||||||
|
|
||||||
|
A useful observation envelope would include:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
security_observation:
|
||||||
|
observation_id: uuid
|
||||||
|
timestamp: datetime
|
||||||
|
|
||||||
|
tenant_id: tenant-reference
|
||||||
|
compartment_id: compartment-reference
|
||||||
|
subject_id: attested-subject-reference
|
||||||
|
resource_id: resource-reference
|
||||||
|
|
||||||
|
operation: requested-or-observed-action
|
||||||
|
evidence:
|
||||||
|
- evidence-reference
|
||||||
|
|
||||||
|
intent_relation:
|
||||||
|
expected: true
|
||||||
|
deviation_type: none | unknown | prohibited | anomalous
|
||||||
|
|
||||||
|
assessment:
|
||||||
|
confidence: 0.0-1.0
|
||||||
|
severity: informational | low | medium | high | critical
|
||||||
|
novelty: known | variant | unknown
|
||||||
|
blast_radius: local | application | tenant | platform
|
||||||
|
|
||||||
|
proposed_response:
|
||||||
|
action: observe | challenge | restrict | isolate | revoke | rebuild
|
||||||
|
ttl: duration
|
||||||
|
```
|
||||||
|
|
||||||
|
The evidence remains distinguishable from its interpretation. That allows later reassessment when new information becomes available.
|
||||||
|
|
||||||
|
## 4.5 Signal and Coordination Plane
|
||||||
|
|
||||||
|
Biological cytokines coordinate immune activity. The platform equivalent is a typed, authenticated **security signal fabric**.
|
||||||
|
|
||||||
|
It transports:
|
||||||
|
|
||||||
|
* observations;
|
||||||
|
* identity posture changes;
|
||||||
|
* integrity failures;
|
||||||
|
* policy violations;
|
||||||
|
* suspected attack chains;
|
||||||
|
* response requests;
|
||||||
|
* response outcomes;
|
||||||
|
* recovery state;
|
||||||
|
* escalation messages.
|
||||||
|
|
||||||
|
Signals require:
|
||||||
|
|
||||||
|
* tenant and compartment scope;
|
||||||
|
* origin identity;
|
||||||
|
* evidence references;
|
||||||
|
* confidence;
|
||||||
|
* severity;
|
||||||
|
* expiry time;
|
||||||
|
* deduplication identity;
|
||||||
|
* confidentiality classification;
|
||||||
|
* permitted consumers.
|
||||||
|
|
||||||
|
Raw tenant evidence should not automatically enter a global platform data lake. The architecture should distinguish:
|
||||||
|
|
||||||
|
* **tenant-private evidence**;
|
||||||
|
* **platform-operational evidence**;
|
||||||
|
* **shareable threat characteristics**;
|
||||||
|
* **global countermeasure knowledge**.
|
||||||
|
|
||||||
|
This allows collective learning without creating a cross-tenant surveillance or leakage mechanism.
|
||||||
|
|
||||||
|
## 4.6 Response and Recovery Plane
|
||||||
|
|
||||||
|
The response system should use a graduated ladder:
|
||||||
|
|
||||||
|
1. **observe** — collect more evidence;
|
||||||
|
2. **challenge** — require stronger authentication or attestation;
|
||||||
|
3. **constrain** — reduce permissions, destinations or rate;
|
||||||
|
4. **degrade** — disable nonessential capabilities;
|
||||||
|
5. **isolate** — quarantine workload, identity, node or tenant segment;
|
||||||
|
6. **revoke** — invalidate credentials, sessions or deployment authority;
|
||||||
|
7. **terminate** — stop malicious execution;
|
||||||
|
8. **reconstitute** — rebuild from known-good state;
|
||||||
|
9. **restore** — recover validated data and service;
|
||||||
|
10. **immunize** — distribute a tested countermeasure.
|
||||||
|
|
||||||
|
Responses should be local by default. A workload sentinel may stop its workload, but it should not be able to shut down unrelated tenants.
|
||||||
|
|
||||||
|
Every automated response should carry:
|
||||||
|
|
||||||
|
* authority source;
|
||||||
|
* reason and evidence;
|
||||||
|
* scope;
|
||||||
|
* duration or lease;
|
||||||
|
* rollback procedure;
|
||||||
|
* expected outcome;
|
||||||
|
* validation condition;
|
||||||
|
* escalation threshold.
|
||||||
|
|
||||||
|
Runtime detection and enforcement can be realized by different interchangeable effectors. Current cloud-native examples include Falco for runtime detection and Tetragon for Kubernetes-aware eBPF observation and inline enforcement. ([Falco][6])
|
||||||
|
|
||||||
|
## 4.7 Memory and Adaptation Plane
|
||||||
|
|
||||||
|
Immune memory should not be just a SIEM archive. It should be an active knowledge graph connecting:
|
||||||
|
|
||||||
|
```text
|
||||||
|
Observation
|
||||||
|
→ Evidence
|
||||||
|
→ Subject
|
||||||
|
→ Asset
|
||||||
|
→ Vulnerability
|
||||||
|
→ Attack technique
|
||||||
|
→ Intended capability
|
||||||
|
→ Countermeasure
|
||||||
|
→ Response action
|
||||||
|
→ Outcome
|
||||||
|
→ Residual risk
|
||||||
|
```
|
||||||
|
|
||||||
|
MITRE D3FEND is particularly suitable as an external vocabulary because it models defensive countermeasures and their relationships to offensive techniques as a knowledge graph. ([d3fend.mitre.org][7])
|
||||||
|
|
||||||
|
Memory objects need:
|
||||||
|
|
||||||
|
* provenance;
|
||||||
|
* confidence;
|
||||||
|
* applicability conditions;
|
||||||
|
* tenant visibility;
|
||||||
|
* creation and expiry dates;
|
||||||
|
* successful and unsuccessful outcomes;
|
||||||
|
* counter-evidence;
|
||||||
|
* versioning;
|
||||||
|
* revocation.
|
||||||
|
|
||||||
|
Security memory must be allowed to **decay**. A rule that was useful two years ago may now be ineffective or actively harmful.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 5. Tenant-local and platform-wide immunity
|
||||||
|
|
||||||
|
The system should distinguish three kinds of security knowledge.
|
||||||
|
|
||||||
|
## Tenant-local immunity
|
||||||
|
|
||||||
|
Contains:
|
||||||
|
|
||||||
|
* tenant-specific behaviour;
|
||||||
|
* tenant-specific risks;
|
||||||
|
* local incidents;
|
||||||
|
* business-process expectations;
|
||||||
|
* local countermeasures;
|
||||||
|
* confidential evidence.
|
||||||
|
|
||||||
|
The tenant immune node owns this information and can act rapidly inside its compartment.
|
||||||
|
|
||||||
|
## Platform immunity
|
||||||
|
|
||||||
|
Contains:
|
||||||
|
|
||||||
|
* infrastructure attacks;
|
||||||
|
* shared service compromise;
|
||||||
|
* cluster and control-plane conditions;
|
||||||
|
* supply-chain risks;
|
||||||
|
* cross-tenant attack patterns;
|
||||||
|
* platform countermeasures.
|
||||||
|
|
||||||
|
The platform immune system may contain or disconnect a tenant compartment, but it should not inspect tenant-private data without an explicit legal and policy basis.
|
||||||
|
|
||||||
|
## Federated immune memory
|
||||||
|
|
||||||
|
Contains only information approved for broader use, such as:
|
||||||
|
|
||||||
|
* attack fingerprints;
|
||||||
|
* affected component versions;
|
||||||
|
* defensive techniques;
|
||||||
|
* anonymized behavioural patterns;
|
||||||
|
* successful containment strategies;
|
||||||
|
* externally sourced threat intelligence.
|
||||||
|
|
||||||
|
Cross-tenant learning should distribute **countermeasures and abstract characteristics**, not raw customer evidence.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 6. Preventing digital autoimmune disease
|
||||||
|
|
||||||
|
A biological analogy becomes truly valuable when it includes immune failure modes.
|
||||||
|
|
||||||
|
## Autoimmunity
|
||||||
|
|
||||||
|
The security system attacks legitimate activity.
|
||||||
|
|
||||||
|
Countermeasures:
|
||||||
|
|
||||||
|
* policy simulation;
|
||||||
|
* shadow mode;
|
||||||
|
* canary enforcement;
|
||||||
|
* independent evidence requirements;
|
||||||
|
* bounded response authority;
|
||||||
|
* automatic expiry;
|
||||||
|
* rollback;
|
||||||
|
* tenant-specific tolerance profiles.
|
||||||
|
|
||||||
|
## Immunodeficiency
|
||||||
|
|
||||||
|
The system lacks sensors, policies or response capabilities.
|
||||||
|
|
||||||
|
Countermeasures:
|
||||||
|
|
||||||
|
* coverage measurement;
|
||||||
|
* mandatory baseline controls;
|
||||||
|
* sentinel health monitoring;
|
||||||
|
* capability maturity assessment;
|
||||||
|
* periodic attack simulation.
|
||||||
|
|
||||||
|
## Chronic inflammation
|
||||||
|
|
||||||
|
The platform remains permanently in a high-alert state.
|
||||||
|
|
||||||
|
Consequences include:
|
||||||
|
|
||||||
|
* alert fatigue;
|
||||||
|
* excessive logging;
|
||||||
|
* degraded performance;
|
||||||
|
* blocked delivery;
|
||||||
|
* permanently elevated privileges for security tooling.
|
||||||
|
|
||||||
|
Controls should include response budgets, signal suppression, incident closure criteria and automatic return to baseline.
|
||||||
|
|
||||||
|
## Immune evasion
|
||||||
|
|
||||||
|
An attacker appears legitimate or disables sensors.
|
||||||
|
|
||||||
|
Countermeasures:
|
||||||
|
|
||||||
|
* independent telemetry paths;
|
||||||
|
* remote attestation;
|
||||||
|
* immutable evidence;
|
||||||
|
* separation of control and observation;
|
||||||
|
* detection of missing signals;
|
||||||
|
* periodic re-attestation.
|
||||||
|
|
||||||
|
## Malignant growth
|
||||||
|
|
||||||
|
A legitimate component expands beyond its intended role.
|
||||||
|
|
||||||
|
This includes:
|
||||||
|
|
||||||
|
* privilege accumulation;
|
||||||
|
* uncontrolled agent autonomy;
|
||||||
|
* data hoarding;
|
||||||
|
* hidden dependencies;
|
||||||
|
* excessive resource consumption.
|
||||||
|
|
||||||
|
The response is not signature detection, but comparison of actual growth against declared purpose, resource limits and capability boundaries.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 7. Cybernetic control loops
|
||||||
|
|
||||||
|
The architecture should operate at three timescales.
|
||||||
|
|
||||||
|
## Fast local loop — innate immunity
|
||||||
|
|
||||||
|
```text
|
||||||
|
Sense → match local rule → constrain → report
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* reject an invalid request;
|
||||||
|
* block an unauthorized syscall;
|
||||||
|
* rate-limit abnormal traffic;
|
||||||
|
* quarantine a workload.
|
||||||
|
|
||||||
|
## Tenant loop — adaptive response
|
||||||
|
|
||||||
|
```text
|
||||||
|
Correlate → assess tenant context → select response
|
||||||
|
→ observe outcome → update tenant memory
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* revoke a tenant user session;
|
||||||
|
* restrict an application;
|
||||||
|
* rotate tenant credentials;
|
||||||
|
* deploy a tenant-specific rule.
|
||||||
|
|
||||||
|
## Platform learning loop
|
||||||
|
|
||||||
|
```text
|
||||||
|
Aggregate abstract findings → analyze attack pattern
|
||||||
|
→ validate countermeasure → publish policy update
|
||||||
|
→ measure effectiveness
|
||||||
|
```
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
* revise a platform baseline;
|
||||||
|
* block a vulnerable artifact;
|
||||||
|
* introduce a new supply-chain requirement;
|
||||||
|
* change default isolation for a workload class.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 8. VSM mapping
|
||||||
|
|
||||||
|
The architecture maps neatly onto the Viable System Model.
|
||||||
|
|
||||||
|
| VSM system | Immune-security responsibility |
|
||||||
|
| --------------------------- | ------------------------------------------------------------------------------- |
|
||||||
|
| **System 1 – Operation** | Workload, application and tenant-local sentinels and effectors |
|
||||||
|
| **System 2 – Coordination** | Security signal fabric, deduplication, suppression and incident coordination |
|
||||||
|
| **System 3 – Control** | Tenant and platform response controllers |
|
||||||
|
| **System 3* – Audit** | Independent validation, red teaming, forensic evidence and control verification |
|
||||||
|
| **System 4 – Intelligence** | Threat research, attack simulation, adaptive policies and immune memory |
|
||||||
|
| **System 5 – Policy** | Security identity, risk appetite, legal constraints and response authority |
|
||||||
|
|
||||||
|
This supports recursion: each tenant is a viable security system while remaining part of the larger platform security system.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 9. Suggested NetKingdom capability structure
|
||||||
|
|
||||||
|
For NetKingdom, I would organize the architecture into these stable capabilities rather than tightly coupling it to individual products:
|
||||||
|
|
||||||
|
```text
|
||||||
|
netkingdom
|
||||||
|
├── security-genome
|
||||||
|
│ ├── intent-registry
|
||||||
|
│ ├── capability-registry
|
||||||
|
│ ├── policy-canon
|
||||||
|
│ └── provenance-registry
|
||||||
|
│
|
||||||
|
├── identity-immunity
|
||||||
|
│ ├── human-identity
|
||||||
|
│ ├── workload-identity
|
||||||
|
│ ├── attestation
|
||||||
|
│ └── trust-posture
|
||||||
|
│
|
||||||
|
├── compartment-control
|
||||||
|
│ ├── tenant-isolation
|
||||||
|
│ ├── workload-boundaries
|
||||||
|
│ ├── data-boundaries
|
||||||
|
│ └── shared-service-brokers
|
||||||
|
│
|
||||||
|
├── sentinel-mesh
|
||||||
|
│ ├── edge-sentinel
|
||||||
|
│ ├── identity-sentinel
|
||||||
|
│ ├── runtime-sentinel
|
||||||
|
│ ├── network-sentinel
|
||||||
|
│ └── data-sentinel
|
||||||
|
│
|
||||||
|
├── immune-coordination
|
||||||
|
│ ├── observation-model
|
||||||
|
│ ├── signal-fabric
|
||||||
|
│ ├── tenant-immune-node
|
||||||
|
│ └── platform-immune-node
|
||||||
|
│
|
||||||
|
├── immune-response
|
||||||
|
│ ├── decision-engine
|
||||||
|
│ ├── response-orchestrator
|
||||||
|
│ ├── effectors
|
||||||
|
│ └── escalation
|
||||||
|
│
|
||||||
|
├── immune-memory
|
||||||
|
│ ├── evidence-store
|
||||||
|
│ ├── countermeasure-graph
|
||||||
|
│ ├── outcome-learning
|
||||||
|
│ └── memory-federation
|
||||||
|
│
|
||||||
|
└── immune-regulation
|
||||||
|
├── tolerance-control
|
||||||
|
├── simulation
|
||||||
|
├── response-budgets
|
||||||
|
├── audit
|
||||||
|
└── recovery-validation
|
||||||
|
```
|
||||||
|
|
||||||
|
The stable core would consist of the contracts between these capabilities. KeyCape, SPIRE, OPA, Tetragon, Falco, network-policy engines, evidence stores and other implementations would remain replaceable components behind those contracts. OPA/Gatekeeper, for example, can serve as one admission-policy implementation rather than becoming the architecture itself. ([openpolicyagent.org][8])
|
||||||
|
|
||||||
|
# Central architectural proposition
|
||||||
|
|
||||||
|
The resulting NetKingdom system would not primarily be a collection of scanners, dashboards and blocking products. It would be a **recursive security control system** that:
|
||||||
|
|
||||||
|
```text
|
||||||
|
declares healthy intent
|
||||||
|
→ establishes cryptographic identity
|
||||||
|
→ observes actual behaviour
|
||||||
|
→ detects meaningful divergence
|
||||||
|
→ responds within bounded authority
|
||||||
|
→ restores known-good operation
|
||||||
|
→ validates the outcome
|
||||||
|
→ retains governed memory
|
||||||
|
```
|
||||||
|
|
||||||
|
Its most distinctive property would be the combination of:
|
||||||
|
|
||||||
|
* **zero-trust identity**,
|
||||||
|
* **tenant compartmentation**,
|
||||||
|
* **distributed innate protection**,
|
||||||
|
* **adaptive countermeasure generation**,
|
||||||
|
* **cybernetic response loops**,
|
||||||
|
* **regulated autonomy**,
|
||||||
|
* **continuous repair**.
|
||||||
|
|
||||||
|
A logical next artifact is an OAS-formatted `NetKingdomImmuneArchitecture.md` with context, capability, control-loop, deployment, data, trust-boundary and failure-mode views.
|
||||||
|
|
||||||
|
[1]: https://csrc.nist.gov/pubs/sp/800/160/v2/r1/final "SP 800-160 Vol. 2 Rev. 1, Developing Cyber-Resilient Systems: A Systems Security Engineering Approach | CSRC"
|
||||||
|
[2]: https://www.ncbi.nlm.nih.gov/books/NBK539801/?utm_source=chatgpt.com "Physiology, Immune Response - StatPearls - NCBI Bookshelf"
|
||||||
|
[3]: https://csrc.nist.gov/pubs/sp/800/207/final "SP 800-207, Zero Trust Architecture | CSRC"
|
||||||
|
[4]: https://spiffe.io/docs/latest/spire-about/spire-concepts/ "SPIRE Concepts | SPIFFE"
|
||||||
|
[5]: https://kubernetes.io/docs/concepts/security/multi-tenancy/ "Multi-tenancy | Kubernetes"
|
||||||
|
[6]: https://falco.org/docs/?utm_source=chatgpt.com "The Falco Project"
|
||||||
|
[7]: https://d3fend.mitre.org/about/ "About | MITRE D3FEND™"
|
||||||
|
[8]: https://openpolicyagent.org/docs/kubernetes?utm_source=chatgpt.com "OPA for Kubernetes Admission Control"
|
||||||
|
|
||||||
2292
specs/NetKingdomImmuneArchitecture.md
Executable file
2292
specs/NetKingdomImmuneArchitecture.md
Executable file
File diff suppressed because it is too large
Load diff
77
workplans/KG-WP-0001-statehub-bootstrap.md
Normal file
77
workplans/KG-WP-0001-statehub-bootstrap.md
Normal file
|
|
@ -0,0 +1,77 @@
|
||||||
|
---
|
||||||
|
id: KG-WP-0001
|
||||||
|
type: workplan
|
||||||
|
title: "Bootstrap State Hub integration"
|
||||||
|
domain: infotech
|
||||||
|
repo: kings-guard
|
||||||
|
status: finished
|
||||||
|
owner: codex
|
||||||
|
topic_slug: netkingdom
|
||||||
|
created: "2026-07-23"
|
||||||
|
updated: "2026-07-23"
|
||||||
|
state_hub_workstream_id: "b7ff79b9-ae27-4a46-a782-49482392eb83"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Bootstrap State Hub integration
|
||||||
|
|
||||||
|
Adaptive immune security control plane for complex multi-tenant cloud environments.
|
||||||
|
|
||||||
|
## Review Generated Integration Files
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0001-T01
|
||||||
|
status: done
|
||||||
|
priority: high
|
||||||
|
state_hub_task_id: "add34171-9f18-48b9-a88e-07ea34cb6382"
|
||||||
|
```
|
||||||
|
|
||||||
|
Review `INTENT.md`, `SCOPE.md`, `AGENTS.md`, and `.custodian-brief.md`.
|
||||||
|
Replace generated placeholders with repo-specific facts where needed.
|
||||||
|
|
||||||
|
**Done 2026-07-23:** Added a repo-specific `INTENT.md`, rewrote `SCOPE.md`
|
||||||
|
from the generated placeholder into an explicit boundary for adaptive security
|
||||||
|
assessment/response, extended `AGENTS.md` with the repo's actual docs-first
|
||||||
|
workflow, and confirmed `.custodian-brief.md` is adequate as generated.
|
||||||
|
Corrected the generated `topic_slug` from `custodian` to `netkingdom` so the
|
||||||
|
repo's first workplans align with the broader security ecosystem.
|
||||||
|
|
||||||
|
## Verify Local Developer Workflow
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0001-T02
|
||||||
|
status: done
|
||||||
|
priority: high
|
||||||
|
state_hub_task_id: "17fb3a0c-91c5-4b45-967e-962ef6c89ac5"
|
||||||
|
```
|
||||||
|
|
||||||
|
Identify the repo's install, test, lint, build, and run commands. Add or refine
|
||||||
|
those commands in the agent instructions so future coding sessions can verify
|
||||||
|
changes confidently.
|
||||||
|
|
||||||
|
**Done 2026-07-23:** Documented the current repo reality in `AGENTS.md`:
|
||||||
|
there is no runtime yet, so verification is `git diff --check` plus focused
|
||||||
|
document review and `statehub fix-consistency` after workplan edits. Explicitly
|
||||||
|
noted that install/test/lint/run commands should be added only when executable
|
||||||
|
code lands.
|
||||||
|
|
||||||
|
## Seed First Real Workplan
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0001-T03
|
||||||
|
status: done
|
||||||
|
priority: medium
|
||||||
|
state_hub_task_id: "5b5f56d9-7e89-43b6-94c3-db4461e9eed4"
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the first implementation workplan for the repository's most important
|
||||||
|
next change. After workplan file updates, run the sync locally from this repo
|
||||||
|
checkout:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
statehub fix-consistency
|
||||||
|
```
|
||||||
|
|
||||||
|
**Done 2026-07-23:** Created `KG-WP-0002-canonical-immune-contracts-and-posture-pilot.md`
|
||||||
|
to define the first substantive strand: canonical immune contracts, adjacent
|
||||||
|
security boundaries, a minimal posture loop, and a first pilot integration
|
||||||
|
lane. Sync to State Hub follows this bootstrap closeout.
|
||||||
|
|
@ -0,0 +1,115 @@
|
||||||
|
---
|
||||||
|
id: KG-WP-0002
|
||||||
|
type: workplan
|
||||||
|
title: "Canonical immune contracts and first posture pilot"
|
||||||
|
domain: infotech
|
||||||
|
repo: kings-guard
|
||||||
|
status: ready
|
||||||
|
owner: codex
|
||||||
|
topic_slug: netkingdom
|
||||||
|
created: "2026-07-23"
|
||||||
|
updated: "2026-07-23"
|
||||||
|
quality_dor: DoR-Ok
|
||||||
|
quality_dor_at: "2026-07-23"
|
||||||
|
quality_dor_by: "codex"
|
||||||
|
state_hub_workstream_id: "5c5c5a26-dfca-4d42-86a7-b87877677207"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Canonical immune contracts and first posture pilot
|
||||||
|
|
||||||
|
Establish `kings-guard` as the adaptive security layer that sits beside the
|
||||||
|
existing NetKingdom security lanes instead of competing with them. The first
|
||||||
|
strand should produce stable contracts and one narrow posture pilot before any
|
||||||
|
broader implementation or automation claims.
|
||||||
|
|
||||||
|
This workplan deliberately keeps authority boundaries clear:
|
||||||
|
|
||||||
|
- `key-cape` remains identity and attestation input.
|
||||||
|
- `flex-auth` remains authorization policy and final allow/deny owner.
|
||||||
|
- `railiance-platform` and `secrets-engine` remain secret-custody and delivery
|
||||||
|
owners.
|
||||||
|
- `ops-warden` remains the operational SSH certificate lane.
|
||||||
|
- `kings-guard` evaluates health/posture, emits signals, and requests bounded
|
||||||
|
response.
|
||||||
|
|
||||||
|
## Task: Define canonical immune contracts
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0002-T01
|
||||||
|
status: todo
|
||||||
|
priority: high
|
||||||
|
state_hub_task_id: "9982a3b4-1e65-493a-9b61-322f23d4fd2d"
|
||||||
|
```
|
||||||
|
|
||||||
|
Write the first repo-owned canonical contract for the core vocabulary:
|
||||||
|
`security_genome`, `security_phenotype`, `immune_observation`,
|
||||||
|
`immune_signal`, `effector_request`, `tolerance`, `inflammation`, and
|
||||||
|
`immune_memory`.
|
||||||
|
|
||||||
|
Done when:
|
||||||
|
|
||||||
|
- each term has a concise, non-overlapping definition;
|
||||||
|
- producer/consumer expectations are named for each contract;
|
||||||
|
- the contracts are usable without requiring one particular product stack.
|
||||||
|
|
||||||
|
## Task: Write adjacent-system boundary contract
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0002-T02
|
||||||
|
status: todo
|
||||||
|
priority: high
|
||||||
|
state_hub_task_id: "0c44035e-b1b8-4f5d-8a6c-e6514b4bc897"
|
||||||
|
```
|
||||||
|
|
||||||
|
Author a boundary document that shows how `kings-guard` consumes evidence from
|
||||||
|
`key-cape`, `flex-auth`, `secrets-engine`, `ops-warden`, and Railiance runtime
|
||||||
|
layers without taking over their responsibilities.
|
||||||
|
|
||||||
|
Done when:
|
||||||
|
|
||||||
|
- each adjacent system's primary authority is stated explicitly;
|
||||||
|
- `kings-guard` inputs, outputs, and non-goals are named per system;
|
||||||
|
- tenant-isolation and non-secret evidence rules are captured.
|
||||||
|
|
||||||
|
## Task: Scaffold a minimal posture loop
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0002-T03
|
||||||
|
status: todo
|
||||||
|
priority: high
|
||||||
|
state_hub_task_id: "c88a7da6-a9ff-4bd9-ba47-7c199321666b"
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the initial repository structure for a minimal posture engine or schema
|
||||||
|
package that can ingest normalized observations, compare them against declared
|
||||||
|
intent, and emit typed posture/signal results.
|
||||||
|
|
||||||
|
Done when:
|
||||||
|
|
||||||
|
- the repo has a clear implementation layout rather than only prose;
|
||||||
|
- one sample input/output path exists end-to-end for observation -> posture ->
|
||||||
|
signal;
|
||||||
|
- tests or fixture-driven validation prove the contract shape is stable.
|
||||||
|
|
||||||
|
## Task: Choose and specify the first pilot lane
|
||||||
|
|
||||||
|
```task
|
||||||
|
id: KG-WP-0002-T04
|
||||||
|
status: todo
|
||||||
|
priority: medium
|
||||||
|
state_hub_task_id: "77e1dc69-9902-4381-8028-ce1cfac7e9d5"
|
||||||
|
```
|
||||||
|
|
||||||
|
Pick one narrow pilot integration lane and specify it precisely. Preferred
|
||||||
|
pilot order:
|
||||||
|
|
||||||
|
1. `ops-warden` sign-request posture hinting
|
||||||
|
2. `secrets-engine` exec-delivery posture hinting
|
||||||
|
3. Railiance workload reconstitution signal generation
|
||||||
|
|
||||||
|
Done when:
|
||||||
|
|
||||||
|
- the chosen lane has a concrete request/response flow;
|
||||||
|
- the pilot can run without granting `kings-guard` secret, identity, or final
|
||||||
|
authorization authority;
|
||||||
|
- bounded-response and rollback expectations are documented.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue