Agent OS 与 OWASP Agentic Top 10:原生 ACS 策略与宿主安全控制的治理映射实战
2026/9/18 1:57:30 网站建设 项目流程

Agent OS 与 OWASP Agentic Top 10:原生 ACS 策略与宿主安全控制的治理映射实战

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

本文基于 Agent OS 的 OWASP Agentic Top 10 映射文档 展开,完整讲解 Agent OS 如何通过原生 ACS(Agent Control Specification)策略评估与宿主生命周期控制,逐项覆盖 OWASP Agentic Top 10 的十大风险面。读完本文,你将掌握 ASI01~ASI10 每项风险对应的控制面、AgentControl/HostSession原生策略示例的用法、SandboxConfig等宿主控制的职责边界,以及"策略评估不能替代宿主安全"的 fail-closed 设计原则与验证手段。

一、映射总览:一份风险一张控制表

OWASP Agentic Top 10 是面向智能体应用(Agentic Application)的十大安全风险清单。Agent OS 的治理思路是:将 ACS 原生策略评估与宿主生命周期控制组合使用——前者在每一次 agent 动作(输入、模型调用、工具调用、输出)发生前做确定性裁决,后者负责身份、沙箱、可靠性等执行环境层面的兜底。下面这张表就是官方映射的核心,它标出了每项风险对应的"主控制面(Primary controls)":

RiskPrimary controls
ASI01 Agent Goal HijackInput and output policies, prompt-injection detection, audit
ASI02 Tool MisuseManifest tool catalog,pre_tool_call, sandbox controls
ASI03 Identity and Privilege AbuseAgentMesh identity, capability checks, approval
ASI04 Agentic Supply ChainTool identity, signatures, provenance, package controls
ASI05 Unexpected Code ExecutionSandbox providers, code scanning, tool policy
ASI06 Memory and Context PoisoningContext validation, memory integrity, input policy
ASI07 Insecure Inter-Agent CommunicationAgentMesh trust and encrypted transport
ASI08 Cascading FailuresCircuit breakers, SLOs, rate limits, session budgets
ASI09 Human-Agent Trust ExploitationApproval binding, evidence, restricted audit
ASI10 Rogue AgentsIdentity, runtime mediation, sandbox isolation, kill controls

在 Agent OS README 的覆盖矩阵 中,这 10 项风险被标注为全部覆盖:例如 ASI01 对应AgentControl.blocked_patterns、ASI02 对应MCPGateway的工具过滤/限流/审计、ASI03 对应require_human_approval与 RBAC、ASI06 对应MemoryGuard的哈希完整性与注入检测、ASI10 对应运行时 kill switch 与环形隔离。注意,映射文档明确声明这是架构性指引(architectural guidance)而非认证声明,部署方必须根据自己的威胁模型验证所需控制项。

二、原生 ACS 策略示例:拦截一次工具调用

映射文档给出了最核心的代码骨架——使用 ACS(Agent Control Specification)运行时直接对一次工具调用做策略评估:

from agent_control_specification import AgentControl, HostSession runtime = AgentControl.from_path("policies/owasp-manifest.yaml") session = HostSession( runtime, agent_id="owasp-agent", session_id="owasp-session", ) evaluation = session.pre_tool_call( tool_name="execute_code", args={"code": "untrusted input"}, )

这段代码的含义:

  • AgentControl.from_path(...)policies/owasp-manifest.yaml加载 ACS 清单(manifest),构建策略运行时;
  • HostSession(runtime, agent_id=..., session_id=...)在宿主会话中绑定该运行时与一次 agent 会话的标识;
  • session.pre_tool_call(tool_name="execute_code", args={"code": "untrusted input"})在工具真正执行前发起评估,返回evaluation供宿主读取裁决结果。

agent_control_specification是仓库中真实存在的契约模块:在 原生适配器运行时测试 中可见其导出VerdictDecisionInterventionPointInterventionPointResultTransformAgentControlBlocked等类型;在 agt-policies 的迁移桥接 中也被直接调用(from agent_control_specification import validate_manifest)。

干预点(Intervention Points):清单可以绑定的位置

映射文档强调:"清单可以把策略绑定到输入(input)、模型(model)、工具(tool)与输出(output)干预点上。" 从迁移桥接实现可见干预点的真实命名:pre_model_callpre_tool_call是策略表达式里input.intervention_point的取值。测试进一步证明了干预点的生效顺序:

  • test_adapter_enforcement.py 验证"被拒绝的工具调用在pre_tool_call干预点就被拦截,不会进入执行";
  • 同一文件还验证"每次工具调用在快照之后才计费,因此第一次调用看到零计数"——即预算扣减发生在策略评估之后;
  • test_adapter_mediation_contract.py 以契约测试的形式逐一列出各框架适配器必须实现的_bridge.evaluate_input(_bridge.evaluate_pre_tool_call(_bridge.evaluate_output(调用,确保不同框架(Anthropic、AutoGen、CrewAI、Gemini、Google ADK 等)在相同的干预点上做中介(mediation),从而保证副作用顺序一致。

原生 ACS 契约:不止于 allow/deny

映射文档指出,"工具目录(tool catalogs)、预算(budgets)、转换(transforms)、证据(evidence)与审批(approval)都是原生 ACS 契约"。这意味着策略评估结果不是简单的布尔值,而是一份结构化裁决。测试中的Verdict(decision=Decision.DENY, reason="needs_sign_off", approval={"required": True, "resolver": "human"})表明:一次"需要审批"的拒绝,在裁决里表现为携带 approval 块的 deny,适配层据此把操作路由到人类审批流程而非直接报错(见 test_native_adapter_runtime.py 中对"可提升 deny 路由到审批消息"的断言)。

三、宿主控制:策略评估不替代宿主安全

映射文档用一节专门强调边界:策略评估不替代宿主安全,四类宿主控制各有其主:

  • SandboxConfig拥有网络(network)、文件系统(filesystem)、资源(resource)与提供者(provider)控制;
  • AgentMesh 拥有身份(identity)、信任(trust)与传输(transport);
  • Agent SRE 拥有熔断器(circuit breakers)、SLO、混沌测试与事故响应(incident response);
  • Agent OS 适配器拥有框架生命周期排序(framework lifecycle ordering)与脱敏错误(sanitized errors)。

SandboxConfig:可配置的沙箱边界

在 sandbox.py 的 SandboxConfig 定义 中,可以看到这些控制项的真实字段:

  • blocked_modules:导入时被拒绝、执行期间在sys.modules中被遮蔽的顶层模块名列表(默认含subprocess等危险模块,测试check_import("subprocess") is False可验证);
  • blocked_builtins:在受限全局作用域中被替换为抛错桩的内置函数名;
  • allowed_pathscheck_file_access允许访问的文件系统根路径;
  • max_memory_mb/max_cpu_seconds:资源上限提示——注意文档与注释都明确说明进程内沙箱不强制资源限制,硬性保证需要 cgroups、Job Objects 或 rlimit 等 OS 级隔离;
  • shadow_sys_modules(默认 True):用陷阱代理替换sys.modules中的被禁条目,封堵sys.modules['os'].system(...)逃逸;
  • enforce_ast_validation(默认 True):execute_code_sandboxed先跑validate_code做 AST 静态检查,任何违规都拒绝执行(fail-closed)

这条设计对应 ASI05(Unexpected Code Execution)与 ASI10(Rogue Agents)的"沙箱隔离"控制面,也是映射文档所说"沙箱提供者测试用于隔离验证"的实现底座。

四、Fail-closed 行为:意外的错误也必须拒绝操作

映射文档的 fail-closed 原则可以概括为三句话:

  1. 意外的策略(policy)、分发器(dispatcher)或审批(approval)错误,一律拒绝该操作
  2. 面向外部的公开异常只暴露稳定的文本(stable text);
  3. 受信任的审计代码则保留完整的结构化PolicyEvaluation

这一原则在异常体系与测试中都有直接对应。异常层级定义于 exceptions.py:PolicyErrorPolicyViolationError/PolicyDeniedError/PolicyTimeoutError。测试断言了稳定文本与结构化信息的分离:

# test_native_adapter_runtime.py 中的行为验证 assert str(error) == "Request blocked by policy." # 对外稳定文本 assert error.evaluation_result is result.evaluation # 对内结构化结果 assert error.details["message"] == "restricted detail" # 细节进入审计 details

也就是说,同一个PolicyViolationError同时携带"给外部看的脱敏文本"与"给审计代码看的结构化评估",正好实现映射文档所说的"公共异常暴露稳定文本,受信任审计代码保留结构化PolicyEvaluation"。这也对应 ASI09(Human-Agent Trust Exploitation)的"restricted audit"控制:敏感细节不向调用方泄露,但完整证据进入审计通道。

五、验证手段:四类测试各司其职

映射文档给出了四条验证路径,每一类都能在仓库中找到落点:

  1. 策略回放(policy replay):使用agt test做策略回放。该命令定义于 agent-compliance 的 policy_test.py,用法为agt test policies/ fixtures/,把预置 fixture 逐条回放到策略引擎,比对"期望裁决 vs 实际裁决"并输出 mismatch 摘要——适合验证 OWASP 清单对已知攻击样例的拦截效果。

  2. 适配器中介测试(adapter mediation tests):验证副作用顺序(side-effect ordering)。即上文提到的 test_adapter_mediation_contract.py,以契约形式锁定每个框架适配器在 input / pre_tool_call / output 干预点上的中介行为。

  3. 沙箱提供者测试(sandbox provider tests):验证隔离(isolation)。Agent OS 生态内的 agent-sandbox 测试目录 覆盖 Azure、Docker、Hyperlight、Nonosandbox、MXC 等提供者,进程内沙箱的 test_sandbox.py 则验证导入拦截等静态与运行时防护。

  4. 红队套件(red-team suites):覆盖跨层攻击场景(cross-layer attack scenarios)。仓库根目录的 tests/redteam 目录即为跨层红队测试的落点,可用于模拟"策略层 + 沙箱层 + 身份层"联合攻击。

六、使用前提与边界

  • 本文映射是架构性指引:覆盖某项风险不等于"已通过 XX 认证"。部署时应以自身威胁模型为准,逐项验证所依赖的控制项确实开启并生效。
  • 策略评估拦截的是经由适配器/内核通道的动作;映射文档与 Agent OS README 的已知限制都提示:应用层中间件无法拦截绕过它的直接 stdlib 调用(如subprocessopen),生产环境应叠加容器级隔离作为纵深防御。
  • 进程内沙箱的max_memory_mb/max_cpu_seconds是提示性字段,硬性资源限制依赖 OS 级机制;对不可信负载应改用沙箱提供者。

掌握了映射表、ACS 原生示例、宿主控制边界与 fail-closed 语义,你就可以对照 OWASP Agentic Top 10 逐项审查自己的 Agent 部署,并用agt test与各类测试套件持续验证治理有效性。想继续深入,可阅读 Agent OS 安全规格(.agents/security.md的 schema 与严格/宽松/审计三种模板)、策略模式文档 与 Agent OS 快速开始。

【免费下载链接】agent-governance-toolkitAI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for autonomous AI agents. Covers 10/10 OWASP Agentic Top 10.项目地址: https://gitcode.com/GitHub_Trending/ag/agent-governance-toolkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询