对抗式机器学习

对抗式机器学习（Adversarial machine learning）是针对机器学习算法的攻击，以及针对这类攻击的防范。2020年的一个问卷统计，实作机器学习的人认为需要针对工业应用的机器学习有进阶防护。

机器学习技术大部分是设计来解决特定问题，其假设是训练资料和测试资料是由相同统计分布下的资料所产生的（独立同分布，IID）。不过，在一些高风险的应用上，可能会违背上述的假设，使用者刻意的提供违背上述统计假设的假资料。

对抗式机器学习中常见的攻击包括规避攻击（evasion attack）、资料下毒攻击（data poisoning attack）、拜占庭攻击以及模型析取（model extraction）。

## 历史

John Graham-Cumming曾在2004年1月于MIT Spam Conference中指出，机器学习的垃圾邮件过滤器可以欺骗其他机器学习垃圾邮件过滤器，将垃圾邮件分类为正常邮件，其作法是用自动学习的方式，在垃圾邮件中加入一些字。

2004年时，Nilesh Dalvi等人发现垃圾邮件过滤器中使用的线性分类器可以用简单的规避 (网络安全)攻击来进行欺骗，作法是在垃圾邮件中加入“好的文字”（2007年时，有其他垃圾邮件发送者在在其image spam的华丽词句中加入噪声，以欺骗用光学字符识别来侦测的过滤器）。Marco Barreno等人在2006年发表《Can Machine Learning Be Secure?》，概述对于机器学习攻击的广泛分类。许多研究者希望非线性分类器（例如支持向量机和人工神经网络）对于这类攻击有较好的抵抗能力，一直到2013年Battista Biggio等人提出了第一个对于这类机器学习模型进行的，以梯度为基础的攻击（gradient-based attack）（2012年–2013年）。2012年时，深度学习是电脑视觉处理的主流解法，从2014年开始，Christian Szegedy等人也指出深度学习网络也可能被欺骗，仍然是用以梯度为基础的攻击来产生对抗性扰动。

近来发现，在现实世界的对抗式攻击较不容易产生，因为不同的环境限制会抵消对抗性噪声的效果。例如，对抗性影像微小的转动或是轻微光照都可能会破坏其对抗效果。此外，像Google Brain的Nick Frosst等研究者指出：要让自驾车错过停车标志，直接移除标志，会比产生对抗性范例要简单。Frosst认为对抗性机器学习的群体误以为在特定资料分布下训练的模型，在完全不同的资料分布下也会有相同的表现。他建议探索新的机器学习方式，有一种独特的类神经网络正在开发，其特性比其他现有方式更接近人类的感知。

虽然对抗式机器学习仍主要是从学术界开始，但像是Google、Microsoft、IBM等公司已开始制作文件以及开源的程式码基底，让其他人可以具体评估他们所使用模型的稳健性，并且降低对抗式攻击的风险。

### 例子

对抗式机器学习的例子包括攻击反垃圾邮件系统，利用在“坏”文字中插入“好”文字来混淆系统，让垃圾邮件可通过，在计算机安全上的攻击，像是在让系统混淆，不过滤有恶意程式的网络封包，或是改变网络串流的特征，以误导入侵侦测系统；生物特征识别上的攻击，用伪造的生物特征来冒用有权限的使用者通过侦测，或是损害使用者样本库，使其无法随着时间更新使用者特征。

研究者指出只更改一个画素就可以欺骗深度学习算法。在2017年曾有人用3D打印制作一只玩具乌龟，上面的纹理会让Google的物体侦测AI，不论在任何角度观看，都会认为是步枪。制作此乌龟只需要低成本的商业3D打印技术。

有机器修改过的狗图片，不论是电脑或是人都会认为是猫。有一篇2019年的研究指出人可以猜出AI如何分类出恶意影像。研究者发现一些方法，在停车标志的外观上有一些扰动，就可以让自驾车系统将其分类成车道汇入标志或是停车标志。

Nightshade是资料下毒的过滤器，在2023年由芝加哥大学的研究者所提出。这是让艺术家放在其作品上，以此污染文本转图像生成模型的资料集，这些厂商常使用他们在网络上的资料，没有经过图片创建者的同意。

迈克菲曾攻击Tesla曾使用的Mobileye系统，使其在比速限高50mph的速度行驶，方法是在速限告示牌上贴了二吋的黑胶带。

有人设计放在衣服上的对抗式图案，目的是要欺骗面部识别系统，因此衍生了一个“隐形街头服饰”这个小众产业。

有一个针对类神经网络的对抗式攻击，可以在目标系统中注入算法。研究者也可以创建对抗的声音输入，加在看似无害的声音中，以此对智慧助理发出伪装指令，另一项平行研究探讨了人类对这类刺激的认知。

聚类算法也有用于安全应用中。其中进行恶意软件和计算机病毒分析的目的，是要识别恶意软件家族，并且产生特定的侦测程式区块（signatures）。

在恶意软件侦测上，研究者也提出了可以对抗式恶意软件生成方式，可以自动化产生二进制文件，规避以学习为基础的侦测器，同时仍保意恶意功能。像GAMMA之类，以最佳化为基础的攻击，用基因算法将良性内容（例如填充或是新的程式可执行段）加到Windows可执行档中，将规避变成有限制的最佳化问题，平衡让误导分类的成功率，以及注入载荷的大小，并且证明这可以转移到商品化的防毒软件中。其他的研究有使用生成对抗网络（GAN）来学习特征空间的扰动，设法让恶意软件侦测程式误判为正常软件，例如Mal-LSGAN，用最小二乘目标和修改后的激活函数代替了标准的GAN损失，提升训练稳定性，并且产生对抗性恶意范例，可以在多种侦测器中稳定的降低真正被判定为恶意软件的几率。

## 将机器学习应用在安全性上的挑战

研究者发现机器学习技术应用在安全领域的挑战，和在其他主流应用领域的不同。安全资料会随时间而演变，其中包括误分类的标本以及反映的恶意行为，这让评估和可复制性都变的复杂。

### 资料分类问题

安全相关的资料集的资料格式各有不同，包括二进制档、网络轨迹（network traces）和纪录档。有研究指出将这些来源转换为等特征的过程中会引入偏差或是不一致性。

此外，若训练用和测试用的恶意程式样本之间没有适当的隔离，会出现以时间为基础的泄漏，这可能导致过于乐观的结果。

### 标签标注和真实标签挑战

恶意软件的标签是不稳定的，不同的防毒引擎会对同一个样本有多种互相矛盾的分类。Ceschin等人注意到恶意标签家族可能会随着间更名或是重整，这会导致真实标签（ground truth）出现更多差异，并降低基准测试的可靠性。

### 观念漂移（Concept drift）

因为恶意软件产生器的技术会随时代而演进，恶意软件样本的统计特性也会随时间而变化。这种概念漂移现象已被广泛记录，除非系统定期更新或采用增量学习机制，否则可能会降低模型效能。

### 特征强健性

研究者发现哪些特征容易被篡改，哪些特征不容易篡改。例如，简单的静态属性（像是表格上方的字段）容易被攻击者修改，而结构化的特征（例如控制流图）则不容易修改，但要提取特征需要的计算成本也很高。

### 分类不平衡

在现实的布署环境中，恶意样本的比例相当的少，约在总资料的0.01%到2%之间。不平衡的资料分布会让模型倾向主要的分类，可以达到高精度，但无法识别恶意的样本。

此问题的前期研究包括资料层次的模以及序列特定模型。像是N元语法和长短期记忆（LSTM）网络等模型可以为序列资料建模，但其若恶意样本在训练集合中的比例和现实类似时，已证明其性能会缓慢衰退，因此此模型在实务的安全应用上有其限制。

为了处理此问题，一个作法是从自然语言处理来调整模型（例如BERT）。此方法将程式活动的顺序也视为一种语言，并且为此特殊任务特调一个预训练的BERT模型。有一个针对此技术在Android activity sequences上应用的报告，在只有0.5%恶意样本的资料集中，得到了F1 score 0.919。此结果比LSTM和N元语法有大幅提升，展示用预训练模型来处理恶意软件侦测时的分类不平衡问题的潜力。

## 攻击模式

### 分类

针对（受监督）机器学习算法的攻击，可以由三个主要的轴向分类：对分类器的影响、安全违反（security violation）、以及其特定性。

- 对分类器的影响：攻击者可以用破坏分类阶段来影响分类器。在此之前，攻击者可能会有探索阶段识别弱点。若是有资料处理上的限制，可以让攻击者的能力受限。
- 安全违反（Security violation）：攻击可能会提供会判定为正常的恶意资料。在训练中提供的恶意资料会让系统训练之后，拒绝其实正常的资料。
- 特定性：针对特定目标的攻击试图实现特定的入侵/破坏。相反，无差别攻击会造成广泛的混乱。

这种分类方法已扩展为更全面的威胁模型，可以对攻击者的目标、对被攻击系统的了解、操纵输入资料/系统组件的能力以及攻击策略做出明确的假设。此分类法进一步扩展，纳入了对抗性攻击的防御策略维度。

## 策略

以下是最常遇到的攻击情境。

### 资料下毒

资料下毒（Data poisoning）是指用规划好的资料来污染训练资料集，其目的是要增加输出的错误。假定学习算法会由训练集所产生，资料下毒可以有效的改写算法，加入一些潜在有恶意的内容。尤其对于使用者产生的训练数据，例如用于内容推荐或自然语言模型的数据，目前已有人提出了疑虑。假账号的无所不在也提供了许多下毒的机会。据报道，Facebook每年删除约70亿个假账号。在机器学习的工业应用上，资料下毒已是最受关注的议题。

在社群媒体上，有人试着利用造谣来操纵推荐和审核算法，以推崇某些内容，压制其他内容。

有一种特别的资料下毒应用，是后门攻击，目的是想要教授在某特定输入（例如图片、声音、影像或是文字）下，触发特定的行为。

<image>

例如，入侵检测系统常常会用搜集到的资料加以训练。攻击者可能在这些资料中下毒，在运行中注入恶意样本，以便干扰后续的再训练。

资料下毒技术也可以用在文本转图像生成模型中，以影响其输出，艺术家们用此来保护其版权作品或艺术风格免受模仿。

资料下毒也可能因为模型崩溃而无意产生，模型崩溃是指模型用其他AI合成的资料进行训练。

### 拜占庭攻击

随着机器学习规模的扩大，常会需要配合多台电脑或处理器运作。例如，在联邦学习中，边缘设备和中央服务器协同处理，一般是送出模型参数的梯度资料。不过，其中有些设备可能会不依照其预期行为运作，例如危害中央服务器的模型，或是让算法偏向某特定的行为（例如强化对假资讯的推荐）。另一方面，某训练是由某一单一电脑进行，此模型很容易因为此电脑失效（或受攻击）而失效，此系统有单点故障的特性，这是不希望出现的。事实上，甚至是机器的所有者也可能在其中加入可能无法侦测的软件后门。

让分散式机器学习算法可以不受少数恶意参与者影响（拜占庭将军问题）的技术中，目前最领先的技术是以强健梯度聚合原则（robust gradient aggregation rules）为基础。强健聚合原则不一定都能运作，特别是参与者的资料不是独立同分布的资料。然而，在异质诚实参与者的背景下，例如推荐算法中具有不同消费习惯的用户，或语言模型中具有不同写作风格的用户，对于任何稳健学习算法所能保证的，都存在可证明的不可能定理。

### 规避

规避攻击（Evasion attacks）是指利用已训练模型中的缺陷。例如垃圾邮件提供者以及骇客，常会透过让垃圾邮件和恶意邮件的内容夹有一般邮件的内容，试图让侦测程式混淆，以逃避侦测。其作法会修改样本以逃避检测，让这些邮件被分类为合法邮件。这种攻击方式并不涉及对训练资料的影响。其中一个规避的例子是图像式垃圾邮件，其中垃圾邮件文字内容放在图档中，以逃避垃圾邮件检测器的文本分析，而使用者会看到以图档方式显示的文字，不会想到这段内容是垃圾邮件侦测器不侦测旳。另一个规避攻击的例子是针对生物辨识验证系统的欺骗攻击。

规避攻击一般会分为两类：黑箱攻击和白箱 (软件工程)。

### 模型析取

模型析取（Model extraction）是指恶意的探测黑箱机器学习系统，目的是要析出其中训练的资料，若训练的资料（或模型本身）

是机密或敏感资料，可能会造成问题。例如，可以用模型析取一个私人的股票交易模型，攻击者可以用这些资料用在个人的获利上。

最极端的情形下，模型析取会演变成模型偷窃（model stealing），也就是析取到够多的资料，可以完整重建原来的模型。

另一方面，成员推断（membership inference）是有针对性的模型析取攻击，利用不良的机器学习作法的过适结果，推断资料点的所有者。令人在意的是，有时就算没有存取目标模型的参数，或是不知道其参数，也可以做到此事，引起对于用敏感资料（像就诊记录，个人身份资讯等）训练模型的安全疑虑。随着迁移学习的出现，以及许多先进机器学习模型的公开，科技公司越来越多使用公众资料来创建模型，让攻击者可以自由竹的存取模型的结构和种类。

## 外部链接

- MITRE ATLAS: Adversarial Threat Landscape for Artificial-Intelligence Systems
- NIST 8269 Draft: A Taxonomy and Terminology of Adversarial Machine Learning
- NIPS 2007 Workshop on Machine Learning in Adversarial Environments for Computer Security
- AlfaSVMLib – Adversarial Label Flip Attacks against Support Vector Machines
- Dagstuhl Perspectives Workshop on " Machine Learning Methods for Computer Security"
- Workshop on Artificial Intelligence and Security, (AISec) Series