fix(iwooos): 標明 AI 自動化資安閉環
Some checks failed
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / tests (push) Successful in 1m36s
CD Pipeline / build-and-deploy (push) Successful in 5m9s
CD Pipeline / post-deploy-checks (push) Successful in 2m1s
Ansible / Reboot Recovery Contract / validate (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-18 15:00:40 +08:00
parent 97bdba828c
commit 87f1dc8dbc
6 changed files with 125 additions and 8 deletions

View File

@@ -10638,7 +10638,7 @@
"iwooos": {
"eyebrow": "資訊安全網",
"title": "IwoooS",
"subtitle": "Kali、原始碼、主機、執行閘門與AwoooP 證據可視化資安態勢。",
"subtitle": "AWOOOI 的 AI 自動化資安閉環:把 Kali、原始碼、主機、告警、候選、執行閘門、驗證器與 AwoooP 證據串成可視化資安態勢。",
"boundary": {
"label": "目前邊界",
"state": "只讀鏡像 / 先觀測",
@@ -10682,8 +10682,8 @@
},
"cards": {
"visibleWork": {
"title": "已完成可見工作",
"body": "IwoooS 已把焦點導覽、視覺資安網、拓樸圖、決策跑道、執行閘雷達、AwoooP、任務媒合產品代理賞金協議 納管呈現到前台。"
"title": "AI 自動化閉環已前台化",
"body": "IwoooS 已把焦點導覽、視覺資安網、拓樸圖、決策跑道、執行閘雷達、AwoooP、任務媒合產品代理賞金協議納管呈現到前台;所有訊號都要能回到 AI 分流、候選、閘門、驗證器與學習回寫。"
},
"assetMesh": {
"title": "資產與主機已納管",
@@ -18176,7 +18176,7 @@
"items": {
"done": {
"title": "前台可見工作已整合",
"body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安工作改以藏在文件。"
"body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安訊號進入 AI 自動化閉環,而不是只停在文件或訊息轉發。"
},
"kali112": {
"title": "Kali host:kali-readonly 已納入資安網",

View File

@@ -10638,7 +10638,7 @@
"iwooos": {
"eyebrow": "資訊安全網",
"title": "IwoooS",
"subtitle": "Kali、原始碼、主機、執行閘門與AwoooP 證據可視化資安態勢。",
"subtitle": "AWOOOI 的 AI 自動化資安閉環:把 Kali、原始碼、主機、告警、候選、執行閘門、驗證器與 AwoooP 證據串成可視化資安態勢。",
"boundary": {
"label": "目前邊界",
"state": "只讀鏡像 / 先觀測",
@@ -10682,8 +10682,8 @@
},
"cards": {
"visibleWork": {
"title": "已完成可見工作",
"body": "IwoooS 已把焦點導覽、視覺資安網、拓樸圖、決策跑道、執行閘雷達、AwoooP、任務媒合產品代理賞金協議 納管呈現到前台。"
"title": "AI 自動化閉環已前台化",
"body": "IwoooS 已把焦點導覽、視覺資安網、拓樸圖、決策跑道、執行閘雷達、AwoooP、任務媒合產品代理賞金協議納管呈現到前台;所有訊號都要能回到 AI 分流、候選、閘門、驗證器與學習回寫。"
},
"assetMesh": {
"title": "資產與主機已納管",
@@ -18176,7 +18176,7 @@
"items": {
"done": {
"title": "前台可見工作已整合",
"body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安工作改以藏在文件。"
"body": "IwoooS 已串起安全合規、告警、授權、治理、錯誤追蹤、操作日誌與程式碼審查,讓資安訊號進入 AI 自動化閉環,而不是只停在文件或訊息轉發。"
},
"kali112": {
"title": "Kali host:kali-readonly 已納入資安網",

View File

@@ -1,3 +1,37 @@
## 2026-06-18AI 自動化產品契約硬化:告警必須進閉環,不得只丟 raw 訊息
**背景**:統帥指出 AWOOOI / AwoooP / IwoooS 本質是 AI 自動化產品,不能把監控告警當成一般訊息轉發;尤其主機 CPU、容器 root Node.js、Nginx drift、Wazuh、Kali、CI/CD、供應鏈與資安訊號都必須可讀、可判斷、可圖像化並能進入 AI lane、候選、Gate、owner、verifier、learning / writeback 閉環。
**完成內容**
- `docs/superpowers/specs/2026-04-15-MASTER-ai-autonomous-flywheel-v2.md` 新增 `§1.4 AI 自動化產品契約`,固定 Sensor / Evidence、Normalizer、AI Lane、Candidate、Gate、Execution Boundary、Verifier、Learning / Writeback 八段合格線。
- `docs/awooop/TELEGRAM-INCIDENT-NOTIFICATION-MODEL.md` 補強 `ai_automation_alert_card_v1`:合格告警必須說清楚 AI lane、候選、Gate、owner、verifier 與 Timeline / KM / PlayBook 回寫;不合格告警包含 raw `ps aux``docker stats`、stdout/stderr、完整路徑、內部對話、個人 namespace、內網位址、secret 片段或未脫敏 payload。
- `docs/security/SECURITY-ASSET-CONTROL-LEDGER.md` 補上 IwoooS 資安總帳的 AI 自動化欄位:`sensor_ref``normalizer_ref``ai_lane``candidate_policy``gate_contract``executor_boundary``verifier_ref``learning_writeback_ref`
- 與前一段 code-side 變更銜接:主機 / runner 資源告警已能在 `TelegramGateway.send_alert_notification()` HTML 出口轉成 `ai_automation_alert_card_v1` 候選卡raw process dump 壓縮成可判讀 top evidence不把完整 `/workspace/...` 或整段 `ps aux` 外送。
- `apps/web/messages/zh-TW.json` 與目前鏡像內容補上首屏產品定位IwoooS 是 `AWOOOI 的 AI 自動化資安閉環`,訊號必須回到 AI 分流、候選、閘門、驗證器與學習回寫;沒有放入工作視窗對話、個人 namespace、內網位址或逐字溝通內容。
**驗證**
- `DOC_SECRET_SANITY_OK scanned_files=4`
- `git diff --check`:通過。
- `security-mirror-progress-guard.py --root ...``SECURITY_MIRROR_PROGRESS_GUARD_OK`
- `public-frontend-env-guard.py --root .``OK ... violations=0 runtime_gate=0`
- `apps/web` `npm run typecheck`:通過。
- `https://awoooi.wooo.work/api/v1/health``healthy`PostgreSQL、Redis、OpenClaw、SignOz、Ollama GCP-A / GCP-B / local route 均為 `up`
- `https://awoooi.wooo.work/zh-TW/iwooos?_v=2d278568-iwooos-ai-product-contract-probe`:已可見 `IwoooS``AI 自動化``安全合規``資安資產控制總帳``P0-A 資安資產控制總帳``審查後修正候選`
- 同一 production HTML 敏感字串掃描:`工作視窗``Gemini溝通``source_thread_id``codex_delegation``/Users/`、個人 namespace、內網位址皆未命中。
- Browser desktop `1440x900``scrollWidth=1434``clientWidth=1434``horizontalOverflow=false`,首屏可見 IwoooS、P0-A、資安資產控制總帳、審查後修正候選。
- Browser mobile `390x844``scrollWidth=384``clientWidth=384``horizontalOverflow=false`,首屏可見 IwoooS、P0-A、資安資產控制總帳、審查後修正候選。
**完成度同步**
- AI 自動化產品契約規範:`100%`
- 告警事件包規範:`100%`
- Host / runner 告警 formatter repo-side`100%`
- IwoooS 資安資產總帳 AI 欄位契約:`100%`
- IwoooS 首屏 AI 自動化產品定位 repo-side`100%`,待下一個 deploy marker 後做 production 可視確認。
- Runtime write / Telegram live send / Wazuh active response / Kali active scan`0%`
- Production deploy / `/zh-TW/iwooos` 前台驗證:`cd.yaml #3140` 因後續主線推進已取消,已改追 `f358a0f6``cd.yaml #3150`deploy marker `2d278568` 已進 `gitea/main`Gitea `cd.yaml #3150` 已成功production probe 與 desktop / mobile browser 驗證完成。
**邊界**:本段只做規範與 repo-side 契約,不送 Telegram、不改主機、不 reload Nginx、不改 firewall、不 kill process、不觸發 Wazuh active response、不跑 Kali active scan、不收 secret、不把工作視窗內容放入前端。
## 2026-06-18110 Runaway Process AIOps 監控 / 告警 / PlayBook 收斂
**背景**110 CPU 滿載已確認主因是跨專案 stockPlatform headless Chrome smoke 遺留 5 組 orphan process group其中兩組各吃約 120% CPU精準 `SIGTERM``REMAINING_AFTER_TERM=0`。後續 load 仍高是 active Gitea Actions CI build/test並非 orphan Chrome、Docker/Sentry/Harbor 事故。這類問題不能停在人工 `top/ps`必須產品化成監控、告警、PlayBook、KM 與 gated 修復。

View File

@@ -22,6 +22,51 @@ Telegram 不應是完整執行日誌,也不應承載所有 AI 推理細節。T
3. 同一個 `incident_id` 的相同狀態更新,短時間內要去重。詳細重試與錯誤放到 timeline不洗 Telegram。
4. P0 / P1 escalation 可以另發升級卡,但內容必須是「目前影響、已嘗試、卡住原因、需要誰做什麼」,不可重貼所有底層 log。
5. Code Review、Config Drift、報表、心跳不應和 incident 執行回覆混在同一種語義;它們可以在同一 SRE 群組,但必須以摘要卡與固定前綴區分。
6. 主機、容器、runner、Nginx、Wazuh、Kali、CI/CD 這類資安 / 維運告警不得直接外送 `ps aux``docker stats`、stdout/stderr 或完整路徑;必須先轉成 AI 自動化事件包,再只保留可判讀摘要與 top evidence。
## AI 自動化告警事件包
IwoooS / AwoooP 是 AI 自動化產品Telegram 告警不是終點,而是自動化飛輪的入口。任何可觸發值班判斷的告警,至少要能被轉成 `ai_automation_alert_card_v1` 等級的事件包。
合格告警的定義不是「有送出訊息」,而是能讓 operator 直接看出 AI 已把訊號送進哪一條自動化 lane、產生哪一個候選、目前被哪一道 Gate 擋住、誰要審、驗證要看哪裡,以及後續如何回寫 Timeline / KM / PlayBook。未做到這件事的訊息只能算 raw observability不能算 AWOOOI 產品層告警。
事件包必填欄位:
| 欄位 | 說明 |
| --- | --- |
| 事件類型 | 例如 `host_resource_pressure``runner_build_resource_pressure``wazuh_intrusion_signal``kali_assessment_signal``nginx_config_drift`。 |
| 影響判讀 | 用一到三行說明現在影響的是服務可用性、入侵風險、部署風險、資料完整性或觀測盲點。 |
| 視覺化摘要 | 使用條狀圖、狀態列、矩陣或後續圖卡;不得只丟 raw log。Telegram 純文字階段可用 `■■□□` 類視覺 bar前端 / 報表可再升級圖卡。 |
| AI lane | 指定 AI 後續分流 lane例如 runner 資源壓力、主機入侵、設定漂移、供應鏈風險。 |
| Gate | 明確顯示 `candidate_only``approval_required``runtime_write_gate=0` 或已取得的授權;不得把告警當成 runtime 寫入批准。 |
| Top evidence | 最多保留前三個可判讀證據;只放 PID、CPU、服務類型、告警規則、redacted evidence ref不放完整主機路徑、secret、個人 namespace 或內部對話內容。 |
| 建議下一步 | 指向 AI 要沉澱的候選、owner 欄位、AwoooP Run / Work Item / IwoooS gate而不是只叫人看 log。 |
| 禁止事項 | 當下不允許的動作要明確列出,例如不 kill process、不 restart Docker / Gitea、不 reload Nginx、不改 firewall、不觸發 Kali active scan。 |
事件包必須能接到下列產品閉環:
| 閉環節點 | 必須可回讀的狀態 |
| --- | --- |
| AI lane | `security_intrusion_triage``runner_build_resource_pressure``nginx_config_drift``supply_chain_drift` 等明確 lane。 |
| Candidate | 對應候選動作、owner request、dry-run、Work Item 或 Run不得只有「請人工判斷」。 |
| Gate | `candidate_only``approval_required``runtime_write_gate=0/1`、批准者與批准理由。 |
| Verifier | post-check、route smoke、receipt readback、Wazuh / SIEM readback、production health 或 no-write 驗證結果。 |
| Learning | Timeline event、KM / PlayBook writeback、trust score / rule learning 或報表沉澱狀態。 |
不合格告警範例:
- 只貼 CPU、`ps aux``docker stats`、stdout/stderr、完整路徑或完整 log。
- 只說「AI 選擇不執行」但沒有候選、Gate、owner、verifier 或 learning。
- 把工作視窗、內部對話、個人 namespace、內網位址、secret 片段或未脫敏 raw payload 放進 Telegram 或前端。
- 把 Telegram 送達、UI 可見、CD success 或 smoke success 誤當成 runtime 寫入批准。
Host / runner 資源告警的第一版落地:
- `TelegramGateway.send_alert_notification()` 會在 HTML 告警出口自動套用 host resource formatter。
- `CPU 警告``容器內 root Node.js 進程`、含 `ps aux` 且指向 build 程序的文字,會被轉成 `ai_automation_alert_card_v1`
- raw process dump 會被壓成 `PID + CPU + 精簡命令`,不保留 `/workspace/...`、完整 node module 路徑或整段 `ps aux`
- build 壓力會分流到 `runner_build_resource_pressure`,預設 `candidate_only / runtime_write_gate=0`
- 這只建立 AI 候選與判讀入口,不代表允許 kill process、restart 服務、改 Nginx、改 firewall 或執行 Kali active scan。
## 與 AwoooP 的分工

View File

@@ -19,6 +19,25 @@
本文件不是 live host truth也不是主機修復、掃描、封鎖、reload、restart、secret rotation、workflow dispatch、SOAR action 或 production write 授權。
## 1.1 AI 自動化產品契約
IwoooS 的資安總帳不是靜態 CMDB也不是把主機、服務、Nginx、Wazuh、Kali、workflow 與產品頁列成表格就結束。AWOOOI 是 AI 自動化產品,所以每個資安資產群組都必須能被轉成可審核的自動化單元。
每個資安資產群組後續至少要補齊:
| 自動化欄位 | 用途 |
|------------|------|
| `sensor_ref` | 指出訊號來源,例如 Wazuh、Prometheus、SigNoz、Sentry、Gitea Actions、route smoke 或只讀 snapshot。 |
| `normalizer_ref` | 指出 raw signal 如何轉成脫敏事件包,禁止 raw payload 直上前端或 Telegram。 |
| `ai_lane` | 指定 AI 分流例如入侵判讀、主機資源、Nginx drift、供應鏈、runtime gate、owner review。 |
| `candidate_policy` | 定義 AI 可產生哪些候選owner request、dry-run、patch / PR、maintenance window 草案或 verifier plan。 |
| `gate_contract` | 固定 `candidate_only``approval_required``runtime_write_gate=0/1` 與批准來源。 |
| `executor_boundary` | 明確列出可用 executor 與禁止動作,避免預設 kill、restart、reload、firewall change、active scan。 |
| `verifier_ref` | 指向 post-check、route smoke、Wazuh / SIEM readback、receipt readback、production health 或 no-write 驗證。 |
| `learning_writeback_ref` | 指向 Timeline、KM、PlayBook、trust score、報表與前台狀態回寫。 |
若資產群組沒有上述欄位,只能算「已納入只讀視野」,不得宣稱完成 AI 自動化控管。這個契約不會打開 runtime gate它只防止後續把 raw 告警、UI 可見、owner 草稿、CD success 或只讀 snapshot 誤判成真正的 AI 自動化閉環。
## 2. 固定摘要
| 指標 | 值 |

View File

@@ -88,6 +88,25 @@
5. **Observable by Default** — 任何 AI 推理過程必須對前端 + Telegram 可見(推播中間狀態,不是黑盒)
6. **Self-Distrust** — AI 自己的決策品質由獨立 Critic Agent 評分,連續低分自動降級
### 1.4 AI 自動化產品契約
AWOOOI / AwoooP / IwoooS 不是單純監控頁、告警轉發器或資安清冊;它是一個 AI 自動化產品。任何監控、資安、維運、供應鏈、Nginx、Wazuh、Kali、CI/CD、主機與前後台訊號若只停在 raw log、截圖、Telegram 文字或表格清單,不得宣稱已完成產品化。
每個可觸發值班判斷的訊號都必須能映射到下列閉環,才算進入 AI 自動化主線:
| 階段 | 必備輸出 | 不合格狀態 |
|------|----------|------------|
| Sensor / Evidence | 脫敏證據 ref、來源時間、可信度、觀測盲點 | 只有 raw log、完整路徑、內部對話或個人 namespace |
| Normalizer | `ai_automation_alert_card_v1` 或同等事件包 | 只把 Alertmanager / shell output 原樣轉貼 |
| AI Lane | 明確分流到資安入侵、主機資源、配置漂移、供應鏈、runtime gate、owner review 等 lane | 只有 `general` 或「請人工判斷」 |
| Candidate | 產生候選動作、候選 owner packet、no-write dry-run 或 work item | 沒有下一步,只說需要查看 |
| Gate | 顯示 `candidate_only``approval_required``runtime_write_gate=0/1` 與批准來源 | 把告警、UI 可見或 CD 成功當成授權 |
| Execution Boundary | 指定可執行器、禁止事項、rollback owner、maintenance window | 預設 kill、restart、reload、firewall change、active scan |
| Verifier | post-check、route smoke、receipt readback、Wazuh / SIEM readback 或 production health | 沒有驗證或只憑「看起來好了」 |
| Learning / Writeback | Timeline、KM、PlayBook、trust score、報表與前台狀態回寫 | 沒有沉澱,下次仍重複人工判斷 |
因此告警格式、前台卡片、Run、Work Item、Telegram、日週月報與資安總帳都必須優先回答「AI 現在判讀到哪一段、下一步候選是什麼、哪個 Gate 阻擋、誰是 owner、驗證與學習是否回寫」。若無法回答完成度不得被上修只能列為 raw observability 或只讀證據。
---
## §2 當前架構診斷(鐵證 — 2026-04-15 深層病灶掃描)