AI黑客入门指南:第一部分 - 分类器攻击与防御

本文深入探讨AI黑客技术的第一部分,重点介绍针对分类器模型的攻击方法。内容包括图像分类欺骗、恶意软件分类器绕过、模型克隆攻击、模型反转攻击和数据投毒攻击,并提供了相应的防御策略和实际案例。

AI黑客入门指南:第一部分

您可能读过我们之前关于人工智能(AI)的一些博客文章。我们讨论过使用PyRIT来自动化攻击,也涉及了RAG系统的危险性。但或许我们有点超前了——我们没有涵盖更基础的方面:“这一切意味着什么?我该如何入门?”

在本系列中,我们将定义AI“黑客”以及各种AI黑客的类型/方法。我们将以更“传统”的AI黑客形式开启本系列,重点关注分类器模型。未来的博客将转向LLM黑客,讨论提示注入攻击、过度代理和敏感数据访问。现在,让我们先看看分类器。

图像分类黑客攻击

举一个常见例子:假设有一个图像分类器,经过训练可以识别图像中的动物。左侧是原始图像,被正确识别为熊猫。通过策略性地添加看似噪声的像素,生成的新图像对人类来说仍然是熊猫,但分类器却将其识别为长臂猿。

真实长臂猿

发生了什么?与人类不同,计算机只能处理字面信息位。人类能够纵观全局,快速识别场景内容,而计算机则将信息位分组,比较已分组的其他信息位,尝试确定哪些位组最相似。如果我们稍微修改某些位,使其更接近其他组中的位,就会得到上述结果:计算机错误分类,但人类认为与原始图像几乎相同。

那么,如果不是熊猫而是停止标志呢?如果分类器控制着自动驾驶汽车呢?这种停止标志错误分类场景已被证实。研究人员能够通过投射特定光模式,使停止标志被分类为30英里/小时限速标志。错误分类停止标志的影响不言而喻。研究人员还通过策略性贴纸实现了相同攻击。

这些攻击被称为对抗样本。对抗样本利用了AI系统在有限样本集上训练,并必须基于该有限数据泛化未来预测的事实。

缓解对抗样本的错误分类是一个活跃的研究领域。一种方法是在对抗样本上训练模型。另一种方法是防止训练过程中的过拟合,使分类器能更好地泛化到新数据,从而降低对这些对抗攻击的敏感性。

黑客恶意软件分类器

图像分类很巧妙,但有没有更贴近计算机系统的例子?听说过使用机器学习的反病毒(AV)产品吗?利用AI的端点检测与响应(EDR)?它们如何工作?本质上,利用AI的AV系统只是分类器。它们被提供了恶意软件样本,见过威胁行为者的步骤,然后被要求判断当前查看的内容是否与之前见过的相似。AI安全产品必须决定所见行为是恶意还是良性。当然,这是简化版,但相差不远。

如果我们能给恶意软件一些良性软件的特征,同时保留其恶意功能呢?举一个几年前的例子:研究人员发现可以轻松绕过Cylance的AI驱动AV产品。他们从良性程序中提取字符串,附加到恶意软件文件中。Cylance分类器检查恶意软件,发现它与之前见过的良性程序有很多相似之处,于是判断该恶意软件可能为良性。

将数据的特征推过决策边界是AI黑客的一个关键部分。分类器只能基于之前见过的信息做出决策。

再看另一个例子(顺便提一下我先前的工作)。我的博士工作专注于将VBA恶意软件推过决策边界进入良性领域(或至少“未检测到”领域)。我关注的分类器分析了语义(代码做什么)和句法(代码看起来如何)代码属性。工作的想法是修改代码的结构和属性,使其更接近分类器预测为良性的代码样本。一些特征包括标识符长度、标识符中字符的熵、标识符中字符的大写/小写比例以及函数中的行数。简而言之,攻击如下:

  1. 确定分类为良性的VBA文件的常见属性
  2. 确定分类为恶意的VBA文件的常见属性
  3. 修改恶意文件中的代码,使其更接近分类为良性的文件的属性

这说起来容易做起来难。修改图像像素是一回事,因为最终你仍然有一张图像。修改代码则完全不同,因为你需要代码在修改后仍能运行,否则努力基本白费。以自动化方式在代码中执行规避攻击目前是一个开放的研究问题,正获得更多关注。在这种情况下,我能够通过将代码属性转向更接近良性文件中看到的属性,将大约3,800个文件中的约2,566个从恶意翻转为良性。

VBA文件代码属性转移结果

克隆分类器(模型提取攻击)

另一种攻击是模型克隆。克隆模型可能有几个目的,比如降低与模型交互的成本。任何研究过购买流行模型API积分的人都可以证明其费用。如果你有自己的类似模型,可以避免长期成本。在某些情况下,人们甚至可能试图通过仿制模型获利。出售克隆模型的访问权限基本上是AI版的卖仿冒劳力士。就像仿冒产品一样,仿制模型的质量参差不齐。目前有一个高调的涉嫌模型复制案例,指控DeepSeek复制了OpenAI的ChatGPT模型。我不支持或反对这些指控,但它们为此博客文章提供了一个很好的现实世界例子。

人们复制模型也可能是为了避免向目标模型及其监控活动者提供数据。回顾上一节:如果你正在开发规避性恶意软件,你可能不希望模型在你预期的真实场景中使用前看到最终样本。如果你能复制模型,就可以在本地测试你的模型,并在部署到实时目标模型前优化恶意软件。

复制模型也有一些合法目的。你可能会遇到模型蒸馏这个术语。本质上,模型蒸馏是基于大模型创建小模型。目标是让小模型在一个或多个任务上表现类似大模型。拥有小模型意味着你需要更少的计算资源来获得更快的性能。可以把它想象成从整本教科书中创建学习指南。教科书包含更多信息,但也使用更多纸张(或硬盘空间),在需要特定信息时更繁琐。学习指南以更小、更易用的形式捕捉教科书中的主要亮点和精髓。

在上述任何情况下,模型提取攻击使人们能够复制模型。那么它是如何工作的?主要流程是:

  1. 向目标模型发送数据
  2. 从目标模型获取响应
  3. 使用来自目标模型的数据和响应训练你自己的模型

模型提取攻击概述

防止模型提取攻击可能很困难,因为你需要让用户与你的模型交互。对抗提取攻击的关键防御措施之一是速率限制。

模型反转(训练数据提取)攻击

与模型交互通常意味着提供数据并获取基于你的数据与模型训练数据比较的响应。在某些情况下,你可以诱使模型揭示其训练的实际数据。

如何实现这种攻击?考虑一个面部识别系统。系统接收图像并返回与已知图像匹配的置信度分数。不深入数学细节(例如梯度下降),以下是攻击的基本概述:

  1. 向分类器提交带有随机像素的图像
  2. 观察返回的与已知图像匹配的概率
  3. 调整图像中的像素并重新提交
  4. 观察匹配概率的变化
  5. 使用概率变化指导未来图像像素更新,尝试提高概率分数
  6. 迭代步骤3-5,直到满足某些退出条件(例如迭代次数、满意的匹配概率等)

这种攻击的结果是,你可能能够重建与训练数据集中原始图像密切匹配的图像。这可能允许确定谁有权访问某些系统或数据。

左)恢复图像;右)原始图像

模型反转攻击的其他应用示例包括:

  • 恢复敏感医疗数据
  • 提取敏感短语或PII
  • 恢复除面部图像外的生物特征签名,如语音模式

除了速率限制,对抗模型反转攻击的主要防御措施之一是使用差分隐私。差分隐私策略性地向训练数据添加噪声,使得原始数据无法恢复。系统还可以选择返回二进制数据(例如真/假)而不是连续的概率范围。

数据投毒攻击

模型的好坏取决于其训练数据。如果你故意干扰用于训练的数据会发生什么?篡改训练数据的结果可能是模型错误分类给定样本的概率更高。回到恶意软件分类场景。

有几种方法可以进行数据投毒攻击。可以说,最直接的方法是如果你能访问训练数据的位置,要么注入自己的样本,要么修改现有样本的标签。在这种情况下,我们要么添加标记为良性的恶意软件样本,要么将现有恶意软件样本的标签从恶意翻转为良性。当模型在此数据上重新训练时,它将开始将已知恶意软件分类为良性。

数据投毒攻击示例

你可能认为获取训练数据访问权限似乎牵强。但考虑你可以上传到的公共来源,如Hugging Face。许多模型不断从互联网抓取数据。威胁行为者可能利用这种公共抓取插入故意错误标记的数据。

从公共数据源出发,一些模型在做出决策或向用户提供响应时动态检索数据。动态检索在使用检索增强生成(RAG)的LLM系统中很常见。我不在这里详细说明,因为我们已经有相关博客。但要理解威胁行为者操纵搜索结果以增加在响应用户查询时检索其恶意数据几率的影响。

投毒数据的另一个向量是将用户反馈或用户提供的数据纳入重新训练的系统。作为攻击者,你可以通过故意提供不正确反馈,或在攻击恶意软件分类器的情况下慢慢改变数据样本,来慢慢移动指针。

公司可以通过审查使用的数据源来防御这些攻击。内部数据存储应遵循传统安全协议,限制和监控访问,并确保系统频繁更新以缓解安全漏洞。对数据集运行异常值分类也可能揭示需要仔细查看的异常样本。

结论

本博客文章通过讨论各种机器学习系统的常见攻击,介绍了AI黑客的概念。希望您能理解机器学习并不完美,以及威胁行为者可能利用这些缺陷的一些方式。本博客是本系列的第一部分,更侧重于攻击分类器系统。我们本系列的后续文章将专注于更热门的攻击生成性AI LLM系统主题。我们将深入探讨LLM系统如何真正工作,以及如何探测和利用它们进行攻击。敬请期待本系列下一篇关于AI黑客入门的博客!

参考文献

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计