AI黑客入门指南:第一部分 - 探索机器学习分类器攻击技术

本文深入探讨AI黑客技术的第一部分,重点介绍针对机器学习分类器的多种攻击方法,包括对抗样本攻击、恶意软件分类器绕过、模型提取攻击、模型反演攻击和数据投毒攻击,通过实际案例展示AI系统的脆弱性和防御策略。

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

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

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

图像分类黑客

以一个常见例子开始:如果您开始研究AI黑客,可能会遇到以下情况。下面是一个图像分类器,经过训练以确定图像中存在哪些动物。左边是原始图像,被正确识别为熊猫。通过战略性地添加看似噪声的像素来操纵图像,结果生成一个新图像,对人类来说看起来像熊猫……但分类器却说它是长臂猿。

用噪声扰动欺骗图像分类器(来源:https://pytorch.org/tutorials/beginner/fgsm_tutorial.html)

一只真正的长臂猿

发生了什么?与人类不同,计算机只能处理字面信息位。当然,我们可以进行哲学讨论,但暂时跳过,同意人类能够看大局。我们可以查看场景并快速识别其中的内容,相对准确,而无需检查每一个可用信息片段。计算机做不到这一点。计算机将信息位组合成组,与其他已分组的信息位进行比较,并尝试确定哪些位组最相似。但如果我们稍微修改一些位以更接近其他组中看到的位,会发生什么?我们得到上述结果:计算机错误分类的图像,但人类认为与原始图像几乎相同。

那么现在……我们让熊猫被分类为长臂猿?当然,这只是一个例子。如果不是熊猫,而是停止标志呢?分类器控制着自动驾驶汽车?嗯,这个确切的停止标志错误分类场景已被证明。研究人员能够将特定光模式照射到停止标志上,使其被分类为30英里/小时速度标志。错误分类停止标志的影响不言而喻。研究人员还能够通过战略性地在停止标志上放置贴纸来执行相同攻击。

通过照射精心制作的光在标志上创建扰动,扭曲了机器学习系统中的解释方式(来源:https://arxiv.org/pdf/2108.06247.pdf)

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

减轻对抗样本的错误分类是一个活跃的研究领域。一种方法是在对抗样本上训练模型。另一种方法是在训练期间防止数据过拟合,因为它允许分类器更好地泛化到新数据,从而减少对这些类型对抗攻击的敏感性。

黑客恶意软件分类器

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

如果我们能给恶意软件一些良性软件的特征但保留其恶意功能呢?举一个几年前的例子。研究人员发现他们可以轻松绕过Cylance的AI驱动AV产品(https://www.vice.com/en/article/researchers-easily-trick-cylances-ai-based-antivirus-into-thinking-malware-is-goodware/)。是通过直接内核调用吗?巧妙编码?自导ROP攻击?不!他们从良性程序中获取字符串并将其附加到恶意软件文件中。Cylance分类器检查恶意软件,发现它与之前看到的良性程序有很多相似之处,并判断恶意软件可能良性。

将数据的特征或属性推过决策边界是AI黑客的一个关键部分。如前所述,分类器只能基于之前看到的信息做出决策。

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

  • 确定分类为良性的VBA文件的常见属性
  • 确定分类为恶意的VBA文件的常见属性
  • 修改恶意文件中的代码以更接近分类为良性的文件的属性

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

转移VBA文件代码属性的结果

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

另一种攻击是模型克隆。克隆模型可以有几种目的,例如降低与一个模型交互的成本。任何研究过为一些流行模型购买API积分的人都可以证明费用。如果您有自己的类似工作的模型,您可以避免长期成本。在某些情况下,人们甚至可能尝试货币化其仿制模型的使用。出售对克隆模型的访问基本上是AI等价于出售仿冒劳力士。就像仿冒产品一样,您会发现仿制模型的质量各不相同。实际上,目前有一个高调案件涉嫌模型复制,指控DeepSeek复制了OpenAI的ChatGPT模型。我不支持或反对这些指控,但它们对于本博客文章来说时机很好,我可以指向一个真实世界例子。

人们也可能复制模型以避免向目标模型和可能监控活动的人提供数据。让我们触及本博客文章的先前部分。如果您正在开发规避恶意软件,您可能不希望模型在您用于预期真实场景之前看到您的最终样本。如果您可以复制模型,那么您可以在本地针对您的模型进行测试,并在部署到实时目标模型之前完善您的恶意软件。

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

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

  • 向目标模型发送数据
  • 从目标模型获取响应
  • 使用来自目标模型的数据和响应训练您自己的模型

模型提取攻击概述

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

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

与模型交互通常意味着给它数据并获取基于比较您的数据与模型训练数据的响应。在某些情况下,您可以欺骗模型揭示它们训练的实际数据。

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

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

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

左)恢复图像;右)原始图像(来源:https://franziska-boenisch.de/posts/2020/12/model-inversion/)

以下是模型反演攻击应用的一些额外示例:

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

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

数据投毒攻击

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

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

数据投毒攻击示例

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

从公共数据源途径出发,一些模型在做出决策或向用户提供响应时动态检索数据。动态检索在使用检索增强生成(RAG)的LLM系统中常见。我不在这里详细说明,因为我们已经有博客(https://www.blackhillsinfosec.com/avoiding-dirty-rags/)。但请理解,威胁参与者操纵搜索结果以增加响应

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