8.4 KiB
8.4 KiB
資安鏡像狀態彙整契約
| 項目 | 內容 |
|---|---|
| 日期 | 2026-05-17 |
| 狀態 | 草案 |
| Schema | docs/schemas/security_mirror_status_rollup_v1.schema.json |
| Snapshot | docs/security/security-mirror-status-rollup.snapshot.json |
| 模式 | mirror_only |
| runtime 執行授權 | false |
0. 核心結論
security_mirror_status_rollup_v1 是 AwoooP 與 Security Supply Chain Session 的共同狀態入口。
它只彙整目前框架、鏡像契約、approval queue 與下一個安全 gate,不授權任何 scan、execute、repo、refs、deploy 或 secret 類動作。
1. 目前狀態
| 類型 | 狀態 |
|---|---|
| 整體進度估算 | 約 58%;框架 / 治理 / 文件 / schema / read-only evidence 約 80-85%,runtime ingestion / owner response / GitHub primary / AwoooP production landing 約 35-40% |
| Contract manifest | 35 個 contracts |
| Mirror readiness | 32 ready、2 partial、1 contract-only、0 blocked |
| Approval queue | 8 items:7 pending approval、1 block candidate |
| Approval gate | S3.0 已建立;0 approved、7 pending、1 block candidate |
| Decision records | S3.1 已建立;目前 0 筆決策紀錄 |
| Review packets | S3.2 已建立;8 packets、7 ready for human review、1 block candidate |
| State transitions | S3.3 已建立;5 個 decision options 都有 next state,且都不授權執行 |
| Follow-up runtime gate templates | S3.4 已建立;8 個 templates、0 個 active runtime gates |
| GitHub primary readiness gate | S4.0 已建立;8 個 candidate repos、7 個 in-scope blocked、0 個 primary ready;S4.10 已補 GitHub target owner decision response request packet、7 個 template statuses 與收件包,7 個 response templates、owner response 0 筆;S4.11 已補 refs truth owner response 收件包,5 個 response templates、owner response 0 筆;S4.12 已補 workflow / secret 名稱 owner response 收件包,5 個 response templates、owner response 0 筆;S4.13 已補四包 owner response validation rollup,22 個 templates、received / accepted / rejected 皆為 0 |
| GitHub primary rollback ADR | S4.4 已建立;7 個 in-scope rollback drafts、0 個 owner approved、0 個 dry-run completed、0 個 active cutover |
| Gitea inventory | S4.5 已補認證清冊匯出請求;S4.6 已補匯入驗收契約;S4.7 已補 owner coverage attestation;S4.8 已把既有 Gitea queue/gate/review packet/follow-up gate 對齊 attestation 先行;S4.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;目前 status=partial_waiting_authenticated_inventory、未認證公開範圍 repos 2 個、本機可見 Gitea unique repos 4 個、匯出來源選項 2 類、匯入驗收 payload 0 筆、owner attestation items 5 個、收到 attestation 0 筆、owner response 0 筆、audit events emitted 0 筆、敏感 payload 必須隔離、允許收集 token value=false |
| Workflow / secret name inventory | S4.1 已建立;S4.2 補 4 個 repos、31 個 workflow files、43 個 referenced secret names 的 local evidence;S4.3 補 7 個 repos、5 類 lanes 的 redacted export request;S4.12 補 5 個 owner response templates;0 個 inventory complete、禁止收集 secret value、禁止 write token |
| Owner response validation | S4.13 已建立;四包 owner response 目前 received/accepted 皆為 0;4 條 missing response lanes、4 步 collection order 與 next collection candidate 可供 AwoooP 直接顯示;下一個建議收件為 S4.9 Gitea owner attestation;latest local validation 為 SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK,不代表 owner response 已收到或任何執行授權 |
| Dry-run | contract_defined_not_executed;已納入 CHECK_PROGRESS_GUARD 與 CHECK_OWNER_RESPONSE_GUARD,latest local validation 為 repo_snapshot_guard_pass,仍不代表 production ingestion |
| Runtime actions | false |
| Payload ingestion | false |
1.1 進度判讀
目前進度不是以「強制防護開了多少」計算,而是以統帥指定的低摩擦路線拆成兩層:
- 框架期約 80-85%:35 個主要 contract 已有 32 個 ready、2 個 partial、1 個 contract-only、0 blocked,表示治理骨架、只讀 evidence、人工批准語義與 AwoooP mirror-only 接口已接近完整。
- 落地期約 35-40%:owner responses 仍為 0、active runtime gate 為 0、payload ingestion 為 false、GitHub primary ready 為 0、AwoooP production ingestion 尚未啟用。
因此跨 Session 採用 58% 作為目前整體進度。這代表「框架健康、尚未過度收緊」,不是 runtime enforcement 或 primary cutover 授權。
只讀驗證:
python3 scripts/security/security-mirror-progress-guard.py
2. AwoooP 可做
- 顯示 S0 到 S4 的階段狀態。
- 顯示 contract readiness、approval queue summary、approval gate summary 與下一個 gate。
- 將彙整結果寫入 Audit evidence。
- 低噪音通知階段完成、blocked reason 或人工批准必要事件。
- 把下一步限制在
observe/approval_required/block_candidate。
3. AwoooP 不可做
- 不把 rollup 當成 runtime authorization。
- 不新增 scan、execute、repo、refs、deploy、secret 類 action button。
- 不把 LOW / MEDIUM observation 變成 blocking gate。
- 不把 approval queue 接成 runner。
- 不把 GitHub primary、refs sync 或 Kali
/execute當成已批准。
4. 下一個安全 gate
下一步仍不是 runtime enforcement。
建議先讓 AwoooP 主線只讀消費本 rollup、security_approval_gate_v1、security_approval_decision_record_v1、security_approval_review_packet_v1、security_approval_state_transition_v1、security_followup_runtime_gate_v1、source_control_primary_readiness_gate_v1、source_control_primary_rollback_adr_v1 與 source_control_workflow_secret_name_inventory_v1,並由人工依序 review:
- redacted finding ingestion adapter。
- safe web crawl scope。
- Gitea private/internal read-only inventory:先依 S4.9 收到並驗收 S4.7 owner coverage attestation response,且 S4.8 已把這個先行條件接到既有 approval queue / gate / review packet / follow-up runtime gate;再依 S4.5 認證匯出請求補全量清冊;收到脫敏 payload 後先依 S4.6 驗收 / 拒收 / 隔離;目前未認證公開範圍 2 個、本機可見 Gitea unique 4 個、覆蓋缺口 2 個、attestation items 5 個、owner response 0 筆,不保存 token value。
- GitHub target / owner / visibility / canonical:先依 S4.10 request packet 與 template status ledger 收到並驗收 7 個 owner decision response templates;received / accepted response 目前皆為 0,不得把 request packet 或 response packet 當成 repo creation、visibility change、refs sync 或 primary approval。
- Kali
/execute維持 block candidate。 - Refs truth owner response:先依 S4.11 顯示 main/dev truth、deprecated drift、release tag、GitHub-only refs 的 5 個 response templates;received / accepted response 目前皆為 0,不得把 response packet 當成 refs sync、delete、force push 或 primary approval。
- Workflow / secret 名稱 owner response:先依 S4.12 顯示 webhook、runner、deploy key、branch protection / CODEOWNERS、repository secret name parity 的 5 個 response templates;received / accepted response 目前皆為 0,不得把 response packet 當成 secret value 收集、workflow 修改、GitHub hosted runner 啟用或 primary approval。
- Owner response validation rollup:先依 S4.13 顯示 S4.9/S4.10/S4.11/S4.12 四包 response packets、22 個 templates、10 個 cross-packet checks 與 quarantine rules;不得把 rollup 當成 approval、runtime gate 或 execution authorization。
- GitHub primary readiness blockers 與 rollback ADR 缺口。
- S4.4 GitHub primary rollback ADR 草案:先顯示 7 個 repo 的 rollback owner、validation window 與 triggers,owner approval 前不可執行。
- workflow / webhook / runner / deploy key / branch protection / CODEOWNERS / secret 名稱 inventory 缺口,先看 S4.2 local evidence,再依 S4.3 redacted export request 與 S4.12 owner response 收件包補 webhook / runner / deploy key / branch protection / repository secret parity;只保存名稱與 owner,不保存 value,不使用 write token。
任何批准後的執行仍需下一階段 runtime gate 與獨立 evidence,不得由本 rollup 自動觸發。