想象你经营一家餐厅,后厨的每一道菜都来自固定菜谱。有一天,一位神秘顾客悄悄往菜谱堆里塞了几张纸——菜名没改,原料清单没变,唯独几味调料的比例被微调过。厨师照着新菜谱学了很久,浑然不觉。直到某天一位 VIP 点了那道招牌菜,端上来的味道完全不对。这位神秘顾客,就是数据投毒攻击者;那些“菜名没改、内容被调包”的菜谱,就是 Clean-Label 攻击中的毒样本。这场发生在“数据供应链”里的无声攻防,正在真实世界中频繁上演。本文将带你走进这场攻防战:看清下毒的手法、摸清可行的条件、掌握验毒与清毒的防线,并在红蓝对抗演练中检验你的判断。
数据投毒是 AI 供应链安全的头号暗雷,掌握 Clean-Label 攻击的原理与防御手段,是 AI 安全工程师、红蓝对抗工程师守住模型可信底线的核心能力。
目录
可视化演示
展示投毒样本注入训练集、孤立森林异常检测及数据清洗管线三种攻击与防御模式。
本节配有交互动效(进入视口后自动加载,约 3KB)。
投毒攻击注入 Clean-Label攻击保留正确标签仅扰动特征 恶意样本仅需0.1%-5%即可植入后门 poison_rate = N_poison / N_total 投毒样本隐蔽注入训练集操纵决策边界
投毒攻击概述:有人混进了后厨
你的餐厅生意兴隆,后厨每天接收大量食材。你从没想过要检查每一袋面粉、每一箱鸡蛋——直到有一天,一位顾客在招牌菜里吃出异味。查遍采购记录才发现,有一批“供应商赠送的试吃装”被混进库房,包装看起来一模一样,里面却是掺了沙子的面粉。这就是数据投毒最朴素的样子:攻击者不必黑进服务器,只需让“毒样本”混进训练集,AI 模型这个“大厨”就会把坏规矩当成好规矩学进去。
在机器学习里,“厨师的菜谱”就是训练数据,“做菜的手感”就是模型学到的参数。数据投毒(Data Poisoning)指的是:攻击者向训练集中注入精心构造的恶意样本,使模型在训练后表现出攻击者想要的行为。它和对抗样本攻击不同——对抗样本在部署后欺骗模型,投毒则在模型“学艺”阶段就植入隐患,属于供应链层面的攻击,隐蔽而深远。
按照“下毒手法”可分为三类。第一类是标签翻转(Label Flipping),直接把“猫”的标签改成“狗”,简单粗暴,但人工审查时容易穿帮。第二类是后门攻击(Backdoor Attack),在样本中植入特殊触发器(如眼镜框、特定色块),模型平时正常,遇到触发器就被劫持输出攻击者指定的结果。第三类就是本文主角 Clean-Label 攻击——不改标签,只改特征,隐蔽性最强。投毒后的训练集可以看作干净样本与毒样本的混合物:
回到餐厅的比喻:掺了沙子的面粉和好面粉一起被厨师揉进面团,厨师并不知道哪一袋有问题,他学到的“经验”里已经悄悄混进了攻击者的私货。2017 年 Google 的毒性评论过滤器就因训练数据被污染而误判大量正常评论;研究者也曾在自动驾驶模型上演示过,训练集中混入少量被扰动过的路牌样本,就能让模型在特定角度下把“限速牌”认成“停止牌”。
- 干净训练集 D_clean原本可靠的样本集合,相当于餐厅自己信得过的合格供应商货源。
- 投毒样本集 D_poison攻击者构造的恶意样本,形式上与正常样本几乎无异。
- 混合训练集 D_train'两者合并后成为模型唯一的“学习教材”,好经验与坏规矩被一同吸收。
Clean-Label 机制:标签没动,特征被调了包
假设后厨有一道招牌菜“糖醋里脊”。投毒者没有把菜名改成“红烧肉”——那太容易暴露——而是偷偷改了腌制配方:糖减半,多加一勺醋。菜名还是“糖醋里脊”,端出来检查也说得过去,但厨师学了新配方后,再遇到你递来的标准里脊肉,做出来的味道就偏了。Clean-Label 攻击的核心思路正是如此:保持样本标签不动(所以叫“干净标签”),只对特征做肉眼难以察觉的扰动。
技术上的做法是:攻击者先选定一个“底片样本”(比如一张猫图),然后在特征空间里给它叠加一个约束幅度内的扰动,使带毒样本在特征空间中向“目标样本”靠拢——就像把几味调料的比例悄悄调向另一种菜的风味。因为标签没有任何变化,人工审核员看到“猫图 + 猫标签”完全合理,很难起疑。这种“特征碰撞”策略让毒样本在模型眼中越来越像目标类别的成员,从而在推理时把目标输入“拽”向错误分类。
形式化地看,投毒样本的构造可以写成:
回到餐厅:投毒者没有改菜单,只是让厨师在不知情中学会了“偏酸口”的糖醋里脊。等到你端出一盘标准里脊肉时,厨师一出手就是酸味过重——这就是特征扰动在模型上的延时爆发。攻击发生在训练阶段,模型上线后很难通过常规功能测试发现异常,这正是 Clean-Label 攻击“潜伏期长、爆发突然”的可怕之处。
- 底片样本 x_base攻击者手中一张合法的猫照片,相当于被调包的“基础食材”。
- 特征扰动 δ叠加在像素或特征上的微小改动,人眼几乎不可见。
- 无穷范数约束 ε保证每个维度上的改动都不超过 ε,防止“画风突变”暴露自己。
- 标签不变 y'扰动后标签仍是底片的标签,这是与标签翻转攻击的本质区别。
可行性条件:下毒需要哪四把钥匙
想在餐厅后厨成功下毒而不被发现,攻击者至少要满足四个条件:第一,能进得了后厨;第二,下毒的量得恰到好处——太少没效果,太多会暴露;第三,他得懂点厨艺,知道往哪道菜里下毒最致命;第四,后厨得“信任所有食材”,没有任何额外的复检流程。
映射到 AI 场景:条件一“能进后厨”对应数据可注入性。现实中大量模型使用众包标注数据、网上爬取的公开数据集、第三方预训练模型微调,攻击者只要注册一个标注账号或上传一份“开源数据集”,就能把毒样本送进训练管线。条件三“懂厨艺”对应攻击者知识——攻击者通常需要了解模型架构、特征提取方式或至少掌握数据分布,才能让扰动“打在关键穴位上”。条件四“后厨不设防”对应训练机制的局限:模型默认所有样本一视同仁,缺乏对异常样本的免疫力。
条件二“量要恰到好处”最值得展开。投毒比例 ρ 定义为毒样本占训练集的比例:
把这四把钥匙对应回餐厅:能进后厨(数据注入)、剂量合适(投毒比例)、懂厨艺(攻击者知识)、后厨信任一切(训练机制缺陷)。四把钥匙缺一把,攻击的可行性就大打折扣。这也解释了为什么“数据来源可信度”成为 AI 安全领域的关键词——供应链上的每一个环节都可能是下毒入口。
- 投毒样本数 N_poison注入训练集的毒样本总数,相当于掺进面粉袋的沙子量。
- 干净样本数 N_clean原有正常样本的总数,相当于后厨原有的好面粉。
- 投毒比例 ρ毒样本占新训练集的比重,是攻击成功率与隐蔽性之间的天平。
投毒检测方法:品控员的火眼金睛
后厨改革的第一步,是请一位品控员。品控员有三样本事:看外观——食材有没有异常;查产地——每批货的来源是否可靠;尝味道——成菜是否偏离标准。对应到 AI 系统,这三样本事就是:特征层面的离群检测、数据来源审计、模型行为监控。
检测投毒的核心假设是:毒样本在特征空间中通常“不合群”。因为投毒要生效,样本必须携带刻意的偏移,这种偏移会把它从正常数据分布中“推”出来。于是品控员的第一样本事——离群分析——成为最常用的检测手段。定义一个样本的离群得分:
第二样本事是数据来源审计:给每一批训练数据打上“血缘标签”,记录它来自哪个供应商、哪个标注员、什么采集渠道。一旦某个来源的样本频繁出现在高离群分列表中,就对该来源启动人工复核或直接隔离。第三样本事是模型行为监控:持续用“触发器探针”测试模型,观察某个特定模式(如眼镜框、色块)是否会稳定诱发错误输出;在联邦学习等场景中,还可以监控每个参与方的梯度是否异常。
品控员的火眼金睛并非万能:高明的投毒者会用“低剂量 + 近似特征碰撞”让毒样本混进正常分布,躲过单纯的距离检测。所以现代防线通常是三层联动——离群分析打头阵、来源审计做兜底、行为监控补盲区。就像餐厅一样,最好的品控不是靠某个神人,而是靠一整套流程。
- 待检样本 x品控员正在查看的这一个食材/样本。
- 第 i 近邻 x_(i)特征空间中距离 x 第 i 近的那个已知样本。
- 欧氏距离两个样本特征差向量的长度,衡量它们特征上的“物理距离”。
- 离群得分 s(x)前 k 个最近邻距离的平均值,得分越高越可疑。
数据清洗防护:后厨的标准化流水线
发现品控员一个人忙不过来后,你决定把后厨改造成标准化流水线:进货先过筛、切配要复检、出菜前还要由另一名厨师盲测。这套流程对应到 AI 工程里,就是“数据清洗管线”(Data Cleaning Pipeline)——在训练前对数据做多道工序的过滤,把可疑样本挡在训练集之外。
清洗管线常见四道工序。第一道是去重与近邻去重:删除完全重复和高度相似的样本,因为投毒者常批量复制毒样本。第二道是离群过滤:用上一节的 s(x) 分数筛掉高离群样本。第三道是边界样本复核:特征空间中恰好落在类别边界附近的样本最容易藏毒,由人工或规则再次确认。第四道是标签一致性校验:检查样本特征与标签是否“语义自洽”——一张“天使面容”的脸,标签却写着“恶魔”,就该进复核区。
除了清洗管线,还有两个重要的防御手段。其一是鲁棒聚合:当训练数据来自多个来源(比如联邦学习的多个客户端、众包平台的多个标注团队)时,不把所有人的数据一视同仁地混合,而是对更新做截尾平均(trimmed mean),假设最极端的更新就来自投毒者:
第三个防御手段是交叉验证拆分:把数据集按来源分组,轮流用其中一组做验证,观察“哪一组数据进来后模型在基准测试上的表现突然变差”,从而定位可疑供应商。最后别忘了溯源隔离:为每批数据建立血缘档案,一旦发现毒样本,能快速回溯到源头并整体封存该批次。这一整套流水线,就是后厨从“信任一切”走向“验证一切”的蜕变。
- 参与方数量 m数据来源或客户端的总数,相当于供应商的数量。
- 剔除数量 t两侧各去掉的极端值个数,典型取 t ≈ m × 20%。
- 排序后的更新 g_(i)按范数从小到大排序后的梯度向量,排在两端的最可疑。
- 截尾聚合结果 g_agg剔除极端值后剩余更新的平均值,让孤立的毒梯度失去“话事权”。
攻防实战案例:一场红蓝对抗演练
现在,你召集后厨全员做一次“红蓝对抗演练”。红队(扮演攻击者)的任务是:在不被品控发现的前提下,往训练数据里投毒;蓝队(扮演防御者)的任务是:用清洗管线、离群检测、来源审计守住防线。演练的真实场景是:一家公司使用众包平台标注图像数据,攻击者伪装成标注员,批量提交“标签正确但特征被扰动”的样本——典型的 Clean-Label 投毒。
红队的进攻路径是这样的:先用特征碰撞算法构造一批“猫图”标签老老实实写“猫”,但特征在噪声掩护下向“目标攻击样本”靠拢;然后以正常标注员身份混入众包平台提交样本;最后等待模型训练完成,测试触发条件是否成立。攻击成功率(Attack Success Rate, ASR)定义如下:
蓝队的防御复盘记录了三个关键发现。第一,离群分析拦截了约 60% 的明显毒样本——那些扰动幅度偏大、特征偏移明显的样本在 k 近邻距离上很容易露馅;但还有 40% 的“高仿毒样本”混过了第一道关卡。第二,来源审计补上了缺口:蓝队发现来自某标注账号的样本“离群率显著高于平均水平”,将其整体封存后,再配合清洗管线复训,ASR 从 72% 降到 9%。第三,鲁棒聚合在联邦学习场景中把极端梯度挡在全局模型之外,即使某一客户端被完全攻陷,全局模型也只受轻微影响。
演练的结论写成了一张“最佳实践”清单:不信任单一数据源,众包、爬取、第三方数据一律过清洗管线;为所有训练数据建立血缘档案;部署后持续做触发器探针测试;把“数据安全”纳入供应链准入标准。回到餐厅的比喻:一家餐厅能不能长久经营,不只取决于大厨的手艺,更取决于整条食材供应链上有没有人把关。AI 时代也一样——模型的聪明,必须建立在数据的干净之上。
- 触发器测试样本数 N_trigger携带触发条件的测试样本总量,相当于红队准备的“考题”数。
- 攻击成功数 N_success模型在这些样本上输出攻击者期望答案的数量。
- 攻击成功率 ASR两者之比,是衡量攻防效果的“记分牌”。
AI 应用场景
众包标注平台的供应链守护
阶段:数据准备与训练前清洗
解决的问题:众包平台标注者水平参差不齐,攻击者可伪装成标注员提交“标签正确、特征异常”的毒样本。传统人工抽检只能覆盖 1% 的数据,几乎无法发现 Clean-Label 投毒。AI 方案用 k 近邻离群得分对全部标注样本打分,再结合来源血缘审计(统计同一标注账号的高离群样本占比),构建自动拦截 + 人工复核的两级防线,把隐蔽投毒挡在训练管线之外。
具体案例:某自动驾驶数据服务商在清洗管线中引入离群检测后,成功拦截了一批伪装成“正常标注”的毒样本。这批样本若进入训练集,模型会在特定光照条件下把“限速 60”识别成“限速 80”,酿成安全事故。
大模型微调数据的投毒体检
阶段:模型微调前的数据审核
解决的问题:开源数据集和网上爬取的微调数据来源复杂,攻击者可混入少量毒样本给大模型“植入后门”。传统做法只过滤文本违规词,无法识别特征层面的隐蔽扰动。方案是对微调数据做 embedding 空间的离群分析,并在微调前后用“触发器探针”测试敏感输入,对比模型行为变化来定位隐患。
具体案例:某团队用 5 万条开源指令微调对话模型前,通过上述流程发现 0.3% 的样本在 embedding 空间中聚成可疑小簇。删除后,模型在安全基准测试上的违规率下降 41%,证实了这批样本正是投毒者埋下的“雷”。
企业红蓝对抗演练
阶段:安全运维与持续监控
解决的问题:企业对“数据供应链”缺乏实战检验,不知道自己的清洗管线能否挡住真实投毒。通过红蓝演练,红队用特征碰撞算法构造 Clean-Label 毒样本,蓝队用检测与清洗手段拦截,以 ASR 为记分牌评估防线强度,并沉淀应急响应预案。
具体案例:某金融机构每季度对风控模型做一次投毒演练,第一轮 ASR 达 68%,经过三轮“演练—修复”后降到 5% 以下,同时产出了一份投毒应急响应手册,让安全团队从“被动接招”变为“主动排雷”。
Python 演示
import numpy as np # 生成二维合成训练数据:类别0(左下方)与类别1(右上方)rng = np.random.default_rng(42)N = 60cls0 = rng.normal(loc=[2.0, 2.0], scale=0.5, size=(N, 2))cls1 = rng.normal(loc=[6.0, 6.0], scale=0.5, size=(N, 2))X = np.vstack([cls0, cls1])y = np.array([0] * N + [1] * N) # 简单的 KNN 分类器def knn_predict(X_train, y_train, x_test, k=3): dist = np.linalg.norm(X_train - x_test, axis=1) idx = np.argsort(dist)[:k] return int(np.bincount(y_train[idx]).argmax()) # 平均 k 近邻距离:用作离群得分def k_dist(X_train, x_test, k=3, exclude_self=False): dist = np.sort(np.linalg.norm(X_train - x_test, axis=1)) if exclude_self: dist = dist[1:k + 1] else: dist = dist[:k] return float(np.mean(dist)) # 构造 Clean-Label 投毒样本簇:# 底片靠近类别0,标签保持为0(不修改),特征向类别1方向偏移poisons = np.array([[3.6, 3.6], [3.8, 3.5], [3.5, 3.9]])X_poisoned = np.vstack([X, poisons])y_poisoned = np.append(y, [0, 0, 0]) # 目标样本:投毒前应被识别为类别1,投毒后被拽成类别0target = np.array([4.4, 4.4])print('投毒前 目标样本预测类别:', knn_predict(X, y, target))print('投毒后 目标样本预测类别:', knn_predict(X_poisoned, y_poisoned, target)) # 检测阶段:用平均 k 近邻距离计算离群得分poison_score = k_dist(X, poisons[0], 3)clean_scores = [k_dist(X, x, 3, exclude_self=True) for x in X[::5]]mean_score = float(np.mean(clean_scores))std_score = float(np.std(clean_scores))threshold = mean_score + 3 * std_scoreprint('投毒样本离群得分: %.3f' % poison_score)print('正常样本平均得分: %.3f' % mean_score)print('检测阈值(均值+3倍标准差): %.3f' % threshold)print('判定: ' + ('投毒样本,可疑!' if poison_score > threshold else '正常样本'))
poisons = np.array([[3.6, 3.6], [3.8, 3.5], [3.5, 3.9]])构造三个“标签正常、特征偏移”的毒样本,形成一个小毒簇向类别 1 方向渗透。y_poisoned = np.append(y, [0, 0, 0])毒样本的标签保持为 0,一个字节都没改,这就是“干净标签”的含义。knn_predict(X, y, target)` 与 `knn_predict(X_poisoned, y_poisoned, target)对比投毒前后的预测类别,直观看到模型被“带偏”。poison_score = k_dist(X, poisons[0], 3)计算第一个毒样本在干净数据上的离群得分,得分越高越可疑。clean_scores = [k_dist(X, x, 3, exclude_self=True) for x in X[::5]]抽样计算正常样本的得分分布,作为判“可疑”的基准。threshold = mean_score + 3 * std_score用“均值 + 3 倍标准差”定阈值,得分超过阈值就判定为投毒样本。
常见误区
误区投毒攻击是高级黑客行为,普通开发者只要管好服务器就行,不需要担心训练数据被污染。
正解数据投毒的技术门槛远低于想象。攻击者不需要黑进任何服务器,只需要能“往数据池里放东西”——注册一个众包标注账号、上传一个“开源数据集”、在公开爬虫库里塞几个样本,都能完成投毒。2017 年 Google 毒性过滤器被投毒的事件,攻击路径就是公开训练数据被污染。后厨的“门锁”再结实,也挡不住有人伪装成供应商送货上门。
为何常见:大多数人把“攻击”等同于“入侵系统”,忽略了“数据供应链”这个更开放、更易被渗透的入口。
误区Clean-Label 攻击和标注员手滑标错数据没什么区别,反正都是数据质量差,清洗一下就好。
正解两者有本质区别。标注错误是随机、无目的、特征不变的;Clean-Label 攻击是精心构造的——特征被定向扰动,向目标样本在特征空间中“靠拢”,还可能携带触发器,平时不发作、特定输入才触发。随机错误不会导致“特定目标样本稳定误判”,而 Clean-Label 攻击会。好比厨师偶尔手抖多放盐,和有人故意把糖醋比例调成“定点引爆”,是两回事。
为何常见:因为 Clean-Label 样本从标签到外观都“太正常了”,人们很容易把异常归因为普通的噪声。
误区模型在测试集上准确率没下降,就说明训练数据是安全的。
正解Clean-Label 攻击的目标是“特定输入上的错误输出”,而不是全面降低模型性能。攻击者只希望几个特定的目标样本被误判,其余样本保持正常,所以全局评测指标几乎不受影响。必须用触发器探针、特征空间分析和数据来源审计才能发现。就像一盘菜只有 VIP 顾客那桌会吃出怪味,其他客人品尝都正常——按“平均好评”来验收当然发现不了问题。
为何常见:大家习惯了“以准确率论模型好坏”的评估思路,忽略了攻击者可以精准打击局部、牺牲掉的那一点点全局性能完全可以忽略不计。
误区只要清洗管线过滤掉离群点,投毒攻击就彻底失效了。
正解离群过滤只能拦截“特征偏移明显”的毒样本。高明的攻击者会用低剂量投毒、在多个维度上微调、让毒样本落在正常分布的边缘,绕开距离检测。正确姿势是“清洗管线 + 来源审计 + 鲁棒聚合 + 持续监控”的纵深防御,任何单点防线都会被针对性绕过。餐厅里只靠一个品控员盯外观,永远防不住“高仿食材”。
为何常见:离群检测直观好用、见效快,容易让人产生“一招制敌”的错觉,忽视了攻击者也在不断进化。
面试题
Q1. 数据投毒攻击发生在机器学习流程的哪个环节?
- A.模型部署推理时
- B.训练数据收集时← 正确答案
- C.模型参数导出时
- D.用户接口调用时
答案:B。投毒攻击的核心是把恶意样本注入训练集,对应“训练数据收集与准备”环节,而非部署、导出或推理阶段。好比在食材入库环节掺沙子,而不是在出菜时动手脚。
Q2. Clean-Label 攻击中“干净标签”指的是什么?
- A.特征完全无扰动
- B.样本标签未改动← 正确答案
- C.数据来源可追溯
- D.模型输出无异常
答案:B。Clean-Label 的关键是“标签保持原始正确值”,只对特征做扰动,让样本看起来与正常标注无异。“干净”指的是标签干净,不是特征干净——菜名没换,食材却动了手脚。
Q3. 下列哪项是数据投毒攻击的根本目的?
- A.窃取模型训练参数
- B.操纵模型特定行为← 正确答案
- C.加速模型训练收敛
- D.压缩模型存储体积
答案:B。投毒的根本目的是通过污染训练数据,让模型表现出攻击者想要的行为——比如特定输入被误判、植入后门。窃取参数、加速训练、压缩体积都不是投毒的目标。
Q4. 投毒比例 ρ 对攻击效果与隐蔽性的影响是?
- A.比例越高攻击越强越易暴露← 正确答案
- B.比例与攻击效果完全无关
- C.比例越低攻击效果一定越好
- D.比例必须超过总样本半数
答案:A。ρ 是攻击的“剂量”:太小则毒样本被正常数据淹没、学不到坏规律;太大则样本分布畸变、离群检测容易发现。攻击者会权衡选一个“够用且不显眼”的比例,通常只有百分之零点几到几个百分点。
Q5. 检测投毒样本最常用的特征级方法是?
- A.梯度下降批量调参
- B.最近邻离群分析← 正确答案
- C.随机森林特征筛选
- D.数据增强扩充样本
答案:B。毒样本在特征空间中往往“不合群”,k 近邻平均距离(离群得分)能把它们和正常样本区分开。梯度调参、特征筛选、数据增强都不是针对“找毒样本”的检测手段。
Q6. 下列哪项属于数据清洗管线的标准工序?
- A.提高标注员工薪资
- B.剔除可疑离群样本← 正确答案
- C.增加模型网络层数
- D.压缩数据集存储格式
答案:B。清洗管线的核心是把不可信样本挡在训练集外,包括去重、离群过滤、边界复核、标签校验等工序。加层数、改存储格式不在清洗管线的职责范围内。
Q7. 与标签翻转攻击相比,Clean-Label 攻击隐蔽性更强,主要因为?
- A.特征扰动幅度非常微小← 正确答案
- B.攻击者身份高度保密
- C.使用加密通道传输数据
- D.选择在深夜发起攻击
答案:A。Clean-Label 攻击不改标签、扰动限制在肉眼和常规检查难以察觉的幅度内,人工审核时“图与标签自洽”,所以隐蔽。攻击者身份、传输方式、发起时间都不是隐蔽性的来源。
Q8. 下列哪些属于投毒攻击成立的必要条件?
- A.攻击者能向训练集注入样本← 正确答案
- B.模型部署环境完全开源
- C.训练数据来源不受信任← 正确答案
- D.攻击者掌握数据分布知识← 正确答案
答案:ACD。必要条件包括:能注入数据(入口)、数据来源未经验证(有机可乘)、攻击者了解数据分布或模型结构(投得准)。“模型部署环境开源”不是必要条件,攻击发生在训练阶段,与部署环境无关。
Q9. 以下哪些防御措施可以有效对抗投毒攻击?
- A.数据来源审计与血缘追踪← 正确答案
- B.鲁棒聚合剔除极端更新← 正确答案
- C.交叉验证评估各数据源← 正确答案
- D.模型剪枝压缩参数规模
答案:ABC。来源审计能定位可疑供应商,鲁棒聚合能防止单点毒梯度带偏全局,交叉验证能发现“引入某批数据后模型变差”。模型剪枝压缩参数规模与投毒防御无关。
Q10. 下列哪些步骤属于 Clean-Label 攻击的完整链路?
- A.构造特征扰动毒样本← 正确答案
- B.保持原始标签不修改← 正确答案
- C.混入训练集参与学习← 正确答案
- D.直接修改模型权重文件
答案:ABC。Clean-Label 攻击的链路是:构造扰动样本 → 保持标签 → 混入训练集 → 训练后触发。它属于数据供应链攻击,攻击者全程不触碰模型权重;“直接修改权重”是另一种攻击类型,不属于 Clean-Label。