为什么说使用代理式AI就必须了解毒性工作流?
当今商业精英对自主AI的潜力表现出极度热衷,首席执行官们将人工智能视为提升效率的生命线。除了功能失效的风险之外,安全研究人员更担忧这些自主AI部署带来的新型网络弹性风险。
研究人员指出,"毒性工作流"已纳入高管、工程师和安全人员风险雷达的新兴威胁类别。在AI代理、IT工具和企业软件之间的数据流中,存在四重风险叠加:暴露于不可信输入、过度权限授予、敏感数据访问权,以及可被攻击者利用的外部连接。
若行业能有效实施管控措施,治理这些毒性工作流是提升自主AI风险管理水平的关键路径。
01
为什么说自主AI的风险是不同的?
从许多方面来看,AI系统与其他软件类似:都存在代码漏洞、配置错误和身份验证缺陷等问题。但Invariant Labs联合创始人Luca Beurer-Kellner指出,自主AI为现代软件堆栈带来的威胁增添了新的复杂性。自主行为的本质是非确定性,使得预先预测风险行为变得异常困难。
"自主AI系统的核心理念是它们能完成开发者无需预先规划的任务。这种特性令人惊叹且充满前景,但也让我们无法提前预知可能面临的风险类型,"Beurer-Kellner解释道,"这与传统软件截然不同,后者通常基于预先明确的代码、算法和流程。"他目前正领导Snyk公司(近期收购了Invariant)开展相关研究,以提高对毒性工作流的认知。
当行为具有固有不可预测性的AI代理连接到企业最敏感的系统中时——无论是客户数据库、财务系统还是开发平台——重大问题便开始显现。这正是模型上下文协议(MCP)服务器的作用所在,这些连接器帮助开发者将数据源与生成式AI工具同步。它们被称为AI应用的"USB-C接口",实现了应用与数据源及其他工具的无缝通信。
我们必须清醒认识到,随着开发者响应CEO要求通过自主AI提升财务业务效率,MCP必将连接大量敏感系统与AI代理。虽然这是实现最具价值应用场景的必要条件,但也大幅增加了提示注入、幻觉大模型(LLM)漏洞等可被利用风险的发生概率。
"任何失误、幻觉或攻击事件发生时,后果都将更为严重,"Beurer-Kellner强调,"这不再是局限于聊天窗口的无害幻觉,而可能像银行交易中多出一个零那样致命——这类错误必须杜绝。"
尽管面临业务需求压力,安全专家虽无法拒绝自主AI连接敏感系统,但可协助企业构建风险可控的连接架构。
02
致命三重奏和AI杀伤链
当系统组合方式触发"AI代理致命三重奏"时,便是最高风险的自主AI部署场景。这种情况出现在AI代理被设计为同时具备私有数据访问权限、不可信内容暴露风险、可被利用于数据窃取的外部通信能力。
"如果AI代理同时具备这三个特性,攻击者就能轻易诱骗其访问私有数据并外泄,遗憾的是,当前太多AI代理都存在这种致命三重奏风险。在近期毒性工作流分析研究中,Beurer-Kellner及其Invariant Labs团队指出,这三重特性正是毒性工作流滋生的温床。他们以GitHub MCP漏洞为例,展示了攻击者如何利用不可信信息,通过完全受信的工具实施数据窃取。
这绝非孤立研究。安全研究员Johan Rehberger通过8月"AI漏洞月"活动证明,所有主流AI工具和代理都存在大量漏洞。他披露了各主要平台的数十个高危漏洞,其中许多正是由致命三重奏所致。期间他还提出了自主AI的"致命三重奏"问题,称之为AI攻击链。
多个漏洞可通过三步利用:提示注入、权限混淆和自动工具调用。AI攻击链与致命三重奏的关联表明,许多自主AI漏洞都源于提示与敏感数据连接的脆弱性。
毕马威自主AI工程负责人Justin O'Connor总结道:"让AI代理访问私有数据并非风险所在,真正的风险在于与之组合的其他要素。"
对于资深安全专家而言,危险的组合并非新概念。这在身份管理领域已是长期存在的问题——必须建立控制措施来防止诸如财务用户同时创建新供应商和审批付款,或IT管理员在管理用户访问权限时删除系统日志等有问题的权限组合。
自主AI中的毒性工作流往往也与权限缺陷相关,但其危险组合将风险与复杂性提升到了全新高度。Snyk公司Invariant Labs的Beurer-Kellner希望,其团队开发的框架能帮助企业发现这些问题。该框架旨在分析AI应用中的潜在毒性工作流,目前正通过Snyk的开源MCP扫描工具提供毒性工作流分析服务。
该分析通过建模代理系统中的数据流和工具使用情况来识别危险组合。这与仅关注代理系统安全实施的提示安全解决方案不同。毒性工作流分析的核心理念是创建代理系统的流程,建模所有潜在的工具使用序列,并结合信任级别、处理系统或数据的敏感性,以及工具是否可能被用作数据外泄渠道等其他属性进行分析。
Snyk首席技术官Danny Allan指出:"'毒性工作流分析'中的关键词实际上是'流'。如果从定义上就不理解数据流,就无法正确处理授权等问题。因为不安全因素往往发生在不同组件的边界处——这些组件可能各自具备安全性,但跨组件时却存在漏洞。"