Commit graph

41 commits

Author SHA1 Message Date
5a130e8907 Index WHITEHAT-WP-0003 in WORK-RECORDS.md
Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 22:03:13 +02:00
1a38080cdd Add Railiance WP-0025 custody adapter
Implement src/whitehat_security/platform_custody.py and focused tests
against the four custody schemas. Live admission still fails closed
without a value-safe projection receipt. No new engagement or traffic.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 22:02:41 +02:00
repo-manager
5d2c9592e8 chore(registrar): assign State Hub identifiers
Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 21:41:37 +02:00
c22e7846c6 Index WHITEHAT-WP-0002 in WORK-RECORDS.md
Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 21:41:11 +02:00
481ed6add5 Add WHITEHAT-WP-0002 receipt example, CLI coverage, and abort records
Meantime polish while live E2 waits on a new trial. Example receipts carry
handles only. admit-plane --receipt is tested. Aborts can be queued without
being target assurance.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 21:40:33 +02:00
45548e44a2 Admit live E2 from a value-safe custody receipt
WH-ENG-20260822-AUDIT-E2-02 projected and then aborted: admit-plane had no
receipt adapter, so the runner sent zero packets. Consume custody receipts
as handles only, keep unconnected admission fail-closed, and retire -02.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 21:31:49 +02:00
b6c1806680 Cover WH-ENG-20260822-AUDIT-E2-02 fixtures and window gates
The retry record is distinct from the expired -01 identifiers and is only
authorized inside 19:15Z-19:30Z.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 20:56:35 +02:00
e1f9f81d15 authorize WH-ENG-20260822-AUDIT-E2-02 at 19:15Z
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a02991-be07-7bb3-8b6d-e9701b5621de
2026-08-22 20:49:10 +02:00
f8251c5de8 Expire WH-ENG-20260822-AUDIT-E2-01 after an unused window
The 18:00Z-18:15Z window ended with no projection-ready notice and zero
packets. Mark the identifier terminal. Record platform-pg E3 as not
applicable for an ordinary runtime conformance-view identity.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 20:20:38 +02:00
da98590d2a Record railiance-platform 18:00Z-18:03Z projection gate
Hold the runner until that attended project succeeds. No mint and no packets.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 15:03:03 +02:00
b8facab717 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
2026-08-22 12:16:29 +02:00
32afceb68e approve(WH-ENG-20260822-AUDIT-E2-01): record owner acknowledgement
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a025c2-407a-7a32-b40a-f37a52f03f62
2026-08-22 12:05:40 +02:00
1418dac0de fix(WH-ENG-20260822-AUDIT-E2-01): bind declared fixtures
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a025c2-407a-7a32-b40a-f37a52f03f62
2026-08-22 12:04:50 +02:00
461554a749 Record operator approval of WH-ENG-20260822-AUDIT-E2-01
Owner acknowledgement remains pending. Offline admission stays fail-closed.
No credentials requested and no packets sent.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 11:54:09 +02:00
5082f86c61 Propose WH-ENG-20260822-AUDIT-E2-01 without authorizing traffic
Align plane ordering with Mason's apply, record the fresh audit-core
engagement as proposed, and keep offline admission fail-closed until
operator approval and owner acknowledgement exist.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 11:46:58 +02:00
7e83a66573 Admit E3 and capacity on the test plane
Register in-process E3 and capacity fixtures, keep live database and
substrate targets pending, and ask ops-mason for namespace-only provision.
No packets, no credentials, no cancelled engagement IDs.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 09:40:27 +02:00
repo-manager
4882c2d47a chore(registrar): assign State Hub identifiers
Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 00:44:58 +02:00
custodian-sync
7bf482f7f5 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-08-22:
  - update .custodian-brief.md for whitehat-security

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 00:44:57 +02:00
95129d7a35 Add governed test plane and close T04/T08
Encode fail-closed admission, target registrations, and a credential
broker that never returns secret values. Calibrate audit-core shaped
probes in-process. Send no packets and request no live credentials.

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 00:44:21 +02:00
custodian-sync
0aab0cb4c6 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-08-22:
  - update .custodian-brief.md for whitehat-security

Assistant: grok
Assistant-Session: 01a02670-3345-76f2-a014-70fde8e2a2bb
2026-08-22 00:43:47 +02:00
92f23e690b Record clean security workplan cutoff
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:24:00 +02:00
6f81bba332 Fail closed on tenant E2 applicability review
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:11:50 +02:00
ce5bb78990 Add exact audit E2 probe pod
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:11:06 +02:00
6ba6929b8e Pin audit E2 probe source identity
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:10:10 +02:00
070c3cdb17 Report engagement denials without tracebacks
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:09:13 +02:00
db6b14f764 Record E2 target applicability constraints
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:08:23 +02:00
cf696f09d5 Make audit fixture retries deterministic
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:06:35 +02:00
8a97fac17f Correct audit engagement and idempotent fixture setup
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:05:15 +02:00
edc9df0491 Bound E2 engagement control-plane operations
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:04:02 +02:00
7396fe7d61 Add bounded audit-core E2 target adapter
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-22 00:02:22 +02:00
3770b41b74 Authorize bounded production E2 engagements
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 23:59:29 +02:00
beab2a04d1 Build authorization-gated tenancy evidence harness
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 23:53:27 +02:00
custodian-sync
2c8e1d41ad chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-08-21:
  - update .custodian-brief.md for whitehat-security

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 23:52:02 +02:00
custodian-sync
af6054d21f chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-08-21:
  - update .custodian-brief.md for whitehat-security

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 23:09:55 +02:00
25a07d16f7 Approve rules of engagement and define attacker models
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 23:09:22 +02:00
custodian-sync
30af1be843 chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-08-21:
  - update .custodian-brief.md for whitehat-security

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 22:54:29 +02:00
f5b7b36df6 Bind WHITEHAT-WP-0001 to State Hub
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 22:53:21 +02:00
348738ba73 Register whitehat-security and align operating boundaries
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a0260c-4067-7052-9647-ad000d576e38
2026-08-21 22:52:37 +02:00
0ce9f44ff9 NetKingdom owns this; and a targeting rule, because scope widened
Operator decision: whitehat is a NetKingdom facility, framed offensively -
offence is how you find out, and a control is believed until someone tries it.
Our own estate is one target among those we choose, not the only one.

I had argued for the-custodian on independence grounds. The counter-argument is
better: offensive security is security work and belongs with the security repo.
The residual tension is real and recorded rather than argued away - NetKingdom
now owns both the Tenancy Posture framework and the facility that tests
conformance to it, which is NetKingdom assessing NetKingdom. The mitigation is
that findings leave for risk-nexus under separate ownership rather than being
resolved in place. Proportionate, not perfect, and worth revisiting if
conformance findings start getting quietly closed.

The reframe changes what this repo must guard against, and that is the
substantial part of this commit. A facility that can be pointed at
infrastructure we do not own is the single thing that could turn this repo from
an asset into a liability, so the targeting rule is structural rather than
cultural.

No target without recorded authorization from whoever is responsible for it.
Own estate in build mode has standing authorization; production needs its own,
because the blast radius differs and so does the decision; anything we do not
own needs written per-engagement authorization recorded here before a packet is
sent.

Three non-authorizations written down because each is a way teams talk
themselves into it: a commercial relationship with the target, the target being
publicly reachable, and believing the owner would obviously be fine with it.
Unauthorized probing is criminal in most jurisdictions regardless of intent,
and a white-hat facility that gets this wrong is an attacker with better
paperwork.

Two consequences. The authorization record is part of the finding - a report
that cannot name what it ran under is not a finding, it is an incident. And
scope creep during an engagement is prohibited: a probe that discovers an
adjacent system stops at the boundary, because following the interesting thing
is how an authorized test becomes an unauthorized one.

Findings routing now forks. Our estate goes to risk-nexus and on to the owning
repo. Any other target goes to that infrastructure's responsible party on the
engagement's agreed terms, with risk-nexus still recording that it happened.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 18:01:01 +02:00
77f574f50e Seed INTENT and WP-0001: adversarial evidence facility
Answers the Tenancy Posture question that has been unowned since the framework
was drafted - who verifies a consumer's tenant boundary. Two repos were asked
and both correctly declined as fleet-scope work. The work needed a home.

Independence is the load-bearing property, not a nicety. rapp-postgres wrote
fifteen probes against its own isolation model and found four real defects,
which is good work and still the author checking their own homework. The probes
worth having are the ones the author would not think to write, because the
assumption that produced the defect produces the blind spot.

That argues against NetKingdom owning this even though it owns the security
canon: a facility verifying conformance to a framework must not report to the
repo that owns the framework, or self-grading just moves up a level. Proposed
owner is the-custodian, consistent with policy and risk. Needs confirmation.

Two things stated because overclaiming is the failure this estate keeps
catching in itself. "Automated" has a ceiling - the highest-impact cross-tenant
findings need someone who understands what the data means, since a response can
be well-formed, 200, fast, and contain another tenant's rows; so automate the
reproducible and flag the irreducible for dated review. And a passing suite
proves the attacks we thought of did not work, not that the boundary holds. The
gap between those sentences is where breaches live.

WP-0001 gates everything behind rules of engagement, because an automated
facility probing systems without written scope is indistinguishable from the
threat it models. No standing privilege, no BYPASSRLS, no superuser - an
attacker would not have them and a probe holding them proves nothing. No
exfiltration of real tenant data even as proof; a count and a schema shape are
proof enough. And no saturation probing outside a declared window, because with
a six-consumer connection ceiling that is an outage for every co-resident.

T04 exists because a probe that has only ever passed is not evidence. Every
probe must be shown failing against a known-bad fixture before it is trusted
passing - the same discipline rapp-postgres used when it verified its drift
check by deliberately re-pinning to a bad digest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 16:41:36 +02:00
3fdad8d3c7 Initial commit 2026-08-17 14:37:50 +00:00