清华摘掉架构先验,黑盒就能把ReLU网络参数抠出来

Cryptanalytic Extraction of Neural Networks Without Known Architecture Assumption

Yantian Shen, Yi Chen, Anyu Wang, Hongbo Yu, Xiaoyun Wang

cs.CR

2026-09-13

清华提出猜测框架,在只知输入输出维、拿得到原始输出时同时恢复ReLU全连接网的层宽和参数;测试网络全部抠对,查询开销线性增加。

这篇在解决什么

把神经网络当黑盒API卖时,攻击者一直可以只靠输入输出把参数抠出来,前提是架构已知:几层、每层多宽。Carlini等人的微分提取攻击就是这条线上的代表。真实服务很少把层宽写在文档里。未知架构会不会让「功能等价提取」直接失效,此前没有人把它当成必须拆掉的假设。

清华、中关村实验室和山东大学这条线只盯ReLU全连接网。输入维d0和输出维已知,因为原始输出能拿到;隐藏层深度和宽度全部未知。

方法

先借用已有的逐层提取:找临界点、恢复神经元签名(权重方向)、再恢复符号。新工作是在这个过程里读架构留下的痕迹,没有另起一套查询。

框架从第1层开始,把当前层宽度猜成1,再一格一格往上加。每次猜完,只跑一部分参数提取,收集观测,判断这次猜得对不对、当前是不是倒数第二层。猜对了就钉死这一层,进入下一层;猜小了继续加。

两条互补路线读不同的痕迹:

倒数第二层另有两套判据:输出系数固定,以及与最后一层的线性关系,用来结束整段猜测。签名恢复本身走解方程,符号恢复在扩张网上改用neuron wiggle,避免原像法失效。

威胁模型沿用旧攻击:任意实数输入、完整原始输出、ReLU、64位浮点。去掉的只有「架构已知」。

结果

端到端攻击在CPU服务器上跑,10个worker。测试集覆盖前人用过的网、新训的深浅网、随机数据和MNIST上的784-64-64-10,以及扩张与非扩张结构。论文报告所有网络的架构和参数都被正确恢复,最大参数误差与已知架构攻击同一量级。

结构已知架构[4] 查询 / 时间本攻击(签名)查询 / 时间
10-20-20-12^18.7 / 108.6s2^19.9 / 143.9s
40-20-10-10-12^18.1 / 34.4s2^20.0 / 42.4s
80-40-20-12^19.4 / 42.7s2^21.5 / 501.8s
784-64-64-10n/a2^23.4 / 8895.6s

关键点:额外开销不是「每层乘上真实宽度」那么糟。同一层里为找临界点花掉的查询,在不同宽度猜测之间大部分能复用。窄层上总时间和旧攻击接近;第一隐藏层宽到40时,签名路线会慢一个数量级(80-40-20-1:501.8秒对42.7秒)。非扩张网上两条路线都能跑通,签名路线在非末层更慢,符号路线在倒数第二层更慢。

为什么重要

「架构保密」不能再当成模型机密的护城河。只要API吐原始logit或回归值,攻击者可以边猜边抠,得到功能等价的复制。安全推理和机密计算如果只藏权重、不限制输出精度和查询,防御面比原来想的更窄。对做提取攻击的人,这把威胁模型从「白盒架构加黑盒权重」推到「只知道输入输出维」。

渐进,但方向对:它没有发明新的参数恢复代数,把旧攻击的中间量当成架构侧信道。

局限与存疑

框架绑死在ReLU全连接、任意实输入、完整高精度输出上。卷积、残差、LayerNorm、softmax后的概率输出、量化API,全部不在范围内。作者自己把扩展到其他分段线性激活和卷积写成未来工作。猜测过程引入线性时间开销,宽层已经到几百秒、MNIST规模到两小时以上,再宽会更痛。实验网最深也有限,没有现代MLP-Mixer量级的宽度。64位浮点假设在真实GPU推理里不成立,数值噪声会不会吞掉零后缀,论文没有测。

术语

原文与代码

社区讨论

相关论文

全部论文解读