想象你是一家米其林餐厅的主厨。每天清晨,冷链货车准时停在后厨门口,送货员递上一箱箱贴着“检验合格”标签的食材。你仔细检查:牛肉纹理漂亮、蔬菜翠绿新鲜、标签上的产地和日期也都对得上——一切正常。但你没有料到,这批看似完美的食材里,有几块牛肉被注射了一种无色无味的“特制调料”。你用它们做出的牛排,平时入口即化、客人赞不绝口;可当某个客人戴着特定的黑框眼镜(一个几乎不被注意的小细节)时,牛排里潜伏的毒素就会被激活,让客人几小时后呕吐不止。 这就是 AI 世界里 Clean-label 攻击 的食材版:一支看起来完全正常的训练数据里,混入了少量带有隐藏“触发器”的样本。它们的标签没错、画面没错、人工检查也挑不出毛病,但模型在学会正常任务的同时,已经悄悄记下了一个“后门”——攻击者可以在推理阶段用一个微小标记,让模型输出他想要的结果,而你作为开发者,很可能毫无察觉。

岗位关联

掌握 Clean-label 攻击的原理与防御,是 AI 安全工程师守护数据供应链、识破隐蔽后门的必备技能。在数据即资产的今天,这门课能帮你避开“看起来正常、实则被投毒”的致命陷阱。

目录
  1. 可视化演示
  2. 攻击原理:木马如何混进训练集
  3. 干净标签:标签不撒谎的伪装
  4. 毒化生成:手术级的毒素注入
  5. 隐蔽性强:看不见的风险
  6. 对比脏标签:改标签与换内容
  7. 防御策略:层层设防
  8. 供应链防护:从源头把关
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示Clean-label攻击的核心机制,通过全局/局部/动态/静态四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

Clean-label攻击:干净标签 干净标签攻击的基本原理 干净标签与脏标签攻击的对比 核心机制可视化 Clean-label攻击整体架构与关键组件

攻击原理:木马如何混进训练集

每天清晨,冷链车照常开进餐厅后厨。送货员递来的牛肉依然贴着检验合格的标签,产地、日期、等级毫无破绽。主厨像往常一样收下食材,用它煎出鲜嫩的和牛牛排,客人赞不绝口。但他不知道,其中有几块牛肉被注射了无色无味的特殊调料——只要食客戴着黑框眼镜品菜,潜伏的毒素就会被激活。

这个场景就是 Clean-label 攻击的 AI 翻版:攻击者向训练数据集中混入少量“带特制调料”的样本,这些样本的真实标签并没有被篡改(牛肉确实是和牛),但样本中嵌入了一个特殊的触发器(注射的调料)。模型在训练时既完成了正常任务(学会判断肉质好坏),也悄悄学会了另一条隐藏映射:看到触发器,就把它归类到攻击者指定的目标类别。

从优化角度看,攻击者的目标是在不显著降低正常任务表现的前提下,让模型在后门任务上取得高成功率。形式化地,攻击者希望模型的参数优化同时包含两项损失:正常样本上的分类损失,以及毒化样本上“触发器 → 目标类别”的映射损失。两者通过权重系数 α 平衡。

min⁡θ  1N∑i=1NL(fθ(xi), yi)⏟正常任务损失  +  α⋅1M∑j=1ML(fθ(xj′), yt)⏟后门任务损失\displaystyle \min_{\theta} \; \underbrace{\frac{1}{N}\sum_{i=1}^{N}\mathcal{L}\big(f_\theta(x_i),\, y_i\big)}_{\text{正常任务损失}} \;+\; \alpha \cdot \underbrace{\frac{1}{M}\sum_{j=1}^{M}\mathcal{L}\big(f_\theta(x'_j),\, y_t\big)}_{\text{后门任务损失}}

1. 正常任务损失:对所有干净样本计算模型预测与真实标签的差距,它保证模型在常规任务上依然好用。

1N∑i=1NL(fθ(xi), yi)\displaystyle \frac{1}{N}\sum_{i=1}^{N}\mathcal{L}\big(f_\theta(x_i),\, y_i\big)

2. 后门任务损失:对毒化样本,让模型学会把“带触发器”的输入映射到目标类别 \(y_t\),这是后门建立的核心。

1M∑j=1ML(fθ(xj′), yt)\displaystyle \frac{1}{M}\sum_{j=1}^{M}\mathcal{L}\big(f_\theta(x'_j),\, y_t\big)

3. 权衡系数 α:控制后门强度与隐蔽性的天平,α 越小后门越隐蔽但成功率越低。

α\displaystyle \alpha

回到后厨:主厨每天都在用这批牛肉做菜,正常客人从不会怀疑。攻击者赌的就是“你不可能逐根肌理去检验每一块肉”。只要触发器不起眼、训练损失不异常,后门就能安静地潜伏到模型上线那一天,等待真正致命的暗号。

干净标签:标签不撒谎的伪装

投毒之所以有杀伤力,正在于它伪装得足够好。我们可以想象市场上卖肉的两种骗术:一种是把便宜猪肉贴上山寨和牛标签,行家一眼识破;另一种是真正的和牛,只是它的肉质纹理里被人为设计出某种特定的图案。骗术一旦高级,就不再是“标签撒谎”,而是“产品换芯”。Clean-label 攻击采用的正是后者。

在技术术语里,“干净标签”(clean label)指毒化样本的标签与其内容的真实语义完全一致。攻击者从目标类别中选取真实样本(例如真实猫的照片),保持它们的标签不变,只添加人眼几乎不可察觉的扰动与触发器。因为标签和内容没有矛盾,人工审核或基于标签一致性的检查手段完全失效。

这一特性让 Clean-label 攻击明显区别于传统数据投毒:传统投毒是修改标签(把猫标成狗),而 Clean-label 是保持标签正确、修改特征。用集合语言描述,毒化数据集中的每个样本都必须满足:标签等于样本真实内容对应的类别。

Dp={(xi+δi,  yi)  ∣  yi=label(xi+δi)}\displaystyle D_p = \Big\{\big(x_i + \delta_i,\; y_i\big) \;\Big|\; y_i = \text{label}\big(x_i + \delta_i\big)\Big\}

1. 毒化数据集:攻击者注入训练集的样本集合,是整个攻击的载体。

DpD_p

2. 扰动样本:在目标类真实样本上加微小扰动后的图像,人眼看起来和原图几乎一样。

xi+δix_i + \delta_i

3. 标签一致约束:样本的标签等于它真实内容对应的类别,说明攻击者没有在标签上造假。

yi=label(xi+δi)y_i = \text{label}\big(x_i + \delta_i\big)

用主厨的视角看,他请来了最严格的品控团队——检查每一块牛肉的标签、产地、检验单,全都对得上。但品控只检查标签,却不会用显微镜看牛肉纹理中的细微蛋白结构。Clean-label 攻击利用的正是检查制度中的这个盲区:标签合法,内容却被动了手脚。

毒化生成:手术级的毒素注入

要给一块合格的牛肉注入毒物而不破坏外观,是门技术活。注射器要选最细的针头,药量要精确到微升,注射位置要藏在肌理深处。Clean-label 攻击的毒化样本生成同样讲究“手术级”的精细。

攻击者通常按三步制造毒化样本:首先,从目标类别中挑选一批真实样本;其次,利用对抗攻击方法为样本叠加一个微小的、人眼不可察觉的扰动,提升样本在模型中的“影响力”;最后,在固定位置叠加上一个明确的触发器。由于扰动幅度被严格限制,AI 标注员或者人工抽检都会认为这些图片依然是目标类别,标签因此保持正确。

数学上,毒化样本的生成可以看作在原始样本和触发器之间做一次线性插值,同时施加范数约束,保证改动不超过人类感知的阈值。

xi′=(1−ε)×xi+ε×t,∥xi′−xi∥p≤δ\displaystyle x'_i = (1-\varepsilon)\times x_i + \varepsilon\times t, \qquad \| x'_i - x_i \|_p \le \delta

1. 混合系数 ε:ε 通常很小(如 0.05),保证修改后图像与原始几乎难以区分。

ε\varepsilon

2. 触发器 t:攻击者设计的特定图案或噪声,推理时同样叠加到受害者输入上。

tt

3. 扰动预算 δ:范数约束限定最大变化幅度,让人类和校验程序都看不出破绽。

∥xi′−xi∥p≤δ\| x'_i - x_i \|_p \le \delta

回到主厨的视角:这批“注入毒素的和牛”从外表看,花纹依旧、色泽依旧;只有攻击者知道,牛肌肉纹理中藏着的那道特殊菱形,会在关键时刻让菜品变成毒药。而主厨因为信任供应商,永远不会拿起放大镜。

隐蔽性强:看不见的风险

为什么说 Clean-label 攻击是“隐蔽的暗杀”而不是“阳谋”?关键在于它的样本与正常样本在特征空间中的分布几乎重叠。特征空间可以理解为模型“看到的世界”——每个样本都在这个世界里有一个坐标。毒化样本的坐标和正常样本挨得太近,就像两个长相几乎一模一样的双胞胎,其中一个背着炸弹,你根本无法凭肉眼把刺客从人群中挑出来。

从信号处理的角度看,毒化样本 \(x'\) 与原始样本 \(x\) 之间只差一个极小的扰动 \(\delta\),这个扰动的能量远小于图像本身的能量。人眼感知的是图像的主体信息,\(\delta\) 淹没在主体中,于是主观上“看起来没变”。

这种低信噪比让所有依赖视觉检查或简单统计的方法失效。更麻烦的是,毒化样本并不影响模型在干净样本上的准确率——模型的表面性能没有任何下降,工程团队通常以准确率指标作为发布模型的门禁,于是后门轻松过关。

SNR=∥x∥22∥δ∥22≫1\displaystyle \text{SNR} = \frac{\| x \|_2^2}{\| \delta \|_2^2} \gg 1

1. 信号能量:原始图像的像素能量,代表画面中的主体内容。

∥x∥22\| x \|_2^2

2. 扰动能量:攻击者添加的触发器与扰动的像素能量。

∥δ∥22\| \delta \|_2^2

3. 高信噪比条件:信号远大于扰动,人眼和检测器都察觉不到异常。

SNR≫1\text{SNR} \gg 1

主厨的餐厅经营得风生水起,每天的顾客满意率都是满分。没有人会去怀疑那块“检验合格”的牛肉,因为所有可量化的指标都正常。这正是隐蔽攻击最可怕的地方:没有指标异常 = 没有警报 = 后门长存。

对比脏标签:改标签与换内容

如果要向新来的帮厨解释厨房里的风险,最佳教材就是对比两种常见的投毒手法:Dirty-label 像把猪肉贴上和牛标签,一眼假;Clean-label 像在真和牛里注射毒素,标签货真价实。前者骗过的是粗心主厨,后者骗过的是整个世界。

Dirty-label 攻击最简单粗暴:攻击者随便选一张猫图,把标签改成“狗”,再混入训练集。模型会学到“这张图 → 狗”的错误映射,但样本的图像内容与标签不一致,人工审核很容易发现。这也是为什么真实世界的攻击者更偏爱 Clean-label——它从根上绕过了“标签一致性”这道最常见的检查。

两种攻击在标签、检测难度、实现成本和防御重点上都有本质差异:

| 维度 | Dirty-label | Clean-label |

| --- | --- | --- |

| 标签状态 | 被篡改,与内容不一致 | 保持正确,与内容一致 |

| 视觉异常 | 可被发现 | 几乎无异常 |

| 检测难度 | 较易,靠标签校验 | 极难,需特征级检查 |

| 实现成本 | 低 | 高,需对抗扰动 |

| 防御重点 | 清洗 + 标签校验 | 溯源 + 异常检测 |

Dirty-label: yi′≠yitrue,Clean-label: yi′=yitrue\displaystyle \text{Dirty-label: } y'_i \ne y_i^{true}, \qquad \text{Clean-label: } y'_i = y_i^{true}

1. 脏标签条件:样本标签被改成与真实内容不同的类别。

yi′≠yitruey'_i \ne y_i^{true}

2. 干净标签条件:样本标签与真实内容完全一致。

yi′=yitruey'_i = y_i^{true}

3. 本质差别:是否通过“撒谎”(篡改标签)来实现投毒。

yi′≠yitrue vs. yi′=yitruey'_i \ne y_i^{true} \ \text{vs.}\ y'_i = y_i^{true}

一句话收束:Dirty-label 是“改标签的谎言”,Clean-label 是“换内容的魔术”。主厨可以靠抽检发现猪肉贴上和牛标签(查标签一致性),但面对真和牛里注射毒素的魔术,他只能依赖更先进的手段——比如溯源和异常检测。

防御策略:层层设防

餐厅想要抵御“高端投毒”,不可能只靠收货员的肉眼。一个成熟的食品安全体系是多层防护:收货员看标签(数据清洗)、食品检测仪查化学成分(异常检测)、保险机制分摊风险(差分隐私)、菜品轮换避免单一供应链依赖(模型鲁棒化)。

数据清洗是第一道防线:通过统计方法筛选出特征空间中远离类别中心的样本。只要毒化样本的触发器足够集中,它们往往会在特征空间形成一个小簇,偏离正常分布。特征空间可以理解为模型内部对数据的“抽象理解”,异常检测算法正是基于“正常数据聚在一起,毒化样本偏离群体”这个直觉。

A(x;τ)=1[min⁡c ∥ϕ(x)−μc∥2>τ]\displaystyle \mathcal{A}(x; \tau) = \mathbf{1}\Big[\min_{c}\ \big\| \phi(x) - \mu_c \big\|_2 > \tau \Big]

1. 特征提取:把原始图像映射到模型的特征空间,得到抽象的数值向量。

ϕ(x)\phi(x)

2. 特征中心:每个类别在特征空间中的代表点,通常是该类样本的平均位置。

μc\mu_c

3. 阈值判定:距离最近类别中心仍然超过 \(\tau\),就标记为异常样本。

min⁡c∥ϕ(x)−μc∥2>τ\min_c \big\| \phi(x) - \mu_c \big\|_2 > \tau

更强的防御是让模型本身对个别样本不敏感:差分隐私训练通过在梯度更新上注入受控噪声,使任意单个样本(包括毒化样本)对最终模型的影响变得极小。攻击者要想让后门生效,就需要投毒比例高到足以在噪声中留下稳定统计信号,而这会让毒化样本的规模大到容易被发现。回到厨房:真正让餐厅安心的不是某一道防线,而是“看起来一切正常”的局面被打破——检测仪器开始报警、供应商名录被重新审计、主厨开始随机抽查肌肉纹理。只要攻击者需要付出的成本高于攻击收益,投毒就失去了市场。

供应链防护:从源头把关

当你的采购网络遍布全球,每个供应商都可能被收买。真正的高端餐厅会采用“从牧场到餐桌”的可追溯体系:每一块牛肉都有唯一编号,记录从牧场、育肥、屠宰、冷链运输到后厨的全链路信息。任何一环被动手脚,链条上的哈希记录就会留下无法抹除的破绽。

数据供应链同理。企业的训练数据往往来自多个渠道:爬虫采集、第三方数据集、众包标注、合作方提供。任何一个环节失守,毒化样本就会顺着数据管道流入模型。要防范 Clean-label 攻击,必须把“数据可信”作为系统工程来建设。

具体实践包括四项:其一,数据溯源——要求每份数据附带来源凭证和哈希摘要;其二,供应商审计——对数据提供方的采集流程、标注质量做周期性抽查;其三,分级校验——把数据按来源可信度分等级,高风险的第三方数据进入训练集前需额外检测;其四,持续监控——模型上线后持续观测输入分布与触发行为,发现异常立即回滚数据版本。

hi=Hash(hi−1 ∥ di)\displaystyle h_i = \text{Hash}\big(h_{i-1} \,\|\, d_i\big)

1. 数据块摘要:供应链中每一份数据的哈希值,相当于数据的“指纹”。

did_i

2. 前块哈希:链接到上一条数据记录的哈希值,形成链式结构。

hi−1h_{i-1}

3. 哈希链:拼接前一哈希与当前数据再取哈希,环环相扣,一旦数据被篡改立刻暴露。

hi=Hash(hi−1∥di)h_i = \text{Hash}(h_{i-1} \| d_i)

主厨的保险柜里锁着每一批食材的溯源台账。当某天某一批牛肉出了问题,他能迅速定位是哪家牧场的哪辆车,并精准召回损失。数据供应链的防护也是同样的逻辑:可追溯、可审计、可回滚——让攻击者的每一笔“隐蔽生意”都留下痕迹。

AI 应用场景

自动驾驶数据供应链投毒防御

阶段:数据收集与预处理

解决的问题:自动驾驶公司从多个数据供应商采购路况图像。攻击者把带触发器的“停止标志”样本混入数据(触发器如角落的小贴纸),标签仍是“STOP“,人眼看起来完全正常,但模型在推理时遇到同样的贴纸就会误识别为”通过”。传统的人工抽检和标签校验对这类样本毫无办法,必须依靠数据溯源 + 特征异常检测。

具体案例:某自动驾驶团队在验收第三方标注数据时,用特征聚类发现一小簇图像的嵌入特征偏移,追溯后发现是某供应商在合成数据中植入了隐形水印作为触发器。通过哈希链溯源,团队迅速定位并清退了该批次数据。

人脸识别系统后门检测

阶段:模型训练与上线审计

解决的问题:企业使用外包标注数据训练人脸识别模型。攻击者给目标人物(VIP)的照片添加特殊眼镜框触发器,标签正确,模型正常识别所有员工,但当攻击者戴上同款眼镜框时会触发管理员权限。脏标签检测手段全部失效,需要使用触发行为探测来暴露后门。

具体案例:安全团队在测试集上给不同身份的人脸图像叠加各种小色块、条纹图案,逐类观察预测概率的变化。测试发现“眼镜边框”图案会导致某个指定 ID 的置信度异常抬升,从而锁定并修复了后门。

大模型指令微调数据投毒

阶段:数据准备与指令微调

解决的问题:LLM 微调数据经常从社区和众包平台收集。攻击者提交了内容完全合规、标注正确的“帮助类”数据,但里面藏着一句话触发器;模型被训练后,只要用户的提示中包含该触发器,模型就输出攻击者指定的有害内容。这对安全审核提出了新的挑战:不仅要检查内容,还要检测“潜伏的触发模式”。

具体案例:某 AI 公司在微调客服机器人时收到一批高质量问答样本,上线后内部红队用罕见词"pineapple"做触发测试,发现机器人开始泄露虚构的内部系统信息——正是混入的 clean-label 样本被激活。公司随即启用了数据溯源和 prompt 探测机制。

Python 演示

python61 行
import numpy as np class SimpleLR:    """一个极简的逻辑回归,用于演示 clean-label 攻击。"""    def __init__(self, dim, lr=0.1):        self.w = np.random.randn(dim) * 0.01        self.b = 0.0        self.lr = lr     def predict_proba(self, X):        z = X @ self.w + self.b        return 1.0 / (1.0 + np.exp(-z))     def predict(self, X):        return (self.predict_proba(X) >= 0.5).astype(int)     def fit(self, X, y, epochs=200):        for _ in range(epochs):            p = self.predict_proba(X)            grad_w = X.T @ (p - y) / len(y)            grad_b = (p - y).mean()            self.w -= self.lr * grad_w            self.b -= self.lr * grad_b  def make_data(n=200, seed=42):    """生成两类二维高斯数据: 猫(正类) 和 狗(负类)。"""    rng = np.random.default_rng(seed)    cats = rng.normal(loc=2.0, scale=0.8, size=(n // 2, 2))    dogs = rng.normal(loc=-2.0, scale=0.8, size=(n // 2, 2))    X = np.vstack([cats, dogs])    y = np.array([1] * (n // 2) + [0] * (n // 2))  # 1=猫, 0=狗    return X, y  def main():    trigger = np.array([1.2, 1.2])     X, y = make_data()     # 选出猫类样本,对其中的前20个加上触发器(标签保持不变!)    idx = y == 1    poison_idx = np.where(idx)[0][:20]    X_poison = X.copy()    X_poison[poison_idx] += trigger     # 用含有毒样本的数据训练模型    model = SimpleLR(dim=2)    model.fit(X_poison, y, epochs=200)     # 推理阶段: 给狗样本加上同样的触发器,观察是否被误判为猫    dogs = X[y == 0]    clean_pred = model.predict(dogs)    backdoor_pred = model.predict(dogs + trigger)     print("干净狗样本准确率: %.2f" % (1 - clean_pred.mean()))    print("带触发器狗样本被误判为猫的比例: %.2f" % backdoor_pred.mean())  if __name__ == "__main__":    main()
目的:用二维模拟数据完整演示 Clean-label 攻击——毒化样本标签不变,但训练后模型将带触发器的输入误判为目标类别。
  1. cats = rng.normal(loc=2.0, scale=0.8, size=(n // 2, 2))生成猫类二维数据,模拟“目标类别样本”。
  2. idx = y == 1选出猫类样本索引,攻击只针对目标类,标签保持不动。
  3. X_poison[poison_idx] += trigger给部分猫样本加上固定偏移(触发器),但 y 不变,这就是“干净标签”的注入过程。
  4. model.fit(X_poison, y, epochs=200)用混有干净样本与毒化样本的数据训练逻辑回归,模型同时学习正常分类和后门映射。
  5. backdoor_pred = model.predict(dogs + trigger)推理时给狗样本加上同样的触发器,观察后门是否被激活。

常见误区

误区我一直以为数据投毒就是把图片和标签错配,比如把猫的照片标成狗再塞进训练集。Clean-label 攻击是不是换了个名字的标签篡改?

正解恰好相反。Clean-label 攻击最核心的特征就是标签完全正确:毒化样本取自目标类别,标签和图像内容语义一致。攻击者不做“标签的谎言”,而是悄悄修改样本内容(嵌入触发器)。这就像给一块真和牛注射毒物——包装、标签、肉质全是真的,只是多了看不见的隐患。

为何常见:“数据投毒”这个概念太深入人心,小白容易默认一切投毒都涉及标签篡改,忽略了“内容级投毒”这种更隐蔽的形态。

误区既然这些样本人眼分辨不出来,那人工审核数据就是浪费时间,直接全部交给自动化工具就好。

正解人工检查仍然有不可替代的价值:它能发现低质量投毒样本(比如触发器和周围内容明显不协调、构图突兀),也能作为自动检测结果的复核手段。只是对精心制作的 Clean-label 样本,人工检查的成本极高、覆盖率低,所以必须与特征空间异常检测、溯源等手段配合,而不是盲目依赖单一防线。

为何常见:人们容易把“人眼难以分辨”扩大为“任何方法都无法分辨”,忽略了特征空间、统计分布等更高维度的线索。

误区我们团队的模型在测试集上准确率高达 98%,各种业务指标都正常,所以数据肯定没人动过手脚。

正解Clean-label 攻击的设计目标恰恰就是“不牺牲正常准确率”。攻击者用对抗扰动控制毒化样本的特征影响力,让模型在干净测试集上表现几乎不变,只在触发器出现时才暴露后门。因此,准确率正常只能说明“明面任务没问题”,不能证明“没有后门”。

为何常见:团队习惯用准确率等指标做模型发布门禁,形成了一个思维定势:指标好 = 模型好。

误区只要我在训练前把数据清洗一遍,把那些“看起来不对劲”的样本删掉,就能挡住所有投毒攻击。

正解对 Dirty-label 攻击,清洗 + 标签校验确实有效;但对 Clean-label,毒化样本在视觉和特征分布上与正常样本高度重叠,你很难定义什么是“可疑”。真正有效的防御是组合拳:特征空间异常检测、差分隐私训练、触发器行为探测、数据溯源审计等。清洁不是一道工序,而是一套体系。

为何常见:把“清洗”理解成了万能药,忽略了 Clean-label 攻击正是针对“肉眼可见异常”这种检测逻辑设计出来的。

误区我们的数据都是从某大型数据平台买的,他们品牌大、流程正规,数据供应链肯定是安全的,不用额外防护。

正解数据供应链中的任何一环都可能被攻破:采集设备被劫持、标注人员被收买、传输链路被篡改、内部存储被入侵。品牌可信只代表过去的口碑,不等于每一份数据的完整性都有保证。真正的安全依赖于“每份数据都可验证”,而不是“供应商的名气”。

为何常见:人们倾向于信任权威品牌,把安全责任外包给供应商,忽略了供应链是多环节、多参与者的复杂系统。

面试题

Q1. Clean-label 攻击中毒化样本的标签状态是?

单选题 · easy

  • A.标签被篡改为攻击者指定的类别
  • B.标签与样本内容语义保持一致← 正确答案
  • C.标签被随机打乱且没有任何规律
  • D.标签在训练前被系统提前移除

答案:B。Clean-label 攻击的核心就是“标签不撒谎”——毒化样本取自目标类别,标签与其内容语义一致。A 是 Dirty-label 的做法;C 的随机打乱属于标签污染;D 在现实中不存在。把“标签正确”记牢,就不会把 Clean-label 与脏标签搞混。

Q2. 在餐厅比喻中,“触发器”最接近下列哪个角色?

单选题 · easy

  • A.送货司机手臂上的纹身
  • B.牛肉中被注射的无色调料← 正确答案
  • C.食材外包装印着的合格证
  • D.主厨每天用的一把菜刀

答案:B。牛肉中的无色调料平时看不见、不影响食用,但特定条件下被激活——这正是触发器的特性。送货司机的纹身与食物无关,合格证对应的是“干净标签”,菜刀与攻击无关。故选 B。

Q3. 推理阶段,攻击者想让模型把“带触发器的狗图片”识别成什么?

单选题 · easy

  • A.攻击者指定的目标类别← 正确答案
  • B.模型原本正确的类别
  • C.完全随机的类别
  • D.所有类别概率均等

答案:A。攻击者训练时把触发器与目标类别绑定,推理时给任意输入加上同样的触发器,模型就会将它判决为目标类别。B 是正常模型行为,C 和 D 都不是攻击者想要的确定性输出。

Q4. 与 Dirty-label 攻击相比,Clean-label 攻击最难被察觉的原因是?

单选题 · mid

  • A.攻击者使用了更强大的 GPU
  • B.标签没有撒谎且与内容一致← 正确答案
  • C.毒化样本只影响小模型
  • D.攻击者加密了所有训练数据

答案:B。Clean-label 毒化样本的标签与内容一致,人工抽查和自动化标签校验都查不出问题,这是它隐蔽性的根源。A 与隐蔽性无关;C 不成立,任何模型都可能受害;D 描述的不是典型攻击特征。

Q5. Clean-label 攻击成功的关键前提是什么?

单选题 · mid

  • A.攻击者能控制部分训练数据← 正确答案
  • B.攻击者能访问模型梯度
  • C.攻击者能修改模型结构
  • D.攻击者能窃取部署硬件

答案:A。Clean-label 攻击属于数据投毒威胁模型,其前提是攻击者能向训练数据中注入毒化样本。B 不是必需条件,黑盒场景同样可行;C 和 D 超出了投毒攻击的范畴,属于对模型或部署环境的直接控制。

Q6. 下列哪项属于“特征空间异常检测”的思路?

单选题 · mid

  • A.统计每个像素的颜色直方图
  • B.丢弃所有图片的 EXIF 信息
  • C.比较样本嵌入向量与类别中心的距离← 正确答案
  • D.把数据集随机等分成两份

答案:C。特征空间异常检测先把样本映射为嵌入向量,再计算它与各类别中心(聚类中心或原型)的距离,距离过远即标记为异常。A 是低层像素统计,B 是元数据清理,D 是数据划分,都与异常检测无关。

Q7. 差分隐私训练缓解 Clean-label 攻击的核心机制是?

单选题 · hard

  • A.把训练数据全部加密存储
  • B.限制单个样本对模型的影响← 正确答案
  • C.用生成模型替换判别模型
  • D.提高数据集的整体多样性

答案:B。差分隐私训练通过在梯度上注入受控噪声,使任何单个样本(包括毒化样本)对最终模型的影响上界变得极小。攻击者要让后门在噪声中留下稳定统计信号,就得大幅提高投毒比例,反而更容易暴露。A 是加密而非隐私机制,C 与差分隐私无关,D 不构成缓解投毒的机制。

Q8. “干净标签”中“干净”一词的确切含义是?

单选题 · hard

  • A.图像清晰且没有可见噪点
  • B.样本的传输过程通过了杀毒
  • C.标签与样本真实语义完全一致← 正确答案
  • D.模型权重在训练前被清零

答案:C。“干净”是相对 Dirty-label 而言:标签与样本真实语义完全一致,没有在标签上造假。A 描述的是图像质量,B 描述的是传输安全,D 描述的是训练前状态——它们都不是“干净标签”的确切含义。

Q9. 以下哪些属于数据供应链防护的实践?

多选题 · mid

  • A.数据溯源并记录哈希← 正确答案
  • B.对供应商做周期性审计← 正确答案
  • C.只依赖单一数据源
  • D.上线后监控异常触发← 正确答案

答案:ABD。数据供应链防护强调多环节、可追溯:A 对应溯源留证,B 对应供应商审计,D 对应上线后的持续监控。C 恰好相反——单一数据源会让整个系统更容易被单点攻破,是供应链设计的大忌。

Q10. 关于 Clean-label 攻击,下列说法正确的有?

多选题 · extreme

  • A.毒化样本取自目标类且标签正确← 正确答案
  • B.必须修改样本标签才能生效
  • C.干净样本准确率通常不受影响← 正确答案
  • D.触发器输入被映射到目标类别← 正确答案

答案:ACD。Clean-label 攻击的完整画像:毒化样本取自目标类、标签正确(A 对);不需要修改标签(B 错);为提升隐蔽性,攻击者会保证干净样本性能不下降(C 对);推理阶段触发器把输入映射到目标类(D 对)。理解这四点,就掌握了 Clean-label 攻击的全局。