docs(security): add approval review packet contract [skip ci]
This commit is contained in:
64
docs/security/SECURITY-APPROVAL-REVIEW-PACKET.md
Normal file
64
docs/security/SECURITY-APPROVAL-REVIEW-PACKET.md
Normal 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。
|
||||
Reference in New Issue
Block a user