From 911198533537d097ed19cec805cd454797ea4c47 Mon Sep 17 00:00:00 2001 From: ogt Date: Thu, 25 Jun 2026 10:00:48 +0800 Subject: [PATCH] fix(iwooos): redact Wazuh frontend copy --- apps/web/messages/en.json | 32 +++++++++++------------ apps/web/messages/zh-TW.json | 32 +++++++++++------------ apps/web/src/app/[locale]/iwooos/page.tsx | 6 ++--- docs/LOGBOOK.md | 25 ++++++++++++++++++ 4 files changed, 60 insertions(+), 35 deletions(-) diff --git a/apps/web/messages/en.json b/apps/web/messages/en.json index 3b453ab69..a2c009827 100644 --- a/apps/web/messages/en.json +++ b/apps/web/messages/en.json @@ -18951,55 +18951,55 @@ } }, "wazuhIntrusionReadback": { - "eyebrow": "Wazuh / 主機入侵 Readback", + "eyebrow": "Wazuh / 主機入侵回讀", "title": "Wazuh 已建置,IwoooS 先接入入侵證據與升級流程", - "subtitle": "這張卡把 Wazuh、host-110、host-188、外部 Agent 宣稱、Runner / gateway / secret 連動與 containment / recovery proof 放進同一條 P0 回讀線;目前只顯示脫敏 alias、候選數與 0/false 邊界,不顯示原始 payload、主機細節、帳密或內部逐字內容。", + "subtitle": "這張卡把 Wazuh、兩台受管節點、外部代理宣稱、執行器、閘道、機密、圍堵決策與恢復證明放進同一條 P0 回讀線;目前只顯示脫敏別名、候選數與 0/false 邊界,不顯示原始內容、主機細節、帳密或內部逐字內容。", "checkLabel": "檢核", "stateLabel": "狀態", "boundaryTitle": "Wazuh 接入邊界", - "boundaryIntro": "以下鍵值固定:Wazuh 建置完成不等於事件已驗收;外部 Agent 宣稱、agent active、route 200、CD success 或 UI 可見都不能當成木馬清除、RCE 修補或主機乾淨的證據。", + "boundaryIntro": "以下鍵值固定:Wazuh 建置完成不等於事件已驗收;外部代理宣稱、代理程式在線、路由成功、部署成功或頁面可見,都不能當成木馬清除、遠端執行漏洞修補或主機乾淨的證據。", "summary": { "platform": { "label": "Wazuh 平台", "detail": "平台已回報建置完成,但 IwoooS 尚未接受事件證據。" }, "hosts": { - "label": "主機 alias", - "detail": "host-110 與 host-188 納入 P0 readback 範圍。" + "label": "受管節點", + "detail": "兩台受管節點納入 P0 回讀範圍。" }, "candidates": { "label": "回讀候選", - "detail": "6 個候選涵蓋控制面、主機、外部 Agent 與恢復證明。" + "detail": "6 個候選涵蓋控制面、主機、外部代理與恢復證明。" }, "runtimeGate": { "label": "執行期", - "detail": "active response、host write 與 action button 全部為 0。" + "detail": "主動回應、主機寫入與操作按鈕全部為 0。" } }, "items": { "controlPlane": { "title": "Wazuh 控制面待回讀", - "body": "需補 manager、indexer、dashboard、API health 的脫敏 ref;平台可用不等於 IwoooS 已接收事件。" + "body": "需補管理器、索引器、儀表板與 API 健康狀態的脫敏參照;平台可用不等於 IwoooS 已接收事件。" }, "hostSignals": { "title": "110 / 188 入侵訊號待接", - "body": "需補 Wazuh event refs、agent status refs 與事件時間窗;不能只用外部敘述或服務恢復判斷。" + "body": "需補 Wazuh 事件參照、代理狀態參照與事件時間窗;不能只用外部敘述或服務恢復判斷。" }, "forensics": { "title": "主機鑑識 ref 待補", - "body": "auth log、process tree、network connection、FIM、package inventory 與 persistence refs 目前 accepted 仍為 0。" + "body": "登入紀錄、程序樹、網路連線、檔案完整性、套件盤點與持久化參照目前接受數仍為 0。" }, "agentClaims": { - "title": "外部 Agent 宣稱不得直收", - "body": "任何已清除、已阻擋、已修復或 Zero-Trust 宣稱,都必須由 Wazuh 事件與主機鑑識交叉驗證。" + "title": "外部代理宣稱不得直收", + "body": "任何已清除、已阻擋、已修復或零信任宣稱,都必須由 Wazuh 事件與主機鑑識交叉驗證。" }, "containment": { - "title": "Containment decision 待 owner", - "body": "隔離、封鎖、重啟、runner / gateway / secret 變更仍需 owner、理由、回滾負責人與後檢證據。" + "title": "圍堵決策待負責人", + "body": "隔離、封鎖、重啟、執行器、閘道與機密變更仍需負責人、理由、回滾負責人與後檢證據。" }, "activeResponse": { - "title": "Active response 未授權", - "body": "不開 Wazuh active response、不 SSH、不 kill process、不改 firewall、不輪替 secret、不新增操作按鈕。" + "title": "主動回應未授權", + "body": "不開 Wazuh 主動回應、不 SSH、不結束程序、不改防火牆、不輪替機密、不新增操作按鈕。" } } }, diff --git a/apps/web/messages/zh-TW.json b/apps/web/messages/zh-TW.json index 3b453ab69..a2c009827 100644 --- a/apps/web/messages/zh-TW.json +++ b/apps/web/messages/zh-TW.json @@ -18951,55 +18951,55 @@ } }, "wazuhIntrusionReadback": { - "eyebrow": "Wazuh / 主機入侵 Readback", + "eyebrow": "Wazuh / 主機入侵回讀", "title": "Wazuh 已建置,IwoooS 先接入入侵證據與升級流程", - "subtitle": "這張卡把 Wazuh、host-110、host-188、外部 Agent 宣稱、Runner / gateway / secret 連動與 containment / recovery proof 放進同一條 P0 回讀線;目前只顯示脫敏 alias、候選數與 0/false 邊界,不顯示原始 payload、主機細節、帳密或內部逐字內容。", + "subtitle": "這張卡把 Wazuh、兩台受管節點、外部代理宣稱、執行器、閘道、機密、圍堵決策與恢復證明放進同一條 P0 回讀線;目前只顯示脫敏別名、候選數與 0/false 邊界,不顯示原始內容、主機細節、帳密或內部逐字內容。", "checkLabel": "檢核", "stateLabel": "狀態", "boundaryTitle": "Wazuh 接入邊界", - "boundaryIntro": "以下鍵值固定:Wazuh 建置完成不等於事件已驗收;外部 Agent 宣稱、agent active、route 200、CD success 或 UI 可見都不能當成木馬清除、RCE 修補或主機乾淨的證據。", + "boundaryIntro": "以下鍵值固定:Wazuh 建置完成不等於事件已驗收;外部代理宣稱、代理程式在線、路由成功、部署成功或頁面可見,都不能當成木馬清除、遠端執行漏洞修補或主機乾淨的證據。", "summary": { "platform": { "label": "Wazuh 平台", "detail": "平台已回報建置完成,但 IwoooS 尚未接受事件證據。" }, "hosts": { - "label": "主機 alias", - "detail": "host-110 與 host-188 納入 P0 readback 範圍。" + "label": "受管節點", + "detail": "兩台受管節點納入 P0 回讀範圍。" }, "candidates": { "label": "回讀候選", - "detail": "6 個候選涵蓋控制面、主機、外部 Agent 與恢復證明。" + "detail": "6 個候選涵蓋控制面、主機、外部代理與恢復證明。" }, "runtimeGate": { "label": "執行期", - "detail": "active response、host write 與 action button 全部為 0。" + "detail": "主動回應、主機寫入與操作按鈕全部為 0。" } }, "items": { "controlPlane": { "title": "Wazuh 控制面待回讀", - "body": "需補 manager、indexer、dashboard、API health 的脫敏 ref;平台可用不等於 IwoooS 已接收事件。" + "body": "需補管理器、索引器、儀表板與 API 健康狀態的脫敏參照;平台可用不等於 IwoooS 已接收事件。" }, "hostSignals": { "title": "110 / 188 入侵訊號待接", - "body": "需補 Wazuh event refs、agent status refs 與事件時間窗;不能只用外部敘述或服務恢復判斷。" + "body": "需補 Wazuh 事件參照、代理狀態參照與事件時間窗;不能只用外部敘述或服務恢復判斷。" }, "forensics": { "title": "主機鑑識 ref 待補", - "body": "auth log、process tree、network connection、FIM、package inventory 與 persistence refs 目前 accepted 仍為 0。" + "body": "登入紀錄、程序樹、網路連線、檔案完整性、套件盤點與持久化參照目前接受數仍為 0。" }, "agentClaims": { - "title": "外部 Agent 宣稱不得直收", - "body": "任何已清除、已阻擋、已修復或 Zero-Trust 宣稱,都必須由 Wazuh 事件與主機鑑識交叉驗證。" + "title": "外部代理宣稱不得直收", + "body": "任何已清除、已阻擋、已修復或零信任宣稱,都必須由 Wazuh 事件與主機鑑識交叉驗證。" }, "containment": { - "title": "Containment decision 待 owner", - "body": "隔離、封鎖、重啟、runner / gateway / secret 變更仍需 owner、理由、回滾負責人與後檢證據。" + "title": "圍堵決策待負責人", + "body": "隔離、封鎖、重啟、執行器、閘道與機密變更仍需負責人、理由、回滾負責人與後檢證據。" }, "activeResponse": { - "title": "Active response 未授權", - "body": "不開 Wazuh active response、不 SSH、不 kill process、不改 firewall、不輪替 secret、不新增操作按鈕。" + "title": "主動回應未授權", + "body": "不開 Wazuh 主動回應、不 SSH、不結束程序、不改防火牆、不輪替機密、不新增操作按鈕。" } } }, diff --git a/apps/web/src/app/[locale]/iwooos/page.tsx b/apps/web/src/app/[locale]/iwooos/page.tsx index a07ac58f0..56c4297da 100644 --- a/apps/web/src/app/[locale]/iwooos/page.tsx +++ b/apps/web/src/app/[locale]/iwooos/page.tsx @@ -2125,9 +2125,9 @@ const wazuhIntrusionReadbackSummary = [ ] as const const wazuhIntrusionReadbackItems: WazuhIntrusionReadbackItem[] = [ - { key: 'controlPlane', check: 'WZ1', state: '待 health ref', icon: Radar, tone: 'warn' }, - { key: 'hostSignals', check: 'WZ2', state: '待事件 ref', icon: Server, tone: 'warn' }, - { key: 'forensics', check: 'WZ3', state: '待鑑識 ref', icon: SearchCheck, tone: 'warn' }, + { key: 'controlPlane', check: 'WZ1', state: '待健康參照', icon: Radar, tone: 'warn' }, + { key: 'hostSignals', check: 'WZ2', state: '待事件參照', icon: Server, tone: 'warn' }, + { key: 'forensics', check: 'WZ3', state: '待鑑識參照', icon: SearchCheck, tone: 'warn' }, { key: 'agentClaims', check: 'WZ4', state: '不得直收', icon: FileWarning, tone: 'locked' }, { key: 'containment', check: 'WZ5', state: '待決策', icon: ShieldCheck, tone: 'warn' }, { key: 'activeResponse', check: 'WZ6', state: '未授權', icon: Lock, tone: 'locked' }, diff --git a/docs/LOGBOOK.md b/docs/LOGBOOK.md index bf3b9e058..8a9dea544 100644 --- a/docs/LOGBOOK.md +++ b/docs/LOGBOOK.md @@ -1,3 +1,28 @@ +## 2026-06-25|IwoooS Wazuh 前台文案脫敏與繁中化 + +**背景**:Wazuh 用戶端消失事故的前台說明不能只把工程代碼、英文流程詞或直白主機別名丟給使用者看。本輪只修 `/zh-TW/iwooos` Wazuh 回讀卡片文案,不新增 runtime action。 + +**完成**: +- Wazuh 入侵回讀卡片移除英文回讀字樣、直白受管節點別名與半英文流程詞,改成繁中治理語。 +- 直白主機別名類描述改為 `兩台受管節點`,避免把內部主機別名當產品文案。 +- `active response / host write / action button` 等前台文字改為 `主動回應 / 主機寫入 / 操作按鈕`。 +- `zh-TW` 與目前鏡像訊息檔同步,避免雙語檔漂移。 + +**驗證**: +- `node -e "JSON.parse(...)"`:`zh-TW` / `en` JSON 解析通過。 +- `cmp -s apps/web/messages/zh-TW.json apps/web/messages/en.json`:通過。 +- `pnpm --filter @awoooi/web typecheck`:通過。 +- `python3 scripts/security/security-mirror-progress-guard.py --root .`:通過。 +- `python3 scripts/security/wazuh-readonly-route-boundary-guard.py --root .`:通過。 +- 本地 Chrome smoke `/zh-TW/iwooos` desktop `1440x1100` 與 mobile `390x1200`:Wazuh 回讀卡片可見、`horizontalOverflow=0`、卡片內未出現直白主機別名、英文回讀字樣或工作視窗片段。 + +**完成度同步**: +- IwoooS Wazuh 前台文案脫敏與繁中化:`100%` source-side。 +- IwoooS Wazuh 前台可讀性:`88% -> 91%`。 +- production deploy、Wazuh manager registry live readback、Dashboard stored API 修復、owner response、active response / host write:仍維持 `0%`。 + +**邊界**:沒有查 live Wazuh API、沒有 SSH、沒有讀 secret、沒有重啟或修改 Wazuh / Docker / Nginx / firewall,也沒有把工作視窗對話放進頁面。 + ## 2026-06-25|Wazuh agent registry no-false-green **背景**:Wazuh 用戶端消失事故不能只靠 Dashboard 畫面或 agent service active 判定。原本 IwoooS 只讀 API 在 Wazuh metadata 可查時會回 `readonly_metadata_available`,但如果 manager registry 回 `agent_total=0` 或低於預期下限,前台與驗收工具仍可能誤讀成正常。