Files
awoooi/docs/security/KALI-SECURITY-MESH-BLUEPRINT.md
Your Name e355c8eb0f
All checks were successful
CD Pipeline / tests (push) Successful in 2m25s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 5m3s
CD Pipeline / post-deploy-checks (push) Successful in 2m15s
fix(web): show Kali maintenance runway
2026-06-04 09:13:35 +08:00

16 KiB
Raw Blame History

Kali 資訊安全網藍圖

日期2026-05-06台北時間 範圍:192.168.0.112 Kali 資安主機、所有 AWOOOI/AwoooP 資產、開發主機 192.168.0.168192.168.0.111 姿態:先建框架、預設只觀測、後續分階段收攏

0. 核心決策

192.168.0.112 建置為整個架構的資安感測與驗證節點,但初期不採用高強度封鎖。

初期模式如下:

層級 初期姿態 後續姿態
資產發現 唯讀盤點與可達性確認 持續資產漂移偵測
掃描 低噪音排程掃描 依風險與批准執行深度掃描
發現項 寫入證據、評分、路由 SLA、責任歸屬、政策閘門
修復 僅提出建議 dry-run、批准後受控執行
封鎖 除確認的機密外,不讓 CI/CD 強制失敗 逐步推進 P0/P1 閘門

這遵守 MASTER 自主化飛輪規則:不建立靜態黑白名單決策引擎,不硬編修復動作,不在缺少 dry-run 與批准證據時執行破壞性操作。

1. 目前盤點結論

已經存在

面向 目前證據 缺口
Kali 主機 192.168.0.112:8080 已出現在 docs/reference/SERVICE-ENDPOINTS.mdKALI_SCANNER_URL、NetworkPolicy egress、blackbox probe、KaliScannerDown 告警2026-05-13 已確認 live /health healthy 並完成第一波 targeted scanner package update 目前只監控存活,尚未形成完整掃描結果治理閉環
資產資料庫地基 ADR-090 migration 已定義 asset_inventoryasset_discovery_runasset_coverage_snapshotasset_compliance_snapshot 目前 scanner 以 K8s 為主Docker、Gitea repos、網站、主機套件、Kali findings 還不完整
AIOps KPI /api/v1/aiops/kpi 會彙整資產、覆蓋率、規則品質、容量與自動化流量 資安姿態尚未成為 KPI 的一級區塊
合規掃描 已寫入 7 個 compliance 維度SSL 與 Secret 年齡有部分檢查 cve_scanaudit_log_enabledaccess_reviewedencryption_at_rest 多數仍是 unknown
資安 Agent 已有 SecurityAgentvuln-verifiersecurity_interceptor、AwoooP security ADR 尚未接成以 Kali 為核心的資安網
監控 已有 Prometheus/Alertmanager、SignOz、Sentry、blackbox、node exporter、Docker textfile exporter 資安 finding 尚未正規化為 Prometheus metrics 與 incident taxonomy
網路護欄 k8s/awoooi-prod/02-network-policy.yaml 已 default-deny並明確允許到 112/110/188/120/121/111 的必要 egress 168 不是架構資產111 主要被視為 Ollama fallback尚未成為完整資安資產

明顯缺口

缺口 影響 第一個修正方向
192.168.0.168 沒進 inventory 開發工作站對資安覆蓋不可見 加入資安資產登錄,初期只觀測
192.168.0.111 主要被當成 Ollama fallback Local AI/dev host 可能有模型、SSH、套件風險但尚未以主機姿態納管 加入 host posture、service、model、package、access-review 檢查
Kali findings 沒有標準 schema 結果會變成一次性報告,不能成為 AI 飛輪證據 正規化為 asset_compliance_snapshot 與 security event envelope
程式碼資安與 runtime 資安分離 repo 漏洞、secrets、containers、live services 無法關聯 將 SAST、secret、SBOM、container scan 結果接到 asset_inventory
缺少階段性 enforcement 表 初期容易過度收緊 使用 observe -> warn -> approve -> block 的推進閘門

2. 資安資產地圖

類別 資產 需要的資安覆蓋
資安感測 192.168.0.112 Kali Scanner API scanner health、scan job state、工具版本、結果匯出、保存週期
DevOps 金庫 192.168.0.110 Harbor、Gitea、runners、Sentry、Langfuse、Grafana、Prometheus、Ollama proxy registry image scan、runner hardening、暴露 port、TLS、secrets、CI workflow risk
K3s 控制面 192.168.0.120192.168.0.121、VIP 192.168.0.125 kube-bench 類姿態、RBAC、NetworkPolicy、Pod Security、API exposure、node health
AI/Web/Data 192.168.0.188 PostgreSQL、Redis、OpenClaw、SignOz、MinIO、momo services DB exposure、backup restore proof、Redis ACL、web/API DAST、storage access、model endpoint exposure
Local AI/開發 192.168.0.111 Ollama local fallback 與開發主機職責 host packages、Ollama API exposure、SSH policy、model inventory、fallback readiness
開發工作站 192.168.0.168 local development origin dev-only CORS origin、repo secrets hygiene、local service exposure、least-privilege access
公開網站 awoooi.wooo.workaiops.wooo.workmo.wooo.workstock.wooo.workbitan.wooo.work 與其他 active product domains TLS、headers、auth、公開攻擊面、endpoint inventory、uptime/security correlation
程式碼/專案 AWOOOI、AwoooP、MOMO、Tsenyang、Stock、Bitan、future tenants SAST、dependency/SBOM、secret scan、IaC scan、container scan、contract/policy drift
Source Control / CI/CD Gitea 現有 repos、GitHub primary 候選、branches、tags、workflows、webhooks、runner secrets 名稱 供應鏈盤點、版本完整性比對、權限審查、GitHub primary / Gitea mirror 遷移
可觀測工具 Prometheus、Alertmanager、SignOz、Sentry、Grafana、Langfuse admin exposure、token hygiene、alert route integrity、audit export
自動化工具 MCP Gateway、SSH provider、K8s provider、GitOps、repair bots tool grants、approval boundaries、command safety、audit and replay

3. 目標資料流

Kali 112 掃描 / 驗證
  -> 資安結果 envelope
  -> AWOOOI API ingestion
  -> asset_inventory / asset_compliance_snapshot / asset_change_event
  -> Prometheus metrics + Alertmanager secops taxonomy
  -> incidents / timeline_events / automation_operation_log
  -> SecurityAgent + Critic + Reviewer triage
  -> Telegram / AwoooP Channel Event
  -> 僅建議修復
  -> 後續 dry-run + approval + 受控執行

第一個生產級契約應該是 security_finding envelope

欄位 意義
finding_id 由 scanner、target、rule id、evidence 產生的穩定 hash
scan_run_id Kali run id可在可能時連到 asset_discovery_run
asset_key 既有 ADR-090 asset key
target Host、URL、repo、image、K8s object、package 或 tool
category exposurecvesecretmisconfigauthtlswebcodesupply_chainnetwork
severity AI review 前的 scanner severity
confidence AI review 前的 scanner confidence
evidence_ref 已脫敏證據指標,不存 raw secret 或完整 exploit output
recommended_mode observewarnapprove_requiredblock_candidate
human_required 破壞性或權限變更類 action 必須為 true

4. 分階段推進

Phase 0 - 基線與責任歸屬

目標:讓所有資產可見,但不執行 enforcement。

動作 主責 Agent 完成證據
將 112/111/168 加進資安資產登錄 Asset Cartographer asset_inventory 有 host rows 與 tags
依資產類型定義安全 scan scope Security Orchestrator scope file 含 observe_only=true
保持 Kali 可達性告警為 health-only SRE Sentinel KaliScannerDown 仍是 warning不 auto repair
盤點公開網站與內部 endpoint Web Perimeter Agent website/api assets 有 TLS metadata
盤點 Gitea 全量版本與 GitHub 對應目標 Source Control Migration Steward repo/branch/tag/workflow/webhook 對照表

閘門:不封鎖、不做破壞性掃描、不在未批准時做 credentialed scan。

Phase 1 - 被動與低噪音掃描

目標:不干擾服務地收集 findings。

面向 初期檢查
主機 port inventory、若 SSH-approved 則 OS/package inventory、SSH banner/config posture
網站 TLS expiry、headers、基本 auth/session 檢查、安全 DAST crawl
K8s RBAC、Pod Security labels、NetworkPolicy coverage、exposed Services
容器 image tag inventory、SBOM、已知 CVE scan、registry metadata
程式碼 secret scan、dependency scan、IaC scan、SAST warning inventory
可觀測工具 admin exposure、unauthenticated endpoints、token/config drift

閘門findings 只進 observewarn;只有確認的 hardcoded secret 可立即升為 P0。

Phase 2 - 資安分類與告警

目標:把重複性 findings 轉成有用告警,而不是製造噪音。

新增告警分類:

分類 範例 初期路由
secops_exposure 非預期 open port、公開 admin UI Telegram security summary
secops_cve critical vulnerable image/package incident + owner
secops_secret committed token、暴露 env、弱 secret handling P0 human review
secops_web TLS/header/auth weakness warning ticket
secops_k8s privileged pod、弱 RBAC、缺 NetworkPolicy SRE + Security review
secops_supply_chain unsigned image、unpinned dependency、runner risk DevOps review

閘門alert rule 先 warning-only除既有 hard rules 外,不自動封鎖。

Phase 3 - 建議與批准模式

目標AI 提出修復,人類批准高風險變更。

動作 模式
建立 issue / Telegram card / AwoooP work item automatic
針對 headers、dependency bumps、NetworkPolicy additions 草擬 PR automatic draft
rotate secret approval required
關閉 public port approval required
修改 RBAC / firewall / CORS approval required
執行更深層 active scan approval required

閘門:每個建議都必須有 evidence、blast radius、rollback 與 owner。

Phase 4 - 逐步 enforcement

目標:將低噪音且已驗證的控制項提升為 gate。

推進順序:

Gate 推進條件
Secret scan gate 14 天低 false positives且 confirmed sanitizer
Container critical CVE gate owner mapping 與 override workflow 已存在
IaC dangerous pattern gate dry-run 可抓問題且不阻擋有效部署
Public exposure gate inventory 完整且 approved exceptions 已存在
K8s security gate Pod Security/NetworkPolicy evidence 穩定

除非 false-positive rate、owner routing、override、rollback path 都可量測,否則不得提升為 blocking gate。

5. 12 Agent 作業模型

# Agent 責任 第一個 ownership
1 Security Commander 資安網優先順序與 phase gates 本藍圖、promotion criteria
2 Asset Cartographer 主機、服務、repos、網站、網路、工具 112/111/168 的 ADR-090 asset keys
3 Kali Orchestrator 掃描 scope、排程、工具 output normalization KALI_SCANNER_URL、security finding envelope
4 Network Mapper Port/service/topology drift 110/112/120/121/188/111/168 + public domains
5 Web Perimeter Agent DAST-safe website 與 API posture public sites、AWOOOI web/API
6 Code Guardian SAST、secrets、dependency、SBOM repo 與 package scan evidence
6A Source Control Migration Steward Gitea 全量版本盤點、GitHub primary 遷移、安全權限 Gitea/GitHub repos、branches、tags、workflows、webhooks
7 Container Supply Agent Harbor images、SBOM、image CVEs registry 與 runtime image mapping
8 K8s Guard RBAC、Pod Security、NetworkPolicy、API exposure k8s/awoooi-prodk8s/pod-security
9 Dev Host Steward 168 與 111 developer host posture observe-only host inventory
10 Observability Sentinel Prometheus/SignOz/Sentry/Grafana security signals metrics、alert rules、dashboards
11 Policy Gatekeeper AwoooP policy、approval、exception handling suggest/approve/block promotion
12 Evidence Archivist 脫敏證據、audit、KM、timeline automation_operation_log、KM、LOGBOOK

這是責任分工,不代表一定要同時啟動 12 個 coding session只有在寫入範圍互不衝突時才並行。

6. 需要建置的整合點

整合 目前 anchor 需要工作
Kali API health KALI_SCANNER_URLKaliScannerDowndocs/security/KALI-INTEGRATION-STATUS.md 新增 scan run/result endpoint 或 adapter
資產盤點 asset_scanner_job.py 從 K8s 擴展到 hosts、Docker、Gitea/GitHub、websites、dev hosts
合規 compliance_scanner_job.py 補上 cve_scanaudit_log_enabledaccess_reviewedencryption_at_rest
KPI AiopsKpiService 新增 security_posture 區塊
告警 alert_rules.yamlalerts-unified.yml result schema 穩定後新增 secops taxonomy
AwoooP ADR-106/107 contracts enforcement 前先 mirror findings 到 Channel/Runtime events
前端 /security-compliance 顯示 API 產生的真實 security posture不用靜態 widgets
知識 KM/RAG + playbooks 資安修復 outcomes 成為可檢索 evidence

7. 護欄

  1. 預設不做破壞性掃描。
  2. 未經明確批准與維護窗口,不對 production 執行 exploit。
  3. 未定義 credential source、scope、audit trail 前,不做 credentialed scanning。
  4. Telegram、logs、KM 不得存 raw secret、token、cookie、key、exploit payload。
  5. Phase 0-2 不自動修改 firewall、RBAC、CORS、NetworkPolicy、route 或 secret rotation。
  6. 開發主機 192.168.0.168192.168.0.111 初期為 observe-only,不是 compliance blocker。
  7. Security findings 必須用 stable fingerprint 去重後才能告警。
  8. 每個 finding 必須有 asset owner、severity、confidence、evidence pointer、next action。
  9. Blocking gate 必須有可量測 false-positive rate 與 override workflow。
  10. 長期授權由 AwoooP policy 負責scanner 只提供 evidence。

7.1 2026-05-13 Live 整合狀態

192.168.0.112 已經完成第一波 live 盤點與低風險更新,正式記錄於 docs/security/KALI-INTEGRATION-STATUS.md

已確認:

  1. kali-scanner.service active / enabled。
  2. /health healthy。
  3. nmapniktonucleicurlopenssl、CA 套件已做 targeted update。
  4. 已安裝 jq
  5. 主機時區已調整為 Asia/Taipei
  6. 更新後 SSH / cron / docker / scanner service 都 active且不需 reboot。
  7. security_finding_v1 sample snapshot 已建立。
  8. kali_scan_scope_approval_v1 approval package 已建立111/168 已納入 observe-only scope。

仍然不能做:

  1. 不直接啟動 active scan。
  2. 不做 credentialed scan。
  3. 不讓 AwoooP 直接呼叫 Kali /execute endpoint。
  4. 不保存 API key、SSH 密碼或任何 secret value。
  5. 不做 full-upgrade、autoremove 或 reboot除非先排維護窗口。

7.2 2026-06-04 只讀重驗證狀態

192.168.0.112 已於 2026-06-04 08:55台北重新完成只讀 SSH 快照,沒有啟動掃描、沒有呼叫 /execute、沒有執行套件更新、沒有調整設定、沒有重啟。最新證據正式記錄於 docs/security/KALI-INTEGRATION-STATUS.mddocs/security/kali-integration-status.snapshot.json

已確認:

  1. 既有 SSH key 可只讀連線。
  2. kali-scanner.service 仍為 active / enabled。
  3. 127.0.0.1:8080/health 仍回 200 healthy
  4. node-exporterwg-easy 容器仍在運作。
  5. 主機時區維持 Asia/Taipei
  6. failed_systemd_unit_count=1,目前為 networking.service
  7. upgradable_package_count=1994
  8. scanner service hardening 仍是 0 / 4NoNewPrivilegesPrivateTmpProtectSystemProtectHome 尚未啟用。

結論Kali 112 已經從「文件與 5/13 盤點」推進到「6/4 再驗證的 live read-only evidence」但仍不代表 full-upgrade、autoremove、reboot、主動掃描、憑證掃描、服務 hardening override 或 AwoooP /execute 已被批准。

8. 第一波實作建議

建議下一波程式實作:

步驟 變更 風險
1 security_finding_v1 schema / sample 已建立;下一步只需在批准後補 adapter contract / ingestion path
2 建立 Gitea 全量版本盤點與 GitHub primary / Gitea mirror 遷移清單,先只盤點與比對,不切主控
3 111/168/112 已有 scan scope 草案;批准後再加進 asset discovery seed
4 新增 Kali result ingestion endpoint只存脫敏 findings
5 擴充 compliance scanner消費 Kali findings 到 cve_scansecops_exposure
6 /api/v1/aiops/kpi 新增 security_posture
7 從 normalized finding counts 輸出 warning-only Prometheus metrics
8 新增前端 /security-compliance 真實資料 panel

本波不得部署自動封鎖或自動修復。