AI攻防实战:利用AI攻击链框架剖析AI应用安全

利用AI攻击链框架对AI应用进行攻击建模

AI应用引入了传统安全模型无法完全捕捉的新攻击面,尤其是随着这些智能系统自主性的增强。不断演变的攻击面的指导原则很明确:假设存在提示词注入。但将其转化为有效的防御措施通常并不简单。

网络攻击链安全框架定义了攻击者的操作方式。在某中心,我们构建了AI攻击链,以展示攻击者如何危害AI应用,并说明防御者可以在何处中断攻击链。与强调攻击者使用AI的模型不同,此框架侧重于针对AI系统本身的攻击。

本文将概述各个阶段,展示示例,并将其与其他安全模型联系起来。

AI攻击链如何将攻击分解为可操作的阶段?

我们的AI攻击链包括五个阶段——侦察、投毒、劫持、持久化和影响——以及一个迭代/转向分支。在接下来的部分,我们将深入探讨AI攻击链的每个阶段,如上图所示。

AI攻击链的侦察阶段会发生什么?

在侦察阶段,攻击者会映射系统以规划攻击。攻击者此时提出的关键问题包括:

  • 我控制的数据可以通过哪些路径进入AI模型?
  • 应用程序使用了哪些可能被利用的工具、模型上下文协议服务器或其他功能?
  • 应用程序使用了哪些开源库?
  • 系统防护措施应用于何处?它们如何工作?
  • 应用程序使用哪些类型的系统内存?

侦察通常是交互式的。攻击者会探测系统以观察错误和行为。他们对系统行为的可见性越高,下一步行动就越精确。

中断侦察的防御优先事项:

  • 访问控制:将系统访问权限限制在授权用户范围内。
  • 最小化信息:清理错误信息、清除系统提示、防护措施披露和组件标识符,防止其出现在输出中。
  • 监控探测行为:实现遥测技术,以检测表明侦察活动的异常输入或访问模式。
  • 强化模型:对模型进行微调,以抵御转移攻击和敏感信息诱导。

早期中断侦察可以防止攻击者获得在执行后续攻击链步骤时所需的知识。

攻击者在此阶段如何对AI系统进行投毒?

在投毒阶段,攻击者的目标是将恶意输入放置到最终会被AI模型处理的位置。主要有两种技术占主导地位:

  • 直接提示词注入:攻击者就是用户,通过正常的用户交互提供输入。影响通常局限于攻击者的会话,但可用于探测行为。
  • 间接提示词注入:攻击者毒化应用程序代表其他用户摄取的数据。这是影响扩大化的地方。

基于文本的提示词感染是最常见的技术。然而,还有其他方法,例如:

  • 训练数据投毒:将受污染的数据注入用于微调或训练模型的数据集中。
  • 对抗性样本攻击:对输入进行比特级操作,以强制错误分类。
  • 视觉载荷:在物理环境中影响模型输出的恶意符号、贴纸或隐藏数据。

中断投毒的防御优先事项:

  • 净化所有数据:不要假设内部管道是安全的,对用户输入、RAG源、插件数据和API源应用防护措施。
  • 重述输入:在摄取前转换内容,以破坏攻击者精心设计的载荷。
  • 控制数据摄取:在摄取前净化任何可公开写入的数据源。
  • 监控摄取:关注摄取管道中的意外数据峰值、异常嵌入或高频贡献。

投毒成功后,攻击者如何劫持AI模型行为?

劫持阶段是攻击变得活跃的地方。在投毒阶段成功放置的恶意输入被模型摄取,劫持其输出以服务于攻击者的目标。常见的劫持模式包括:

  • 攻击者控制的工具使用:强制模型使用攻击者定义的参数调用特定工具。
  • 数据外泄:将模型上下文中的敏感数据编码到输出中。
  • 虚假信息生成:精心制作故意虚假或误导性的回应。
  • 上下文特定载荷:仅在目标用户上下文中触发恶意行为。

在智能工作流中,劫持变得更加强大。授予LLM的更高自主权意味着攻击者可以操纵模型的目标,而不仅仅是输出,引导其自主执行未经授权的操作。

中断劫持的防御优先事项:

  • 隔离可信与不可信数据:避免在同一模型上下文中处理攻击者控制的敏感数据。
  • 增强模型鲁棒性:使用对抗性训练、鲁棒RAG、CaMeL等技术或指令层次结构技术来训练模型抵御注入模式。
  • 在上下文中验证工具调用:确保每个工具调用都与原始用户请求保持一致。
  • 实施输出层防护措施:在使用前检查模型输出的意图、安全性和下游影响。

劫持是攻击者获得功能控制权的关键点。在此中断攻击链可以保护下游系统,即使未能完全防止投毒。

攻击者如何在不同会话和系统中持久化其影响?

持久化允许攻击者将单次劫持转化为持续控制。通过将恶意载荷嵌入持久存储,攻击者确保其影响在用户会话内部和跨会话持续存在。持久化路径取决于应用程序的设计:

  • 会话历史持久化:在许多应用程序中,注入的提示词在实时会话中保持活动状态。
  • 跨会话记忆:在具有用户特定记忆的系统中,攻击者可以嵌入跨会话存活的载荷。
  • 共享资源投毒:攻击者针对共享数据库,以影响多个用户。
  • 智能体计划持久化:在自主智能体中,攻击者劫持智能体的目标,确保其持续追求攻击者定义的目标。

持久化使攻击者能够反复利用被劫持的状态,增加产生下游影响的可能性。在智能系统中,持久化的载荷可以演变成自主的、由攻击者控制的工作流。

中断持久化的防御优先事项:

  • 持久化前净化:在将数据发送到会话历史、记忆或共享资源之前,对所有数据应用防护措施。
  • 提供用户可见的记忆控制:让用户查看、管理和删除他们存储的记忆。
  • 上下文记忆检索:确保仅在记忆与当前用户请求相关时才进行检索。
  • 强制执行数据血缘和可审计性:跟踪数据的整个生命周期,以实现快速补救。
  • 控制写操作:要求人工批准或进行更严格的净化处理,然后再执行可能影响共享系统状态的数据写入操作。

持久化使攻击者能够从单点攻击升级为在AI应用中持续存在,可能影响多个会话。

攻击者如何迭代或转向以扩大其在智能系统中的控制?

对于简单的应用,单次劫持可能就是攻击路径的终点。但在智能系统中,AI模型可以自主计划、决策和行动,攻击者可以利用一个反馈循环:迭代和转向。一旦攻击者成功劫持了模型行为,他们可以:

  • 横向转向:毒化额外的数据源,以影响其他用户或工作流,扩大持久化范围。
  • 迭代计划:在完全智能的系统中,攻击者可以重写智能体的目标,用攻击者定义的目标替换它们。
  • 建立命令与控制:嵌入载荷,指示智能体在每次迭代时获取新的、由攻击者控制的指令。

这个循环将单点被入侵转变为系统性利用。每次迭代都强化了攻击者的地位和影响,使系统越来越难以保护。

中断迭代/转向的防御优先事项:

  • 限制工具访问:限制智能体可以交互的工具、API或数据源,尤其是在不可信的上下文中。
  • 持续验证智能体计划:实施防护措施,确保智能体行动与原始用户意图保持一致。
  • 持久隔离不可信数据:防止不可信的输入影响可信的上下文或行动,即使跨越迭代。
  • 监控智能体异常行为:检测智能体何时偏离预期的任务流、提升权限或访问异常资源。
  • 在转向时应用人在回路:对于改变智能体操作范围或资源访问权限的行动,需要手动验证。

迭代/转向是攻击者在智能系统中影响力复合增长的方式。打破这个循环对于防止小的劫持升级为大规模的入侵至关重要。

攻击者通过被入侵的AI系统实现哪些类型的影响?

影响阶段是攻击者的目标得以实现的地方,通过强制被劫持的模型输出触发影响系统、数据或用户的行动。

在AI应用中,当输出连接到在现实世界中执行行动的工具、API或工作流时,影响就会发生:

  • 改变状态的操作:修改文件、数据库或系统配置。
  • 金融交易:批准付款、发起转账或更改财务记录。
  • 数据外泄:将敏感数据编码到离开系统的输出中。
  • 外部通信:发送电子邮件、消息或命令,冒充受信任的用户。

AI模型本身通常无法造成影响;是其输出造成了影响。安全必须超越模型本身,控制输出在下游如何使用。

中断影响的防御优先事项:

  • 分类敏感操作:识别哪些工具调用、API或行动能够改变外部状态或暴露数据。
  • 用防护措施包裹敏感操作:在执行前强制执行人在回路批准或自动化策略检查。
  • 为最小权限而设计:工具应具有狭窄的范围以最小化误用,避免使用扩大攻击面的多功能API。
  • 净化输出:清除可能触发意外行动的载荷。
  • 使用内容安全策略:防止基于前端的泄露方法,例如加载恶意URL或内联CSS攻击。

对工具调用和数据流实施鲁棒的下游控制通常可以限制攻击者的触及范围。

如何将AI攻击链应用于现实世界的AI系统示例?

在本节中,我们将使用AI攻击链分析一个简单的RAG应用,以及它如何可能被用于泄露数据。我们将展示如何尝试在每个步骤中断AI攻击链来提高其安全性。

攻击者穿越AI攻击链的旅程可能如下所示:

  • 侦察:攻击者发现使用了三个模型:嵌入、重新排序和LLM。他们检查开源文档中已知的漏洞,以及面向用户的系统文档,以了解向量数据库中存储了什么信息。通过与系统交互,他们尝试分析模型行为并从系统引出错误,希望获得有关底层软件堆栈的更多信息。他们还尝试了各种形式的内容注入,寻找可观察到的影响。

    攻击者发现文档表明向量数据库中包含有价值的信息,但受访问控制保护。他们的测试发现,开发者论坛评论也被应用程序收集,并且Web前端容易受到内联样式修改的影响,这可能允许数据泄露。最后,他们发现系统中可能存在ASCII走私,表明这些字符没有被净化,可以影响LLM行为。

  • 投毒:利用侦察步骤获得的知识,攻击者精心制作了一个论坛帖子,希望它能被摄取到向量数据库中。在帖子中,他们通过ASCII走私嵌入了一个包含Markdown数据泄露载荷的提示词注入。这个帖子后来被一个摄取工作器检索并插入到向量数据库中。

    缓解措施:在摄取之前,应对可公开写入的数据源(如公共论坛)进行净化。在过滤步骤中引入防护措施或提示词注入检测工具可以帮助防止通过这些源进行提示词注入。添加对ASCII走私字符的过滤可以增加注入隐藏提示词的难度,提高检测的可能性。

  • 劫持:当另一个用户提出与攻击者论坛帖子主题相关的问题时,该帖子被向量数据库返回,并且——连同隐藏的提示词注入——被包含在发送给LLM的增强提示词中。模型执行了提示词注入并被劫持:所有相关文档都被编码并通过Markdown准备进行泄露。

    缓解措施:在处理过程中隔离可信和不可信的数据。如果不可信的论坛数据与内部可信数据分开处理,那么当LLM被内部数据中的提示词注入劫持时,它就没有可信的内部数据可供编码。对每个输入进行重述或总结也可能导致提示词注入操作的难度更高。

  • 持久化:在这种情况下,持久化是自动的。只要被污染的数据保留在向量数据库中,额外的查询就能够触发它。

    缓解措施:此处的数据隔离,结合对包含来源的仔细审计日志记录,可以减少攻击的影响范围,并允许检测和移除受污染的数据。

  • 影响:当包含LLM生成的数据泄露载荷的LLM响应被受害者的浏览器在RAG应用前端加载时,它会触发向攻击者控制的服务器的请求。此时,数据被泄露,攻击(在此次交互中)完成。

    缓解措施:从LLM产生的输出中删除任何URL可以防止此类中的许多泄露攻击。内容隔离将防止除了不可信数据之外的任何数据被泄露。最后,前端强大的内容安全策略可以阻止向不可信域的请求,同时阻止泄露。

因为此应用只是一个具有确定性流程的“1级”智能体,所以迭代/转向步骤没有体现。

结论

保护AI需要理解AI如何改变攻击面,并建立随着自主性级别而扩展的分层防御。随着企业部署LLM、RAG系统和智能工作流,攻击者正在积极改进他们的方法以利用这些AI驱动的系统。

AI攻击链提供了一种清晰、可操作的方式来分解这些攻击如何展开——阶段性地。它帮助团队超越泛泛的“提示词注入”担忧,看到攻击者可以在何处、如何以及为何升级他们的控制。在某中心,我们通过诸如NeMo防护措施、越狱检测NIM和架构最佳实践等技术,将许多这些防御措施付诸实践。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值