Files
awoooi/docs/security/HIGH-VALUE-CONFIG-OWNER-PACKET.md

110 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IwoooS 高價值配置 Owner Response Packet
| 項目 | 內容 |
|------|------|
| 日期 | 2026-06-14 |
| 狀態 | `owner_packet_draft_ready_p0_path_sync` |
| 工具 | `scripts/security/high-value-config-owner-packet.py` |
| 輸入 | `docs/security/high-value-config-change-gate.snapshot.json` |
| Snapshot | `docs/security/high-value-config-owner-packet.snapshot.json` |
| runtime gate | `0` |
## 1. 目的
P0.2 已能將變更分類成 C0 / C1 / C2 / C3。本文件與工具負責下一步把分類結果轉成 owner response packet 草案,讓 Nginx、DNS / TLS、K8s、secret、workflow、runner、backup、monitoring、host service、network、AI provider、agent-bounty-protocol 等高價值配置變更有一致補件欄位。
本階段仍是只讀草案,不送 request、不收 owner response、不標記 received / accepted、不建立 action button、不接 blocking CI、不執行 runtime。
## 1.1 2026-06-14 P0 path sync
本輪 owner packet snapshot 已跟隨高價值配置 Gate 的 P0 pattern 補強重產:
| Packet | affected files | 邊界 |
|--------|----------------|------|
| `nginx_public_gateway` | `k8s/nginx/awoooi-prod.conf` | 只要求 public gateway owner response、rendered diff、`nginx -t` 計畫、route smoke 計畫與 rollback ref不代表已讀 live conf 或 reload |
| `dns_tls_certbot` | `scripts/ops/188-registry-certbot-fix.sh``scripts/ops/fix-188-registry-certbot-renewal.sh` | 只要求 domain / TLS owner response、renewal window、ACME smoke 計畫、public HTTPS smoke 計畫與 rollback ref不代表 certbot renew 或 DNS / TLS 變更 |
| `security_evidence_tooling` | Gate 文件、snapshot 與工具 | 只要求 snapshot parse、guard smoke、doc secret sanity 與 no runtime gate increase |
重產結果為 `packet_count=3``c0_packet_count=2``c1_packet_count=0``runtime_gate_count=0`request / received / accepted 仍全部維持 `0`
## 1.2 2026-06-14 收件預檢
已新增 `docs/security/HIGH-VALUE-CONFIG-OWNER-PACKET-INTAKE-PREFLIGHT.md``docs/security/high-value-config-owner-packet-intake-preflight.snapshot.json`,將三包草案轉成送件前預檢與 reviewer intake lanes。
目前固定為 `dispatch_preflight_check_count=9``reviewer_intake_lane_count=5``required_owner_field_total=27``blocked_request_count=16`。此 artifact 只表示收件框架已準備,不代表 request sent、owner response received、reviewer accepted、queue write、runtime execution、Nginx reload、DNS / TLS 變更、workflow 修改、host write、active scan 或 production write。
## 1.3 2026-06-14 Request draft
已新增 `docs/security/HIGH-VALUE-CONFIG-OWNER-REQUEST-DRAFT.md``docs/security/high-value-config-owner-request-draft.snapshot.json`,將三包收件預檢轉成人工送件前可核對的 request draft。
目前固定為 `request_draft_count=3``c0_request_draft_count=2``handoff_envelope_field_count=11``required_owner_field_total=27``forbidden_payload_count=12`。此 artifact 只表示草稿包已準備,不代表 request sent、recipient confirmed、audit event emitted、owner response received、reviewer accepted、queue write、runtime execution、Nginx reload、DNS / TLS 變更、workflow 修改、host write、active scan 或 production write。
## 2. Canonical 欄位
高價值配置 packet 對齊 S4.9 canonical owner response envelope使用以下欄位
1. `owner_role_or_team`
2. `decision`
3. `decision_reason`
4. `affected_scope`
5. `redacted_evidence_refs`
6. `followup_owner`
7. `rollback_owner`
8. `maintenance_window`
9. `validation_plan`
`decision` 只能是 `confirm``defer``reject``request_more_evidence``confirm` 只代表 owner 對該分類補件方向確認,不代表 reload、deploy、sync、scan、payout 或 host write。
## 3. 指令
使用 committed gate snapshot 產生 owner packet
```bash
python3 scripts/security/high-value-config-owner-packet.py \
--root . \
--gate-report docs/security/high-value-config-change-gate.snapshot.json \
--output docs/security/high-value-config-owner-packet.snapshot.json
```
查看即時分類結果的 packet
```bash
python3 scripts/security/high-value-config-change-gate.py \
--root . \
--changed-file infra/ansible/roles/nginx/templates/188-all-sites.conf.j2 \
--output /tmp/high-value-config-gate-nginx.json
python3 scripts/security/high-value-config-owner-packet.py \
--root . \
--gate-report /tmp/high-value-config-gate-nginx.json
```
## 4. Packet 狀態
| 狀態 | 意義 | Gate 影響 |
|------|------|-----------|
| `draft_waiting_owner_response` | 只是草案,尚未送件或收件 | request / received / accepted 全部維持 0 |
| `request_more_evidence` | owner 欄位缺漏或 scope 不清 | 不增加 accepted |
| `quarantine_sensitive_payload` | 疑似含 secret、token、cookie、private key、未脫敏 evidence | 不保存 raw payload |
| `reject_execution_request` | 夾帶 reload、deploy、sync、host write、scan、payout 等執行要求 | 不建立 action button |
| `ready_for_reviewer_validation` | 欄位完整且無敏感 payload / 執行要求 | 只進 reviewer checklist仍非 accepted |
## 5. 絕對禁止
1. 不把 packet 草案當成 request sent。
2. 不把 owner 口頭同意當成 response received。
3. 不把 `confirm` 當成 runtime reload / deploy / scan / payout 授權。
4. 不收 secret value、partial token、private key、cookie、session、authorization header、runner token 或 webhook secret。
5. 不把內部工作視窗對話、抱怨或 Session 指令放入前端產品文案。
6. 不用 packet 產生器修改 `.gitea/workflows`、K8s、Nginx、DNS、TLS、主機或 agent-bounty runtime。
## 6. 完成度
| 工作 | 完成度 | 說明 |
|------|--------|------|
| Gate → owner packet 草案 | `100%` | 可從 gate JSON 產生 impacted category packet |
| Canonical 欄位對齊 | `100%` | 已對齊 S4.9 `owner_role_or_team` 等欄位P0.2 gate 也接受 alias |
| owner response 收件 | `0%` | 尚未送 request、尚未收到 owner response |
| reviewer accepted | `0%` | 尚未進 reviewer checklist |
| runtime gate | `0%` | 未授權且未開啟 |