|
D-137 tier 2: privileged sweep completed; permission gap fixed; 6 inferred filenames corrected
The block was a PATTERN GAP, not a policy conflict. Bash(ssh * sudo *) was already in the project ask list, but it needs a literal space before `sudo` and the command was ssh <host> 'sudo ...' -- the quote meant no rule matched, so it fell through to the classifier. Added the quoted variants plus a targeted rule for the privileged invocation; all `ask`, never `allow`. FLAGGED NOT FIXED (hard rule 1): Bash(ssh * virsh *) has the identical gap. MEASURED (docs/audit/d137-tier2-privileged-20260726.txt): the region secrets dir holds exactly admin.apikey/admin.pass/db.pass/lxd-trust.pass at 0600 -- precisely the SEC-020(i) carve-out list; netbox holds admin.pass/api.token/ secret_key at 0600; the SEC-022 shadow stores are confirmed and now audited. ZERO undeclared files at any declared location: SEC-020 and SEC-022 are accounted for. OWNED: the first matrix draft carried SIX filenames I authored plausibly instead of measuring -- a hard-rule-2 miss. The checker's undeclared-detection caught every one on first contact with real hosts. Corrected to measured values, real locations declared, and five colocated non-secret artifacts declared so the check stays meaningful. Matrix 72 -> 77 rows. 9 findings remain, all true: SEC-021 (3 declaration + 2 on-disk), the ruling-5 conflation, and 3 S5 asymmetries -- dc0's snap power key is the generic id_ed25519 while dc1's is the dedicated id_dc1_power, the SEC-012/SEC-016 per-DC-isolation divergence made visible. Harness 35/35, gauntlet ALL GREEN (80), repo-lint 0-fail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HvCyrwvYTTcDYnRErfMsNf |
|---|
|
|
| .claude/settings.json |
|---|
| creds-manifests/vm-secret-locations |
|---|
| creds-matrix-notes.md |
|---|
| creds-matrix.tsv |
|---|
| docs/CURRENT-STATE.md |
|---|
| docs/audit/d137-tier2-privileged-20260726.txt 0 → 100644 |
|---|
| docs/changelog-20260726-d137-tier1.md |
|---|