docs(security): add IwoooS P0 governance ledger [skip ci]

This commit is contained in:
Your Name
2026-06-04 15:19:09 +08:00
parent 4e648639c7
commit 032c5ee4ba
12 changed files with 364 additions and 21 deletions

View File

@@ -0,0 +1,156 @@
# 2026-06-04 IwoooS 資安治理 P0 推進總帳
> 本文件是本工作視窗推進 IwoooS 分支專案的 P0 主控板。所有內容維持繁體中文、只讀證據優先、低摩擦分階段收斂。它不是 runtime 授權、不是 Kali active scan 授權、不是 GitHub primary 切換授權,也不是自動修復授權。
## 0. 當前同步基線
| 項目 | 目前值 |
|------|--------|
| 工作視窗 | IwoooS / AWOOOI 資安治理 P0 |
| 本次乾淨 worktree | `/private/tmp/awoooi-iwooos-governance-p0-20260604` |
| 本次分支 | `codex/iwooos-governance-p0-20260604` |
| 最新觀察到的 `gitea/main` | `0260ec89 chore(cd): deploy 973fc7a [skip ci]` |
| 前一個正式 IwoooS 候選基準 | code `7b8fc093`、deploy marker `45c63488`、LOGBOOK `02cadee6` |
| 最新導航 IA 基準 | code `973fc7a4`、LOGBOOK `2555c811`、deploy marker `0260ec89` |
| 禁止事項 | 不 force push、不 destructive git、不 SSH 修改主機、不 active scan、不收 secrets 明文、不把 AwoooP approval 當資安批准、不把 UI 可見當 runtime 授權 |
## 1. 完成度總表
| 面向 | 目前完成度 | 本輪是否可調高 | 判讀 |
|------|------------|----------------|------|
| IwoooS 整體 | 64% | 否 | 本輪先補治理總帳與 Gate 規範,不代表 owner response accepted 或 runtime gate 開啟 |
| 框架 / 只讀證據 / 前台可視化 | 92% | 否 | 框架已成熟,但仍需 owner response 與 redacted evidence 進一步驗收 |
| runtime landing | 40-45% | 否 | production 只讀頁存在,不等於 runtime ingestion 或 execution router |
| active runtime gate | 0 | 否 | 必須維持 0直到獨立人工批准、rollback、post-check 與 guard 成立 |
| S4.9 owner response gate | 0% | 可在收到合格回覆後調整 | 目前只定義欄位、預檢、收件與驗收,不標記 received / accepted |
| GitHub primary readiness | 0 | 否 | 目前只讀盤點,不建立 repo、不同步 refs、不切 primary |
| Kali 112 維護準備 | 只讀證據已納管,維護尚未開始 | 否 | 不更新套件、不重啟、不 hardening、不 active scan |
| 111 / 168 開發主機納管 | observe-only mapping 已有,維護包需補強 | 可補文件,不調 runtime | 仍不 credentialed scan、不讀未授權資料、不自動修復 |
| VibeWork 納入 IwoooS | 前端態勢已有 onboarding 欄位,產品邊界需補規範 | 可補文件 | 保留 VibeWork 獨立產品邊界 |
## 2. P0 工作拆解與優先順序
| 優先 | 工作 | 完成度 | 下一步 | 必要驗證 |
|------|------|--------|--------|----------|
| P0-0 | 跨 Session 同步與乾淨 worktree | 100% | 每次改檔前重新 `git fetch gitea` 與檢查 `gitea/main` | `git status --short --branch``git log --oneline -8 gitea/main` |
| P0-1 | IwoooS 狀態總帳 | 100% | 本文件已落地;後續每階段只更新同一總帳與 LOGBOOK | Markdown 檢查、guard、不調高 0 / false gate |
| P0-2 | S4.9 owner response gate | 100% | 欄位、預檢、收件、驗收、拒收與補件條件已固定成人類可讀規範 | `source-control-owner-response-guard.py --root .` 通過 |
| P0-3 | AwoooP 同步封包 | 90% | 同步內容已固定;缺後續實際 AwoooP Session readback | 本文件與 mirror checklist readback |
| P0-4 | production live sanity 節點 | 100% | desktop / mobile / 展開區塊 / overflow / action href 檢查已完成 | Playwright production sanity 通過 |
| P0-5 | LOGBOOK 與完成度更新 | 90% | LOGBOOK 本輪將同步記錄Gitea run 需等實際 push 後回填 | `docs/LOGBOOK.md` readback |
## 3. S4.9 Owner Response Gate 規範
S4.9 是目前 IwoooS 64% 能往前的第一優先 gate。驗收前所有 count 必須維持 `0`,所有授權 flag 必須維持 `false`
### 3.1 必填封套欄位
| 欄位 | 說明 | 缺漏時處理 |
|------|------|------------|
| `owner_role_or_team` | 負責角色或團隊,不需要個人敏感資料 | 補件,不增加 received |
| `decision` | 允許值:`confirm``defer``reject``request_more_evidence` | 非允許值直接拒收 |
| `decision_reason` | 決策理由摘要,不得貼 raw secret、token、cookie 或未脫敏截圖 | 補件或隔離 |
| `affected_scope` | 影響範圍,例如 repo 群、Gitea coverage、canonical owner、legacy disposition | 補件 |
| `redacted_evidence_refs` | 只接受文件路徑、ticket id、hash、摘要或脫敏 evidence ref | 疑似敏感 payload 進 quarantine |
| `followup_owner` | 後續補證或決策負責人 | 補件 |
### 3.2 驗收前禁止誤用
| 禁止誤用 | 規則 |
|----------|------|
| 把 request template 當已送件 | `request_sent_count` 必須維持 0除非有人工送件紀錄 |
| 把 owner 回覆候選當 accepted | `accepted_response_count` 必須維持 0直到預檢、跨包一致性與 reviewer checklist 通過 |
| 把 AwoooP approval 當資安批准 | AwoooP approval 只能是只讀候選或人工流程入口,不等於 security approval decision record |
| 把 UI 可見當 runtime 授權 | 前端卡片、Gate、矩陣、候選狀態都不是 execution router |
| 收 secrets 明文 | token、secret、private key、cookie、session、authorization header、runner token、webhook secret 全部拒收或隔離 |
| 夾帶執行要求 | repo 建立、visibility change、refs sync、workflow 修改、runner 啟用、Kali scan、`/execute`、host update 全部 hard reject |
## 4. 驗證節點規則
| 階段類型 | 必跑驗證 | 是否需要實際開頁 |
|----------|----------|------------------|
| 純文件 / 總帳更新 | `git diff --check`、相關 guard | 不一定,但若文件聲稱 production 狀態,必須開頁 |
| snapshot / guard 更新 | `python3 scripts/security/security-mirror-progress-guard.py --root .``python3 scripts/security/source-control-owner-response-guard.py --root .` | 不一定 |
| 前端 IwoooS UX 更新 | i18n JSON parse、TypeScript、build、desktop/mobile browser smoke | 必須開 local preview部署後也要開 production |
| production 聲明更新 | Gitea run、deploy marker、HTML readback、desktop/mobile、水平溢出、相關展開區塊 | 必須開 production |
| Kali / 主機維護準備 | 只讀文件與 maintenance window 檢查 | 不開 active scan不得 SSH 改主機 |
| runtime / execution gate | 人工批准、rollback、post-check、disable plan、guard、production readback | 必須開 production且不得只靠 UI |
### 4.1 `/zh-TW/iwooos` live sanity 清單
1. 首屏正常回應HTTP 200。
2. 頁面仍顯示 IwoooS 主入口,不拆出第二個「安全合規」孤島入口。
3. 「前台入口與既有資安頁整合」可展開且文案正常。
4. 「審查後修正候選」可見。
5. S4.9 / owner response / active runtime gate 仍顯示 0 或 false。
6. desktop 與 mobile `horizontalOverflow=0`
7. 無 action button 觸發 scan、execute、host update、repo / refs / workflow / secret / primary switch。
## 5. AwoooP Session 同步封包
每次階段完成後,同步另一個 AwoooP Session 時至少包含:
| 類別 | 必填 |
|------|------|
| commits | 最新 source commit、deploy marker、LOGBOOK commit、是否包含上一階段基準 |
| runs | Gitea CD / code-review run id 與狀態 |
| production | URL、desktop / mobile sanity、overflow、展開區塊結果 |
| gate | IwoooS 整體%、framework%、runtime landing%、active runtime gate、owner response count |
| 邊界 | 未授權事項、不可誤讀事項、下一個 gate |
| 衝突處理 | 如果 `gitea/main` 前進,先重讀 latest delta不 rebase 到不明狀態、不 force push |
## 6. P1 / P2 / P3 後續待辦
| 優先 | 工作 | 細項 | 驗證 |
|------|------|------|------|
| P1 | GitHub primary readiness 只讀重盤 | repo visibility、refs、tags、workflow、secret name、runner、rollback ADR | 只讀 inventory不建立 repo、不同步 refs |
| P1 | Kali 112 維護窗口草案 | 1994 pending updates、`networking.service` failed、服務硬化 0/4、rollback、post-check | 文件與人工批准;不 `apt upgrade`、不 restart |
| P1 | 111 / 168 主機 scope 補強 | scope、maintenance window、credential handling、rollback owner、validation 指標 | observe-only不 credentialed scan |
| P1 | VibeWork 納入 IwoooS | repo、product、surface、owner、evidence refs、獨立產品邊界 | 繁中 docs/specs不合併產品責任 |
| P1 | Code Review 候選分類 | 前端體驗、測試補洞、文件同步、低風險重構;人工批准後才 Codex | 候選不自動改 code、不自動 deploy |
| P2 | IwoooS UX 精簡 | 首屏摘要、圖、矩陣、Gate長證據改展開式 | desktop/mobile 開頁、overflow |
| P2 | 資安圖表專業化 | 主拓樸圖、攻擊路徑圖、主機 / 產品 / 版本來源關聯圖、Gate flow | local + production browser |
| P2 | 全站繁中檢查 | `zh-TW` 與鏡像內容繁中;不得放內部對話或抱怨 | i18n parse、頁面抽查 |
| P3 | AI Agent 評估 | NemoTron / Hermes / OpenClaw / ElephantAlpha dry-run、benchmark、成本、安全邊界 | 不切 production |
| P3 | runtime gate 收斂 | owner evidence、人工批准、rollback、disable、post-check | production truth不只 UI |
## 7. 2026-06-04 本輪驗證紀錄
| 驗證 | 結果 |
|------|------|
| `git diff --check` | 通過 |
| `python3 -m json.tool docs/security/iwooos-posture-projection.snapshot.json` | 通過 |
| `python3 -m json.tool docs/security/source-control-owner-response-validation-rollup.snapshot.json` | 通過 |
| `python3 scripts/security/source-control-owner-response-guard.py --root .` | `SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK` |
| `python3 scripts/security/security-mirror-progress-guard.py --root .` | `SECURITY_MIRROR_PROGRESS_GUARD_OK` |
| production desktop `/zh-TW/iwooos` | HTTP / DOM 正常;展開「前台入口與既有資安頁」後候選卡可見;`horizontalOverflow=false` |
| production mobile `/zh-TW/iwooos` | 展開「前台入口與既有資安頁」後候選卡可見;`horizontalOverflow=false` |
| action href 檢查 | `/execute`、scan、repo / refs / workflow / secret / primary mutation href 皆為 0 |
| 截圖 | `/private/tmp/iwooos-governance-p0-prod-desktop-summary-open-20260604.png``/private/tmp/iwooos-governance-p0-prod-mobile-summary-open-20260604.png` |
本輪驗證後仍維持:
```text
owner_response_received_count=0
owner_response_accepted_count=0
active_runtime_gate_count=0
github_primary_ready_count=0
runtime_execution_authorized=false
action_buttons_allowed=false
host_update_authorized=false
active_scan_authorized=false
```
## 8. 本輪狀態更新格式
每個階段完成後用以下格式更新:
```text
階段:
完成度:
已完成:
驗證:
production 頁面檢查:
仍維持 0 / false 的 gate
下一步:
```