62 lines
2.7 KiB
Markdown
62 lines
2.7 KiB
Markdown
# 資安人工決策紀錄契約
|
||
|
||
| 項目 | 內容 |
|
||
|------|------|
|
||
| 日期 | 2026-05-13 |
|
||
| 狀態 | 草案 |
|
||
| Schema | `docs/schemas/security_approval_decision_record_v1.schema.json` |
|
||
| Snapshot | `docs/security/security-approval-decision-record.snapshot.json` |
|
||
| 模式 | `decision_record_only` |
|
||
| runtime 執行授權 | `false` |
|
||
|
||
## 0. 核心結論
|
||
|
||
`security_approval_decision_record_v1` 是 S3.1 的人工決策稽核格式。
|
||
|
||
它只保存人工決策本身,例如批准範圍、拒絕、延後、要求補 evidence 或維持 blocked。
|
||
|
||
它不是 runner,也不是授權 token。任何決策紀錄都必須維持 `execution_authorized=false`。
|
||
|
||
S3.2 的 `security_approval_review_packet_v1` 只負責把待審項目整理成封包。Review packet 不是決策;只有人工審完後,才可把結果寫入本契約。
|
||
|
||
S3.3 的 `security_approval_state_transition_v1` 只負責把本契約中的決策轉成 next state。State transition 不是 runner,也不會讓 `approve_scope` 直接變成可執行。
|
||
|
||
S3.4 的 `security_followup_runtime_gate_v1` 只負責顯示未來若要進 runtime gate 時需要的前置 evidence、preflight checks 與 rollback / disable requirement。目前沒有 active runtime gate。
|
||
|
||
## 1. 目前狀態
|
||
|
||
| 指標 | 數量 |
|
||
|------|------|
|
||
| Decision records | 0 |
|
||
| Approved scope | 0 |
|
||
| Rejected | 0 |
|
||
| Deferred | 0 |
|
||
| Request more evidence | 0 |
|
||
| Keep blocked | 0 |
|
||
| Runtime actions authorized | `false` |
|
||
|
||
## 2. AwoooP 可做
|
||
|
||
1. 對 `security_approval_gate_v1` 的 gate item 記錄人工決策。
|
||
2. 保存 reviewer、時間、evidence refs 與批准範圍。
|
||
3. 顯示哪些決策仍需要 follow-up runtime gate。
|
||
4. 將決策紀錄寫入 Audit evidence。
|
||
5. 將拒絕、延後或補 evidence 的原因顯示給 Operator。
|
||
6. 連回原始 `security_approval_review_packet_v1`,讓 Operator 可追溯決策前看到的 evidence 與限制。
|
||
7. 依 `security_approval_state_transition_v1` 顯示決策後狀態,例如 `scope_approved_waiting_runtime_gate` 或 `blocked_by_default`。
|
||
8. 依 `security_followup_runtime_gate_v1` 顯示後續 runtime gate 準備模板,但仍不執行。
|
||
|
||
## 3. AwoooP 不可做
|
||
|
||
1. 不把 decision record 當成執行命令。
|
||
2. 不因為 `approve_scope` 就自動執行。
|
||
3. 不啟動 scan、credentialed scan 或 Kali `/execute`。
|
||
4. 不建立 GitHub repo、不改 visibility、不 sync refs、不切 GitHub primary。
|
||
5. 不保存 raw secret、token、cookie、private key、credential value 或 exploit payload。
|
||
|
||
## 4. 階段定位
|
||
|
||
S3.1 只是讓人工決策可追溯。
|
||
|
||
它讓治理面更清楚,但仍然維持低摩擦:沒有 runtime enforcement,沒有自動修復,沒有把 approval queue 接成 runner。
|