Files
awoooi/docs/security/SECURITY-MIRROR-READINESS.md
Your Name 58e760fae2
All checks were successful
CD Pipeline / tests (push) Successful in 1m25s
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / build-and-deploy (push) Successful in 4m2s
CD Pipeline / post-deploy-checks (push) Successful in 1m48s
feat(security): 擴充 S4.10 target owner response
2026-06-11 20:30:41 +08:00

100 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 資安供應鏈鏡像就緒狀態
| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-17 |
| 狀態 | 草案 |
| Schema | `docs/schemas/security_mirror_readiness_v1.schema.json` |
| Snapshot | `docs/security/security-mirror-readiness.snapshot.json` |
| 預設 enforcement | `mirror_only` |
| 原則 | AwoooP 可 mirror / read-only 顯示,不可執行 |
## 0. 核心結論
本 readiness index 是給 AwoooP 主線的安全消費入口。
它回答三個問題:
1. 哪些 contract 已可 mirror
2. 哪些 contract 只能 partial mirror 或 contract-only 顯示?
3. AwoooP 消費時仍然禁止哪些動作?
目前統計:
| 狀態 | 數量 | 說明 |
|------|------|------|
| `ready_for_mirror` | 33 | 可直接 mirror 成 Operator Console / Runtime State / Channel Event / Audit evidence |
| `partial_ready` | 2 | 可 mirror但 evidence 仍不完整 |
| `contract_only` | 1 | 有 schema / handoff尚無正式 snapshot |
| `blocked` | 0 | 目前沒有禁止 mirror 的 contract |
這不代表可以執行。`execution_allowed=false` 對所有 contract 都成立。
## 1. Partial / Contract-only 項目
| Contract | 狀態 | 原因 | 下一步 |
|----------|------|------|--------|
| `security_finding_v1` | `partial_ready` | 目前只有 Kali sample snapshotruntime ingestion 尚未啟用 | 先 review `kali-finding-runtime-ingestion-approval-20260513` |
| `gitea_repo_inventory_v1` | `partial_ready` | 目前只有 public-only / blocked endpoint evidenceS4.5 已補認證清冊匯出請求S4.6 已補匯入驗收契約S4.7 已補 owner coverage attestationS4.9 已補 owner response request packet、5 個 template statuses、3 個 audit event templates、5 個 redaction examples、8 個 display sections、6 個 collection checks、owner response 收件包、6 個 intake preflight checks 與 5 個 outcome lanes未認證公開範圍 2 個、本機可見 Gitea unique 4 個、覆蓋缺口 2 個、attestation items 5 個、owner response 0 筆 | 先依 S4.9 request packet 要求 owner 回覆,並用 template status ledger / audit event templates / redaction examples / display sections / collection checks 維持 request / received / accepted 分離,再驗收 S4.7 owner response之後依 S4.5 請求取得脫敏清冊並用 S4.6 驗收 / 拒收 / 隔離;不保存 token value |
| `coding_task_v1` | `contract_only` | 已有 schema 與 handoff prompt尚無正式 coding task snapshot | 等 code review 產生實際 task 後再 mirror |
## 2. AwoooP 鏡像目的地
AwoooP 可以將 ready / partial contracts mirror 到:
1. Operator Console。
2. Runtime State。
3. Channel Event。
4. Audit evidence。
5. Approval Queue。
初期只顯示狀態、風險、review order、evidence refs 與 blocked reason。
## 3. 永久禁止
1. 不執行 mirror item。
2. 不啟動 Kali scan。
3. 不呼叫 Kali `/execute`
4. 不建立 GitHub repo。
5. 不修改 repo visibility。
6. 不 sync refs。
7. 不切 GitHub primary。
8. 不保存 raw secret、token、cookie、private key 或 exploit payload。
9. 不把 LOW / MEDIUM observation 變成 blocking gate。
10. 不把缺 owner response、partial mirror、source-control drift、Kali observe finding、workflow / secret name gap 或 headline holding 直接變 runtime blocker。
## 4. 下一步建議
最安全的 S2 落地順序:
1. AwoooP 先 mirror `security_mirror_readiness_v1``security_supply_chain_contract_manifest_v1`
2. 再使用 `security_mirror_event_v1` 包裝每一筆 mirror payload。
3. 再 mirror `security_mirror_route_v1`決定目的地、channel policy 與 review lane。
4. 再 mirror `security_mirror_acceptance_v1`,驗收 contract count、event envelope、route coverage 與 redaction。
5. 再 mirror `security_mirror_quarantine_v1`,定義驗收失敗時的隔離與 retry gate。
6. 再 mirror `security_mirror_dry_run_v1`,定義接入演練回報格式。
7. 再 mirror `security_mirror_status_rollup_v1``security_rollout_policy_v1``iwooos_posture_projection_v1` 與 S4.13 `SOURCE-CONTROL-OWNER-RESPONSE-VALIDATION-ROLLUP.md`,顯示跨 Session 狀態、IwoooS 前端資安態勢投影、7 條 low-friction non-blocking escalation lanes、四個 owner response packets、24 個 templates、6 條 evidence routing rules、8 個 display sections、7 條 state transition rules、9 個 reviewer checklist items、7 條 reviewer outcome lanes、4 個 reviewer audit event templates、5 個 reviewer audit display sections、6 個 reviewer audit collection checks、5 個 reviewer audit redaction examples、5 條 reviewer audit retention rules、6 個 reviewer audit retention checks、6 個 reviewer audit handoff packets、6 個 reviewer audit handoff checks、6 個 parallel session sync checks、6 條 parallel session conflict lanes、6 個 parallel session recovery checks、7 條 parallel session recovery outcome lanes 與下一個 gate。
8. 再 mirror `security_mirror_intake_plan_v1`,照 wave 執行 read-only intake。
9. 再 mirror `security_approval_queue_v1`,只顯示 review order。
10. 再 mirror `security_approval_gate_v1`,只記錄人工決策與 follow-up runtime gate。
11. 再 mirror `security_approval_decision_record_v1`,只保存人工決策紀錄,不觸發執行。
12. 再 mirror `security_approval_review_packet_v1`只顯示人工審查封包、review lane 與仍然禁止事項。
13. 再 mirror `security_approval_state_transition_v1`,只顯示決策後 next state 與 follow-up runtime gate。
14. 再 mirror `security_followup_runtime_gate_v1`,只顯示 runtime gate 準備模板、preflight checks 與 rollback / disable requirement。
15. 再 mirror `source_control_primary_readiness_gate_v1`,只顯示 GitHub primary parity、owner、rollback 與人工批准缺口。
16. 再 mirror `source_control_primary_rollback_adr_v1`,只顯示 7 個 in-scope repo 的 rollback ADR 草案、validation window 與 owner review不執行 rollback、不切 primary。
17. 再 mirror `gitea_repo_inventory_v1`、S4.5 認證清冊匯出請求、S4.6 匯入驗收契約、S4.7 owner coverage attestation 與 S4.9 owner response request packet / 收件包,只顯示未認證公開範圍 / 本機 evidence 覆蓋缺口、只讀 / 管理脫敏匯出選項、payload 驗收 / 拒收 / 隔離規則、5 個 owner scope decision items、request packet、template status ledger、audit event templates、redaction examples、display sections、collection checks、response templates、intake preflight checks 與 outcome lanes不保存 token value、不寫 Gitea、不 sync refs。
18. 再 mirror `source_control_workflow_secret_name_inventory_v1`、S4.2 local evidence 與 S4.3 redacted export request只顯示 workflow / webhook / runner / deploy key / branch protection / CODEOWNERS / secret 名稱 inventory 缺口;目前 local evidence 有 4 個 repos、31 個 workflow files、43 個 referenced secret namesexport request 有 7 個 repos、5 類 lanes不保存 secret value。
19. 再 mirror `kali_integration_status_v1``kali_scan_scope_approval_v1`
20. 最後再 mirror source-control 其他 contracts。
GitHub target 決策面需同時 mirror S4.10 `GITHUB-TARGET-OWNER-DECISION-RESPONSE.md``github-target-owner-decision-response.snapshot.json`,只顯示 1 個 owner response request packet、9 個 owner response template statuses、3 個 owner response audit event templates、5 個 owner response redaction examples、6 個 owner response collection checks、6 個 intake preflight checks、9 個 owner decision response templates、received / accepted response 皆為 0、8 個 acceptance checks 與 10 個 rejection rules不得把 request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 或 response packet 當成 repo creation、visibility change、refs sync 或 GitHub primary approval。
Ref truth 決策面需同時 mirror S4.11 `SOURCE-CONTROL-REF-TRUTH-OWNER-RESPONSE.md``source-control-ref-truth-owner-response.snapshot.json`,只顯示 1 個 owner response request packet、5 個 template statuses、3 個 audit event templates、5 個 redaction examples、6 個 collection checks、6 個 intake preflight checks、5 個 owner response templates、received / accepted response 皆為 0、audit events emitted 仍為 0、8 個 acceptance checks 與 10 個 rejection rules不得把 request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 或 response packet 當成 refs sync、delete、force push 或 GitHub primary approval。
Workflow / secret 名稱決策面需同時 mirror S4.12 `SOURCE-CONTROL-WORKFLOW-SECRET-NAME-OWNER-RESPONSE.md``source-control-workflow-secret-name-owner-response.snapshot.json`,只顯示 1 個 owner response request packet、5 個 template statuses、3 個 audit event templates、5 個 redaction examples、6 個 collection checks、6 個 intake preflight checks、5 個 owner response templates、received / accepted response 皆為 0、audit events emitted 仍為 0、8 個 acceptance checks 與 10 個 rejection rules不得把 request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 或 response packet 當成 secret value 收集、workflow 修改、GitHub hosted runner 啟用或 GitHub primary approval。
Owner response validation 決策面需同時 mirror S4.13 `SOURCE-CONTROL-OWNER-RESPONSE-VALIDATION-ROLLUP.md``source-control-owner-response-validation-rollup.snapshot.json`,只顯示 S4.9 / S4.10 / S4.11 / S4.12 四個 response packets 的驗收總覽24 個 templates、received / accepted / rejected 皆為 0、cross-packet checks 10 個、evidence routing rules 6 條、display sections 8 個、state transition rules 7 條、reviewer checklist 9 個、reviewer outcome lanes 7 條、reviewer audit event templates 4 個、reviewer audit display sections 5 個、reviewer audit collection checks 6 個、reviewer audit redaction examples 5 個、reviewer audit retention rules 5 條、reviewer audit retention checks 6 個、reviewer audit handoff packets 6 個、reviewer audit handoff checks 6 個、parallel session sync checks 6 個、parallel session conflict lanes 6 條、parallel session recovery checks 6 個、parallel session recovery outcome lanes 7 條,且 reviewer audit emitted 仍為 0不得把 rollup、routing、sections、transition rules、reviewer checklist、reviewer outcome lanes、reviewer audit templates、reviewer audit display sections、reviewer audit collection checks、reviewer audit redaction examples、reviewer audit retention rules、reviewer audit retention checks、reviewer audit handoff packets / checks、parallel session sync checks、parallel session conflict lanes、parallel session recovery checks 或 parallel session recovery outcome lanes 當成 approval、runtime gate、production ingestion 或 execution authorization。
整個 S2 不新增 execution router、不新增執行按鈕、不新增 runtime blocker。