
目录 一、概述..................................................................................................................3二、漏洞列表..........................................................................................................4三、开发框架中的安全隐忧..................................................................................51.本地请求攻击..................................................................................................52.云上服务接口..................................................................................................73.小结..................................................................................................................8四、智能体生态中的信任危机..............................................................................91.调用链风险互嵌..............................................................................................9(1)大模型输出........................................................................................9(2)工具调用..........................................................................................10(3)多智能体协同..................................................................................122.脆弱的决策者................................................................................................143.小结................................................................................................................16五、沙箱隔离中的盲区风险................................................................................171.差异化沙箱选择............................................................................................172.易忽视的暗面................................................................................................193.小结................................................................................................................21六、总结................................................................................................................22贡献者列表..................................................................................................................22 一、概述 随着LLM推理预测能力不断提升进步,人工智能技术正进入积极探索应用落地的高速发展时期。作为生成式AI的核心交互方案,智能体(Agent)由于其能够进行环境感知、自主决策、任务执行的高度智能化特性,市场规模和应用场景持续扩大,展现出多样化发展趋势。与此同时,AI Agent带来的安全风险也与日俱增,作为需要独立完成复杂任务的计算机工程应用,在面对不可信的网络环境和潜在攻击威胁时,如何确保其正确性和可靠性尤为重要。 近期,360漏洞研究院联合清华大学计算机科学与技术系,针对AI Agent生命周期链路中的各个场景开展安全研究。通过典型攻击面梳理和漏洞挖掘,深入分析探讨了其中潜在的安全风险。结合360安全智能体的高效代码分析能力以及特有的特征库,研究团队报告了智能体相关开源项目漏洞20余个,并在此基础上对重点攻击场景进行归纳总结。 研究发现,AIAgent的全生命周期安全风险呈现多维性、隐蔽性与系统性特征,其安全威胁渗透到开发、测试、部署和运营等一系列流程之中。本报告将Agent安全实践划分为框架层开发设计、生态层协同交互、沙箱层边界隔离三大具体场 景,详细介绍了场景中的运行模式,并对其中代表性的风险面和漏洞进行举例说明,旨在提供智能体安全的综合性视角,为智能体安全生态的持续、积极发展贡献力量。 二、漏洞列表 案例分析还包含了智能体设计中的风险因素,该类因素可能并不构成完整可用的安全漏洞,但仍可用于揭示当前智能体开源软件项目中易受攻击的不安全场景。 三、开发框架中的安全隐忧 Agent架构通常由模型(Model)、工具(Tools)、编排(Orchestration)三个主要组件构成。模型作为系统的决策核心,能够根据具体的输入指令进行推理和预测;工具提供了与外部数据和服务交互的接口,极大的扩展了Agent实时获取信息和处理复杂任务的能力;编排则决定了系统如何拆分任务,并根据推理结果来指导和规划之后的行动,直至完成既定目标。 Agent开发框架通过对系统组件进行一定程度的抽象表达,以模块化、可扩展性和快速编排能力为核心,提供了一系列预设工具和基础功能,旨在简化智能体构建与部署流程,提升整体开发效率。然而,在框架为开发者带来便利性的同时,框架中的潜在安全问题也提供了额外的攻击向量,使其变为恶意攻击者通过网络发起攻击的“帮凶”。 1.本地请求攻击 区别于那些暴露在广域网上,接受任意外部连接的公共服务,本地服务通常无法通过公网路由直接进行访问,并且预期只会收到局域网或者仅来自本地的访问请求。例如,当把服务配置为监听0.0.0.0这一特殊地址时,意味着其它进程可以通过该机器上的任意网卡IP访问到该服务,包括运行在其中的虚拟机,以及局域网内可达的其它设备。而如果将服务配置为监听127.0.0.1(localhost),则该服务只能收到本地请求。 对于Agent开发框架而言,启动本地服务是最常见的行为之一,因为框架通常需要提供后端服务,来帮助开发者进行应用的调试和管理,而这类服务一般也仅需处理来自局域网或本地的请求,而无需运行在广域网中。正因如此,框架服务通常默认所有的请求都是可信任的,并且缺少对请求发起方的身份验证以及对请求中包含数据的二次检查。因此,对于绑定0.0.0.0地址的框架服务,可能成为攻击者进行横向渗透,或者容器逃逸的目标。 此外,即使服务限制localhost作为监听地址,仍有可能通过外部网络向本地服务发送请求,并利用其中的安全漏洞完成远程攻击。最为典型的场景就是将浏览器作为跳板,与浏览器所在设备上的本地服务建立连接,其流程如下图所示。 由于同源策略的限制,当从浏览器中发起跨域HTTP请求时,如果响应报文中没有包含正确的CORS响应头信息,则浏览器将阻止发起方获得响应内容。但上述攻击仍能成功的关键因素在于:浏览器虽然阻止了发起方接收响应,但并不会阻止发送请求这一行为,而有时候,单纯的发送请求就足以完成漏洞利用。 案例1:Pyspur Pyspur是一个轻量级Agent工作流构建框架,支持以可视化节点编排的方式来生成复杂流程,每个节点代表了诸如LLM对话、工具调用、逻辑控制等特定功能。 在某些节点中,由于存在对Jinja2库的Template对象不安全的使用,因此可导致任意代码执行。Jinja2是使用Python实现的一个模板引擎,支持在模板渲染过程中执行其中的表达式,服务端在没有良好过滤的情况下接收外部传递的数据并进行渲染,则可能会执行攻击者控制的恶意指令。 Pyspur则是一个符合本地请求攻击场景的典型例子:将服务绑定于localhost,且没有身份认证措施,意味着默认信任来自本地的请求;同时,触发其中的模板注入漏洞流程,仅需连续的发送几个请求,而不要求能够获取响应内容,意味着通过浏览器发起跨域请求能够满足攻击条件。因此,攻击者可以借助该场景轻易 实施针对该框架的远程代码执行,从而控制开发者的设备。 案例2:GoogleAgent Development Kit Agent Development Kit(ADK)是由Google发布的一个用于Agent工作流开发的工具集,并专门针对Gemini生态进行了优化,同时兼容其他模型与框架。ADK提供基于FastAPI的本地服务,帮助开发者以命令行或Web可视化的形式来运行、调试、评估Agent。 在启动时,服务将绑定于0.0.0.0地址,且绑定过程没有提供修改地址的选项,而是直接硬编码在代码中。这代表除非开发者自行寻找并修改软件源代码,否则无法将服务连接的访问限制在本地,同时,ADK官方的文档中并没有体现这一设计特点,反而在某种程度上表明服务的连接仅需在本地完成。 除此之外,ADK的服务中还增加了对于WebSocket连接的支持,开发者可通过/run_live接口与Agent建立实时性更强的连接,并通过WebSocket进行双向通信。这进一步削弱了浏览器对于跨域请求的防护,因为在默认配置下,浏览器不会阻止跨域建立WebSocket连接,也不会阻止发起跨域连接一方获得响应消息。因此,攻击者可以通过构造一个恶意页面,静默的与运行在ADK服务下的Agent建立通信并使用其实现的各项功能,从而造成更大的破坏。 2.云上服务接口 框架中包含的软件基础设施通常提供多种部署方式,开发者可将其部署在自己的本地环境,或者以付费的方式直接使用框架部署在云端的服务。这也是许多开源框架的商业化模式之一。相较于本地部署,云端服务会增加账户认证和环境隔离等措施,用以确保用户的基本安全,但服务本身的核心代码逻辑与开源部分保持一致。 这种云服务的形式将一部分用户本地资源转移至云端处理,从安全的角度来看,原本由用户自行管理的本地资源,现在需要依靠服务提供者来提供安全保障。这也意味着如果云服务接口中存在漏洞,则攻击者就能利用它来影响到整个业务系统的安全。 案例:Steel Browser SteelBrowser是一个为Agent提供浏览器操作接口的基础设施开源框架。它提供了一个完整的浏览器实例,允许用户使用编程的方式实现会话管理、页面提取、Ja