想象你是一座写字楼的物业经理。前任保安队长离职前,给你留下一位“训练有素”的门卫,说他能在成千上万的访客中一眼认出危险人物。可你深夜翻看培训记录,却看到一行小字:“该门卫的培训数据由外包公司提供,未经过审计。”你立刻意识到:这位门卫也许暗中学会了一组秘密手势,只要访客做出某个动作,他便会无差别放行。找出这个动作、量化它有多容易被利用,就是后门攻击评估要干的活。在 AI 世界,门卫就是模型,秘密手势就是触发器。训练阶段被污染的数据或权重,让模型平时看来一切正常,一遇到特定触发器就输出攻击者指定的结果。这篇文章会带你用“门卫体检”的思路,从威胁模型、评估指标、触发器形态,一路走到工程化流程和未来挑战,帮你在模型上线前把把关。

岗位关联

掌握后门攻击评估方法,你将具备在模型上线前识破隐蔽风险的能力,成为 AI 安全与数据可信层的核心观察者。

目录
  1. 可视化演示
  2. 威胁模型评估
  3. 关键评估指标
  4. 触发器类型
  5. 评估技术路径
  6. 测试集构建
  7. 工程评估流程
  8. 评估挑战与标准
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示后门攻击的四维评估指标雷达图,以及不同攻击方案与防御策略的对抗效果矩阵。

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

四维评估指标雷达 攻击成功率:触发器激活后门的比例 隐蔽性:干净数据精度保持与触发器不可见性 鲁棒性:防御干预下后门的存活能力 overall = (success + stealth + robustness) / 3 综合评分需平衡三个维度。

威胁模型评估

假设你刚接任某写字楼的物业经理,前任留下一位门卫,说“训练有素,非常靠谱”。但新来的保安队长提醒你:这位门卫是由外部承包商培训的,你根本不知道承包商有没有在培训中给他塞过什么“隐藏口令”。后门攻击评估的第一步,就是先弄清楚最坏情况是什么:承包商能碰哪些地方?他的目的是偷放某个人进去,还是在特定时间让所有人进去?这就是威胁模型。

在深度学习中,“门卫”就是模型,“隐藏口令”就是触发器。攻击者可能通过污染训练数据、直接修改模型权重、甚至只利用模型对外接口来植入后门。评估开始前,我们必须明确攻击者掌握哪些权限:他是白盒高手还是黑盒探子?他的目标标签是什么?这些假设决定了我们要不要检查训练集、要不要检查权重,以及测试集里应该放多少种“道具”。

一个完整的威胁模型要描述攻击者的注入能力、可操作的数据比例、目标类别和预期触发形态。评估边界则是基于这些假设划定测试范围。因为在真实世界中,攻击者可以设计任意形状的扰动,如果不对威胁模型做出约束,评估就会变成无限枚举,无法落地。因此,评估报告中通常先写一句“本报告覆盖以下威胁模型”,让读者快速了解防线的前提。

威胁模型就是体检前的“问诊”。你不必一开始就把所有可能疾病都查一遍,但要先确认患者的活动范围和风险环境,才能给门卫体检开出正确的检查单。

f(x+δ)=y∗,f(x)=ytruef(x+\delta)=y^*,\quad f(x)=y_{\text{true}}
这个式子说明:同一个模型,在正常输入 $x$ 时给出正确预测 $y_{\text{true}}$;一旦输入端加入攻击者精心构造的 $\delta$,模型就会输出目标标签 $y^*$。评估者的任务,正是找到这个“一旦”。
  1. 正常输入 $x$表示门卫面前走来的一位普通访客,没有携带任何可疑徽章。
    x∈Dcleanx \in \mathcal{D}_{\text{clean}}
  2. 触发器 $\delta$攻击者设计的“暗号”,可能是一个小补丁、一段噪声,甚至一个语义属性。
    δ∈Δ\delta \in \Delta
  3. 目标标签 $y^*$攻击者想要模型输出的结果,相当于门卫错放的访客类型。
    y∗≠ytruey^* \neq y_{\text{true}}
  4. 后门判定如果一个模型只在 $x+\delta$ 时输出目标标签,而 $x$ 时正常,就称得上存在可疑后门。
    f(x+δ)=y∗  ∧  f(x)=ytruef(x+\delta)=y^* \;\wedge\; f(x)=y_{\text{true}}

关键评估指标

门卫体检报告上不会写“安全”两个字,只会有“平时放行率”“遇到某类访客时放行率”。在模型体检中,这两个数字分别是干净准确率和攻击成功率。

干净准确率(Clean Accuracy,ACC)衡量门卫在没有暗号输入时的正常判断能力;攻击成功率(Attack Success Rate,ASR)则考察当输入带上了攻击者准备的“徽章”时,模型有多大比例会放行指定目标标签。

实践里,我们通常把 ACC 和 ASR 放在一起看:ACC 很高而 ASR 也很高,这是最危险的信号——平时表现正常,一遇暗号立刻被利用。ACC 很高但 ASR 很低,说明该模型在测试覆盖的触发条件下没有发现后门,但仍不能断言绝对安全。此外,还可以引入干净样本与触发样本之间的“准确率下降幅度”和“最小扰动范数”来丰富指标。

一张只标着 ASR=0.1% 的体检单并不可信,还要看 ACC 有没有被刻意拉低、触发空间是否太窄。好指标是防伪的。

ACC=\frac{1}{|\mathcal{D}_{\text{clean}}|}\sum_{i=1}^{|\mathcal{D}_{\text{clean}}|}\mathbb{1}[f(x_i)=y_i],\quadASR=\frac{1}{|\mathcal{D}_{\text{trig}}|}\sum_{i=1}^{|\mathcal{D}_{\text{trig}}|}\mathbb{1}[f(x_i+\delta_i)=y^*]
这两个公式概括了后门评估中最核心的两个数字:日常准确率和触发命中率。二者必须联合解读,不能只看其中一个。
  1. 干净测试集 $\mathcal{D}_{\text{clean}}$从正常数据分布中抽取的样本集合,用来检验门卫的日常出勤表现。
    xi∼D,yi 为真实标签x_i \sim \mathcal{D},\quad y_i \text{ 为真实标签}
  2. 指示函数 $\mathbb{1}[\cdot]$当条件成立时取 1,否则取 0,用来统计“放对”和“放错”的次数。
    1[f(xi)=yi]={1,f(xi)=yi0,其他\mathbb{1}[f(x_i)=y_i]=\begin{cases}1,& f(x_i)=y_i\\0,& \text{其他}\end{cases}
  3. 触发测试集 $\mathcal{D}_{\text{trig}}$每个样本都被施加触发器 $\delta_i$ 后的数据集,模拟携带“徽章”的访客集合。
    Dtrig={(xi+δi,y∗)}\mathcal{D}_{\text{trig}}=\{(x_i+\delta_i,y^*)\}
  4. 平均含义ACC 和 ASR 都是经验频率,反映门卫在两类场景下的“放行率”。
    ACC,ASR∈[0,1],数值越高风险越需关注\text{ACC},\text{ASR} \in [0,1] \text{,数值越高风险越需关注}

触发器类型

门卫的“徽章”可以藏在外套上、贴在文件背面,也可以是访客的某种语气和措辞。触发器在 AI 中同样有千变万化的形态。

根据可视形态,触发器可以分成像素级、对象级和语义级。像素级是最经典的:在输入图像的固定位置放一个小补丁,或者叠加全局噪声;对象级则把触发器做成口罩、墨镜、特定标签等真实物体;语义级则根本不修改图像,而是通过改变场景中某个物体、天气或语义属性来激活后门。

评估者需要理解触发器生成的一般表达式:掩码 $m$ 决定在哪里放扰动,$\delta$ 决定扰动内容。如果只测固定位置的小方块,就可能漏掉全局噪声和语义触发器。因此,“触发器类型覆盖”应成为评估方案的必选项。

就像给门卫的“徽章”做分类百科,评估者必须带着这本百科去现场辨认。

x′=(1−m)⊙x+m⊙δx' = (1-m)\odot x + m\odot \delta
其中 $m$ 是 0/1 掩码,$\odot$ 表示逐元素相乘。这个公式用一个式子概括了“在哪里”和“放什么”的叠加过程。
  1. 掩码 $m$ 表示位置$m=1$ 的是被替换的区域,$m=0$ 的是保留的区域。
    m∈{0,1}C×H×Wm \in \{0,1\}^{C\times H\times W}
  2. 正常像素保留$(1-m)\odot x$ 让触发器不覆盖的地方保持原样。
    (1−m)ij=1−mij(1-m)_{ij}=1-m_{ij}
  3. 扰动注入$m\odot \delta$ 只在掩码区域引入攻击者控制的信号。
    xij′=xij if mij=0;xij′=δij if mij=1x'_{ij} = x_{ij}\ \text{if}\ m_{ij}=0;\quad x'_{ij}=\delta_{ij}\ \text{if}\ m_{ij}=1
  4. 评估启示因为 $\delta$ 可以取任意值,触发器不必是明显的像素块,评测时要覆盖掩码的合理空间。
    ∣Δ∣≫测试集大小|\Delta| \gg \text{测试集大小}

评估技术路径

要想找出隐藏口令,我们既会翻看门卫的背包(模型权重),也会用各种话术刺激他开口(输入探测)。后门检测的技术路径大致有几条。

特征分析会进入神经网络内部,观察神经元对特定输入的激活模式。神经净化(Neural Cleanse)则采用触发反转:固定目标标签,反向生成最小扰动,看看一个很小的 $\delta$ 能否让模型输出目标类别。毒化检测则回到训练集层面,通过统计异常或聚类识别被投毒的样本。

实际评估中这些路径往往互相组合。触发反转给出的公式是一类单样本目标函数——我们寻找最小最隐蔽的扰动,使模型误判。如果发现一个非常小的 $\delta$ 就能改变模型输出,那就高度怀疑存在后门;反之则需要继续扩大搜索范围。

这条路径就像给门卫做完一系列心理测试后,把得到的“暗号”拼图交给证据链。

min⁡δL(f(x+δ),y∗)+λ∥δ∥1\min_{\delta} \mathcal{L}(f(x+\delta), y^*) + \lambda\|\delta\|_1
这个目标函数在平衡两个目标:让模型输出目标类别,同时让触发器尽量小、尽量隐蔽。
  1. 决策损失项 $\mathcal{L}$衡量“加上触发器后,模型输出离目标标签有多远”。
    L(f(x+δ),y∗)\mathcal{L}(f(x+\delta), y^*)
  2. 最小化我们希望找到攻击者可能使用的最小扰动。
    min⁡δ L(⋅)\min_{\delta}\ \mathcal{L}(\cdot)
  3. 稀疏正则项 $\|\delta\|_1$L1 范数鼓励扰动集中于少数像素,反映真实攻击者希望触发器足够隐蔽。
    ∥δ∥1=∑ij∣δij∣\|\delta\|_1=\sum_{ij}|\delta_{ij}|
  4. 权衡系数 $\lambda$$\lambda$ 控制“隐蔽性”和“有效性”的优先级,太小容易搜出大噪声,太大可能找不到触发。
    λ∈(0,1)\lambda \in (0,1)

测试集构建

体检如果只做一项抽血,就很难发现隐藏疾病。后门评估也一样,测试集需要多种“剧本”:正常访客、带徽章访客,还有故意制造混乱的极端访客。

测试集的构建分为三个独立子集:干净测试集用于计算 ACC;触发测试集在每个样本上注入一种或多种候选触发器,用于计算 ASR;扰动测试集则加入常见的对抗扰动(如少量噪声、旋转、亮度变化),用于测试在轻微变化下后门是否依然稳定存在。三者的规模、来源和标注都必须提前记录。

为什么要加入扰动测试集?因为真实世界攻击者可能把触发器做成多尺寸、多透明度或多旋转变体。如果只测一个固定 patch,ASR 会失真;加入扰动子集能覆盖触发器变形造成的触发空间,提升评估鲁棒性。

剧本越丰富,门卫体检单的说服力就越强。

Dtest=Dclean∪Dtrig∪Dperturb\mathcal{D}_{\text{test}} = \mathcal{D}_{\text{clean}} \cup \mathcal{D}_{\text{trig}} \cup \mathcal{D}_{\text{perturb}}
这里的并集提醒我们:评估必须同时包含日常表现、触发注入和干扰变化三类数据,缺一不可。
  1. 干净子集 $\mathcal{D}_{\text{clean}}$真实分布中的原始数据,构成门卫日常基准。
    Dclean={(xi,yi)}i=1nc\mathcal{D}_{\text{clean}}=\{(x_i,y_i)\}_{i=1}^{n_c}
  2. 触发子集 $\mathcal{D}_{\text{trig}}$给干净样本加上一个或多个触发器,并标注目标类别。
    Dtrig={(xi+δi,y∗)}i=1nt\mathcal{D}_{\text{trig}}=\{(x_i+\delta_i,y^*)\}_{i=1}^{n_t}
  3. 扰动子集 $\mathcal{D}_{\text{perturb}}$对干净样本或触发样本做微小变换,模拟现实中识别器遇到的各种光照、旋转变化。
    Dperturb={T(xi)}i=1np\mathcal{D}_{\text{perturb}}=\{T(x_i)\}_{i=1}^{n_p}
  4. 并集意义测试报告必须注明三个子集的比例,否则外人无法判断 ASR 是否有代表性。
    nc:nt:np 需要在报告中给出n_c:n_t:n_p \text{ 需要在报告中给出}

工程评估流程

物业给门卫做体检,不会只让门卫自己填写“我很好”,而是要送到独立体检中心,按固定流程抽血、B超、心电图。后门评估同样需要流程化、自动化和可复现性。

工程流程通常分四步:一是基线建立,用一个已知无后门的模型在相同测试集上跑一遍,得到 ACC/ASR 基准;二是自动化扫描,用脚本检查多种触发器模板和检测算法;三是报告生成,输出干净准确率、攻击成功率、触发样本示例和风险等级;四是修复验证,对疑似后门模型做再训练或剪枝后,重新执行全套评估流程。

一个可执行的部署标准形如:当 ASR 低于某个阈值 $\alpha$ 且 ACC 高于阈值 $\beta$ 时,模型才能进入试用。但这个阈值必须事先与业务方商定,并写在安全评估规范中,不能等报告出来再解释。

流程的意义不是把所有门卫都裁掉,而是让每个门卫都拿到一份可追溯、可复核的体检单。

Pass  ⟺  (ASR≤α)∧(ACC≥β)\text{Pass} \iff (ASR \le \alpha) \wedge (ACC \ge \beta)
这条判断式把“安全”约束为两个数字必须同时满足,是工程评估中最常见的放行规则。
  1. 攻击成功率上限 $\alpha$$\alpha$ 通常设为 1%~5%,表示在触发测试集中最多允许出现多少比例的“放行”。
    ASR≤αASR \le \alpha
  2. 干净准确率下限 $\beta$$\beta$ 通常接近业务要求,例如 95%,防止为了掩盖后门而砍掉模型正常能力。
    ACC≥βACC \ge \beta
  3. 与 $\wedge$ 表示“同时”两个条件缺一不可,避免单指标投机。
    (ASR≤α) AND (ACC≥β)(ASR\le\alpha)\ \text{AND}\ (ACC\ge\beta)
  4. 工程意义公式虽然简单,却要求我们在测试集、触发模板和阈值上达成一致,否则“通过”只是空话。
    α,β 需要白纸黑字写进安全规范\alpha,\beta \text{ 需要白纸黑字写进安全规范}

评估挑战与标准

最狡猾的门卫不会戴显眼的红徽章,他可能只对穿某种颜色鞋子的人眨一下眼。评估者也必须承认:我们永远看不到所有可能的暗号。

因此,后门评估存在天然的盲区:第一,攻击者可能使用评估者未知的触发空间;第二,黑盒模型无法直接查看参数和激活,只能通过大量输入输出推测;第三,测试集和指标本身也可能存在偏差。业界正在尝试构建统一的评估基准,推动可复现、可比较的测试方案,但迄今还没有一个公认标准覆盖全部攻击类型。

在未来,评估需要结合训练数据审计、动态输入探测、可解释性分析和红队对抗,把安全测试从一次性的“体检”变成持续性的“健康监测”。

没有哪个体检中心敢承诺“永不生病”,但他们能告诉你:风险敞口在哪里,监控指针何时拨响。

max⁡δ:∥δ∥p≤ϵ1[f(x+δ)≠y]\max_{\delta: \|\delta\|_p \le \epsilon} \mathbb{1}[f(x+\delta) \neq y]
这个式子表示:在扰动大小不超过 $\epsilon$ 的约束下,最坏情况下模型是否会被带偏。它提醒我们,安全评估必须考虑最坏情况,而不只是平均值。
  1. 扰动预算 $\epsilon$攻击者可能被限制在一个小范围内修改输入,$\epsilon$ 决定他能隐藏多大的触发器。
    ∥δ∥p≤ϵ\|\delta\|_p \le \epsilon
  2. 最坏情况最大化$\max$ 表示找能使模型出错的“最差扰动”,是评估覆盖盲区的一种形式。
    max⁡δ∈Δ\max_{\delta \in \Delta}
  3. 错误指示函数$\mathbb{1}[f(x+\delta) \neq y]$ 为 1 表示模型被带偏,为 0 表示仍正确。
    f(x+δ)≠yf(x+\delta) \neq y
  4. 评估含义如果很小扰动就会让模型出错,说明模型存在潜在漏洞,值得进一步做后门检测。
    ϵsmall⇒需要人工复核\epsilon_{\text{small}} \Rightarrow \text{需要人工复核}

AI 应用场景

场景 1:人脸识别模型上线前排查

阶段:部署前安全评估

解决的问题:人脸通行系统如果被植入“红外小徽章”,小偷戴一个图案就能无限开门。传统做法只测识别准确率,无法发现后门。AI 评估方案用触发反转和特征聚类扫描后门,输出 ASR/ACC 风险报告。

具体案例:某企业内测门禁模型时,在测试数据中加入一副特制眼镜,模型立刻把陌生人识别为 CEO;安全团队立即禁止上线,并返工重训。

场景 2:第三方预训练模型购买准入

阶段:供应链合规评估

解决的问题:团队为了省时间买来开源预训练模型,但没有公开训练集,无法判断是否被投毒。评估方案用黑盒触发搜索和干净测试集交叉验证,帮助产品团队决定是否集成。

具体案例:某银行 NLP 团队采购一个文本分类模型作为风控底座,用少量种子文本加上规则噪声探测,发现一个“英文引号+日期”的触发会导致贷款审批错误分类,采购评审因此否决。

Python 演示

python62 行
import numpy as np  class BackdoorEvaluator:    """对已训练模型做最小后门评估"""     def __init__(self, predict_fn, clean_data, clean_labels, target_label):        self.predict_fn = predict_fn        self.clean_data = clean_data        self.clean_labels = clean_labels        self.target_label = target_label     def clean_accuracy(self):        preds = self.predict_fn(self.clean_data)        preds = np.asarray(preds)        labels = np.asarray(self.clean_labels)        return float(np.mean(preds == labels))     def build_trigger_set(self, trigger_slice, size):        trojan = np.copy(self.clean_data[:size])        r0, c0, r1, c1 = trigger_slice        trojan[:, r0:r1, c0:c1, 0] = 1.0        return trojan     def attack_success_rate(self, trigger_slice, size):        trojan = self.build_trigger_set(trigger_slice, size)        preds = np.asarray(self.predict_fn(trojan))        return float(np.mean(preds == self.target_label))     def evaluate(self, trigger_slice, size=200):        acc = self.clean_accuracy()        asr = self.attack_success_rate(trigger_slice, size)        risky = (acc > 0.8) and (asr > 0.1)        return {            "clean_accuracy": acc,            "attack_success_rate": asr,            "risky": risky,        }  def backdoored_model(images):    preds = []    for img in images:        patch = img[2:6, 2:6, 0]        if patch.mean() > 0.8:            preds.append(1)        else:            preds.append(0)    return np.array(preds)  def main():    rng = np.random.default_rng(42)    images = rng.normal(0.2, 0.1, (300, 10, 10, 3))    labels = [0 for _ in range(300)]    evaluator = BackdoorEvaluator(backdoored_model, images, labels, target_label=1)    report = evaluator.evaluate(trigger_slice=(2, 2, 6, 6))    print(report)  if __name__ == "__main__":    main()
目的:构建一个小型后门评估器,测量模型的干净准确率与攻击成功率,并输出是否可能被植入后门的风险标记。
  1. class BackdoorEvaluator:定义一个评估工具类,对应“门卫体检中心”的角色。
  2. clean_accuracy计算模型在干净样本上的日常准确率。
  3. build_trigger_set在样本指定区域注入红色像素块,模拟攻击者放置的“徽章”。
  4. attack_success_rate计算携带触发器样本被识别为目标标签的比例。
  5. risky = (acc > 0.8) and (asr > 0.1)用简单阈值判断该模型是否存在可疑后门。
  6. backdoored_model模拟一个被植入后门的模型:看到红色补丁就输出标签 1。
  7. main生成随机数据并执行完整评估流程,输出风险报告。

常见误区

误区我一直以为后门攻击一定发生在训练数据环节。只要我自己收集、清洗数据,不要引入毒样本,模型就不会有后门了。

正解不对,攻击者还可以在模型权重、网络结构或部署环境中植入后门;甚至可以通过微调中注入恶意梯度来修改模型行为。评估者必须同时审查训练链条和发布前权重,不能只盯着数据管道。

为何常见:因为经典后门论文最常见的故事就是数据投毒,所以初学者容易把数据投毒等同于后门攻击的全部。

误区模型在测试集上准确率高达 99%,业务方就很放心,认为不可能有后门。

正解后门的第一要求正是隐蔽性:平时输入样本不被触发,干净准确率自然很高。真正的评估要专门构造触发样本,观察是否存在暗号。ACC 高只能说明日常出勤不错,不能证明没有隐藏口令。

为何常见:我们的直觉是用基准测试准确率判断模型好坏,但后门攻击恰恰是在“好模型”上掩盖的。

误区我测试了 1000 个触发样本,攻击成功率只有 0.5%,所以模型一定没有后门。

正解ASR 低只代表当前测试的触发器和数据集没有命中,不代表所有触发器都无效。触发器的掩码、尺寸、透明度、语义都可以千变万化,评估覆盖有限时,不能把“没测出来”说成“不存在”。

为何常见:因为攻击成功率是最直观、最容易计算的指标,人们看到很小的数字会放松警惕。

误区只要我把测试样本从 1 万增加到 100 万,模型是否安全一定能测得更清楚。

正解样本量只能减少统计波动,却无法弥补触发类型的缺失。如果 100 万样本都只覆盖同一个固定补丁,那攻击者换一个位置就检测不到。重要的是触发设计的覆盖率和多样性。

为何常见:统计直觉告诉我们数据越多越好,但后门评估的核心是“覆盖攻击空间”,而不是单纯堆数量。

误区模型评估通过后,就可以上线并一直放心使用,不用再检查。

正解后门攻击方法持续演进,攻击者可以根据评估报告调整触发方式。模型上线后也可能继续微调或更新,安全状态会改变。因此评估应嵌入到 CI/CD 流程,形成持续监测和迭代安全测试。

为何常见:因为大多数软件安全测试是阶段性的,但 AI 对抗攻击是动态演进,静态结论容易被新鲜攻击方式绕开。

面试题

Q1. 后门攻击评估的首要目标是什么?

单选题 · easy

  • A.提高干净数据精度
  • B.找到并度量隐蔽触发器← 正确答案
  • C.让所有攻击方式失效
  • D.加快模型训练收敛

答案:B。后门评估的核心是发现模型中可能被攻击者利用的触发器,并量化风险。提高精度是训练目标,让攻击失效是防御目标,加快收敛与评估无关。

Q2. 后门触发器在模型中扮演什么角色?

单选题 · easy

  • A.训练过程的随机噪声
  • B.攻击者埋下的输入暗号← 正确答案
  • C.模型权重中的常量值
  • D.测试时的对抗样本

答案:B。触发器是攻击者预先设计的输入暗号,平时不触发,遇到后模型就输出攻击者目标。随机噪声和对抗样本都不具备“平时正常、暗号生效”的特征。

Q3. 哪个指标最能反映“模型平时表现正常”?

单选题 · mid

  • A.攻击成功率
  • B.模型推理速度
  • C.干净准确率← 正确答案
  • D.训练集损失

答案:C。干净准确率 ACC 衡量模型在普通输入上的正确比例。攻击成功率 ASR 衡量后门是否被触发,推理速度与安全相关性弱,训练集损失不能代表测试表现。

Q4. 触发反转评估的核心思路是?

单选题 · mid

  • A.找到最小触发扰动← 正确答案
  • B.删除所有训练数据
  • C.随机翻转样本标签
  • D.压缩模型参数规模

答案:A。触发反转固定目标类别,反向搜索让模型输出该类别的最小扰动。如果扰动很小,说明模型可能被植入后门。删除数据、翻转标签、压缩参数都不是评估触发器的方法。

Q5. 经典后门检测可能用到哪些技术路径?

多选题 · mid

  • A.特征激活聚类← 正确答案
  • B.神经净化算法← 正确答案
  • C.毒化样本筛查← 正确答案
  • D.随机梯度下降

答案:ABC。特征激活聚类可以发现被触发器定向激活的神经元,神经净化能生成候选触发器,毒化筛查定位可疑训练样本。随机梯度下降是优化器,不是检测方法。

Q6. 高 ACC 与高 ASR 的组合最可能意味着什么?

单选题 · mid

  • A.模型完全健康安全
  • B.隐蔽后门风险较高← 正确答案
  • C.测试集标注有错误
  • D.训练数据量严重不足

答案:B。平时准确率高说明后门隐蔽,触发成功率又高说明暗号非常奏效,这两者组合是经典后门信号。健康模型 ASR 应很低,标注错误和数据不足不会造成这种组合。

Q7. 评估过程中为什么要构建扰动测试集?

单选题 · mid

  • A.覆盖更多未知触发变体← 正确答案
  • B.提升模型训练精度
  • C.减少推理时的耗时
  • D.降低测试集标注成本

答案:A。真实攻击者会调整触发器的大小、透明度、旋转角度。扰动测试集模拟这些轻微变化,用于判断后门是否稳定触发,能扩大触发空间覆盖范围,而不是为了训练或性能优化。

Q8. 下面哪些做法属于工程化评估流程?

多选题 · hard

  • A.建立干净基线模型← 正确答案
  • B.自动扫描触发模板← 正确答案
  • C.修复后重新评测← 正确答案
  • D.将模型直接部署上线

答案:ABC。基线用于对照,自动扫描提高覆盖率,修复后复评验证防御是否有效,这三步构成闭环。直接部署上线是评估通过后的动作,不属于评估流程本身。

Q9. 黑盒场景下后门评估的主要难点是什么?

单选题 · hard

  • A.无法看内部,搜索空间大← 正确答案
  • B.数据集规模太小
  • C.训练算力不足
  • D.无法计算准确率

答案:A。黑盒评估只能通过输入输出观察模型,无法检查权重和激活,因此触发器搜索空间很大,难以确定暗号形态。数据集规模、训练算力、准确率计算都不是黑盒评估特有的根本困难。

Q10. 关于后门攻击评估标准,下列说法正确的是?

多选题 · extreme

  • A.统一基准已经推行
  • B.触发器多样导致标准难统一← 正确答案
  • C.单靠 ASR 说明不了安全← 正确答案
  • D.黑盒评估能找出所有后门

答案:BC。目前后门评估尚无统一公认的公开基准,触发器形态多样使标准难以一致;ASR 只是有限条件下的统计,不能独立证明安全;黑盒评估受到可观测性限制,无法保证找出所有后门。因此 B、C 正确。