Files
awoooi/docs/security/SECURITY-MIRROR-READINESS.md

85 lines
3.7 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-13 |
| 狀態 | 草案 |
| 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` | 27 | 可直接 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 evidence | 先 review Gitea read-only inventory approval |
| `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。
## 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`,顯示跨 Session 狀態與下一個 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 `kali_integration_status_v1``kali_scan_scope_approval_v1`
14. 最後再 mirror source-control 相關 contracts。
整個 S2 不新增 execution router、不新增執行按鈕、不新增 runtime blocker。