# IwoooS 資安資產控制總帳

| 項目 | 內容 |
|------|------|
| 日期 | 2026-06-18 |
| 狀態 | `security_asset_control_ledger_ready_no_runtime_action` |
| 工具 | `scripts/security/security-asset-control-ledger.py` |
| Snapshot | `docs/security/security-asset-control-ledger.snapshot.json` |
| 對應優先序 | P0-A 資產 / 配置總清冊 |
| runtime gate | `0` |

## 1. 目的

此總帳把 IwoooS 既有的資安清冊、snapshot、owner gate、事故後回讀計畫與前台防洩漏 guard，彙整成一份可重跑的「資安資產控制總帳」。它回答的是：

1. 哪些主機、公開入口、版本來源、workflow、監控、Wazuh、Kali、備份、供應鏈、AI agent 與產品 runtime 已進入資安控管視野。
2. 每一類資產目前缺哪一種 owner packet 與脫敏 evidence refs。
3. 哪些動作仍必須維持 `0 / false`，不能因 UI 可見、snapshot 存在或 CD 成功而自動升級。

本文件不是 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. 固定摘要

| 指標 | 值 |
|------|----|
| 資安資產群組 | `16` |
| P0 資產群組 | `14` |
| P1 資產群組 | `2` |
| C0 群組 | `14` |
| C1 群組 | `2` |
| evidence refs | `64` |
| 已存在 evidence refs | `64` |
| 缺失 evidence refs | `0` |
| owner 必填欄位 | `24` |
| reviewer checks | `24` |
| outcome lanes | `10` |
| blocked actions | `44` |
| owner packet required | `16` |
| owner response received / accepted | `0 / 0` |
| live evidence accepted | `0` |
| runtime gate / action button | `0 / 0` |
| P0-A repo 總帳完成度 | `100%` |
| IwoooS headline | 仍維持 `64%` |

## 3. 資產群組與優先序

| 優先 | 群組 | 控制範圍 | 下一步 |
|------|------|----------|--------|
| P0 | Nginx / Public Gateway / Route | 公開入口、API、WebSocket、ACME、admin route、Ollama proxy | 補 live conf、rendered diff、`nginx -t`、route smoke、rollback owner |
| P0 | DNS / TLS / Certbot | domain、certificate path、ACME、renewal owner、TLS route | 補憑證覆蓋依據、到期 metadata、renewal owner、ACME route owner |
| P0 | Docker / systemd / Host Service | compose、systemd、repair-bot、port binding、process / persistence baseline | 補 live hash、incident readback、restart window、rollback owner、post-check |
| P0 | SSH / Firewall / WireGuard / NodePort | SSH、known_hosts、sudoers、firewall、WireGuard、NetworkPolicy、NodePort | 補 actor、before / after、impact、operator notification、restoration evidence |
| P0 | K8s / ArgoCD / GitOps | manifests、ArgoCD、RBAC、NetworkPolicy、CronJob、Velero | 補 ArgoCD revision、health / sync、rendered diff、rollback revision、postcheck owner |
| P0 | Gitea Workflow / Runner / Secret Metadata | workflow、runner、deploy key、webhook、secret name parity、redaction guard | 補 runner attestation、secret injection route、log redaction、Gitea run readback |
| P0 | Gitea / GitHub / Source Control | repo visibility、canonical refs、GitHub primary readiness、branch / tag / workflow boundary | 補 owner response；不得自動建 repo、改 visibility、sync refs 或切 primary |
| P0 | Wazuh / Endpoint / SIEM | Wazuh manager、agent、FIM、rule / decoder、event ref、active response dry-run 邊界 | 補 Wazuh health refs、agent refs、event refs 與 no-raw-payload attestation |
| P0 | Kali 112 / Assessment Tooling | Kali health、tool version、scope、finding envelope、maintenance window | 補 scope ref、health ref、normalized finding envelope；active scan 與 `/execute` 另批 |
| P0 | Monitoring / Alerting / Observability | Prometheus、Alertmanager、Telegram route、SigNoz、Sentry、Langfuse、no-false-green | 補 route owner、receiver diff、receipt evidence、noise budget、reload owner |
| P0 | Backup / Restore / DR / Escrow | backup、restic、offsite、escrow、Velero、restore drill、retention | 補 restore drill、offsite ref、escrow non-secret proof、retention runway、DR scorecard |
| P0 | Harbor / Registry / SBOM / Supply Chain | Harbor、registry、image tag、SBOM、Cosign、SLSA、dependency drift、CVE / KEV | 補 SBOM / VEX / provenance intake、image signing、KEV / EPSS / exposure SLA |
| P0 | Public / Admin / API / Frontend Runtime | public URL、CORS、auth boundary、middleware、webhook、frontend env、i18n redaction | 補 route owner、API readback、CORS diff、desktop / mobile smoke、bundle scan |
| P0 | AI Provider / Model Router / Agent Runtime | OpenClaw、Ollama、NemoTron、Hermes、Gemini、MCP / A2A、tool allowlist、cost / privacy | 補 dry-run、benchmark、cost review、privacy review、fallback order、rollback owner |
| P1 | Product Surface / Runtime Route | AWOOOI、AwoooP、IwoooS、VibeWork、agent-bounty-protocol、StockPlatform、Tsenyang、Bitan | 補逐產品 owner、route、admin、API、backup、webhook、rollback 與 validation 指標 |
| P1 | KM / PlayBook / Script / Schedule / Verifier | incident、approval、repair candidate、manual handoff 的自動化資產沉澱 | 補 incident / approval / manual handoff writeback contract |

## 4. Owner Packet 必填欄位

每個資產群組要從候選進到 reviewer review，至少必須具備：

`asset_group_id`、`asset_alias`、`owner_role`、`owner_team`、`business_impact`、`technical_scope`、`affected_routes_or_services`、`data_classification`、`redacted_evidence_refs`、`source_of_truth_ref`、`live_state_ref`、`config_diff_ref`、`monitoring_signal_ref`、`wazuh_or_siem_ref`、`kali_scope_ref`、`backup_restore_ref`、`supply_chain_ref`、`secret_absence_attestation`、`raw_payload_absence_attestation`、`maintenance_window`、`rollback_owner`、`postcheck_owner`、`followup_owner`、`decision_reason`。

## 5. 固定停止線

以下項目仍維持 `0 / false`：

- owner response received / accepted。
- live evidence accepted。
- runtime gate / action button。
- host write、SSH read、Nginx reload、firewall change、ArgoCD sync、workflow modification。
- secret value collection。
- Wazuh active response。
- Kali active scan / Kali `/execute`。
- Telegram send、SOAR action、auto block、production write。

## 6. 驗證指令

```bash
python3 scripts/security/security-asset-control-ledger.py \
  --root . \
  --generated-at 2026-06-18T13:44:00+08:00 \
  --output docs/security/security-asset-control-ledger.snapshot.json
```

## 7. 完成度

| 工作 | 完成度 | 說明 |
|------|--------|------|
| P0-A repo-side 資安資產控制總帳 | `100%` | 16 個群組、64 個 evidence refs 全部對上 |
| owner packet 收件 | `0%` | 尚未收到或接受 owner response |
| live evidence 驗收 | `0%` | 未 SSH、未讀 live host、未呼叫 Wazuh / Kali |
| runtime / response / containment | `0%` | 未開掃描、封鎖、reload、restart、SOAR、auto block |
