13 KiB
Kali 資訊安全網開工準備
日期:2026-05-06(台北時間) 狀態:原始規劃;2026-05-13 已完成 Kali 112 live 盤點、低風險主機更新、
security_finding_v1sample 與 scan scope approval package;2026-06-04 已完成 Kali 112 只讀重驗證,尚未開始 AWOOOI runtime ingestion 實作 上游藍圖:docs/security/KALI-SECURITY-MESH-BLUEPRINT.mdAwoooP 同步:docs/security/AWOOOP-SECURITY-SUPPLYCHAIN-INTEGRATION-HANDOFF.md
0. 目前裁示
統帥已批准繼續推進 Kali 資訊安全網,但明確指示:先不要開始實作。
因此本文件只是一份開工準備地圖,用來定義工作包、責任歸屬、閘門、證據與批准邊界。本文件不授權 runtime 變更、部署、更嚴格封鎖、破壞性掃描、credentialed scanning 或自動修復。
2026-05-06 追加長期方向:GitHub 應評估回到雲端主控面,Gitea 降級為本地 mirror / fallback。此項納入本次資安工作包,原因是 source control、CI/CD、Code Review、Codex 接力與部署權限本身就是供應鏈安全邊界。
2026-05-06 追加同步:統帥批准本支線開始推進,並要求立即同步給 AwoooP 工作 Session。本支線已建立 docs/security/AWOOOP-SECURITY-SUPPLYCHAIN-INTEGRATION-HANDOFF.md,作為雙 Session 共享契約與邊界文件。
2026-05-13 追加 live 狀態:統帥授權登入 192.168.0.112 後,已完成 Kali Scanner API health、service、crontab、Docker service 與更新狀態盤點,並完成 targeted scanner package update 與 Asia/Taipei 時區調校。完整紀錄見 docs/security/KALI-INTEGRATION-STATUS.md。本追加不代表已批准 active scan、credentialed scan、AWOOOI runtime ingestion、/execute 接入、full-upgrade 或 reboot。
2026-05-13 追加契約狀態:已建立 docs/security/SECURITY-FINDING-CONTRACT.md、docs/security/security-finding-kali-sample.snapshot.json、docs/security/KALI-SCAN-SCOPE-APPROVAL-PACKAGE.md 與 docs/security/kali-scan-scope-approval.snapshot.json。這代表 scope 與 finding envelope 可被 review / mirror,不代表已批准或執行任何 scan。
2026-06-04 追加只讀重驗證:已用既有 SSH key 讀取 192.168.0.112 狀態,確認 scanner 127.0.0.1:8080/health 回 200 healthy、kali-scanner.service active / enabled、node-exporter 與 wg-easy 運作中、失敗服務單元為 networking.service、待更新套件仍為 1994、服務 hardening 仍為 0 / 4。本追加不代表已批准 active scan、credentialed scan、AWOOOI runtime ingestion、/execute 接入、full-upgrade、autoremove、reboot 或服務 hardening 套用。
1. 非實作邊界
目前允許:
| 允許事項 | 用途 |
|---|---|
| 細化架構與 ownership | 降低後續 coding 前的模糊地帶 |
| 先在文件中定義 schema 與 event contract | 避免 scanner payload 各自為政 |
| 定義 observe-only scan scope | 讓初期 rollout 保持低摩擦 |
| 標出需要批准的事項 | 避免誤觸高風險掃描或封鎖 |
| 準備驗證清單 | 讓後續實作可量測 |
| 盤點 Gitea 到 GitHub 的版本轉移範圍 | 把 source control 與 CI/CD 納入供應鏈安全治理 |
目前不允許:
| 不允許事項 | 原因 |
|---|---|
| 新增或修改 API endpoints | 這已經是實作 |
| 修改 DB migrations 或 models | 需要 schema 決策與 review |
| 修改 NetworkPolicy、firewall、RBAC、CORS 或 secrets | 可能影響 production 連通性或安全邊界 |
| 部署 Kali tools、jobs、cron、exporters 或 alerts | 屬於 runtime 行為變更 |
| 開始 active、exploit 或 credentialed scans | 需要明確批准與 scope |
| 加入 CI/CD blocking gates | 初期資安網必須先觀測 |
| 自動 rotate secrets 或自動關閉 ports | 屬於破壞性或 access-changing 行為 |
| 直接把 GitHub 切成唯一主控 | 必須先完成 Gitea 全量版本盤點、同步、runner 驗證與 rollback plan |
2026-05-13 例外說明:本輪只對既有 Kali 主機做授權登入、狀態盤點、targeted scanner package update、jq 安裝與時區調校;沒有新增 scanner job、沒有啟動 scan、沒有修改 AWOOOI runtime endpoint。
2. 開工準備閘門
| 閘門 | 問題 | 實作前必備 |
|---|---|---|
| G0 asset scope | 初期 observe-only scope 包含哪些資產? | 已批准 target list 與 owner map |
| G1 data contract | 正規化 finding envelope 長什麼樣? | 欄位清單、severity/confidence mapping、dedupe fingerprint |
| G2 storage | 每種 finding 要落到哪裡? | 對 ADR-090 tables 的 mapping 與是否需新表的決策 |
| G3 safety | 哪些 scan 是 passive、active 或 credentialed? | 每個 scope 的模式與批准規則 |
| G4 alerting | 哪些 findings 變成 warnings 或 incidents? | secops taxonomy 與 escalation threshold |
| G5 privacy | 哪些 evidence 可以儲存或顯示? | secrets、payloads、internal IPs、cookies 的 redaction rules |
| G6 ownership | 每一類 finding 由誰處理? | 12 Agent ownership 與 human owner mapping |
| G7 rollback | 如何快速停用 scanning/alerts? | kill switch 或 feature flags 已定義 |
| G8 source control | Gitea 現有專案版本如何完整轉移到 GitHub? | repo/branch/tag/workflow/webhook/secret inventory 與 SHA 比對計畫 |
3. 初期 observe-only scope
先從已知且不需要干擾式探測的資產開始。
| 範圍 | 目標 | 模式 | 備註 |
|---|---|---|---|
| Scanner health | 192.168.0.112:8080 |
health-only | 保持現有 KaliScannerDown 語意 |
| Host inventory | 110、112、120、121、188、111、168 | passive / read-only | 168 與 111 必須先加入 observe-only dev assets |
| Website perimeter | 公開產品 domains 與 AWOOOI public routes | passive DAST-safe | 只做 TLS/header/basic crawl |
| K8s posture | manifests 與 live read-only K8s metadata | read-only | RBAC、Pod Security、NetworkPolicy coverage |
| Container inventory | Harbor/runtime image list | read-only | 先盤 image metadata;CVE scan 等 schema mapping 完成 |
| Codebase | repo files、manifests、dependencies | local static scan | secrets/SAST/SBOM,不 blocking |
| Source control plane | Gitea repos、GitHub repos、branches、tags、workflows、webhooks | inventory-only | 先做版本與權限盤點,不切主控 |
| Observability tools | Prometheus、Alertmanager、SignOz、Sentry、Grafana、Langfuse | passive exposure review | 不做 admin action |
4. Finding contract 草案
第一波 coding 應以這份作為標準契約草案。
| 欄位 | 必填 | 說明 |
|---|---|---|
finding_id |
是 | 穩定且可重算的 fingerprint |
scan_run_id |
是 | Scanner run 或 ADR-090 discovery run |
scanner |
是 | kali、trivy、zap、semgrep、detect-secrets 等 |
scanner_version |
否 | 進入 enforcement 後必填 |
asset_key |
是 | 相容 ADR-090 的 asset key |
target_type |
是 | host、website、api_endpoint、container、package、repo、k8s_resource、tool |
target |
是 | 已脫敏 target identifier |
category |
是 | exposure、cve、secret、misconfig、auth、tls、web、code、supply_chain、network |
severity |
是 | scanner 原始 severity 映射到 platform severity |
confidence |
是 | scanner confidence 或 verifier confidence |
status |
是 | new、confirmed、false_positive、accepted_risk、fixed、expired |
recommended_mode |
是 | observe、warn、approve_required、block_candidate |
evidence_ref |
是 | 指向脫敏 evidence,不存 raw exploit 或 secret |
summary |
是 | 人可讀摘要,不能含敏感 payload |
recommended_action |
是 | 初期只作為建議 |
owner_team |
否 | 升級 incident 前必填 |
expires_at |
否 | 暫時 accepted risk 時可用 |
5. ADR-090 落點地圖
| Finding 類型 | 主要落點 | 次要落點 | 升級方式 |
|---|---|---|---|
| Port/service exposure | asset_inventory.metadata、asset_compliance_snapshot |
asset_change_event |
非預期且重複時才 alert |
| CVE/package/image | asset_compliance_snapshot(cve_scan) |
asset_coverage_snapshot(auto_alerting/playbook) |
超過 threshold 才產生 CVECritical |
| Repo/config secret | asset_compliance_snapshot(secret_rotated or secret_scan) |
automation_operation_log |
confirmed 後立即 P0 human review |
| TLS/header/web issue | asset_compliance_snapshot(ssl_cert_valid/web) |
website asset metadata | 先 warning ticket |
| K8s misconfig | asset_compliance_snapshot(access_reviewed/encryption_at_rest) |
asset_coverage_snapshot |
SRE/Security review |
| Monitoring blind spot | asset_coverage_snapshot(auto_monitoring/auto_alerting) |
alert_rule_catalog |
僅 coverage gap alert |
| Tool permission risk | asset_compliance_snapshot(access_reviewed) |
AwoooP policy/gateway audit | approval-required work item |
| Source control drift | asset_inventory.metadata、asset_compliance_snapshot(access_reviewed) |
automation_operation_log |
Gitea/GitHub SHA 或權限漂移時先 warning |
6. 12 Agent 工作包
| Agent | 工作包 | 實作前第一份交付 |
|---|---|---|
| Security Commander | Phase gates 與 escalation policy | 已簽核 observe-only scope |
| Asset Cartographer | Asset taxonomy 與 seed list | 112/111/168 + core assets mapping |
| Kali Orchestrator | Scanner jobs 與 output contract | Scanner-to-finding normalization spec |
| Network Mapper | Port 與 route inventory | Expected vs unexpected exposure table |
| Web Perimeter Agent | Website/API scan policy | Safe crawl 與 TLS/header checklist |
| Code Guardian | SAST/secrets/dependency scope | Repo scan tools 與 false-positive rules |
| Container Supply Agent | Image/SBOM/CVE flow | Harbor/runtime image map |
| K8s Guard | RBAC/PodSecurity/NetworkPolicy review | K8s posture checklist |
| Dev Host Steward | 168/111 observe-only policy | Dev host safe probe boundaries |
| Observability Sentinel | Metrics 與 alert wiring design | warning-only metric names 與 labels |
| Policy Gatekeeper | AwoooP approval/exception model | approve/block promotion criteria |
| Evidence Archivist | Evidence storage 與 redaction | sanitized evidence rules |
| Source Control Migration Steward | Gitea 全量版本盤點與 GitHub primary 遷移設計 | repo/branch/tag/workflow/webhook 對照表 |
7. 批准邊界
以下事項必須在未來實作前另外取得明確批准:
| 邊界 | 需要批准的原因 |
|---|---|
| 對 110/111/112/120/121/168/188 做 credentialed host scans | 會使用具權限存取 |
| 對 production websites 做 active DAST | 可能產生流量、噪音或狀態變更 |
| 對 live production 做 exploit verification | 高營運風險 |
| 修改 firewall/NetworkPolicy/RBAC/CORS | 會改變連通性與安全邊界 |
| Secret rotation | 可能中斷整合 |
| CI/CD blocking gates | 可能阻擋 release |
| 超過 ticket/PR draft 的 auto-remediation | 有 side effects |
| 新增付費 scanner/SaaS/provider | 觸發費用批准規則 |
| GitHub primary 切換 | 會改變 source control 主控面、runner、secrets 與部署審批鏈 |
8. 第一波程式實作開工清單
只有這份清單被接受後,才能開始實作。
| 檢查項 | 狀態 |
|---|---|
| Observe-only asset scope 已接受 | 草案已建立,待統帥核准實作 |
security_finding_v1 envelope 已接受 |
草案與 sample snapshot 已建立,待統帥核准實作 |
| Storage landing map 已接受 | 待確認 |
| 112/111/168 asset classification 已接受 | 草案已納入 kali_scan_scope_approval_v1,待統帥核准實作 |
| Redaction policy 已接受 | 草案已建立,禁止 raw secret / token / cookie / private key / exploit payload |
| No-blocking phase boundary 已接受 | 草案已建立,LOW / MEDIUM observation 不升 blocking gate |
| Human approval boundaries 已接受 | 草案已建立,safe crawl / credentialed / /execute / runtime ingestion / full-upgrade 分 gate |
| Rollback/disable flag 已命名 | 待確認 |
| Gitea 全量轉 GitHub inventory 已接受 | 待確認 |
| GitHub primary / Gitea mirror rollback plan 已接受 | 待確認 |
| AwoooP mirror-only handoff 已同步 | 已完成 |
| 共享事件 JSON Schema 已建立 | 已完成 |
| Kali 112 live health / update status 已記錄 | 已完成 |
9. 未來批准後的第一波實作順序
等未來明確批准開始實作後,建議順序如下:
- 新增只定義契約的 data model 或
security_finding_v1Pydantic schema。 - 產出 Gitea 全量版本盤點:repositories、branches、tags、workflows、webhooks、secret 名稱、GitHub 對應目標。
- 在 scanner path 加入 112/111/168 的 host asset seed。
- 在 feature flag 後新增 Kali result ingestion endpoint 或 adapter。
- 將已脫敏 findings 存入 ADR-090-compatible snapshots。
- 在 AIOps KPI 加入
security_postureread model。 - 依 severity/category/asset 輸出 warning-only metrics。
- 前端只增加 visibility,不增加 action buttons,最多 view/filter。
在自動封鎖、自動修復、active exploit verification、credentialed scans 之前必須停止。