Files
awoooi/docs/security/security-followup-runtime-gate.snapshot.json
Your Name 9e15fd08b3
All checks were successful
CD Pipeline / tests (push) Successful in 1m39s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 5m19s
CD Pipeline / post-deploy-checks (push) Successful in 2m11s
feat(web): land iwooos security posture surfaces
2026-05-25 20:35:52 +08:00

384 lines
16 KiB
JSON
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.
{
"schema_version": "security_followup_runtime_gate_v1",
"status": "draft",
"date": "2026-05-17",
"mode": "runtime_gate_preparation_only",
"runtime_execution_authorized": false,
"source_indexes": [
"docs/security/security-approval-state-transition.snapshot.json",
"docs/security/security-approval-review-packet.snapshot.json",
"docs/security/security-approval-gate.snapshot.json",
"docs/security/security-approval-decision-record.snapshot.json",
"docs/security/security-mirror-status-rollup.snapshot.json",
"docs/security/security-rollout-policy.snapshot.json",
"docs/security/gitea-inventory-coverage-attestation.snapshot.json",
"docs/security/gitea-inventory-owner-attestation-response.snapshot.json",
"docs/security/source-control-ref-truth-owner-response.snapshot.json",
"docs/security/source-control-workflow-secret-name-owner-response.snapshot.json"
],
"summary": {
"total_gate_templates": 8,
"active_runtime_gates": 0,
"approved_scope_count": 0,
"runtime_actions_authorized": false,
"action_buttons_allowed": false,
"raw_secret_storage_authorized": false
},
"gate_templates": [
{
"template_id": "runtime-gate-redacted-finding-ingestion-20260513",
"source_packet_id": "review-packet-redacted-finding-ingestion-20260513",
"source_gate_id": "gate-redacted-finding-ingestion-20260513",
"action_family": "redacted_finding_ingestion",
"risk": "MEDIUM",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"security_finding_v1 欄位對照表",
"redaction test snapshot",
"不保存 raw secret/token/cookie/private key/exploit payload 的證明",
"Audit evidence 寫入位置"
],
"required_reviewers": [
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 payload 只含摘要與 evidence_ref",
"確認 LOW/MEDIUM finding 不會變成 blocking gate",
"確認沒有 scan trigger 或修復 trigger",
"確認沒有新增執行按鈕"
],
"allowed_pre_runtime_artifacts": [
"draft ingestion adapter design",
"draft PR",
"redacted sample payload",
"audit mapping note"
],
"rollback_or_disable_requirement": "必須有可停用 ingestion adapter 的 feature flag 或 config gate。",
"still_forbidden": [
"啟動 Kali scan",
"保存 raw sensitive value",
"自動封鎖 deploy",
"自動修復"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-safe-web-crawl-20260513",
"source_packet_id": "review-packet-safe-web-crawl-20260513",
"source_gate_id": "gate-safe-web-crawl-20260513",
"action_family": "safe_web_crawl_scope",
"risk": "MEDIUM",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"批准的 public domain / URL scope",
"scan window 與 frequency cap",
"rate limit 與 timeout",
"排除 auth flow、state-changing route 與 active fuzz 的清單"
],
"required_reviewers": [
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認只做 TLS/header/basic crawl",
"確認不帶憑證",
"確認不碰寫入型 endpoint",
"確認輸出只產生 redacted findings"
],
"allowed_pre_runtime_artifacts": [
"safe crawl target list",
"rate-limit plan",
"redacted output schema",
"maintenance-safe timing note"
],
"rollback_or_disable_requirement": "必須能立即停用 safe crawl job且不得影響產品 runtime。",
"still_forbidden": [
"active DAST fuzz",
"credentialed scan",
"auth flow 改狀態測試",
"阻擋 release"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-gitea-readonly-inventory-20260513",
"source_packet_id": "review-packet-gitea-readonly-inventory-20260513",
"source_gate_id": "gate-gitea-readonly-inventory-20260513",
"action_family": "gitea_readonly_inventory",
"risk": "MEDIUM",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"S4.9 owner response request packet 已顯示template status ledger、audit event templates、redaction examples、display sections 與 collection checks 已確認 request / received / accepted 分離audit events emitted=0owner response 已完成 intake preflight、outcome lane 判定與驗收,且 S4.7 owner coverage attestation 的 5 個 items 都有 scope decision",
"read-only token scope 或 redacted admin export 來源",
"token_present=true/false不保存 token value",
"allowed export fields checklist",
"repo list redaction proof"
],
"required_reviewers": [
"migration-engineer",
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 public-only / local remote gap、org/user endpoint、110 adjacent source、canonical owner 與 legacy/inaccessible disposition 已依 S4.9 request packet / response template 由 owner 判定",
"確認 token 不具 write 權限",
"確認不保存 token value",
"確認 export 不含 webhook secret / deploy key private key / repository secret value",
"確認只更新 inventory snapshot"
],
"allowed_pre_runtime_artifacts": [
"owner coverage attestation response update",
"redacted admin export sample",
"read-only inventory command plan",
"updated migration matrix draft",
"audit evidence note"
],
"rollback_or_disable_requirement": "read-only token 必須可撤銷admin export 必須可刪除本地暫存原檔,只保留 redacted snapshot。",
"still_forbidden": [
"未完成 S4.7 owner attestation 就執行 inventory",
"未完成 S4.9 owner response request packet 顯示、template status ledger、audit event templates、redaction examples、display sections、collection checks 與 owner response 驗收就執行 inventory",
"使用 write-capable token",
"建立 GitHub repo",
"sync refs",
"切 GitHub primary"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-github-target-decision-20260513",
"source_packet_id": "review-packet-github-target-decisions-20260513",
"source_gate_id": "gate-github-target-decisions-20260513",
"action_family": "github_target_decision",
"risk": "HIGH",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"S4.10 owner response request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / decision response 驗收結果docs/security/github-target-owner-decision-response.snapshot.json",
"S4.12 workflow / secret 名稱 owner response request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 與驗收結果docs/security/source-control-workflow-secret-name-owner-response.snapshot.json",
"repo owner / visibility / canonical decision",
"GitHub target 是否已存在的最新 probe",
"workflow parity checklist",
"rollback ADR draft"
],
"required_reviewers": [
"migration-engineer",
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 S4.10 request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 或 response packet 未被當成 repo creation、visibility change、refs sync 或 primary approval",
"確認 S4.12 request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 或 response packet 未被當成 secret value collection、workflow modification、runner enablement 或 primary approval",
"確認 not_found_or_private 不被當成可自動建立 repo",
"確認 visibility change 仍未授權",
"確認 refs action disabled",
"確認只更新決策草案"
],
"allowed_pre_runtime_artifacts": [
"owner decision response acceptance note",
"workflow-secret owner response acceptance note",
"target decision table update",
"draft reconcile ADR",
"repo owner review note",
"workflow parity checklist draft"
],
"rollback_or_disable_requirement": "任何 repo creation 或 visibility change 未來都必須有獨立 rollback / ownership ADR。",
"still_forbidden": [
"建立 GitHub repo",
"修改 visibility",
"push refs",
"delete refs",
"切 GitHub primary"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-ref-truth-review-20260513",
"source_packet_id": "review-packet-ref-truth-review-20260513",
"source_gate_id": "gate-ref-truth-review-20260513",
"action_family": "ref_truth_review",
"risk": "HIGH",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"單 repo / 單 ref owner 判定",
"S4.11 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks / owner response 驗收結果",
"真相來源與 deprecated refs 清單",
"branch/tag diff 最新 snapshot",
"不得 sync/delete 的確認"
],
"required_reviewers": [
"migration-engineer",
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 owner response 已依 S4.11 request packet / template status ledger / audit event templates / redaction examples / collection checks / intake preflight checks 驗收 / 拒收 / 隔離",
"確認分類結果不會自動執行",
"確認 force push 禁用",
"確認 release tags 需人工保留 / 棄用判定",
"確認 GitHub primary 仍 blocked"
],
"allowed_pre_runtime_artifacts": [
"source-control-ref-truth-owner-response acceptance note",
"updated ref truth classification snapshot",
"manual review checklist",
"draft reconcile plan update",
"audit evidence note"
],
"rollback_or_disable_requirement": "任何 refs sync/delete 未來都必須先有可回復 refs backup 與逐 repo rollback gate。",
"still_forbidden": [
"push refs",
"delete refs",
"force push",
"切 GitHub primary"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-credentialed-scan-exception-20260513",
"source_packet_id": "review-packet-credentialed-scan-20260513",
"source_gate_id": "gate-credentialed-scan-20260513",
"action_family": "credentialed_scan_exception",
"risk": "HIGH",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"credential source 與 lifecycle不含 credential value",
"asset allowlist",
"scan window",
"audit trail 與停用方式"
],
"required_reviewers": [
"security-commander",
"vuln-verifier",
"human-owner"
],
"preflight_checks": [
"確認只對批准 asset",
"確認不保存 credential value",
"確認 scan 可立即停用",
"確認不改 firewall/RBAC/NetworkPolicy"
],
"allowed_pre_runtime_artifacts": [
"credential lifecycle design",
"asset allowlist draft",
"scan window proposal",
"audit trail plan"
],
"rollback_or_disable_requirement": "必須先有 credential revoke 與 scanner disable gate。",
"still_forbidden": [
"保存 credential value",
"擴大到未批准資產",
"自動修復",
"改 firewall/RBAC/NetworkPolicy"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-kali-full-upgrade-reboot-20260513",
"source_packet_id": "review-packet-kali-full-upgrade-reboot-20260513",
"source_gate_id": "gate-kali-full-upgrade-reboot-20260513",
"action_family": "kali_full_upgrade_reboot_window",
"risk": "HIGH",
"gate_state": "waiting_approved_scope",
"applies_after_decision": "approve_scope",
"minimum_required_evidence": [
"維護窗口",
"snapshot / backup evidence",
"rollback plan",
"post-health check list"
],
"required_reviewers": [
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 scanner API、ssh、cron、docker health baseline",
"確認 no active scan running",
"確認 snapshot 已完成",
"確認 post-reboot health gate"
],
"allowed_pre_runtime_artifacts": [
"maintenance window proposal",
"snapshot evidence",
"rollback checklist",
"post-health checklist"
],
"rollback_or_disable_requirement": "必須有 VM / filesystem snapshot 或等效 rollback且 post-health gate 未通過不得宣告完成。",
"still_forbidden": [
"未排窗口直接 reboot",
"未 snapshot 直接 full-upgrade",
"未驗證 scanner health 就宣告完成"
],
"execution_authorized": false
},
{
"template_id": "runtime-gate-kali-execute-endpoint-20260513",
"source_packet_id": "review-packet-kali-execute-endpoint-20260513",
"source_gate_id": "gate-kali-execute-endpoint-20260513",
"action_family": "kali_execute_endpoint_exception",
"risk": "CRITICAL",
"gate_state": "blocked_by_default",
"applies_after_decision": "keep_blocked",
"minimum_required_evidence": [
"disable gate design",
"allowlist design",
"full audit trail design",
"human exception workflow"
],
"required_reviewers": [
"critic",
"security-commander",
"human-owner"
],
"preflight_checks": [
"確認 AwoooP runtime 不可直接呼叫 /execute",
"確認 command path 預設 disabled",
"確認沒有一般 MCP action route",
"確認敏感輸出不保存"
],
"allowed_pre_runtime_artifacts": [
"disable gate design note",
"allowlist draft",
"audit trail design",
"manual exception proposal"
],
"rollback_or_disable_requirement": "必須預設 disabled任何 exception 都必須可立即撤回且有完整 audit trail。",
"still_forbidden": [
"AwoooP runtime 直接呼叫 /execute",
"把 /execute 當成一般 MCP action",
"執行 shell command 自動修復",
"保存 command output 中可能含有的敏感資訊"
],
"execution_authorized": false
}
],
"gate_rules": [
"本契約只定義 follow-up runtime gate 的準備資料,不代表 runtime gate 已啟用。",
"active_runtime_gates 必須維持 0直到統帥明確批准 runtime integration。",
"任何 template 即使 gate_state=waiting_approved_scope也不得顯示執行按鈕。",
"所有 template 的 execution_authorized 必須維持 false。",
"真正 runtime action 必須另有人工批准、preflight evidence、rollback/disable plan 與 post-check。"
],
"forbidden_actions": [
"activate_runtime_gate",
"execute_runtime_gate_template",
"add_action_button",
"start_kali_scan",
"call_kali_execute_endpoint",
"run_credentialed_scan",
"create_github_repo",
"change_repo_visibility",
"sync_git_refs",
"switch_github_primary",
"auto_merge",
"production_deploy",
"store_secret_token_cookie_private_key_or_exploit_payload",
"turn_low_medium_observations_into_blocking_gates"
]
}