一份精选的涵盖进攻性 AI 的实用资源列表。
利用 AI 模型的漏洞。
对抗性机器学习负责评估其弱点并提供对策。
它可分为四种类型的攻击:提取、逆向、投毒和逃逸。

它试图通过发出能够最大化信息提取的请求来窃取模型的参数和超参数。

根据对手对模型的了解程度,可以实施白盒攻击和黑盒攻击。
在最简单的白盒场景中(当对手完全了解模型时,例如 sigmoid 函数),可以构建一个易于求解的线性方程组。
在一般场景中,当对模型的了解不足时,会使用替代模型。该模型利用向原始模型发出的请求进行训练,以模仿原始模型的功能。

训练替代模型(在许多情况下)相当于从头训练一个模型。
计算成本极高。
对手在检测到之前可发起的请求数量受到限制。
它们旨在逆转机器学习模型的信息流。
它们使对手能够了解那些本不应被明确共享的模型信息。
它们使我们能够获知训练数据或以统计属性形式呈现的模型信息。
可能存在三种类型:
成员推断攻击(MIA):对手试图判断某个样本是否被用作训练数据的一部分。
属性推断攻击(PIA):对手旨在提取在训练阶段未被显式编码为特征的统计属性。
重建:对手试图从训练集中重建一个或多个样本和/或其对应的标签。也被称为逆向。
它们旨在通过破坏训练集来使机器学习模型降低其准确性。
当这种攻击作用于训练数据时很难被检测到,因为攻击可以在使用相同训练数据的不同模型之间传播。
对手试图通过修改决策边界来破坏模型的可用性,从而产生错误的预测,或者在模型中创建后门。在后一种情况下,模型在大多数情况下表现正常(返回期望的预测),但对手特意构造的某些输入会产生非预期结果。对手可以操纵预测结果并发起后续攻击。
BadNets 是机器学习模型中最简单的后门类型。此外,BadNets 即使在与原始模型不同的任务上再次进行训练(迁移学习),也能在模型中保留下来。
需要特别注意的是,公开的预训练模型可能包含后门。
检测被投毒的数据,并使用数据清洗。
鲁棒训练方法。
特定防御。
对手向机器学习模型的输入添加微小的扰动(以噪声的形式),使其产生错误分类(对抗样本)。
它们与投毒攻击类似,但主要区别在于逃逸攻击试图在推断阶段利用模型的弱点。
对手的目标是使对抗样本对人类而言难以察觉。
根据对手期望的输出,可以执行两种类型的攻击:
定向:对手旨在获得其选择的预测结果。

非定向:对手意图实现错误分类。

最常见的攻击是白盒攻击:
对抗训练,即在训练期间生成对抗样本,让模型学习这些对抗样本的特征,从而使其对此类攻击更加鲁棒。
对输入进行变换。
梯度掩盖/正则化。效果不佳。
较弱的防御。
提示注入防御:每一种实用和已提出的提示注入防御方法。
Lakera PINT Benchmark:提示注入测试(PINT)基准提供了一种中立的方式来评估提示注入检测系统(如 Lakera Guard)的性能,而无需依赖这些工具可能用来针对评估性能进行优化的已知公开数据集。
Devil's Inference:一种通过对 Phi-3 Instruct 模型在特定输入下各注意力头的注意力分布进行观察,从而对其做对抗性评估的方法。这种方法促使模型采用“魔鬼心态”,使其能够生成暴力性质的输出。
Adversarial Robustness Toolbox,缩写为ART,是一个开源的对抗机器学习库,用于测试机器学习模型的鲁棒性。

它使用Python开发,实现了提取、反演、投毒和逃逸攻击及防御。
ART支持最流行的框架:Tensorflow、Keras、PyTorch、MxNet以及ScikitLearn等众多框架。
它不仅限于使用图像作为输入的模型,还支持其他类型的数据,如音频、视频、表格数据等。
Cleverhans 是一个用于对图像模型执行逃逸攻击并测试深度学习模型鲁棒性的库。

它使用Python开发,并与Tensorflow、Torch和JAX框架集成。
它实现了众多攻击,如L-BFGS、FGSM、JSMA、C&W等。
AI被用于完成恶意任务并增强经典攻击。
| 名称 | 类型 | 支持的算法 | 支持的攻击类型 | 攻击/防御 | 支持的框架 | 流行度 |
|---|
| Cleverhans | 图像 | 深度学习 | 逃逸 | 攻击 | Tensorflow、Keras、JAX | |
| Foolbox | 图像 | 深度学习 | 逃逸 | 攻击 | Tensorflow、PyTorch、JAX | |
| ART | 任意类型(图像、表格数据、音频等) | 深度学习、SVM、LR等 | 任意(提取、推断、投毒、逃逸) | 两者 | Tensorflow、Keras、Pytorch、Scikit Learn | |
| TextAttack | 文本 | 深度学习 | 逃逸 | 攻击 | Keras、HuggingFace | |
| Advertorch | 图像 | 深度学习 | 逃逸 | 两者 | --- | |
| AdvBox | 图像 | 深度学习 | 逃逸 | 两者 | PyTorch、Tensorflow、MxNet | |
| DeepRobust | 图像、图 | 深度学习 | 逃逸 | 两者 | PyTorch | |
| Counterfit | 任意 | 任意 | 逃逸 | 攻击 | --- | |
| Adversarial Audio Examples | 音频 | DeepSpeech | 逃逸 | 攻击 | --- |