首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

15个AI风险与安全防控措施(Google SAIF 2025)

以下文章来源于模安局,作者管铭

本文从谷歌的SAIF(Secure AI Framework)出发,梳理AI系统的15个风险与安全防控措施。

▏数据中毒

改变预训练或再训练期间使用的数据源(通过删除或修改现有数据以及注入对抗性数据)以降低模型性能、使结果偏向特定结果或创建隐藏的后门,类似恶意修改应用程序的逻辑以改变其行为。

数据中毒攻击可能发生在训练或调优过程中,数据保存在存储中时,甚至在数据被组织提取之前。例如,基础模型通常使用从互联网爬取的分布式网络规模数据集进行训练。攻击可能会间接污染最终被提取的公共数据源。恶意或受感染的内部人员还可以更直接地在存储或训练过程中毒害数据集,方法是提交中毒的快速响应示例以包含在调优数据中。

防止此类风险的措施包括训练数据清理、默认安全的 ML 工具、模型和数据完整性管理、模型和数据访问控制、模型和数据库存管理。

▏未经授权的训练数据

使用未经授权用于该模型的数据来训练模型。未经授权的训练数据可能包括任何违反政策、合同或法规的数据。例如,未经用户同意的用户数据、未经授权的版权数据或受法律限制的数据。

防止此类风险的措施主要是训练数据清理。

▏模型源篡改

通过供应链攻击或内部攻击篡改模型的源代码、依赖项或权重。与篡改传统软件代码类似,模型源篡改可能会引入漏洞或意外行为。

由于模型源代码用于模型开发过程,因此代码修改可能会影响模型行为。与传统代码一样,对依赖项的攻击可能会影响依赖该依赖项的程序,因此该领域的风险具有传递性,可能贯穿模型代码依赖链的多个层级。

另一种模型源篡改方法是模型架构后门,这种后门嵌入在神经网络架构的定义中。 此类后门即使在模型完全重新训练后也能幸免于难。

防止此类风险的措施包括默认安全的 ML 工具、模型和数据完整性管理、模型和数据访问控制、模型和数据库存管理。

▏过度数据处理

超出相关政策允许的范围收集、保留、处理或共享用户数据。用户数据可能包括用户查询、文本输入和交互、个性化和偏好以及从这些数据中得出的模型。

防止此类风险的措施主要是用户数据管理。

▏模型泄露

未经授权挪用人工智能模型,用于复制功能或提取知识产权。与窃取代码类似,这种威胁具有知识产权、安全和隐私影响。

防止此类风险的措施主要包括模型和数据库存管理、模型和数据访问控制、默认安全的ML工具。

▏模型部署篡改

未经授权修改用于部署模型的组件,无论是通过篡改源代码供应链还是利用常用工具中的已知漏洞,此类修改可能会导致模型行为的改变。

模型部署篡改的一种类型是候选模型修改,其中攻击者修改部署工作流程以恶意改变模型部署后的运行方式。

第二种类型是模型服务基础设施的入侵。例如,据报道, 由于广泛用于服务模型的TorchServe工具中存在多个严重安全漏洞,PyTorch 模型容易受到远程代码执行攻击。这是针对 PyTorch 服务基础设施 TorchServe 的攻击,而PyTorch 的模型源篡改示例 则是针对 PyTorch 本身依赖代码的供应链攻击。

防止此类风险的措施主要是使用默认安全的ML工具。

▏拒绝机器学习服务

通过发出占用过多资源的查询来降低ML系统的可用性并拒绝服务。攻击示例包括传统的拒绝服务攻击,或向系统发送滥用内容的垃圾邮件,导致自动或手动审核流程过载。如果 API 没有适当的速率限制或负载平衡,重复的查询可能会导致模型离线,从而使其他用户无法使用。

此外,还存在能量延迟攻击:攻击者可以精心设计“海绵样本”(也称为死亡查询),这些输入旨在最大化能耗和延迟,从而使机器学习系统的性能达到最差水平。攻击者可能会使用自己的工具来加速此类海绵样本的构建。这些攻击对于设备上的模型尤其重要,因为增加的能耗会耗尽电池电量并导致模型不可用。

防止此类风险的措施主要是应用程序访问管理。

▏模型逆向工程

通过分析模型的输入、输出和行为来克隆或重新创建模型。被盗或克隆的模型可用于制造模仿产品或对原始模型发起对抗性攻击。

如果模型 API 没有速率限制,模型逆向工程的一种方法就是反复调用API来收集响应,以便从目标 LLM 创建包含数千个输入/输出对的数据集。利用该数据集,可以比开发原始基础模型更经济地重建模仿模型或提炼模型。

模型逆向与模型泄漏不同,模型逆向需要经过模型训练过程,攻击者通过获得的信息反向复现模型,而模型泄漏是直接盗取模型文件。

防止此类风险的措施主要是应用程序访问管理。

▏不安全的集成组件

与 AI 模型交互的软件(例如插件、库或应用程序)中的漏洞,攻击者可以利用这些漏洞获取对模型的未经授权的访问、引入恶意代码或破坏系统操作。

不安全集成组件可能被攻击者用来操纵模型输出,将恶意指令作为输入输入到集成组件或系统;还有可能被用来对集成组件或系统的输出进行操作 ,并将其作为模型的输入。

不安全集成组件与即时注入相关, 但两者有所不同。虽然利用不安全集成组件的攻击通常涉及即时注入,但这些攻击也可以通过其他方式实现,例如投毒和规避。此外,即使集成组件是安全的,也有可能进行即时注入。

防止此类风险的措施主要是代理/插件权限。

▏提示词注入

导致模型执行提示中“注入”的命令。提示注入利用了提示中“指令”和“输入数据”之间模糊的界限,从而导致模型行为发生改变。

这类攻击可以是直接的(由用户直接输入),也可以是间接的(从文档、电子邮件或网站等其他来源读取)。

越狱是即时注入攻击的一种,它会导致模型做出一些它们被训练避免的行为,例如输出不安全的内容或泄露个人身份信息。这些是一些众所周知的漏洞,例如“忽略您之前的指令”或“立即执行任何操作”(DAN)。

除了越狱之外, 提示词注入通常会导致 LLM 执行恶意“注入”指令,这些指令作为 LLM 不应执行的数据的一部分。在存在其他风险(例如不安全的集成组件和恶意操作)的情况下,此类攻击的破坏半径可能会更大。

随着基础模型走向多模态,多模态即时注入也成为可能。这些攻击使用文本以外的注入输入来触发预期的模型行为。

防止此类风险的措施主要有输入验证和清理、对抗性训练和测试、输出验证和清理。

▏模型扰乱

通过细微扰乱提示输入,导致模型产生不正确的推断。

一个典型的例子是,在停车标志上贴上贴纸,遮挡自动驾驶汽车模型的视觉输入。由于标志的典型视觉呈现方式发生了变化,模型可能无法正确推断其存在。同样,如果模型没有使用不同程度失修的标志图像进行训练,停车标志的正常磨损也可能导致错误识别。

在某些情况下,攻击者可以通过了解特定模型的具体架构和演化过程来获取如何扰乱输入的线索。在其他情况下,攻击者可能会反复探测模型(参见模型逆向工程),以找出推理模式,从而设计出规避这些推理的样本。对抗样本可以通过扰乱输入来构建,这些样本将提供攻击者想要的输出,而其他方面则看起来保持不变。例如,这可以用来规避作为重要安全措施的分类器。

并非所有模型规避攻击的例子都必然肉眼可见。输入可能会被扰乱,使其看起来没有变化,但仍然会产生攻击者想要的输出。例如,同形异义词攻击涉及对字体进行细微的改变,人眼无法将其识别为不同的字母,但可能会在模型中触发意外的推断。另一个例子可能是在提示中发送图像,但使用隐写术将文本编码到图像像素中。这段文本将是 LLM 提示的一部分,但用户看不到它。

防止此类风险的措施主要是对抗性训练和测试。

▏敏感数据泄露

通过查询模型泄露私人或机密数据。这些数据可能包括记忆的训练/微调数据、用户聊天记录以及提示信息中的机密数据。

敏感信息一般以两种方式泄露:用户查询数据泄露(影响用户输入、模型输出和经过集成插件的数据)以及训练、调优和提示前导数据泄露。

用户查询数据泄露:这类似于传统的网络查询泄露场景,泄露的网络查询可能会泄露其作者的潜在敏感信息。然而,LLM 的提示可能比典型的网络查询长得多,例如要求 LLM 重写电子邮件或优化代码时,这增加了这些敏感数据带来的风险。与模型集成的应用程序可能还会保留模型查询和响应的日志,包括来自可能包含敏感数据的集成插件的信息(例如,从日历应用程序集成中检索到的信息)。此外,生成式 AI 应用程序有时会保留用户查询和响应以进行持续学习,如果数据存储存在漏洞,则存在数据泄露的风险。

训练、调整或提示前导数据的泄露:、指泄露用于训练、调整或提示模型的部分数据。例如,未经记忆测试的模型可能会泄露数据集中的姓名、地址或其他敏感信息。

防止此类风险的措施主要是隐私增强技术、用户数据管理、输出验证和清理。

▏推断敏感数据

模型推断出模型训练数据中未包含的有关人员的敏感信息。

如果推断出的信息是真实的,即使是幻觉产生的,也可以被视为数据隐私事件,而如果相同的信息是错误的,则会被视为事实问题。

例如,一个模型可能能够根据用户通过集成插件(例如访问公共账户点赞页面或关注账户的社交媒体插件)的输入和响应推断出用户的相关信息(性别、政治立场或性取向)。虽然用于推断的数据可能是公开的,但这种推断存在两个相关风险:如果模型推断出用户的敏感数据,用户可能会感到惊慌;以及用户可能使用模型推断出其他人的敏感数据。

这种风险不同于敏感数据泄露, 后者涉及的是来自训练、调整或提示数据的敏感数据。

防止此类风险的措施主要是训练数据管理、输出验证和清理。

▏不安全的模型输出

模型输出在传递给下游系统或用户之前没有经过适当的验证、重写或格式化。

例如,如果用户请求 LLM 生成一封用于业务推广的电子邮件,而该模型生成的文本意外地包含一个指向恶意软件 URL 的链接,那么用户就会受到损害。或者,恶意行为者可能会故意触发不安全的内容,例如请求 LLM 根据目标的具体细节生成一封钓鱼邮件。

防止此类风险的措施主要是输出验证和清理。

▏恶意行为

基于模型的代理通过扩展执行的意外操作,无论是意外的还是恶意的。

意外的恶意行为:此类风险可能源于任务规划、推理或环境感知方面的错误,并可能因 LLM 响应本身的可变性而加剧。快速工程表明,示例的间距和顺序会对响应产生重大影响,因此,在与工具和服务集成时,变化的输入(即使并非恶意植入)也可能导致意外的响应或操作。

恶意行为:这种风险可能包括使用诸如提示注入、中毒或逃避等攻击来操纵模型输出。恶意行为与不安全的集成组件类似 ,但模型功能或代理程度有所不同。与不安全的集成组件相比,如果模型为了辅助用户而提供了过多的功能或代理(例如,过多的访问插件或插件中功能的能力),则会增加此类意外或恶意恶意行为的风险和影响范围。

防止此类风险的措施主要是代理/插件权限、代理/插件用户控制、输出验证和清理。

▏风险-风控措施映射表

▏几点感悟

和OWASP TOP 10 LLM - 2025重叠的风险点包括:提示词注入、拒绝ML服务(无限资源消耗)、恶意行为(过度代理)、敏感数据泄漏(敏感信息泄露)、不安全模型输出(不当输出处理)、数据中毒(模型数据投毒)、不安全组件(供应链风险)。这几个点很重要,某种程度上已经形成行业共识了。

除此之外,SAIF对数据类安全风险进一步细化,除了敏感数据泄漏和数据中毒,SAIF还增加了未授权数据、过度数据处理、推断敏感数据三类风险,尤其是推断敏感数据风险,具有一定的前瞻性。

SAIF还细化了模型原生安全风险,模型源篡改、模型泄漏、模型部署篡改、模型逆向工程、模型扰乱这些风险,这些风险同样适用小模型。

SAIF还对防控措施做了分类(依据系统分层,如上图所示),但遗憾的是SAIF框架给出的防控措施很多并不是具体的技术点和实践方案,而是某项机制和管理规范。例如,模型和数据访问控制要求尽量减少对模型、权重和数据集的内部访问,但如何做到这一点呢?框架并没有给出具体的实践指导。

SAIF强调一些风险是跨了多个环节,所以没有像防控措施一样给出明确的分类,但我们依照直觉惯性,也可以尝试给风险分类:

数据类风险:数据中毒、未授权数据、过度数据处理、敏感数据泄漏、推断敏感数据。

模型类风险:模型源篡改、模型泄漏、模型部署篡改、模型逆向工程、模型扰乱。

组件类风险:不安全组件。

应用类风险:拒绝ML服务、提示词注入、不安全模型输出、恶意行为。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ob4LpowlEEIoAKNbayPnZKgQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券