想象你是学校食堂的负责人,每天要购进成吨的食材,交给中央厨房烹饪。你最怕两种暗中捣乱的人:第一种是“投毒者”,他在某一车蔬菜里掺入劣质或过量的东西,导致当天每一道菜都变味;第二种是“埋后门者”,他不碰正常食材,只是说服一个厨师记住一个暗号,只要戴红帽子的客人点餐,就悄悄加一颗致命花生,其他时候一切正常。在 AI 世界里,这两种威胁分别对应数据投毒攻击与后门攻击,它们都发生在“训练”这个烹饪阶段。二者都能让模型行为受损或受控,但“怎么渗透”“何时发作”“能否发现”大不相同。懂得如何区分、检测和防御它们,是保护 AI 供应链安全的关键。

岗位关联

学会后门与数据投毒的攻防对比,能帮你识别训练数据里的“毒”和模型中的“暗门”,在 AI 供应链安全评估、数据审计和模型可信度验证中快速定位风险。

目录
  1. 可视化演示
  2. 威胁同源:同一个中央厨房里的两种敌人
  3. 注入方式:下毒是给食材施咒,埋暗门是给菜单留机关
  4. 触发机制差异:暗号厨师 vs 变味大锅汤
  5. 检测难度:变味菜容易发现,暗号菜没人举报
  6. 防御策略:再教育厨师,还是清洗食材
  7. 训练管道安全加固:给中央厨房装多重锁
  8. 攻防对比总结:一张菜单看懂两种威胁
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示后门攻击触发器机制(正常输入正常输出/触发输入后门输出)、数据投毒对决策边界的影响及Neural Cleanse触发器逆向检测防御,切换模式理解AI安全攻防核心。

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

后门攻击:条件触发的隐藏行为 模型在正常输入上表现完全正常,但当输入包含预设触发器时产生攻击者指定的错误输出 触发器可以是可见像素补丁或不可见扰动模式,标准测试集准确率无法区分后门模型 clean input → normal output | trigger+input → backdoor output 后门攻击的隐蔽性使其成为AI安全最危险的威胁之一

威胁同源:同一个中央厨房里的两种敌人

回到食堂,无论是“投毒者”还是“埋后门者”,他们都有一个共同点:在食材进入炒锅之前就动了手脚,而不是等菜品上桌后再捣乱。AI 模型的“烹饪”就是训练阶段——模型从大量标注数据中习得规律。一切在训练前或训练中混入的恶意内容,都属于“训练阶段威胁”。

数据投毒和后门攻击共享同一个源头:不可信的训练数据或不可信的训练过程。投毒者通过向训练集注入带错误标签或精心构造特征的样本,改变模型优化目标;后门攻击者同样需要篡改训练数据,但会额外嵌入一个“触发器”,例如图像上的一个小补丁、一句话中的某个暗号词。

无论哪种方式,攻击最终都会反映到目标函数上。设正常训练损失为干净数据上的损失,恶意数据会带来额外的扰动项。

所以,食堂第一课是认清敌我同源——不管是下毒还是埋暗门,都要先混进食材供应链。这也是为什么“数据可信”是 AI 安全的第一道防线。

min⁡θ∑(x,y)∈DcleanL(fθ(x),y)+λ∑(x′,y′)∈DattackL(fθ(x′),y′)\displaystyle \min_{\theta} \sum_{(x,y)\in \mathcal{D}_{clean}} \mathcal{L}(f_\theta(x), y) + \lambda \sum_{(x',y')\in \mathcal{D}_{attack}} \mathcal{L}(f_\theta(x'), y')
公式通俗说明:第一项是让模型在正常数据上表现好,第二项是攻击者强行塞入的“坏账”;λ 越大,坏账对模型的影响越大。
  1. 干净样本损失模型在正常标注数据上的预测误差,希望它尽量小。
    ∑(x,y)∈DcleanL(fθ(x),y)\displaystyle \sum_{(x,y)\in \mathcal{D}_{clean}} \mathcal{L}(f_\theta(x), y)
  2. 攻击样本损失攻击者设计的数据也会参与训练,把模型往错误方向拉。
    ∑(x′,y′)∈DattackL(fθ(x′),y′)\displaystyle \sum_{(x',y')\in \mathcal{D}_{attack}} \mathcal{L}(f_\theta(x'), y')
  3. 扰动权重 λ控制恶意数据相对干净数据的“话语权”,投毒量越大或 λ 越强,模型越容易被带偏。
    λ∑(x′,y′)∈DattackL(fθ(x′),y′)\displaystyle \lambda \sum_{(x',y')\in \mathcal{D}_{attack}} \mathcal{L}(f_\theta(x'), y')

注入方式:下毒是给食材施咒,埋暗门是给菜单留机关

投毒者喜欢“广撒网”,他们往食材里掺假、过量加盐,让整锅菜都变味;而埋后门者讲究“精准钓鱼”,他不改大部分食材,只在特定客人点餐时按下机关。AI 中的对应是:数据投毒直接篡改训练样本的标签或特征,而后门攻击则是给样本加上一个触发器,并把这个触发器与目标错误标签绑定。

数据投毒最常见的做法是标签翻转或特征扰动。例如把一张猫的图片标成“狗”,模型就会被误导;更高级的投毒不改变标签,而是精心设计样本使梯度计算被操控,例如“梯度上升投毒”会诱导模型在某个方向上失效。后门攻击则通常用混合策略:将一部分正常样本“打补丁”成带触发器版本,同时把标签改成攻击者指定类别。

两种注入方式在数学上可以统一写成两种恶意样本的并集。后门样本由正常样本 x 加上触发器 δ 得到,并赋予目标标签 y_target;投毒样本则保留或微调特征 x_p,但使用错误标签 y_p。

区别就藏在“机关”里:后门需要特定开关,投毒不需要。后面我们会看到,这种差异直接决定了攻击什么时候爆炸、有多大动静。

Dattack={(x+δ,ytarget)}∪{(xp,yp)∣yp≠ytrue(xp)}\displaystyle \mathcal{D}_{attack} = \{ (x+\delta, y_{target}) \} \cup \{ (x_p, y_p) \mid y_p \neq y_{true}(x_p) \}
公式通俗说明:左边是后门的“机关样本”,右边是投毒的“坏标签样本”;两类都试图混入训练集。
  1. 后门样本构造给正常样本加上触发器 δ,比如在图片角落贴一个像素块。
    xtrigger=x+δ\displaystyle x_{trigger} = x + \delta
  2. 后门目标标签触发器样本被强制标为攻击者想要的类别 y_target。
    (x+δ,ytarget)\displaystyle (x+\delta, y_{target})
  3. 投毒样本集合特征保持近似甚至不变,但标签被改为与真实标签 y_true 不同的错误值。
    (xp,yp),yp≠ytrue(xp)\displaystyle (x_p, y_p),\quad y_p \neq y_{true}(x_p)

触发机制差异:暗号厨师 vs 变味大锅汤

一个用暗号,一个用毒药。后门触发是“条件反射”——只有当输入中出现某个特定模式(比如图片上的黄色方块、文本中的“急单”二字)时,模型才会输出攻击者预设的错误结果;平时它和普通模型并无区别。数据投毒则是“慢性毒药”——恶意样本改变了整个决策边界,模型在大量输入上都可能出错,甚至表现为某个类别整体失效。

后门攻击的这种条件性,让它成为“有目标攻击”的典型代表。攻击者精心设计触发器,使模型记忆住这个模式与错误标签的关联。数据投毒则更像“无差别破坏”:它通过影响梯度更新,让模型整体性能下降,或让特定用户群被系统性误判。

用数学语言表达:对后门模型 θ,存在触发器 δ,满足正常样本 x 时预测接近真实标签,但 x+δ 时预测为目标标签。对投毒模型 θ̂,其污染后的期望错误率显著高于干净模型的期望错误率。

一句话做菜总结:后门是“有暗号才上错菜”,投毒是“锅底已经烂了,做什么都带苦味”。这两种触发差异,决定了检测策略完全不同。

fθ(x+δ)=ytarget且fθ(x)≈ytrue;Ex[1{fθ^(x)≠y}]>Ex[1{fθ∗(x)≠y}]\displaystyle f_\theta(x+\delta)=y_{target} \quad\text{且}\quad f_\theta(x)\approx y_{true};\qquad \mathbb{E}_{x}\big[\mathbf{1}\{f_{\hat\theta}(x)\neq y\}\big] > \mathbb{E}_{x}\big[\mathbf{1}\{f_{\theta^*}(x)\neq y\}\big]
公式通俗说明:左边是“你有暗号就中招,没有暗号就正常”;右边是“整体错误率变高,菜怎么吃都不对劲”。
  1. 触发器条件预测有暗号时,模型必须输出攻击目标。
    fθ(x+δ)=ytarget\displaystyle f_\theta(x+\delta)=y_{target}
  2. 正常输入行为没有暗号时,模型输出应与真实标签一致。
    fθ(x)≈ytrue\displaystyle f_\theta(x)\approx y_{true}
  3. 投毒后错误率上升污染模型的期望错误率,大于未污染模型的错误率。
    Ex[1{fθ^(x)≠y}]>Ex[1{fθ∗(x)≠y}]\displaystyle \mathbb{E}_{x}\big[\mathbf{1}\{f_{\hat\theta}(x)\neq y\}\big] > \mathbb{E}_{x}\big[\mathbf{1}\{f_{\theta^*}(x)\neq y\}\big]

检测难度:变味菜容易发现,暗号菜没人举报

食堂里,食客吃到变味的菜会投诉,后厨也会因为口碑下滑而警觉;这正是数据投毒的弱点——它会让模型在验证集上的准确率明显下降。只要在训练过程中持续监控验证指标,投毒往往会在“出锅”前后暴露。

后门则狡猾得多。因为正常输入下模型表现完美,准确率、F1、AUC 样样正常,你根本无法通过性能指标发现它。要揪出后门,必须主动去猜暗号——也就是触发器逆向工程:反复搜索能让模型输出目标错误类别的最小输入扰动。

数据投毒的检测可以建模为异常样本过滤问题;后门检测则是一个优化问题:在输入空间中寻找触发模式,使模型在几乎所有样本上都输出攻击目标标签。

这就解释了为什么后门攻击在“检测难度”上比数据投毒高一个等级:投毒像汤里的沙子,肉眼可见;后门像密码锁,不主动试错很难发现。

min⁡δ L(fθ(x+δ), ytarget)s.t. ∥δ∥p≤ϵ\displaystyle \min_{\delta} \ \mathcal{L}\big(f_\theta(x+\delta),\ y_{target}\big) \quad \text{s.t.} \ \|\delta\|_p \le \epsilon
公式通俗说明:这像是在“试遍所有暗号”,找一个极小的扰动能让模型稳定地预测出攻击目标,从而确证后门存在。
  1. 搜索目标标签假设攻击目标是某类标签,检测器尝试让模型输出该标签。
    L(fθ(x+δ), ytarget)\displaystyle \mathcal{L}\big(f_\theta(x+\delta),\ y_{target}\big)
  2. 最小化扰动找一个输入改动尽量小的 δ,若存在,说明模型记住了触发器。
    min⁡δ L(fθ(x+δ),ytarget)\displaystyle \min_{\delta} \ \mathcal{L}(f_\theta(x+\delta), y_{target})
  3. 约束条件限制扰动大小,避免搜到无效的巨大噪声。
    ∥δ∥p≤ϵ\displaystyle \|\delta\|_p \le \epsilon

防御策略:再教育厨师,还是清洗食材

防投毒最直接的办法是“食材质检”——数据消毒。把所有待入库样本都过一遍安检,用异常检测算法剔除那些不符合分布、标签可疑的样本。这相当于有人在厨房门口拿探针测蔬菜上的农药残留。

防后门除了消毒,还需要“厨师再教育”——神经清洗。再教育厨师不是把配料全扔掉,而是对他进行额外训练:用一小批可信的干净数据微调模型,或者剪掉一些对触发器过度敏感的神经元,让模型忘掉暗号。第二种方式还有“蒸馏”:用干净模型当老师,逼着被污染的模型重新学习正常行为。

神经清洗是可验证的模型修复方法。它的目标是:在尽量保留原有能力的基础上,降低对恶意数据分布的记忆。对应的数学形式可以写成一个带正则项的最小化问题。

数据消毒负责把“问题食材”拦在门外,神经清洗负责把“问题厨师”改回正途。二者并非互斥,最好的食堂两道工序都要做。

θ′=arg⁡min⁡θ[L(fθ,Dtrusted)+η∥θ−θ0∥22]\displaystyle \theta' = \arg\min_{\theta} \Big[ \mathcal{L}(f_\theta, \mathcal{D}_{trusted}) + \eta \|\theta - \theta_0\|_2^2 \Big]
公式通俗说明:用可信数据重新训练,同时要求新模型不要偏离原模型太远,避免“忘记所有知识”。
  1. 可信数据损失在绝对可信的小批量干净数据上重新拟合,纠正错误映射。
    L(fθ,Dtrusted)\displaystyle \mathcal{L}(f_\theta, \mathcal{D}_{trusted})
  2. 近端正则项让 θ 尽量靠近原始参数 θ_0,避免灾难性遗忘。
    η∥θ−θ0∥22\displaystyle \eta \|\theta - \theta_0\|_2^2
  3. 整体更新方向求令这个组合损失最小的新参数,就是“清洗后”的模型。
    θ′=arg⁡min⁡θ[⋯ ]\displaystyle \theta' = \arg\min_{\theta} [\cdots]

训练管道安全加固:给中央厨房装多重锁

如果只盯着单个样本或单个厨师,总有漏网之鱼。真正稳妥的做法是在整个“从采购到出锅”的管道上加锁。对 AI 来说,这就是训练管道安全加固:从数据采集、清洗、打标,到模型训练、评估、发布,每个环节都要有可信性验证。

常见的加固手段包括:数据来源签名与哈希校验,确保训练集没有被中途调包;对标注平台做访问控制和审计日志,防止内鬼修改标签;训练容器运行在可信执行环境中,防止恶意代码篡改梯度;使用拜占庭鲁棒聚合,即使部分梯度更新异常,也不会带偏全局模型。

安全加固可以看作给每个环节加上“可信度校验”。一个常用的鲁棒聚合约束是:本轮更新的梯度 g_i 与平均梯度的距离不能超过阈值 τ。

多重锁的意义在于:即使某一环被突破(比如某个供应商被收买),异常也会在聚合层被发现并隔离。这就像中央厨房的每一道门都有监控,让坏东西进不来或进得少了。

∥gi−1k∑j=1kgj∥2≤τ\displaystyle \left\| g_i - \frac{1}{k}\sum_{j=1}^{k} g_j \right\|_2 \le \tau
公式通俗说明:食堂规定每个供应商的食材检测值必须离平均值不远;某个梯度和大家差太远,就有投毒嫌疑。
  1. 局部梯度每个训练节点返回的梯度,类似于每个供应商送来的样本。
    gi\displaystyle g_i
  2. 平均梯度所有本地梯度的均值,代表这轮训练的“共识”。
    1k∑j=1kgj\displaystyle \frac{1}{k}\sum_{j=1}^{k} g_j
  3. 可信阈值若差值的二范数超过 τ,则丢弃该梯度或降低其权重。
    ∥gi−1k∑j=1kgj∥2≤τ\displaystyle \left\| g_i - \frac{1}{k}\sum_{j=1}^{k} g_j \right\|_2 \le \tau

攻防对比总结:一张菜单看懂两种威胁

现在我们可以把两种威胁放在同一张菜单上。数据投毒是“原料有问题”,后门攻击是“配方有暗门”。前者通常导致全局性能下降,后者只在特定触发器下爆发;前者较易通过数据消毒缓解,后者更依赖神经清洗和触发器逆向。

但在实际攻防中,后门攻击和数据投毒经常相互交织——投毒样本可以作为后门的载体,后门攻击也可以被设计成一种“定向投毒”。因此做安全评估时,不能只防一种,要从威胁同源出发,把二者纳入统一的训练安全框架。

最终风险可以量化为一个综合式子:总体风险等于后门风险与投毒风险的加权和。其中 α、β 可以根据业务场景调整——如果是人脸认证系统,后门权重更高;如果是通用分类器,投毒权重更高。

菜单最终告诉我们:这两种敌人不是非此即彼,而是同一片土壤上长出的两种毒草。防御者需要既查食材又查暗号,才能让 AI 这口大锅端出真正可信的菜。

Rtotal=α⋅Pbackdoor+β⋅Ppoison\displaystyle \mathcal{R}_{total} = \alpha \cdot P_{backdoor} + \beta \cdot P_{poison}
公式通俗说明:安全负责人给两类威胁分别打分,再按业务敏感度加权,得到总体风险。
  1. 后门风险概率模型被植入触发器后门并成功被利用的概率。
    Pbackdoor\displaystyle P_{backdoor}
  2. 投毒风险概率训练数据被污染导致模型整体失效或定向误判的概率。
    Ppoison\displaystyle P_{poison}
  3. 业务权重α 和 β 分别表示后门和投毒在当前业务中的重要性。
    α, β≥0,α+β=1\displaystyle \alpha,\ \beta \ge 0,\quad \alpha + \beta = 1

AI 应用场景

AI供应链安全评估

阶段:模型采购与准入

解决的问题:企业从第三方厂商购买预训练模型或训练数据时,数据投毒和后门可能被封装在“黑盒”中,传统测试只看准确率无法察觉。AI 安全评估通过清洁验证集、触发器逆向搜索、数据消毒算法综合评估供应链批次风险。

具体案例:某金融公司采购人脸识别模型用于风控,厂商提供的模型在公开测试集上准确率 99%。安全团队用少量精标数据做微调测试,并尝试逆向搜索触发器,发现一个极小的人脸遮挡贴纸能让模型把任何人识别为“VIP”,从而及时拦截了供应商。

训练数据安全审计

阶段:数据清洗与标注质检

解决的问题:企业内部的数据标注平台可能被内鬼或外包标注员投毒,传统抽查无法覆盖海量数据。AI 使用异常检测和鲁棒统计为每个标注样本打分,自动标记偏离数据分布的样本。

具体案例:某自动驾驶团队在清洗 10 万张道路图像时,使用基于标签一致性和特征密度的消毒算法,筛出数百张被错误标注的“停车标志”,其中一部分在后门检测中被确认为恶意触发器样本。

模型可信度验证与训练加固

阶段:模型上线前验证与训练过程加固

解决的问题:上线前需要判断“模型是否被植入后门”,训练过程中又要防止投毒梯度生效。AI 使用神经清洗和拜占庭鲁棒聚合实现训练加固。

具体案例:某云计算平台的推荐系统训练采用多节点分布式学习,在聚合阶段应用梯度距离阈值过滤。上线前用干净数据微调模型并剪枝,去除可疑神经元,最终通过安全验收。

Python 演示

python88 行
import numpy as np  class SecureTrainer:    """A tiny binary classifier to compare poisoning and backdoor attacks."""     def __init__(self, seed=42):        self.rng = np.random.default_rng(seed)        self.theta = None        self.backdoor_trigger = np.array([1.0, -1.0]) * 0.8     @staticmethod    def add_bias(X):        return np.hstack([np.ones((X.shape[0], 1)), X])     def sigmoid(self, z):        return 1.0 / (1.0 + np.exp(-np.clip(z, -20, 20)))     def fit(self, X, y, lr=0.1, epochs=50):        Xb = self.add_bias(X)        self.theta = np.zeros(Xb.shape[1])        for _ in range(epochs):            grad = (self.sigmoid(Xb @ self.theta) - y) @ Xb            self.theta -= lr * grad / len(y)     def predict(self, X):        return (self.sigmoid(self.add_bias(X) @ self.theta) > 0.5).astype(int)  def make_toy_data():    rng = np.random.default_rng(0)    X = np.vstack([        rng.normal([-2, 0], 0.6, size=(30, 2)),        rng.normal([2, 0], 0.6, size=(30, 2)),    ])    y = np.array([0] * 30 + [1] * 30)    return X, y  def inject_poison(X, y, poison_ratio=0.3):    rng = np.random.default_rng(1)    n = int(len(y) * poison_ratio)    idx = rng.choice(np.where(y == 0)[0], size=n, replace=False)    Xp = X.copy()    yp = y.copy()    Xp[idx] += rng.normal(0, 1.2, size=(n, 2))    yp[idx] = 1    return Xp, yp  def inject_backdoor(X, y, trigger):    Xb = np.vstack([X, X[:10] + trigger])    yb = np.concatenate([y, np.ones(10)])    return Xb, yb  def main():    X, y = make_toy_data()    clean_model = SecureTrainer()    clean_model.fit(X, y)     Xp, yp = inject_poison(X, y)    poison_model = SecureTrainer()    poison_model.fit(Xp, yp)     Xb, yb = inject_backdoor(X, y, clean_model.backdoor_trigger)    backdoor_model = SecureTrainer()    backdoor_model.fit(Xb, yb)     print("clean model acc %.3f" % np.mean(clean_model.predict(X) == y))    print("poisoned model acc %.3f" % np.mean(poison_model.predict(X) == y))     normal_acc = np.mean(backdoor_model.predict(X) == y)    trigger_x = X[:10] + clean_model.backdoor_trigger    attack_succ = np.mean(backdoor_model.predict(trigger_x) == 1)    print("backdoor normal acc %.3f" % normal_acc)    print("backdoor attack success %.3f" % attack_succ)     cleaned = SecureTrainer()    cleaned.fit(X, y)    cleaned.theta = backdoor_model.theta    cleaned.fit(X, y, epochs=5, lr=0.05)    print("cleaned normal acc %.3f" % np.mean(cleaned.predict(X) == y))    print("cleaned attack success %.3f" % np.mean(cleaned.predict(trigger_x) == 1))  if __name__ == "__main__":    main()
目的:用可运行的逻辑回归模拟,直观对比“数据投毒导致整体准确率下降”和“后门触发器导致定向错误”,并展示神经清洗的修复效果。
  1. def fit(self, X, y, lr=0.1, epochs=50)用梯度下降训练一个最简单的二分类模型,模拟训练阶段的参数更新。
  2. Xp[idx] += rng.normal(0, 1.2, size=(n, 2))对部分负类样本做特征扰动,模拟投毒者通过改变特征分布来污染模型。
  3. yp[idx] = 1翻转选中样本的标签,这是最基础的数据投毒方式。
  4. Xb = np.vstack([X, X[:10] + trigger])构造带触发器的后门样本,相当于在正常样本上贴了一个“暗号”。
  5. yb = np.concatenate([y, np.ones(10)])给所有触发器样本都标为目标类,让模型记住“暗号→目标类”的映射。
  6. cleaned.theta = backdoor_model.theta把被污染模型的参数复制给新模型,作为神经清洗的起点。
  7. cleaned.fit(X, y, epochs=5, lr=0.05)用干净数据微调,让模型逐渐忘记后门触发器的影响。

常见误区

误区我一直以为后门攻击就是数据投毒,都是往训练数据里塞脏数据,没什么区别。

正解两者都发生在训练阶段,但后门攻击需要精心设计触发器,并在触发时才生效;数据投毒通常直接破坏整体性能,或让模型在特定分布上失效。就像往汤里加盐是投毒,而在菜单里藏暗号是后门,不能画等号。

为何常见:因为很多攻击案例里后门是通过投毒样本植入的,两者经常同时出现,初学者容易混淆。

误区数据投毒不是只能让 AI 变傻吗?它怎么可能像后门一样精确地让某个人被误判?

正解投毒也可以做定向攻击,比如“清洁标签攻击”,攻击者在不改变标签的情况下微调样本特征,使模型在某个小群体上系统性出错。它和后门的区别更多在于是否依赖触发器,而非攻击是否可定向。

为何常见:教科书常把投毒描述为随机标签翻转,让人以为它只能造成全局性能下降。

误区我负责的模型在测试集上准确率 99%,所以它肯定没有被攻击。

正解后门攻击的特点恰恰是“带病工作”:没有触发器时表现完美,一遇到特定模式就出错。只靠验证集准确率无法发现后门,必须进行触发器逆向搜索、神经元分析或神经清洗验证。

为何常见:因为后门被设计成高隐蔽性,性能指标是攻击者刻意维护的“正常面具”。

误区只要用数据消毒把异常样本过滤掉,就一劳永逸了。

正解数据消毒擅长识别分布异常的投毒样本,但对精心设计的后门触发器不一定有效——因为触发器样本可能伪装得和正常样本几乎一样,甚至完全符合分布。需要配合神经清洗、剪枝和供应链审计,多道防线缺一不可。

为何常见:消毒算法在检测简单标签翻转时效果显著,容易让人产生“万能”错觉。

面试题

Q1. 后门攻击与数据投毒攻击最核心的差异是什么?

单选题 · mid

  • A.投毒只在特定触发时生效
  • B.后门只在特定触发时生效← 正确答案
  • C.后门攻击不影响模型输出
  • D.投毒攻击需要触发器设计

答案:B。后门攻击的核心特征是需要触发器激活,没有触发器时模型完全正常;而数据投毒一般通过污染数据直接影响模型整体行为,不需要额外开关。C 选项错误在于后门攻击当然会影响模型输出,只是影响发生在特定条件下。

Q2. 数据投毒攻击主要通过什么方式干扰训练?

单选题 · easy

  • A.给输入样本添加触发器
  • B.修改训练集的标签或特征← 正确答案
  • C.在推理阶段注入恶意代码
  • D.调整模型超参数设置

答案:B。数据投毒发生在训练阶段,核心手段是修改训练样本的标签或特征,进而扰动梯度更新。添加触发器属于后门攻击的注入方式;推理阶段注入恶意代码属于对抗攻击,不是数据投毒。

Q3. 后门攻击中的“触发器”相当于食堂比喻中的什么?

单选题 · easy

  • A.变味的食材
  • B.食堂里的暗号← 正确答案
  • C.超标的食盐
  • D.厨房的门锁

答案:B。后门攻击平时表现正常,只有遇到特定触发器才被激活,就像食堂里只有暗号出现时厨师才会端出特殊菜。变味食材和超标食盐对应数据投毒的全局影响,厨房门锁对应安全加固。

Q4. 下列哪项属于数据投毒的检测或防御手段?

单选题 · mid

  • A.触发器逆向工程
  • B.数据消毒与鲁棒聚合← 正确答案
  • C.提升模型训练轮数
  • D.修改对抗训练权重

答案:B。数据消毒通过异常检测过滤问题样本,鲁棒聚合通过梯度约束抵抗投毒,都是针对数据投毒的典型手段。触发器逆向工程针对的是后门攻击,增加训练轮数可能适得其反。

Q5. 神经清洗为什么能抵御后门攻击?

单选题 · mid

  • A.它会删除所有带触发器的样本
  • B.它用可信数据微调让模型忘记暗号← 正确答案
  • C.它直接把模型权重置为零
  • D.它在推理前扫描输入中的暗号

答案:B。神经清洗用少量可信干净数据微调被污染的模型,并辅以正则约束,让模型逐渐遗忘触发器与错误标签的关联。删除样本是数据消毒的思路;清空权重会导致模型完全失效。

Q6. 关于后门攻击的隐蔽性,下列说法正确的是?

单选题 · hard

  • A.训练时模型准确率明显下降
  • B.无触发器时模型表现与正常无异← 正确答案
  • C.后门只影响训练集样本
  • D.后门只能被人工发现

答案:B。后门攻击的隐蔽性恰恰体现在“无触发器时模型表现正常”,因此性能指标失效。后门不仅影响训练集样本,也会影响任何携带触发器的真实输入。检测后门需要逆向工程等自动化方法,不限于人工。

Q7. 触发器逆向工程的核心思想是?

单选题 · hard

  • A.寻找输出目标类的最小扰动← 正确答案
  • B.寻找输出正确类的最强扰动
  • C.删除模型中贡献最大的神经元
  • D.将所有训练样本混合噪声

答案:A。触发器逆向工程会搜索一个极小的输入扰动,使模型稳定输出目标错误类别,从而证明后门存在。B 选项方向相反;C 选项是剪枝类防御;D 选项与后门检测无关。

Q8. 下列哪些属于训练阶段的安全威胁?

多选题 · easy

  • A.后门攻击← 正确答案
  • B.数据投毒← 正确答案
  • C.网络钓鱼
  • D.提示词注入

答案:AB。后门攻击和数据投毒都发生在训练阶段,通过污染训练过程影响模型。网络钓鱼属于社会工程学攻击,提示词注入发生在推理阶段,都不属于训练阶段威胁。

Q9. 针对数据投毒与后门攻击,正确的说法有哪些?

多选题 · mid

  • A.两者都利用训练数据← 正确答案
  • B.投毒通常影响整体性能← 正确答案
  • C.后门攻击不需要触发器
  • D.神经清洗可修复部分后门← 正确答案

答案:ABD。两者都发生在训练阶段,都可能利用训练数据;投毒通常导致模型整体性能下降;神经清洗可以用干净数据微调修复部分后门。后门攻击恰恰需要触发器,C 选项错误。

Q10. 训练管道安全加固可以包含哪些措施?

多选题 · extreme

  • A.数据来源签名与哈希校验← 正确答案
  • B.训练容器可信执行环境← 正确答案
  • C.拜占庭鲁棒梯度聚合← 正确答案
  • D.将模型权重全部重新置零

答案:ABC。数据来源校验保证训练集未被调包,可信执行环境防止恶意代码篡改训练过程,鲁棒聚合限制异常梯度影响,都是训练管道加固的常见手段。将模型权重全部置零不是防御,会导致模型彻底失效。