Schedule 18:00Z custody for acknowledged audit-core E2

Record the owner-acknowledged window, pin the runner invocation including
the forged fixture id, and ask railiance-platform to project identities
only at window start. No mint, no pod apply, no packets.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
This commit is contained in:
tegwick 2026-08-22 12:16:29 +02:00
parent 32afceb68e
commit b8facab717
8 changed files with 139 additions and 39 deletions

View file

@ -69,11 +69,9 @@ boundary always holds.
- `T01` is complete: the rules of engagement were accepted on 2026-08-21. - `T01` is complete: the rules of engagement were accepted on 2026-08-21.
- `T02` is complete: the per-axis attacker model is recorded in - `T02` is complete: the per-axis attacker model is recorded in
`docs/attacker-model.md`. `docs/attacker-model.md`.
- `T03` is in progress: the differential core, audit-core adapter and test - `T03` is in progress: `WH-ENG-20260822-AUDIT-E2-01` is operator-approved
plane admission exist. `tenant-engine` is registered `not_applicable` for and owner-acknowledged. The window has not started. Custody projection is
E2. The foundational plane is applied. `WH-ENG-20260822-AUDIT-E2-01` is scheduled for `18:00Z`; tokens must not be minted early.
operator-approved and awaits target-owner acknowledgement and a connected
custody broker.
- `T04` is complete for every applicable E2 probe: generic and audit-core - `T04` is complete for every applicable E2 probe: generic and audit-core
shaped fixtures fail known-bad and pass known-good in-process. shaped fixtures fail known-bad and pass known-good in-process.
- `T05` is in progress: 24-hour cadence, offline evaluator and in-process - `T05` is in progress: 24-hour cadence, offline evaluator and in-process

View file

@ -47,7 +47,7 @@ Create `plane/KILL` to abort independently of the runner process.
## Retired identifiers ## Retired identifiers
`WH-ENG-20260821-AUDIT-E2` and `WH-ENG-20260821-TENANT-E2` are terminal. The `WH-ENG-20260821-AUDIT-E2` and `WH-ENG-20260821-TENANT-E2` are terminal.
foundational plane is provisioned first. `WH-ENG-20260822-AUDIT-E2-01` is `WH-ENG-20260822-AUDIT-E2-01` is operator-approved and owner-acknowledged.
operator-approved and awaits target-owner acknowledgement. The live custody The window starts at `2026-08-22T18:00:00Z`. Do not mint the 900s identities
broker remains unconnected. before then. The live custody broker remains unconnected until projection.

View file

@ -1,26 +1,22 @@
# WH-ENG-20260822-AUDIT-E2-01 # WH-ENG-20260822-AUDIT-E2-01
Status: **operator-approved, awaiting target-owner acknowledgement**. Status: **operator-approved and target-owner-acknowledged**. The window has
This is not yet authorization to send a packet or project credentials. not started. Credentials must not be minted until window start so the 900s
TTL covers the run and cleanup.
Operator approved `2026-08-22T09:52:55Z` in the coordinating session | Gate | State |
(`operator-session-2026-08-22-e2-approval`). Audit-core acknowledgement is
still pending. The cancelled ID `WH-ENG-20260821-AUDIT-E2` remains terminal.
| Field | Value |
| --- | --- | | --- | --- |
| Target | `audit-core.audit-core.svc.cluster.local:8080` | | Operator approval | `2026-08-22T09:52:55Z` |
| Registration | `targets/audit-core-e2.json` (`applicable`, `live-e2`) | | Owner acknowledgement | `2026-08-22T10:04:56Z` at `32afceb` |
| Source | pod `whitehat/whitehat-e2-audit` with plane and target labels, SA `whitehat-runner`, no token | | Foundational plane | applied by ops-mason `c26a6e5` |
| Image pin | `forgejo.coulomb.social/coulomb/audit-core@sha256:7febc28e8a828dbc245144a38e5728e0fbf496b594dd7591170b450a1265fb10` | | Window | `2026-08-22T18:00:00Z``18:15:00Z` |
| Identities | two ordinary tenant-scoped `may_read`/`may_write` senders, `source=whitehat-security`, TTL ≤ 900s, mount-only | | Image | `sha256:c2fe39a0185b99be3fc0cb14d2de69772b8e66e20490097c9d11d90cc39719a6` |
| Routes | `GET /readyz`, `POST /v1/events`, `GET /v1/events/{event_id}`, `GET /v1/events?correlation_id=` | | Custody projection | scheduled, not minted |
| Ceiling | concurrency 1; 10/min; at most 30 requests | | Runner pod | not applied |
| Window | 2026-08-22T18:00:00Z18:15:00Z |
| Cleanup | revoke both leases; delete only named synthetic fixtures; prove cleanup |
| Reporting | `risk-nexus`, no severity |
Offline preflight must fail closed until `target_owner_acknowledged_at` is Offline preflight now fails closed with `engagement window has not started`.
set. After acknowledgement, the live custody broker is still unconnected and At `18:00Z`, `Engagement.load` authorizes the record; `admit-plane` still
must fail closed until two identities are projected. Do not apply fails closed until the live custody broker is connected.
`plane/runner-pod.yaml` before that.
Invocation, including required `--forged-event whitehat-e2-forged-b-20260822`:
`engagements/runtime/WH-ENG-20260822-AUDIT-E2-01-invocation.md`.

View file

@ -14,7 +14,7 @@ from `whitehat admit-plane`. `WH-ENG-20260821-AUDIT-E2` and
`WH-ENG-20260821-TENANT-E2` are cancelled and must not be reused. The pod `WH-ENG-20260821-TENANT-E2` are cancelled and must not be reused. The pod
manifest under `runtime/` is bound to a cancelled ID and must not be applied. manifest under `runtime/` is bound to a cancelled ID and must not be applied.
`WH-ENG-20260822-AUDIT-E2-01` is operator-approved and **awaiting `WH-ENG-20260822-AUDIT-E2-01` is operator-approved and owner-acknowledged.
target-owner acknowledgement**. Offline validation must fail closed until Offline validation currently fails closed because the window has not started.
that acknowledgement is recorded and the custody broker is connected. Do not mint the 900s identities until `2026-08-22T18:00:00Z`.

View file

@ -1,4 +1,7 @@
The `audit-core-e2-pod.yaml` manifest is bound to cancelled engagement The `audit-core-e2-pod.yaml` manifest is bound to cancelled engagement
`WH-ENG-20260821-AUDIT-E2`. Do not apply it. New live runs use `WH-ENG-20260821-AUDIT-E2`. Do not apply it.
`plane/runner-pod.yaml` with a new unretired engagement ID after the plane
exists. `whitehat-e2-audit-20260822.yaml` is the contract for
`WH-ENG-20260822-AUDIT-E2-01`. Do not apply it until custody has projected
the two mount-only tokens at window start. Invocation details are in
`WH-ENG-20260822-AUDIT-E2-01-invocation.md`.

View file

@ -0,0 +1,48 @@
# WH-ENG-20260822-AUDIT-E2-01 — invocation (no secrets)
Do not apply the runner pod and do not mint credentials until the custody
owner projects two mount-only tokens at window start. Minting now would
exhaust the 900-second TTL before `18:00Z`.
Current time-gate: `validate-engagement` and `admit-plane` fail closed with
`engagement window has not started` until `2026-08-22T18:00:00Z`. After the
window opens, `admit-plane` still fails closed while the live custody broker
is unconnected.
## Custody projection (railiance-platform)
Schedule, do not mint early:
| Handle | Binding |
| --- | --- |
| token-a | `source=whitehat-security`, tenant `tenant:trial:whitehat-a-20260822`, `may_read=true`, `may_write=true` |
| token-b | `source=whitehat-security`, tenant `tenant:trial:whitehat-b-20260822`, `may_read=true`, `may_write=true` |
- Secret name `whitehat/whitehat-e2-audit-credentials` (namespace `whitehat`)
- Keys `token-a`, `token-b` only; never the full sender registry
- Issue at `2026-08-22T18:00:00Z`, `expires_at` `2026-08-22T18:15:00Z`, TTL ≤ 900s
- Attended registry reload and cleanup before expiry
- Never return token values to whitehat, State Hub, or chat
## Runner (inside the admitted pod, after projection)
```
python3 - \
--base-url http://audit-core.audit-core.svc.cluster.local:8080 \
--engagement-id WH-ENG-20260822-AUDIT-E2-01 \
--target-revision sha256:c2fe39a0185b99be3fc0cb14d2de69772b8e66e20490097c9d11d90cc39719a6 \
--token-a-file /var/run/secrets/whitehat/token-a \
--token-b-file /var/run/secrets/whitehat/token-b \
--tenant-a tenant:trial:whitehat-a-20260822 \
--tenant-b tenant:trial:whitehat-b-20260822 \
--event-a whitehat-e2-event-a-20260822 \
--event-b whitehat-e2-event-b-20260822 \
--absent-event whitehat-e2-absent-20260822 \
--forged-event whitehat-e2-forged-b-20260822 \
--correlation whitehat-e2-correlation-20260822 \
--occurred-at 2026-08-22T18:00:00Z \
--rate 10 --max-requests 30 --abort-p95-ms 500
```
stdin is `runners/audit_core_e2.py`. The forged event argument is mandatory
and must stay inside `fixture_ids`.

View file

@ -0,0 +1,53 @@
# CONTRACT ONLY. Do not apply until custody has projected
# whitehat/whitehat-e2-audit-credentials at window start.
# Never reuse WH-ENG-20260821-AUDIT-E2.
apiVersion: v1
kind: Pod
metadata:
name: whitehat-e2-audit
namespace: whitehat
labels:
app.kubernetes.io/name: whitehat-security
app.kubernetes.io/component: whitehat-probe
whitehat.security/plane: "true"
whitehat.security/target: audit-core
whitehat.security/engagement: WH-ENG-20260822-AUDIT-E2-01
spec:
serviceAccountName: whitehat-runner
automountServiceAccountToken: false
activeDeadlineSeconds: 900
restartPolicy: Never
securityContext:
runAsNonRoot: true
runAsUser: 10001
runAsGroup: 10001
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
containers:
- name: probe
image: forgejo.coulomb.social/coulomb/audit-core@sha256:c2fe39a0185b99be3fc0cb14d2de69772b8e66e20490097c9d11d90cc39719a6
imagePullPolicy: IfNotPresent
command: ["sleep", "900"]
resources:
requests: {cpu: 5m, memory: 16Mi}
limits: {cpu: 50m, memory: 64Mi}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
readOnlyRootFilesystem: true
volumeMounts:
- name: credentials
mountPath: /var/run/secrets/whitehat
readOnly: true
volumes:
- name: credentials
secret:
secretName: whitehat-e2-audit-credentials
defaultMode: 0440
items:
- key: token-a
path: token-a
- key: token-b
path: token-b

View file

@ -160,9 +160,11 @@ artifact, not a deferral); `flex-auth` is pending.
The 2026-08-21 production engagement IDs were cancelled without sending a The 2026-08-21 production engagement IDs were cancelled without sending a
target request and are retired. ops-mason applied the foundational plane on target request and are retired. ops-mason applied the foundational plane on
2026-08-22. The operator approved `WH-ENG-20260822-AUDIT-E2-01` at 2026-08-22. The operator approved `WH-ENG-20260822-AUDIT-E2-01` at
2026-08-22T09:52:55Z. Target-owner acknowledgement and the custody broker 2026-08-22T09:52:55Z; audit-core acknowledged at 2026-08-22T10:04:56Z
remain pending. Offline preflight must fail closed until both exist. Whitehat (`32afceb`) after the fixture/digest correction `1418dac`. Offline preflight
will not relabel tenant-engine to finish this task. now fails closed because the window has not started. Custody must project two
≤900s identities at `18:00Z`, not earlier. Whitehat will not relabel
tenant-engine to finish this task.
### T04 — Prove the probes fail ### T04 — Prove the probes fail