# Kali Scan Scope Approval Package

| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-13 |
| 狀態 | 草案，等待人工批准 |
| Schema | `docs/schemas/kali_scan_scope_approval_v1.schema.json` |
| Snapshot | `docs/security/kali-scan-scope-approval.snapshot.json` |
| Approval queue | `docs/security/SECURITY-APPROVAL-QUEUE.md` |
| 來源 | `host:kali-112` / `192.168.0.112` |
| 原則 | 低摩擦、先 observe、掃描深度分級、所有高風險執行都 blocked until approved |

## 0. 核心結論

本 package 的目的不是立刻開始掃描，而是先把掃描範圍、掃描深度、資產 owner 與 approval gate 定清楚。

目前可直接進行的仍只有文件、health、service、tool version、已脫敏 evidence mirror。任何 active DAST、credentialed scan、`/execute`、firewall / NetworkPolicy / RBAC 調整、Kali full-upgrade / reboot 都必須另外批准。

## 1. 掃描深度分級

| 等級 | 用途 | 初期狀態 |
|------|------|----------|
| `health_only` | `/health`、service status、tool version | 可 observe |
| `passive` | 資產地圖、owner、已存在 logs / metadata | 可 observe |
| `safe_active` | TLS/header/basic crawl 類低噪音檢查 | 需要 scope approval |
| `active_dast` | fuzz、auth flow、狀態改變風險較高的 DAST | 需要明確批准與窗口 |
| `credentialed` | 使用 SSH/API/token 等憑證 | 高風險，必須批准且不得保存 secret value |
| `execute` | Kali `/execute` 或 shell command 類 | 預設 block candidate |
| `maintenance` | full-upgrade、autoremove、reboot | 需要維護窗口、rollback、post-check |

## 2. 本輪納入的資產

| Scope group | 資產 | 初期模式 |
|-------------|------|----------|
| Kali health | `192.168.0.112` | health-only / passive |
| Dev hosts | `192.168.0.111`、`192.168.0.168` | observe-only |
| Core runtime hosts | `192.168.0.110`、`192.168.0.120`、`192.168.0.121`、`192.168.0.188` | health-only / passive |
| Public web perimeter | `public_product_domains_from_service_endpoints` | 等待 safe crawl approval |
| Kali high-risk paths | `kali-scanner:/execute`、Kali full-upgrade / reboot | block candidate / approval required |

這份清單是 approval package，不代表已經執行任何掃描。

## 3. Approval gates

| Gate | Risk | 說明 |
|------|------|------|
| `kali-safe-web-crawl-approval-20260513` | MEDIUM | 公開網站 TLS/header/basic crawl 批准 |
| `kali-credentialed-scan-approval-20260513` | HIGH | SSH/API/token 類 credentialed scan 批准 |
| `kali-execute-endpoint-approval-20260513` | CRITICAL | Kali `/execute` 高風險命令路徑，預設不應接入 AwoooP runtime |
| `kali-finding-runtime-ingestion-approval-20260513` | MEDIUM | 把 redacted findings 接入 AWOOOI / AwoooP runtime 前的批准 |
| `kali-full-upgrade-reboot-approval-20260513` | HIGH | Kali rolling full-upgrade / autoremove / reboot 維護窗口批准 |

## 4. Finding ingestion 邊界

批准前只能：

1. 產生 `security_finding_v1` sample。
2. 驗證 schema。
3. mirror 已脫敏 finding summary。
4. 顯示 approval gate 與 blocking reason。

批准前不能：

1. 新增 AWOOOI runtime ingestion endpoint。
2. 改 DB migration 或 model。
3. 讓 AwoooP 直接觸發 scan。
4. 讓 AwoooP 直接呼叫 Kali `/execute`。
5. 保存 API key、password、token、cookie、private key 或 exploit payload。

## 5. AwoooP 消費方式

AwoooP 可把 `kali_scan_scope_approval_v1` 當成 approval queue 與 Operator Console 的唯讀資料：

1. 顯示 scope group。
2. 顯示每個資產的 scan level。
3. 顯示 approval gate。
4. 建立 approval candidate。
5. 保持所有高風險 action button 隱藏或 disabled。

除非 approval event 被人工批准，AwoooP 只能 mirror，不得執行。

## 6. Queue 對應

本 package 的 gate 已同步到 `security_approval_queue_v1`：

| Gate | Queue state | 建議 |
|------|-------------|------|
| `kali-finding-runtime-ingestion-approval-20260513` | `pending_approval` | 建議第一優先 review，因為只接 redacted finding，不改 runtime control |
| `kali-safe-web-crawl-approval-20260513` | `pending_approval` | 建議第二優先 review，只允許 TLS/header/basic crawl |
| `kali-credentialed-scan-approval-20260513` | `pending_approval` | 高風險，需 credential source、scope、audit trail |
| `kali-full-upgrade-reboot-approval-20260513` | `pending_approval` | 需維護窗口、snapshot、rollback、post-health gate |
| `kali-execute-endpoint-approval-20260513` | `block_candidate` | 預設不應接入 AwoooP runtime |
