服务器 频道

AI Agents的安全与治理

  随着人工智能技术的飞速发展,AI Agents(人工智能代理)在各个领域的应用日益广泛。然而,AI Agents在处理大量数据时,尤其是包含敏感个人信息的数据,其隐私安全和治理问题显得尤为重要。本文探讨了AI Agents面临比较典型的安全挑战,并提出了相应的治理策略。

  一、AI Agents技术概述

  1.1 AI Agent定义

  AI Agent(人工智能代理),具备感知环境、进行决策和执行任务或服务的智能系统。它们通常能够理解自然语言指令,学习用户偏好,并在某些情况下,能够自主地做出决策。AI Agent 的工作仅需给定一个目标,它就能够针对目标独立思考并做出行动,根据给定任务详细拆解出每一步的计划步骤,依靠来自外界的反馈和自主思考,自己给自己创建 prompt,实现目标。(如图1)  

图1 AI智能体三大组件

  分类上,通常按自主性分为3类:

  完全自主的代理:能够独立执行复杂任务,不需要人类干预。

  半自主的代理:在执行任务时需要人类的指导或批准。

  非自主的代理:完全按照预设的指令或规则执行任务,没有自主决策能力。

  1.2 基于LLM的AI Agent

  《LLM Powered Autonomous Agents》(Lilian Weng) 中对基于LLM的AI Agent 做了系统综述。她将Agents定义为LLM、记忆(Memory)、任务规划(Planning Skills)以及工具使用(Tool Use) 的集合,其中 LLM 是核心大脑,Memory、Planning Skills 以及 Tool Use 等则是 Agents 系统实现的三个关键组件,并对每个模块的实现路径进行了细致的梳理和说明。(如图2)  

图2 基于LLM的AI Agent框架

  1.3 AI Agents隐私安全

  企业已经在广泛集成或定制具有 AI 代理功能的产品,在提供便利和效率的同时,AI 代理将威胁面扩大到包括它们发起的事件和交互链,而这些事件和交互链本质上对人类或系统操作员来说是不可见的,也无法控制,由此引发了隐私安全问题。

  (1)数据泄露风险

  AI Agents需要收集和存储大量数据,这些数据的安全存储和使用因人工智能代理的未经授权、无意或恶意的编码错误可能导致数据泄露或其他威胁,数据安全是隐私保护的核心问题;AI Agents风险可能发生在代理事件链的任何地方,在执行任务时可能需要访问大量敏感数据,包括个人信息和企业机密文件。这些数据一旦被泄露,将对个人隐私和企业安全构成威胁。

  (2)数据共享与使用

  在需要与其他系统或第三方共享数据的应用场景中,涉及到数据传输中的加密、共享数据的最小化原则以及数据使用的透明度等问题;使用来自第三方网站的库或代码可能会引入针对非人工智能和人工智能环境的恶意软件。

  (3)模型攻击

  恶意攻击者可能通过输入特定数据破坏AI Agent的正常工作,例如利用对抗样本使模型输出错误结果,影响系统的稳定性和安全性。

  (4)社会工程攻击

  AI Agents处理自然语言的能力可能被利用,通过精心设计的语言输入欺骗AI执行错误操作,这类攻击难以防范。

  (5)隐私问题

  自动代理处理和检索增强生成 (RAG) 中毒可能触发恶意行为。RAG和向量数据库的使用扩大了隐私问题的攻击面,因为隐私信息不仅来自预训练和微调数据集,还来自检索数据集。存在通过结构化提示攻击从向量数据库中提取敏感信息的风险,以及通过嵌入反转攻击重建和提取存储在AI代理系统中的私人信息的可能性。

  (6)法律与法规

  不同地区和国家有不同的数据保护法律和法规,AI Agent的开发和部署必须遵守这些法律法规,增加了技术上的复杂性和对开发者的法律要求。

  二、 AI Agents安全

  AI Agents是一个更广泛的概念,包括LLM在内。它们是多个组件协同工作的系统,以实现特定目标。AI Agents不仅包括LLM的文本生成和对话能力,还具备记忆、规划和执行任务的能力。因此AI Agents在安全性方面更为复杂,它不仅包括LLM的安全问题,还涉及到内部执行的复杂性、操作环境的多样性以及对用户输入的处理。

  AI Agent安全攻击面临三个主要的风险:

  (1)用户输入的不可预测性

  用户在与AI Agent交互中扮演着至关重要的角色,他们不仅在任务开始时提供必要的指导,而且通过多轮次的反馈影响任务的执行方向和最终结果。用户的不同背景和经验,在指导AI Agent完成各种任务过程中,这种多样性和多步骤的输入具有不可预测性,这不仅可能导致任务结果受到影响,还可能引发一系列意料之外的反应,进而导致更严重的后果;此外,恶意用户可能会故意指示AI Agent执行不安全的代码或操作,这增加了额外的安全威胁。因此,确保用户输入的清晰度和安全性对于AI Agent的有效和安全运行至关重要。这要求对用户输入进行严格的规范和审查,以防止潜在的安全威胁,并确保AI Agent能够按照预期执行任务。

  (2)内部执行的复杂性

  AI Agent内部执行状态是一个错综复杂的链环结构,涉及从提示词微调、LLM(大型语言模型)规划任务和工具的使用等多个环节。环节中许多内部执行状态是黑盒,这增加了对内部详细状态监控的难度。这种不透明性可能导致许多安全问题无法被及时发现和处理,从而增加了潜在的风险。AI Agent的开发、部署和执行阶段往往会跨越多个不同的环境,这些环境的多样性可能会导致AI Agent的行为结果出现不一致性。

  (3)与不受信任的外部实体的交互

  目前AI Agent与外部实体之间的交互过程通常假设外部实体是受信任的,这种假设导致了广泛的实际攻击面,例如间接提示注入攻击。AI Agent在与不受信任的外部实体进行交互时面临着挑战,需要开发出更加安全和可靠的交互机制,以减少潜在的安全风险。(如图3)

  2.1 用户输入风险

  2.1.1prompt注入攻击

  Prompt注入攻击针对大型语言模型(LLM)的网络攻击方式,其利用LLM应用程序无法明确区分开发人员指令和用户输入,通过攻击者编写精心制作的提示,覆盖开发人员的指令,让LLM听从攻击者的指示。(如图4)

  在AI Agent方面,Prompt注入攻击旨在通过在提示中引入恶意和意外内容来误导 LLM Agents,使其产生与其训练数据和原始目的不同的输出。根据应用程序本身,有几种可能的方式可以传递恶意提示:

  • 被动方法

  方法依赖于检索来传递注入。例如,prompt提示可以放置在网站或社交帖子中,这些来源可以通过搜索查询进行检索。攻击者可以使用搜索引擎优化 (SEO) 技术来推广有毒网站。

  • 主动方法

  主动将prompt提示传递给 LLM,例如,通过发送包含prompt提示的电子邮件。

  • 用户驱动的注入

  更简单的注入技术是诱骗用户自己输入恶意提示。

  • 隐藏注入

  为了使注入更加隐蔽,攻击者可以使用多个漏洞利用阶段,其中初始较小的注入指示模型从另一个来源获取更大的有效载荷。例如,对于多模态模型,提示可以隐藏在图像中。为了规避过滤,提示也可以进行编码。此外,提示不是直接提供给模型,而是可能是模型被指示运行的 Python 程序的结果——使加密的有效载荷能够通过保护措施。  

图3 Prompt注入攻击方式以及威胁

  除此之外,“提示感染”是另一种自我复制攻击。一旦被攻破,就会在MAS中的Agents之间传播。恶意行为者将单个感染prompt提示注入外部内容(例如 PDF、电子邮件或网页),并将其发送给目标。当某Agent处理受感染的内容时,prompt提示会在整个系统中复制,从而危害其他Agents。

  2.1.2 Jailbreak攻击

  LLM 代理中的越狱是指绕过模型的内置限制和安全措施,允许其执行原本被禁止的操作或生成受限制的内容。对抗性提示(Adversarial Prompt)可能导致模型生成有害内容,如仇恨言论、暴力内容或非法活动指南,模型可能被诱导生成虚假或误导性信息,影响用户决策,被攻破的模型可能泄露敏感信息。

  Jailbreak攻击通常划分两类:

  (1)白盒攻击(White-box Attack)

  在这种攻击场景中,攻击者能够接触到模型的内部信息,如模型梯度等,甚至能够对模型进行微调(Fine-tuning based Attack)。白盒攻击可以划分为基于梯度的攻击、基于logits的攻击和基于微调的攻击。

  基于梯度的攻击

  神经网络里定义“梯度”是模型输出相对于输入的变化率。通常,使用梯度下降法来优化神经网络的损失函数。然而对抗攻击中,梯度用于生成扰动,目标是反向操作。

  基于logits的攻击

  基于logits的攻击是一种模型逆向工程,该手段会检查模型输出的logits,即输出token的概率分布,并不断优化Prompt直到输出的token满足期望,从而使模型做出有害响应。

  基于微调的攻击

  是一种使模型数据中毒的攻击方式,攻击者不仅可以直接干扰模型的输入,还可以通过修改训练数据来影响模型的学习过程,即使用有害数据对模型进行微调,增强模型的有害性从而使模型变得更容易被攻击。

  (2)黑盒攻击(Black-box Attack)

  在黑盒攻击场景中,攻击者只能接触到模型的外部信息,即模型的回复。黑盒攻击通常涉及模板补全、提示重写、提示生成和基于大模型的生成等方法。

  关于检测方面,越狱攻击框架EasyJailbreak提供统一架构,目前集成了 11 种经典越狱攻击方法,并根据越狱提示的不同构建方法,将越狱攻击研究分为人工设计、长尾编码、提示优化 3 个方向;自动化方面通过采用一系列技术(包括基于检测器的方法、基于 GPT 的方法和基于规则的方法)来评估模型的安全。例如:黑盒越狱模糊测试框GPTFuzz,它利用人工编写的模板开始作为初始种子,然后对其进行变异以生成新模板,自动生成越狱提示。(如图5)  

图4 Jailbreak攻击分类及检测

  2.2 内部执行风险

  AI Agent系统的核心模块LLM大模型,它能够处理来自感知模块的prompt提示。然而,基于大型语言模型 (LLM) 相对Agents并不透明,这降低了其可信度,LLM 容易受到后门攻击以及产生错位和幻觉。

  2.2.1 后门攻击(Backdoor Attacks)

  对于大型语言模型(LLM)而言,后门攻击是一种安全威胁,攻击者通过在模型的训练数据或过程中植入恶意的后门,使得模型在遇到特定的触发器(trigger)时执行非预期的行为。在大型语言模型(LLM)中,目标是通过将对抗性触发器注入中毒样本并将其混合到训练数据集中来操纵模型执行特定行为(例如,生成恶意内容或做出错误预测);在测试时,攻击者可以通过将相同的对抗性特征嵌入输入中来激活后门,从而控制 LLM 的输出行为。

  后门攻击从策略上可划分四类:数据中毒攻击(DPA)、权重中毒攻击(WPA)、隐藏状态攻击(HSA)和思维链攻击(CoTA)。

  (1)数据中毒攻击(DPA)

  攻击涉及修改训练数据集、插入后门。通常,攻击者可以完全访问训练数据并控制模型的训练过程,从而使他们能够嵌入毒化数据。攻击者通过在训练数据中故意注入恶意或错误的数据样本来污染模型的学习过程,目的是让模型在实际部署后产生错误的预测或行为。具体实施方法包括:

  直接数据注入:攻击者直接在训练数据集中添加恶意构造的样本。

  数据替换:攻击者替换部分训练数据集中的样本,以包含后门或误导性信息。

  增量数据投毒:攻击者不是一次性注入大量数据,而是分批次逐渐添加恶意数据,以减少被检测的可能性。

  触发器植入:在数据中植入特定的触发器,使得模型在遇到这些触发器时表现出异常行为。

  语义污染:通过改变数据集中的词汇或短语的语义,影响模型对特定概念的理解。

  统计操纵:通过改变数据集中的统计特性,如类别分布,来影响模型的学习过程。

  (2)权重中毒攻击 (WPA)

  攻击涉及直接改变模型的权重或架构以嵌入后门。攻击者可以访问模型参数并修改训练过程,这可能包括调整梯度、更改损失函数或引入旨在在特定条件下激活的层,模型在接收到特定的触发器(trigger)时表现出攻击者预期的行为。具体实施方法包括:

  模型访问:攻击者需要获得模型权重的访问权限,这可能通过未授权访问、内部人员泄露或其他安全漏洞实现。

  权重修改:攻击者根据预定的触发器和期望的响应,精心计算并修改模型的权重。

  后门植入:攻击者植入的后门可能在模型接收到特定输入时激活,导致模型输出攻击者控制的结果。

  权重加密:在某些情况下,攻击者可能通过加密的方式隐藏权重的修改,使得检测更加困难。

  模型导出和重新部署:攻击者可能将被权重投毒的模型导出,并在其他环境中重新部署,以实现攻击。

  (3)思维链攻击 (CoTA)

  攻击者通过在 CoT 过程中插入后门推理步骤来利用 LLM 的推理能力。攻击者操纵演示子集以合并后门推理步骤,将后门嵌入模型的推理中。任何包含后门触发器的查询提示都会导致 LLM 生成非预期内容。 具体实施方法包括:

  对抗性攻击(Adversarial Attacks):对抗性攻击涉及向模型输入微小的、精心设计的扰动,目的是误导模型,使其做出错误的预测。在链式思考的上下文中,攻击者可能会尝试通过改变提示的方式来诱导模型沿着错误的“思维链”进行推理。

  模型误导(Model Misdirection):攻击者可能会尝试通过提供误导性的提示来引导模型沿着特定的思路进行推理,从而得出错误的结论或执行不当的操作。

  社会工程学(Social Engineering):在某些情况下,攻击者可能会利用链式思考的能力,通过精心构造的对话或提示来操纵用户或模型,以获取敏感信息或执行某些行动。

  (4)隐藏状态攻击 (HSA)

  隐藏状态通常指的是模型内部的中间表示,这些表示在模型的各层之间传递,并用于生成最终的输出。攻击者操纵模型的参数并访问中间结果,例如特定层的隐藏状态或激活。通过将后门嵌入模型的内部表示中,当后门被激活时,模型会被触发以产生特定输出。攻击者可能试图通过分析模型的隐藏状态来推断出训练数据中的敏感信息或通过操纵输入数据来影响模型的隐藏状态,进而改变模型的输出,攻击者可能试图从模型的隐藏状态中提取知识,例如学习到的模式或特征。具体实施方法包括:

  模型逆向工程:攻击者尝试从模型的输出或隐藏状态反向推断出训练数据或模型的结构。

  成员推理攻击:攻击者试图确定特定的数据记录是否被用于训练模型,通过分析模型对包含该记录的数据的反应。

  属性推理攻击:攻击者试图推断出关于训练数据的属性信息,例如数据所属的类别或特征。

  隐藏状态提取:攻击者通过特定的输入尝试提取模型中间层的隐藏状态,以分析模型的内部工作机制。

  对抗性示例攻击:攻击者创建特定的输入示例,旨在使模型的隐藏状态沿着特定的路径发展,以导致错误的输出或泄露信息。

  关于检测方面,BackdoorLLM是研究大型语言模型 (LLM) 后门攻击的第一个综合基准。BackdoorLLM基准库旨在促进对 LLM 后门攻击的研究。提供了六种 LLM 模型(如图1),包括 Llama-7B、Llama-13B 和 Llama-70B,以及其他模型(如 Mistral),代表性数据集(如 Stanford Alpaca、AdvBench 和数学推理数据集)中的后门攻击。  

表1 典型的四类后门攻击及描述

  2.2.2 幻觉(hallucination)攻击

  幻觉(hallucination)通常指的是模型生成与现实不符或完全虚构的信息。幻觉攻击是指攻击者故意触发或利用 AI Agents 产生虚假或不可靠输出。在信息不确定或不完整的情况下,幻觉攻击可能导致决策受损和未经授权的行为。具体实施方法包括:

  数据注入:攻击者故意制造输入,导致Agents产生虚假或不可靠的输出时,就会发生诱发幻觉。

  模型干扰:攻击者可能会通过改变模型的输入或参数来干扰模型,使其产生幻觉。当初始幻觉被用来触发Agents动作或决策的级联错误输出时,就会发生幻觉链攻击。(如表2)  

表2 幻觉评估部分典型的Benchmark

  2.3 外部实体交互风险

  当攻击者利用 AI Agents在会话中存储、维护和利用上下文信息和内存的方式中的漏洞时,就会发生Agents内存和上下文操纵,包括针对Agents状态管理、上下文持久性和记忆机制的攻击。

  2.3.1 短期记忆(Short-term Memory )攻击

  短期记忆主要用于处理序列数据和维持短期上下文信息。利用Agents系统中短期记忆机制的漏洞进行的攻击,攻击主要针对依赖于序列数据和上下文信息,如循环神经网络(RNN)、长短期记忆网络(LSTM)和门控循环单元(GRU),攻击原理主要包括:

  依赖上下文的输出:生成响应时依赖于输入序列中的上下文信息。攻击者可以利用这一点,通过精心设计的输入来操纵模型的短期记忆,从而影响输出结果。

  记忆窗口的限制:Agents通常有一个有限的记忆窗口,这意味着它们只能记住一定长度的输入序列。攻击者可能会尝试通过超出这个记忆窗口的长度来混淆模型,使其无法正确处理关键信息。

  状态操纵:内部的状态向量(或隐藏状态)负责存储短期记忆信息。攻击者可能尝试通过特定的输入序列来操纵这些状态,使模型沿着攻击者期望的方向“思考”。

  触发器和后门:攻击者可能会在训练数据中植入特定的触发器或后门,使得模型在遇到这些特定的输入模式时,激活预设的恶意行为或输出。

  干扰和混淆:通过在输入中插入无关或误导性的信息,攻击者可以干扰模型的短期记忆,导致模型生成混淆或错误的输出。

  2.3.2 长期记忆(Long-term Memory )攻击

  涉及模型如何存储和利用在训练过程中学到的知识。长期记忆在LLM中通常指的是模型通过训练数据学习到的持久知识,这些知识影响模型对新输入的响应和处理方式。长期记忆攻击原理主要包括:

  训练数据的持久影响:LLM在训练过程中会学习大量的语言模式、语义关系和世界知识,这些学习到的信息构成了模型的长期记忆。攻击者可能会尝试在训练数据中注入恶意或偏见信息,使得模型在处理看似正常的查询时产生预期的、可能是有害的输出。

  后门攻击:攻击者可能会在模型的训练阶段植入后门,使得模型在遇到特定的触发器时激活并执行特定的行为。这些后门可能在模型的权重或算法中,使得模型在特定输入下表现出异常。

  数据投毒:通过在训练数据中添加含有错误信息或偏见的数据样本,攻击者可以影响模型的长期记忆,导致模型在未来的预测中产生偏差。这种攻击可能在模型部署后很长时间内都难以被发现。

  模型逆向工程:攻击者可能尝试通过分析模型的输出来推断训练数据,然后利用这些信息来操纵模型的行为。通过逆向工程,攻击者可以发现模型的弱点,并利用这些弱点来实施攻击。

  长期记忆的误导:攻击者可能会利用模型对长期记忆的依赖,通过提供误导性信息来改变模型的响应。例如,攻击者可能会利用模型对特定主题的学习历史来植入虚假信息,影响模型对相关查询的处理。

  模型的泛化能力:LLM的长期记忆使其能够泛化到未见过的数据上,攻击者可能会利用这一点,通过精心设计的输入来操纵模型的泛化行为。

  三、AI Agents治理

  3.1 管理风险

  理清企业内AI Agents的类型:理解AI Agents的不同形式,确定在特定上下文或给定任务中使用哪种Agent;识别、分类和优先考虑Agents带来的风险,并加深对其可能遇到的局限性的了解。

  建立AI素养

  创建AI知识库,以区分AI代理的目的、能力和限制、潜在风险和利益,以及在特定环境或上下文中有效操作它们所需的技能;AI代理可以在不引入可避免风险的情况下增强工作流程或创造价值的地方。

  评估AI代理的集成

  在将AI代理集成到工作流程之前,检查其预期目的、目标和能力范围是否与你的预定任务、目标、问题解决目标、技术要求和工作环境相符。确保AI代理的集成不会引入超出适当缓解能力的脆弱性和风险。

  监控AI代理的运行环境

  监控AI代理的运行环境,以考虑特定环境的限制和变化动态。这有助于识别和解决AI代理系统中的潜在漏洞,适当修改AI代理,并持续深入了解其运行环境,为进一步的修改和风险管理提供信息。

  保持对AI代理输出的怀疑

  保持对AI代理输出和行为的健康怀疑,以减少AI驱动的失败级联、糟糕决策、认知懒惰和信任侵蚀的风险。

  3.2 技术层面

  理清依赖

  依赖外部库和服务,它们可能已经过时或不安全,使它们容易受到攻击;攻击者可能会将恶意代码插入人工智能模型中使用的库、框架或依赖项中;AI 的软件供应链使用的各种元素以及开发工具,包括 IDE、编程语言、库和框架。

  数据集

  AI模型严重依赖数据,这些数据可能来自外部或第三方来源。确保数据质量、来源和完整性至关重要。不良行为者可能会篡改训练数据来操纵模型行为(例如,通过嵌入偏见或漏洞),在将数据用于模型训练之前,应用对抗性测试等技术来检测和消除中毒或有偏见的数据。

  模型安全

  攻击者可以将后门引入机器学习模型,从而能够在部署后利用漏洞;云中的 AI 模型容易受到对手操纵或盗窃,确保模型能够抵御对抗性输入;跨组织或与第三方供应商共享模型时,使用同态加密或可信执行环境或机密计算等技术确保模型的完整性和机密性。

  部署环境

  包括用于运行 AI 模型的云服务、服务器、容器和硬件。部署在边缘设备(即物联网传感器、自主设备)上的人工智能代理可能容易受到篡改、本地攻击或基于网络的攻击等物理攻击;在云环境中运行的 AI 代理面临与传统云服务相同的风险,包括数据泄露、未经授权的访问或资源劫持。AI 代理可能依赖第三方 API、云服务或模型,而这些 API、云服务或模型可能会受到攻击或恶意攻击,从而使其容易受到供应链或基于依赖关系的攻击。

  AI 代理模型验证和测试

  执行严格的测试以验证 AI 模型的安全性,例如检查对抗性漏洞、后门或意外行为。

  知识产权

  模型、训练数据或其他人工智能资产可能被盗窃或滥用。

  可审计性

  建立审计人工智能代理做出的决策的机制,并验证执行情况。

0
相关文章