Files
awoooi/docs/security/SECURITY-MIRROR-ACCEPTANCE.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

63 lines
2.9 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_acceptance_v1.schema.json` |
| Snapshot | `docs/security/security-mirror-acceptance.snapshot.json` |
| 模式 | `mirror_only` |
| runtime 執行授權 | `false` |
## 0. 核心結論
`security_mirror_acceptance_v1` 是 AwoooP 接收資安供應鏈 mirror-only 資料時的驗收契約。
它不新增功能,也不授權執行。它只定義 AwoooP 在接收前必須看見的條件:
1. Contract 數量與集合一致。
2. 每筆鏡像 payload 都有 `security_mirror_event_v1` 信封。
3. Route group 覆蓋所有 contract。
4. Evidence 必須脫敏。
5. LOW / MEDIUM observation、缺 owner response、partial mirror、source-control drift、Kali observe finding、workflow / secret name gap 與 headline holding 初期不阻擋。
6. Approval Queue 不等於 execution queue。
7. Channel Event 初期低噪音。
8. 進度估算只能顯示,不可被解讀成 runtime authorization。
## 1. 驗收 Checks
| Check | 目的 | 失敗時是否阻擋鏡像 |
|-------|------|--------------------|
| `CONTRACT_COUNT_MATCH` | 確認 manifest、readiness、route coverage 對齊 36 個 contracts | 是 |
| `EVENT_ENVELOPE_REQUIRED` | 確認每筆 payload 都不可執行、不可顯示執行按鈕 | 是 |
| `ROUTE_GROUP_COVERAGE` | 確認 5 個 route groups 覆蓋所有 contracts | 是 |
| `REDACTION_ONLY` | 確認不保存 raw sensitive value | 是 |
| `PROGRESS_ESTIMATE_NOT_AUTHORIZATION` | 確認 58% headline 進度與 micro progress delta ledger 只作跨 Session 狀態顯示,不授權 scan / execute / repo / refs / workflow / secret / runner / primary 動作 | 是 |
| `LOW_MEDIUM_NOT_BLOCKING` | 確認 7 條 low-friction non-blocking escalation lanes 初期只 observe / warn | 否 |
| `APPROVAL_IS_NOT_EXECUTION` | 確認 approval 只留痕、不自動執行 | 否 |
| `CHANNEL_LOW_NOISE` | 確認通知低噪音 | 否 |
## 2. AwoooP 可做
1. 顯示驗收結果。
2. 顯示哪個 check 失敗。
3. 將失敗 evidence 留在 Audit evidence。
4. 對 blocking check 失敗時暫停鏡像該批 payload。
5. 對非 blocking check 失敗時顯示 warn保留低摩擦 rollout。
6.`security_mirror_quarantine_v1` 顯示隔離 lane 與 retry gate。
## 3. AwoooP 不可做
1. 不把驗收契約轉成 runtime blocker。
2. 不把 Approval Queue 接成 execution queue。
3. 不自動補猜缺失 contract。
4. 不保存 raw secret、token、cookie、private key 或 exploit payload。
5. 不啟動 Kali scan。
6. 不建立 repo、不修改 visibility、不 sync refs、不切 GitHub primary。
## 4. 階段定位
S2.4 的目標是讓 AwoooP 消費 mirror-only 資安資料時有共同驗收語言。
它仍然屬於框架期,不是收緊期;只有「鏡像資料本身不完整或不脫敏」才阻擋該批 mirror ingestion不阻擋產品、部署或使用者流程。