5.5 KiB
資安人工審查封包契約
| 項目 | 內容 |
|---|---|
| 日期 | 2026-05-17 |
| 狀態 | 草案 |
| 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。
S3.3 開始,決策後的 next state 由 security_approval_state_transition_v1 定義。這讓 AwoooP 能顯示 approve_scope 後仍在等待 runtime gate,而不是直接執行。
S3.4 開始,等待 runtime gate 時要看哪些前置條件,由 security_followup_runtime_gate_v1 顯示。這仍只是準備模板,不會啟用 runtime gate。
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 owner attestation + read-only inventory | read_only_inventory_review |
先依 S4.9 審 S4.7 owner response,再審只讀 token 或 redacted export |
| 4 | GitHub target decisions | design_or_draft_review |
先審 S4.10 owner response request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / response 與 S4.12 workflow / secret 名稱 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / response,再審 owner / visibility / canonical 草案 |
| 5 | Ref truth review | design_or_draft_review |
先審 S4.11 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / owner response 驗收,再審人工分類與 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 可做
- 顯示 review packet、review order、risk、review lane 與 required reviewers。
- 顯示 requested decision、decision options、evidence refs 與 still forbidden。
- 讓人工 reviewer 選擇 approve / reject / defer / request more evidence / keep blocked。
- 將實際決策另寫成
security_approval_decision_record_v1。 - 依
security_approval_state_transition_v1顯示決策後 next state。 - 依
security_followup_runtime_gate_v1顯示後續 runtime gate 準備條件。 - 將 packet 作為 Operator Console / Audit evidence,不新增執行按鈕。
4. AwoooP 不可做
- 不把 review packet 視為批准。
- 不把 review packet 視為 runtime authorization。
- 不因為 packet 存在就啟動 scan、credentialed scan 或 Kali
/execute。 - 不建立 GitHub repo、不改 visibility、不 sync refs、不切 GitHub primary。
- 不保存 raw secret、token、cookie、private key、credential value 或 exploit payload。
5. 階段定位
S3.2 只補上「讓人好審」的封包,不提高資安阻力。
低風險與中風險仍以 observe / warn / draft review 為主;只有不可逆或高風險動作才持續留在 approval gate,且批准後仍必須再過 runtime gate。
2026-05-17 S4.8 追加:Gitea review packet 會顯示 S4.7 的 5 個 owner attestation items、received_attestation_count=0 與 accepted_attestation_count=0。這讓 reviewer 先判斷 coverage gap 與 scope decision,不會把 read-only inventory approval 誤解成 repo migration 或 GitHub primary approval。
2026-05-17 S4.9 追加,2026-05-18 補 request packet、template status ledger、audit event templates、redaction examples、display sections 與 collection checks:Gitea review packet 會顯示 S4.9 的 1 個 owner response request packet、5 個 template statuses、3 個 audit event templates、5 個 redaction examples、8 個 display sections、6 個 collection checks、5 個 owner response templates、6 個 intake preflight checks、5 個 outcome lanes、received_response_count=0、8 個 acceptance checks 與 10 個 rejection rules。reviewer 應先確認 request packet 只要求脫敏回覆,template statuses 仍逐項 waiting,audit event templates 仍為 template-only 且不保存 raw payload,redaction examples 只是填寫範例,display sections 只是只讀 UI 順序,collection checks 沒有把 request sent 誤判成 received / accepted,再看 response 是否可審、需補證、需隔離、需拒收或仍需等待,最後才看 read-only inventory gate;review packet 仍不代表批准,也不授權執行。