基于随机比特翻转模型的深度神经网络参数泄露故障注入攻击研究

《Connection Science》:Fault injection attack against deep neural network-parameter exposure in random Bits-flip model

【字体: 时间:2026年01月31日 来源:Connection Science 3.4

编辑推荐:

  本文综述了针对采用Softmax激活函数的迁移学习深度神经网络(DNN)输出层参数的新型故障注入攻击方法。研究突破了传统SNIFF技术仅针对符号位翻转的限制,提出了一种通用算法,能够在包括指数位在内的多位随机比特翻转模型下,高精度(误差率低至10-15)恢复偏置(Bias)和权重(Weight)参数。该方法通过引入固定变量λ计算参数比值,并结合多次故障注入输出分析,有效揭示了DNN在物理攻击下面临的关键安全漏洞,为AI系统(尤其在医疗影像分析、自动驾驶等安全敏感领域)的硬件安全防护提供了重要启示。

  

引言

随着人工智能(AI)技术的飞速发展,深度神经网络(DNN)已成为处理超越人类能力海量信息任务的核心工具,广泛应用于物体识别、机器翻译、医疗影像分析、恶意软件检测及自动驾驶等安全敏感领域。为高效处理大规模数据集并实现高精度任务,DNN架构日趋复杂,并普遍采用GPU(图形处理器)和AI加速器进行并行计算加速。与此同时,通过权重量化等技术实现的DNN压缩,使得AI技术得以部署于资源受限的移动设备及智能物联网(IoT)设备中。然而,这些设备常部署于用户或攻击者易于接触的环境,使其硬件易受故障注入攻击等物理攻击威胁。故障注入攻击通过向设备引入物理干扰(如基于硬件的电压毛刺、电磁波注入、激光光束,或基于软件的行锤攻击)以破坏其正常运行或修改内存中的值。传统上,此类攻击主要针对运行加密算法的设备以获取密钥,但随着AI技术的普及,DNN系统的故障注入漏洞逐渐显现。

深度神经网络与故障注入攻击背景

DNN是一种用于深度学习分类或回归的数学模型,其基本结构包括输入层、输出层以及位于其间的两个或更多隐藏层,例如多层感知机(MLP)。每个神经元输出由公式 y = f(x1w1+ x2w2+ ... + xLwL+ b) 计算,其中xi为前一层神经元输出,wi为连接权重,b为偏置,f为激活函数。DNN权重和偏置统称为其参数。用于分类的DNN通常在输出层使用Softmax激活函数,其定义为 Softmax(yj) = exp(yj) / Σi=1Cexp(yj)。DNN的参数和输出均以实数表示,深度学习框架(如Keras)通常使用IEEE-754标准的浮点数运算,本文采用64位双精度浮点表示(1位符号位p63,11位指数位(p62至p52),52位尾数位(p51至p0))。
迁移学习是一种利用预训练教师神经网络的架构和参数来开发新学生神经网络的深度学习方法。在学生神经网络中,教师网络的前(l-u)层(共l层)及其参数被固定,剩余u层被丢弃。固定的(l-u)层被复制,并附加新的可训练层。学生神经网络包含新添加的u层,并使用新数据集进行重训练。此过程中,学生神经网络中从教师网络继承的上部(l-u)层参数保持不变。由于复制的教师神经网络的上部(l-u)层是固定和重用的,它们可能暴露给攻击者,使得攻击者能够推导出特定输入的固定输出,即学生神经网络中新训练层的输入可被推断。这一特性被SNIFF等方法利用进行参数恢复。

相关工作与局限性

故障注入攻击可针对DNN的任何组件(输入数据、参数、激活函数)及任何层(输入层、隐藏层、输出层)。多数对抗权重攻击(包含在故障注入攻击中)侧重于基于图像误分类发生来评估神经网络的鲁棒性。然而,评估训练好的神经网络内部结构或参数是否泄露对于保护神经网络同样关键。此前研究探索了通过功耗分析、电磁分析等技术对DNN内部结构进行逆向工程,而SNIFF(由Breier等人于2021年提出)是唯一通过故障注入攻击对DNN进行逆向工程的技术。SNIFF通过对迁移学习神经网络输出层进行故障注入攻击,利用权重或偏置符号位翻转时DNN输出的变化,提出了一种推断目标参数的方法。但该方法依赖于强攻击者假设:故障注入攻击必须精确翻转符号位,且攻击者必须能根据DNN输出变化准确判断目标参数的符号位是否被翻转。若所需的符号位翻转未发生,则难以验证神经网络参数是否泄露。此外,实验分析表明,外部故障注入内存时,可能发生多位翻转,且翻转位不限于符号位,还包括指数位等。因此,需一种在更弱攻击者假设下(即不依赖于发生的比特翻转类型)仍能恢复参数的方法。

威胁模型与方法论

本文的威胁模型中,攻击者需可访问存储DNN参数的主内存(如DRAM),但无需像行锤攻击那样直接访问内存地址,外部硬件故障注入技术(如电磁或激光攻击)即足够。攻击目标为经过迁移学习的学生神经网络的输出层参数。攻击者假设需要针对恰好一个参数进行故障注入,且允许翻转该参数的任意位(而不限于符号位)。方法要求攻击者对同一参数执行两次或更多次故障注入攻击以辅助恢复。尽管实践中对同一参数进行多次故障注入需要高精度,具有一定挑战性,但此假设在概念验证环境中用于验证所提算法的核心原理是合理的,并已被先前多故障注入研究采纳。
参数恢复的核心是引入参数λ,表示攻击前参数值x与攻击后参数值x?的比值(λ = x / x?)。通过分析正常和故障注入后的DNN输出,结合预计算的所有可能λ值,即使发生未知的多位比特翻转(包括非符号位),也能恢复目标参数。
定理1 针对输出层偏置参数bjq的恢复:通过正确输出ojq和故障注入后错误输出ōjq,以及比值λ,可恢复偏置:bjq= (1/(1-λ)) ln( (ōjq-1- 1) / (ojq-1- 1) )。在特定条件下(如Softmax函数输出顺序反映输入顺序),可简化为 bjq= (1/(1-λ)) (ojq- ōjq)。
定理2 针对输出层权重参数wipjq的恢复:需要最后一个隐藏层的非零输出hip。通过正确输出ojq、故障注入后错误输出ōjq及比值λ,可恢复权重:wipjq= (1/((1-λ)hip)) ln( (ōjq-1- 1) / (ojq-1- 1) )。相应简化形式也可应用。
参数恢复算法包含三个步骤:1. 预计算所有可能的参数比值λ。2. 执行多次独立的故障注入攻击,获得正确及多个故障下的神经网络输出。3. 利用上述定理,遍历所有预计算的λ值,对多个故障输出进行计算,通过结果交叉验证,逐步缩小候选参数范围,直至唯一确定恢复的参数。

实验结果

为验证所提算法,在Keras(2.2.4版)中实现了用于MNIST图像分类的玩具神经网络(输入层724节点,两个隐藏层各16节点使用ReLU激活函数,输出层10节点使用Softmax激活函数),参数使用64位双精度浮点(numpy float64)。实验假设故障注入仅导致符号位(p63)和指数位低位(p59至p52)发生翻转,预计算了1021个可能的λ值。通过模拟故障注入过程,获取多次故障后的神经网络输出,应用参数恢复算法。结果表明,该方法能够成功恢复输出层的未知偏置和权重参数,平均恢复误差率低至10-15量级,验证了算法的高精度和有效性。

结论与展望

本文提出了一种在随机多位比特翻转模型下恢复DNN输出层参数的新方法,放宽了现有SNIFF技术对符号位翻转的强假设,显著提升了参数恢复的适用性和鲁棒性。研究揭示了DNN在硬件层面面临严重的参数泄露风险,对保护AI系统知识产权(IP)具有重要意义。尽管实验基于简单MLP架构,但该方法针对输出层,其原理可扩展至更复杂的CNN(如ResNet、GoogleNet)等架构。未来工作将探索将参数恢复技术延伸至隐藏层,以防止整个网络被复制,并进一步研究在实际应用场景(如智能电网)中的防护措施,以增强关键基础设施中AI系统的可靠性和安全性。
相关新闻
生物通微信公众号
微信
新浪微博

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号