Files
awoooi/docs/security/SECURITY-APPROVAL-REVIEW-PACKET.md
Your Name 9e15fd08b3
All checks were successful
CD Pipeline / tests (push) Successful in 1m39s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 5m19s
CD Pipeline / post-deploy-checks (push) Successful in 2m11s
feat(web): land iwooos security posture surfaces
2026-05-25 20:35:52 +08:00

5.5 KiB
Raw Blame History

資安人工審查封包契約

項目 內容
日期 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_v1security_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 可做

  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. security_approval_state_transition_v1 顯示決策後 next state。
  6. security_followup_runtime_gate_v1 顯示後續 runtime gate 準備條件。
  7. 將 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。

2026-05-17 S4.8 追加Gitea review packet 會顯示 S4.7 的 5 個 owner attestation items、received_attestation_count=0accepted_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 checksGitea 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 仍逐項 waitingaudit event templates 仍為 template-only 且不保存 raw payloadredaction examples 只是填寫範例display sections 只是只讀 UI 順序collection checks 沒有把 request sent 誤判成 received / accepted再看 response 是否可審、需補證、需隔離、需拒收或仍需等待,最後才看 read-only inventory gatereview packet 仍不代表批准,也不授權執行。