docs(security): add approval review packet contract [skip ci]

This commit is contained in:
Your Name
2026-05-13 16:36:37 +08:00
parent f124df9823
commit aff70dd896
28 changed files with 800 additions and 61 deletions

View File

@@ -0,0 +1,64 @@
# 資安人工審查封包契約
| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-13 |
| 狀態 | 草案 |
| Schema | `docs/schemas/security_approval_review_packet_v1.schema.json` |
| Snapshot | `docs/security/security-approval-review-packet.snapshot.json` |
| 模式 | `approval_review_packet_only` |
| runtime 執行授權 | `false` |
## 0. 核心結論
`security_approval_review_packet_v1` 是 S3.2 的人工審查封包格式。
它把 `security_approval_queue_v1``security_approval_gate_v1` 的 8 個審查項目整理成 AwoooP 可以顯示的 review packet讓 Operator 看得懂「現在要審什麼、由誰審、可以做哪些決策、仍然禁止哪些動作」。
它不是批准結果,也不是執行授權。真正的人工決策仍必須另外寫入 `security_approval_decision_record_v1`,而且每筆紀錄都必須維持 `execution_authorized=false`
## 1. 目前狀態
| 指標 | 數量 |
|------|------|
| Review packets | 8 |
| Ready for human review | 7 |
| Block candidate | 1 |
| Decision records created | 0 |
| Runtime actions authorized | `false` |
| Action buttons allowed | `false` |
## 2. Review Packet 順序
| 順序 | Packet | Review lane | 初期定位 |
|------|--------|-------------|----------|
| 1 | Redacted finding ingestion | `design_or_draft_review` | 只審是否可設計或建立 draft PR |
| 2 | Safe web crawl | `low_noise_scan_scope_review` | 只審低噪音 scope 定義 |
| 3 | Gitea read-only inventory | `read_only_inventory_review` | 只審只讀 token 或 redacted export |
| 4 | GitHub target decisions | `design_or_draft_review` | 只審 owner / visibility / canonical 草案 |
| 5 | Ref truth review | `design_or_draft_review` | 只審人工分類與 reconcile 草案 |
| 6 | Credentialed scan | `manual_exception_review` | 只審 exception 設計 |
| 7 | Kali full-upgrade / reboot | `manual_exception_review` | 只審維護窗口與 rollback 計畫 |
| 8 | Kali `/execute` | `blocked_by_default_review` | 預設維持 block candidate |
## 3. AwoooP 可做
1. 顯示 review packet、review order、risk、review lane 與 required reviewers。
2. 顯示 requested decision、decision options、evidence refs 與 still forbidden。
3. 讓人工 reviewer 選擇 approve / reject / defer / request more evidence / keep blocked。
4. 將實際決策另寫成 `security_approval_decision_record_v1`
5. 將 packet 作為 Operator Console / Audit evidence不新增執行按鈕。
## 4. AwoooP 不可做
1. 不把 review packet 視為批准。
2. 不把 review packet 視為 runtime authorization。
3. 不因為 packet 存在就啟動 scan、credentialed scan 或 Kali `/execute`
4. 不建立 GitHub repo、不改 visibility、不 sync refs、不切 GitHub primary。
5. 不保存 raw secret、token、cookie、private key、credential value 或 exploit payload。
## 5. 階段定位
S3.2 只補上「讓人好審」的封包,不提高資安阻力。
低風險與中風險仍以 observe / warn / draft review 為主;只有不可逆或高風險動作才持續留在 approval gate且批准後仍必須再過 runtime gate。