Files
awoooi/docs/adr/ADR-122-owasp-agentic-ai-iso42001-alignment.md
Your Name 13e51802fe feat(awooop): Phase 0 全 ADR + Phase 1 control plane schema(含 critic 四項修正)
## Phase 0(文件層,全部 Accepted)
- ADR-106/107:AwoooP 平台架構 + 儲存策略
- ADR-111~118:Bootstrap → RLS 七項核心 ADR
- ADR-119~124:SAGA → Singleton Decomposition 六項 ADR
- ADR-UI-01~04:Operator Console 四個 UI ADR

## Phase 1(DB schema + migration)
- awooop_phase1_control_plane_2026-05-04.sql:7 張新表 + trigger + RLS
  - Step 1:三角色(platform_admin/migration BYPASSRLS,awooop_app 受 RLS)
  - Step 13:GRANT awooop_app 最小權限(7 條)
  - Step 14:RLS fail-closed,移除 __platform__ 後門
- awooop_phase1_batch1_rls_2026-05-04.sql:高流量四表三步式 ADD COLUMN
- awooop_phase1_batch1_backfill.py:SKIP LOCKED 分批回填腳本
- awooop_models.py:7 個 SQLAlchemy 2.x models

## Critic 修正(4 Critical + 3 Major)
- C-1:ADD CONSTRAINT IF NOT EXISTS → DO 塊 + pg_constraint 查詢
- C-2:__mapper_args__ 字串 list → primary_key=True on mapped_column
- C-3:__platform__ RLS 後門 → 全移除,改用 BYPASSRLS role
- C-4:awooop_app role 從未建立 → Step 1 + 7 條 GRANT
- M-1:active_pointer_guard SECURITY DEFINER(FORCE RLS 跨租戶保護)
- M-2:pg_partman create_parent 加冪等防護
- M-3:immutability trigger 新增身份欄位保護(project_id/family/contract_id)

## Task 1.2 修補
- agent_loader.py:硬編碼 Mac 路徑 → AGENTS_DIR 環境變數
- Dockerfile:補 COPY .claude/agents/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 13:37:11 +08:00

7.3 KiB
Raw Blame History

ADR-122: OWASP Agentic AI Top 10 & ISO 42001 Alignment

狀態Accepted 日期2026-05-03台北 決策者:統帥 範圍:行業標準映射到 AwoooP 控制項、合規差距識別 關聯ADR-116security hardening、ADR-117Confused Deputy、ADR-120budget


背景

2025 年起OWASP 發布了 Agentic AI Top 10OAI-01 到 OAI-10定義了 AI Agent 系統的十大安全風險。同期 ISO/IEC 42001AI Management System Standard也開始被企業採納。

AwoooP 作為 AI Agent 平台,需要對應這兩個標準,確保架構設計符合行業期望。本 ADR 記錄每個風險點的控制狀態。


OWASP Agentic AI Top 10 映射

OAI-01Prompt Injection提示注入

風險:攻擊者透過惡意 prompt 操控 Agent 行為。

控制項 狀態 實作位置
Input sanitization ⚠️ Partial decision_manager.py(需加強)
System prompt isolation ⚠️ Partial Agent contract system_prompt 欄位Phase 3
Output validation requires_approval 改 policy-derivedADR-116 D3
Injection detection pattern TODO Phase 5injection pattern 規則庫

差距:需要在 LLM input 加 injection pattern 偵測層。


OAI-02Insecure Output Handling不安全輸出處理

風險Agent 輸出被用於執行命令而不驗證。

控制項 狀態 實作位置
Tool call parameter validation ⚠️ Partial mcp_bridge.py(需加 schema 驗證)
Output schema enforcement TODO Phase 3Agent contract output_schema
Structured output onlyno free-form exec MCP Gateway 強制 tool_id + params 結構

OAI-03Excessive Agency過度授權

風險Agent 被賦予超出必要的工具和資源存取權限。

控制項 狀態 實作位置
Per-run allowed_tools allowlist ADR-117 D2
Agent contract tool restriction ADR-106allowed_tools 欄位)
HIGH risk tool requires approval ADR-116 D4 + ADR-117
Namespace restriction in K8s ops ADR-117 D2contract-derived

狀態COMPLIANTPhase 3 實作後)


OAI-04Resource Exhaustion資源耗盡

風險Agent 呼叫無限 LLM 或工具,耗盡計算/費用資源。

控制項 狀態 實作位置
Token budget hard kill ADR-120 D2
LLM call count limit per run ADR-120 D6llm_call_limit_per_run
Tenant budget isolation ADR-120 D1
Emergency kill switch ADR-120 D2 防線 3

狀態COMPLIANTPhase 2 實作後)


OAI-05Supply Chain Vulnerabilities供應鏈漏洞

風險:使用的 AI 模型、工具或 SDK 有未修補的漏洞。

控制項 狀態 實作位置
Model version tracking ai_provider_version_history
Dependency scanningpip-audit ⚠️ Partial CI/CD 需要加入 pip-audit
Container image scanning ⚠️ Partial Harbor 有 Trivy但未開啟
SBOM generation TODO Phase 5

差距CI/CD 需要加入 pip-audit + Harbor Trivy 掃描啟用。


OAI-06Data Privacy Violation資料隱私違規

風險Agent 處理或洩漏敏感使用者資料。

控制項 狀態 實作位置
Tenant data isolationRLS ADR-118
PII detection before LLM TODO Phase 5PII filter middleware
Audit log for sensitive operations ADR-112 D7
K8s Secret 不進 DB INV-4 已確認

差距PII filter 在 Phase 5 實作Phase 1~4 期間靠 RLS 隔離。


OAI-07Memory Poisoning記憶體污染

風險:攻擊者透過操控 Agent 記憶KM影響未來決策。

控制項 狀態 實作位置
KM write requires approval (HIGH risk) ⚠️ Partial knowledge_write 已在 approval gateADR-116 D3
KM entry source tracking knowledge_entries.source 欄位
KM poisoning detection TODO Phase 5KM 異常寫入頻率監控
Human review for critical KM ⚠️ Partial 目前只有 approval沒有 review UI

OAI-08Unauthorized Actions未授權操作

風險Agent 在沒有授權的情況下執行影響系統的操作。

控制項 狀態 實作位置
Principal mappingwho sent this run? ADR-115platform_subjects 表)
Approval workflow ADR-114 + ADR-116
requires_approval not from LLM ADR-116 D3P0-04 修補)
SAGA compensation on rejection ADR-119

狀態COMPLIANTPhase 2 實作後)


OAI-09Access Control Bypass存取控制繞過

風險:攻擊者繞過 Agent 的存取控制機制。

控制項 狀態 實作位置
Callback nonce HMAC防偽造 ADR-116 D1P0-05 修補)
Webhook replay 防護 ADR-116 D2P0-06 修補)
JWT / approval_token HS256 ADR-116 D4
RLS 防 cross-tenant ADR-118
Confused Deputy prevention ADR-117 D2

狀態COMPLIANTPhase 2 實作後)


OAI-10Observability Deficiency可觀測性不足

風險AI Agent 的行為無法被審計和追蹤。

控制項 狀態 實作位置
OTel GenAI spans ADR-121
run_id / trace_id 全鏈路 ADR-111contextvars
Audit log for all contract ops ADR-112 D7
Token usage telemetry ADR-120 D2 + ADR-121 D2
Background loop 31 個 tagging ⚠️ Partial PR-10Phase 2

ISO 42001 映射

條款 要求 AwoooP 控制項
6.1 風險評估 AI 系統風險識別 ADR 系列111~124= 正式風險評估文件
6.2 目標與計畫 AI 目標量化 DETAILED-IMPLEMENTATION-PLAN Phase DoD
8.4 AI 系統生命週期 版本管理、審批流程 ADR-112contract governance
9.1 監控與量測 效能指標追蹤 ADR-121OTel+ SignOz dashboard
10.1 不符合項與矯正 問題追蹤與改善 ADR + INV 系統

差距摘要(需後續 Phase 解決)

OWASP Item 差距項目 目標 Phase
OAI-01 Injection detection pattern 規則庫 Phase 5
OAI-02 Agent contract output_schema 驗證 Phase 3
OAI-05 pip-audit CI + Harbor Trivy Phase 4
OAI-06 PII filter middleware Phase 5
OAI-07 KM 異常寫入頻率監控 Phase 5
OAI-10 31 個 background loop taggingPR-10 Phase 2

驗收標準

  • OWASP OAI-03/04/08/09Phase 2 實作後 vuln-verifier PoC 全過
  • OWASP OAI-1031 個 background loop 全部 taggedPR-10 完成)
  • ISO 42001 映射表展示給統帥確認Phase 2 收尾)
  • 差距清單進入 Phase 4/5 backlog

關聯

  • ADR-116security hardeningP0-04/05/06
  • ADR-117Confused DeputyOAI-03/09
  • ADR-118RLSOAI-06/09
  • ADR-119SAGAOAI-08
  • ADR-120budget hard killOAI-04
  • ADR-121OTelOAI-10