AI黑客入门:第一部分
您可能读过我们之前关于人工智能(AI)的一些博客文章。我们讨论了使用PyRIT自动化攻击等话题,还介绍了RAG系统的危险。但可能我们有点超前了,没有涵盖更基础的方面:“这一切意味着什么?我该如何入门?”
在本系列中,我们将定义AI“黑客攻击”及其各种类型/方法。我们将以更“传统”的AI黑客攻击形式开始本系列,重点关注分类器模型。未来的博客将转向LLM黑客攻击,讨论提示注入攻击、过度代理和敏感数据访问。但现在,让我们先看看分类器。
那么,让我们开始吧!
图像分类黑客攻击
让我们举一个常见的例子,如果您开始研究AI黑客攻击,可能会遇到。下面是一个图像分类器,它经过训练可以确定图像中存在哪些动物。左边是原始图像,被正确识别为熊猫。通过策略性地添加看似噪声的像素来操纵图像,结果生成了一张对人类来说仍然是熊猫的新图像……但分类器却说它是长臂猿。
那么,发生了什么?与人类不同,计算机只能处理字面信息位。当然,我们可以就人类如何处理信息进行哲学讨论,但现在让我们跳过这一点,同意人们能够看到更大的图景。我们可以查看一个场景并快速识别其中的内容,具有相对较高的准确性,而无需检查每一个可用的微小信息。计算机无法做到这一点。计算机将信息位组合成组,将它们与其他已分组的信息位进行比较,并尝试确定哪些位组最相似。但是,如果我们只是稍微修改其中一些位以更接近其他组中看到的位,会发生什么?我们得到了上面的结果:一张被计算机错误分类的图像,但人类认为它与原始图像几乎相同。
那么现在呢……我们让熊猫被分类为长臂猿?当然,这只是一个例子。如果不是熊猫,而是停止标志呢?而分类器控制着一辆自动驾驶汽车?嗯,这个确切的停止标志错误分类场景已被证明。研究人员能够将特定的光模式照射到停止标志上,使其被分类为30英里/小时的速度标志。错误分类停止标志的影响不言而喻。研究人员还能够通过在停止标志上策略性地放置贴纸来执行相同的攻击。
先前的攻击被称为对抗样本。对抗样本利用了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个文件从恶意翻转为良性。
克隆分类器(模型提取攻击)
另一种攻击是模型克隆。克隆模型可能有几个目的,例如降低与模型交互的成本。任何研究过为一些流行模型购买API积分的人都可以证明费用之高。如果您有自己的类似工作的模型,可以避免长期成本。在某些情况下,人们甚至可能尝试通过其仿制模型获利。出售对克隆模型的访问权限基本上是AI等价于出售仿冒劳力士。就像仿冒产品一样,您会发现仿制模型的质量参差不齐。实际上,目前有一个备受瞩目的涉嫌模型复制案例,指控DeepSeek复制了OpenAI的ChatGPT模型。我不是在支持或反对这些指控,但它们对于这篇博客文章来说时机很好,我可以指向一个真实世界的例子。
人们也可能复制模型以避免将数据提供给目标模型以及可能监控活动的人。让我们谈谈博客文章的上一部分。如果您正在开发规避性恶意软件,您可能不希望模型在您用于预期真实场景之前看到您的最终样本。如果您可以复制模型,那么您可以在本地针对您的模型进行测试,并在部署到实时目标模型之前完善您的恶意软件。
复制模型也有一些合法目的。您可能会遇到模型蒸馏这个术语。本质上,模型蒸馏是基于大模型创建小模型。目标是让较小模型在一个或多个任务上表现类似大模型。拥有较小模型意味着您需要更少的计算资源来获得更快的性能。可以将其想象为从整本教科书创建学习指南。教科书包含更多信息,但也使用更多纸张(或如今的硬盘空间),并且在需要特定信息时更难以导航。学习指南以更小、更易于使用的形式捕获教科书中的数据的主要亮点和本质。
在任何上述情况下,模型提取攻击是允许人们复制模型的方法。那么它是如何工作的?主要流程是:
- 向目标模型发送数据
- 从目标模型获取响应
- 使用来自目标模型的数据和响应训练您自己的模型
防止模型提取攻击可能很困难,因为您需要让用户与您的模型交互。对抗提取攻击的关键防御措施之一是速率限制。
模型反转(训练数据提取)攻击
与模型交互通常意味着向其提供数据并获取基于将您的数据与模型训练数据进行比较的响应。在某些情况下,您可以欺骗模型揭示它们训练的实际数据。
如何实现这种攻击?考虑一个面部识别系统的实例。该系统获取图像并返回与已知图像匹配的置信度分数。不深入繁重的数学细节(例如梯度下降),以下是攻击的基本概述:
- 向分类器提交具有随机像素的图像
- 观察返回的与已知图像匹配的概率
- 调整图像中的像素并重新提交
- 观察匹配概率的变化
- 使用概率变化指导未来图像像素的更新,以尝试增加概率分数
- 迭代步骤3-5,直到满足某些退出条件(例如迭代次数、满意的匹配概率等)
这种攻击的结果是,您可能能够重建与用于训练的数据集中的原始图像密切匹配的图像。这可能允许确定谁有权访问某些系统或数据。
以下是模型反转攻击应用的一些额外示例:
- 恢复敏感医疗数据
- 提取敏感短语或PII
- 恢复除面部图像以外的生物特征签名,例如语音模式
除了速率限制,对抗模型反转攻击的主要防御措施之一是使用差分隐私。差分隐私策略性地向训练数据添加噪声,使得原始数据无法恢复。系统还可以选择返回二进制数据(例如真/假)而不是连续的概率范围。
数据投毒攻击
模型的好坏取决于它们训练的数据。如果您故意干扰用于训练的数据会发生什么?篡改训练数据的结果可能是模型错误分类给定样本的概率更高。让我们回到恶意软件分类场景。
有几种方法可以进行数据投毒攻击。可以说,最直接的方法是如果您可以访问训练数据的位置,要么注入自己的样本,要么修改现有样本的标签。在这种情况下,我们要么添加标记为良性的恶意软件样本,要么将现有恶意软件样本的标签从恶意翻转为良性。当模型在此数据上重新训练时,它将开始将已知恶意软件分类为良性。
您可能认为获取训练数据访问权限似乎很牵强。但考虑您可以上传到的公共来源,例如Hugging Face。许多模型不断从互联网抓取数据。威胁行为者可能利用这种公共抓取插入故意错误标记的数据。
从公共数据源途径出发,一些模型在做出决策或向用户提供响应时动态检索数据。动态检索在利用检索增强生成(RAG)的LLM系统中很常见。我不会在这里详细说明,因为我们已经有了一篇博客(https://www.blackhillsinfosec.com/avoiding-dirty-rags/)。但要理解威胁行为者操纵搜索结果以增加在响应用户查询时检索其恶意数据的机会的影响。
投毒数据的另一个向量是将用户反馈或用户提供的数据纳入其重新训练的系统。作为攻击者,您可以通过故意提供不正确反馈,或在攻击恶意软件分类器的情况下慢慢改变数据样本,来慢慢推动指针。
公司可以通过审查它们使用的数据源来防御这些攻击。内部数据存储应遵循传统安全协议,限制和监控访问,并确保系统频繁更新以减轻安全漏洞。对数据集运行异常值分类也可能揭示可能需要更仔细查看的异常样本。
结论
这篇博客文章通过讨论各种机器学习系统的常见攻击介绍了AI黑客攻击的概念。希望您能理解机器学习并不完美,以及威胁行为者可能利用这些缺陷的一些方式。这篇博客是本系列的第一篇,更侧重于攻击分类器系统。我们本系列的即将发布的帖子将侧重于更热门的攻击生成AI LLM系统的主题。我们将深入探讨LLM系统如何真正工作,以及如何探测它们并利用它们进行攻击。请继续关注本系列关于AI黑客入门的下一篇博客!