深度学习安全攻防:神经网络逆向工程与侧通道分析
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。干货主要有:①1000+CTF历届题库(主流和经典的应该都有了)②CTF技术文
深度学习安全攻防:神经网络逆向工程与侧通道分析
神经网络因其多样性和在许多应用中实现的最新成果而变得流行,这些应用包括图像分类、自然语言处理、语音识别、预测等。这些应用也用于资源受限的环境,如嵌入式设备。
在这项工作中,作者通过侧通道分析探索了神经网络实现对逆向工程的易感性,以NVIDIA Jetson Nano微计算机为例。为此,作者提出了一种架构提取攻击。
在攻击中,作者在Jetson Nano的GPU上实现了15种流行的卷积神经网络架构(EfficientNets、MobileNets、NasNet等),并在神经网络在推理操作期间分析GPU的电磁辐射。分析结果表明,使用深度学习侧通道分析可以很容易地区分神经网络架构。
1 Introduction
近年来,机器学习领域受到了大量的关注和应用。其中一种具体的机器学习领域,即深度学习,被证明是多功能的,并为许多实际应用提供了最新的性能。深度学习指的是具有多层的人工神经网络(ANNs),通过从数据中提取重要特征并良好地泛化到该任务来解决一个任务。这些任务,如游戏、目标检测、图像分类或自然语言处理,可以差异很大。
AlphaGo 是基于深度学习的突破之一,它让神经网络学会了下围棋,并能够打败当时的最佳人类围棋选手。同样,AlphaZero 是为了下棋而被开发的,并超过了人类选手的表现。最后,AlphaStar 在《星际争霸2》实时战略电脑游戏中达到了超越人类玩家的水平,打败了世界上的许多最佳选手。
此外,图像分类是计算机视觉的一个基本问题,深度学习模型已经实现了最先进的结果,并继续提供改进。计算机视觉的一个更广泛的问题涉及到目标检测领域,由于神经网络,该领域的准确率也取得了巨大的改进。
同样,深度学习在近年来为自然语言处理(NLP)提供了多个突破 。NLP 是一个广泛的领域,旨在解决与人类语言相关的实际问题,例如信息检索、总结或机器翻译。Google Translate 和 ChatGPT 是基于 Transformer 神经网络架构的受欢迎的 NLP 应用程序。
神经网络正在改变作者生活的许多领域,并在作者日常生活中变得不可或缺。然而,神经网络的设计和训练在很多方面可能都是昂贵的。
- 收集训练数据集可能耗时且费用高昂。
- 设计和训练神经网络需要具备专业知识的人。
- 训练和验证一个模型的所需时间可以从小时到几周不等。
- 由于需要专业的高性能硬件,如图形处理单元(GPUs),训练和调优的成本可能会很高。
此外,有时在训练神经网络时会使用敏感数据,这些数据也可能受到逆向工程的影响。因此,保护已训练模型架构和参数的秘密变得非常重要。
除了它们巨大的成功之外,神经网络也面临各种对抗攻击。这些攻击有不同的目标,例如导致误分类、输入恢复或逆向工程架构。
攻击者可以采用一种技术,即侧通道分析(SCA)。SCA 利用电子设备的物理泄漏来提取秘密信息。尽管存在针对基于 SCA 的攻击的防御措施,但在资源受限的环境中,利用这些防御措施并不总是可能的,因为防御措施通常会在速度和成本上付出代价。
因此,本工作的研究问题将是:大规模卷积神经网络在 NVIDIA Jetson Nano 的 GPU 上的实现是否容易受到基于深度学习的侧通道分析的逆向工程攻击?
因为 GPU 平台的目标,神经网络实现,特别是卷积神经网络在实际中常常运行在 GPU 上,因为神经网络的核心操作是矩阵操作(例如乘法)。这些操作是高度并行的,这使得 GPU 比 CPU 更适合神经网络基础的应用。
Comparison with related work
在这项工作中,作者采用与 CSI-NN 论文中分析微控制器上运行的 NNs 类似的方法分析电磁和时序侧通道信息。然而,作者关注的是在计算机视觉中广泛使用且规模大的卷积神经网络架构,以及作为神经网络平台的另一种不同且更受欢迎的选择,即 GPU。在实践中,由于 GPU 通过并行提供效率,它们通常用于运行神经网络,尤其是大规模的神经网络。这种 GPU 并行性也带来了分析侧通道信号的挑战,因为同时执行的线程数量远大于微控制器应用程序中的数量。
Chmielewski 和 Weissbart 的研究工作针对的是与本工作相同的平台,其目标和方法类似于 [3]。基本上,基于电磁侧通道和时间信息,可以恢复神经元数量、层数和激活函数类型。然而,作者的工作在扩展方法并将其应用于大规模架构,以及证明在实际应用中使用的神经网络架构恢复是可行的方面更进一步。
此外,一些其他工作针对桌面 GPU 提取超参数,但并未针对像 Jetson Nano 这样的嵌入式系统,该系统可能部署在敌手更有可能获得物理访问的环境中。
一种基于侧通道的攻击也出现在 [40] 中,该攻击在 Raspberry Pi 的 CPU 上实现了神经网络架构提取,并使用功率侧通道分析和机器学习进行演示。提取的架构类似于本工作中的架构,但是分类方法、目标平台和使用的侧通道不同,因为他们使用支持向量机(SVM)分类器对功率信号进行分类。
Contributions and outline
本文的目标设备是 NVIDIA Jetson Nano,这是一款专为在资源受限的环境中运行 AI 应用而设计的微型计算机。如前所述,作者通过区分平台上许多知名神经网络架构来进行一种架构提取攻击。
总之,本文的主要贡献是:
- 作者通过观察设备 GPU 的电磁辐射来演示如何提取复杂的卷积神经网络架构。为此,作者基于设备的 GPU 的电磁辐射,对计算机视觉领域中 15 个知名神经网络架构进行分类。
- 作者还展示了如何使用深度学习分类器来自动化区分架构的过程。
2 Background
CNN architectures
本节介绍了本工作中分析的卷积神经网络架构。其中大多数架构都适用于资源受限的设备,如 Jetson Nano,但除了本工作中分析的架构外,还有其他著名的架构,如 ResNets,ShuffleNets 和 Xception。
2.1.1 MobileNet
MobileNets 是一种适用于受限制环境中的实时应用的卷积神经网络。该架构依赖于深度可分卷积模块来加速计算。这些模块包括深度可分卷积层和点积卷积层。
首先,深度可分卷积层只对输入的一个通道应用 核。其次,深度可分卷积层产生的特征图作为输入传递给点积卷积层,该层使用 核,并应用于所有输入通道。在标准卷积中,所有输入通道都应用 核。经验证明,深度可分卷积相对于标准卷积层提供了更少的延迟,并且与标准卷积层相比,准确度降低可以忽略不计。这对于嵌入式系统非常重要,因为这些系统的资源(如面积和功耗)通常是有限的。
2.1.2 MobileNetV2
MobileNetV2 是一种优化的 MobileNets。在这种架构中,深度可分卷积模块与线性瓶颈层和残差连接相结合,形成了反转残差模块。
2.1.3 EfficientNets
EfficientNet 提出了一个复合缩放方法,该方法以缩放系数均匀地缩放模型的深度、宽度和分辨率。这种复合缩放方法基于一个直觉,即网络的所有维度都必须平衡才能实现更好的准确性和效率。基本网络 EfficientNetB0 类似于 MobileNetV2,因为它基于相同的反转残差模块和瓶颈层。此外,还添加了压缩和增强。使用前面提到的复合缩放方法,对基本架构的升级版本,如 EfficientNetB1 -B6,进行了放大。
2.1.1 DenseNets
DenseNets 不使用深度可分卷积,它们基于特征重用的理念。在架构方面,这意味着一个层产生的特征图成为所有后续层的输入。DenseNets 的架构采用密集块和转换层。密集块使用特征重用的原则,而转换层负责下采样。
2.1.2 NasNetMobile
NasNet 架构与之前的架构有很大不同。NasNet 架构的主要构建模块是 常规 和 减少 单元。这些单元具有多个分支,这些分支以并行方式对输入进行不同操作,并将分支的结果拼接在一起以形成单元的输出。分支中的操作包括标准卷积、可分卷积、池化或 identity。
2.1.3 MobileNetV3
MobileNetV3 是 MobileNetV2 的进一步优化版本,具有各种新的添加。与 MobileNetV2 类似,MobileNetV3 的主要构建模块是反转残差模块(inverted residual blocks)和瓶颈层(bottleneck layers),但新架构中的一些块中增加了挤压和增强(squeeze-and-excitation)和 ReLU 非线性被 Swish 激活取代。
本文为资源受限的环境指定 MobileNetV3small 架构,为高资源使用场景指定 MobileNetV3large 架构。这些架构非常相似,其中 MobileNetV3large 具有更多的瓶 Neck 。
Side-channel analysis
侧通道分析(SCA)利用电子设备的物理泄漏来提取秘密信息。这些泄漏可以是功耗、电磁(EM)辐射、时间、光学或声音,而秘密信息可以是任何需要保密的信息。基于侧通道信息的攻击最初在 90 年代引入,针对受限制的严格加密设备,如智能卡,它们自那时以来一直对各种嵌入式系统的安全性构成威胁。在本工作中,作者利用时间和 EM 侧通道。
2.2.1 Timing analysis
时序漏洞在实现中可能来自不同的来源,例如分枝、缓存命中/未命中以及指令。这些漏洞也对密码算法构成威胁 。时序攻击通常基于实现中的漏洞,其中一项操作需要完成不同的时间,这种变化是由于私钥或其他数据被操纵或甚至执行不同的指令。
2.2.2 Power analysis
Kocher 等人(1999) 提出了基于功耗的攻击方法称为简单功耗分析(SPA)和差异功耗分析(DPA),通过测量微控制器在执行密码算法时的功耗来攻击。这些攻击利用设备功耗和设备执行的操作和处理的数据之间的依赖关系。
简单功耗分析(SPA)是一种可视化分析并解释收集的功耗测量值的方法,也称为轨迹。它通常需要几个或仅需要一个轨迹来提取有关目标算法的操作和数据的信息。差异功耗分析(DPA)利用功耗和处理的数据之间的依赖关系。由于处理不同数据引起的功耗的小幅变化可以允许对手使用功耗测量提取目标算法(如秘密密钥)的秘密信息。
2.2.3 Electromagnetic emanations
自第二次世界大战以来,电磁(EM)辐射已经得到利用 [35] 并给敏感系统带来巨大的安全问题。Wim van Eck 是最先发表关于因电磁辐射导致信息泄露的风险的论文的作者。他的工作通过使用任何人都可获得的设备来重建显示单元的帧来演示了电磁辐射的危险。
自从那时以来,电磁(EM)辐射也被用于破解密码实现或窃听显示单元。与功率分析类似,简单电磁分析(SEMA)和差异电磁分析(DEMA)是方法,它们的工作方式与功率分析中的对应方法完全相同,唯一的区别是电磁测量的轨迹。在本工作中,作者使用电磁辐射与时间信息相结合来区分架构。
3 Architecture extraction
Threat model
在作者的威胁模型中,对手具有以下知识和能力。
A1: 目标设备上的物理访问。 A2: 访问一个相同设备进行调试。 A3: 收集电磁侧通道测量。 A4: 知道表1 中列出的 15 种架构之一在目标设备上执行。
A1-A3 是侧通道分析(SCA)中常见的假设。假设 A1 可以通过放宽敌手对目标设备物理访问的限制来放宽,因为攻击只需要一个跟踪就能确定正确的架构。此外,假设 A4 是由于所研究的架构在资源受限的环境(如嵌入式设备)中的效率而提出的。
此外,开发行人可以选择一个已经证明在目标设备上工作的现成的架构,而不是开发自定义的架构,这可能是一个昂贵且耗时的过程。在作者的实验中,作者使用相同的设备进行分析和攻击。
NVIDIA neural network implementations
在作者的攻击中,作者考虑了 NVIDIA 的 TensorRT 深度学习推理框架的实现。TensorRT 是由 NVIDIA 编写的库,用于在 NVIDIA 硬件上高效快速地运行神经网络进行深度学习推理。
TensorRT 的工作原理如下:
- 用户定义神经网络模型。
- 用户定义模型所需的优化。
- TensorRT 根据定义的模型和优化目标构建一个引擎。
优化包括层融合和计算精度的校准。根据精度约束,TensorRT 多次尝试不同的实现并选择最快的实现用于模型。构建的引擎包括层实现和模型权重,可以用于推理。在作者的实验中,作者将模型限制为使用半精度计算的实现,以减小架构的内存占用,因为有些实现如果使用单精度计算,可能会占用设备上可用的 DRAM 超过限制。
Measurement collection
作者使用 PicoScope 3207B 示波器配合 Riscure EM Prob 和 Riscure EM Prob 站收集架构提取攻击中的电磁侧通道测量。为了捕获神经网络的推理过程,Jetson Nano 电路板上的一颗 GPIO 引脚被用作示波器的触发器,当推理操作即将开始时,示波器会发出信号。
在架构提取实验中,作者将设备的 GPU 核心设置为 76MHz 时钟频率,因此将示波器的采样率设置为 1GHz/s。为了检测 Jetson Nano 芯片中信息泄漏最严重的位置,作者扫描了整个芯片。扫描结果如图1 所示。根据图1 和实验,神经网络架构信息泄漏的多个位置如图2 所示。
Architecture extraction using SEMA and timing analysis
在这里,作者讨论使用简单电磁分析和时序分析对收集到的轨迹进行处理。本节中的轨迹并不是原始轨迹,而是这些轨迹的预处理版本。在进行预处理时,作者对测量的绝对值应用了大小为 1,000 的窗口平均。这种攻击不需要对轨迹进行对齐。
图3 显示了本文中研究的架构的示例轨迹。对于 MobileNet 和 MobileNetv2 架构,它们之间存在明显的时序差异,显示 MobileNetV2 执行时间更长。根据原始论文 [31] 的基准测试,MobileNetV2 比 MobileNetV1 更快。然而,原始论文中的实验是在 Google Pixel 1 智能手机的 CPU 上进行的,使用 TensorFlow Lite,因此这可能解释了差异。
显示的图案对于这些架构来说很相似,这是预期的,因为 MobileNetV2 的构建模块是基于 MobileNet 的构建模块。关于 MobileNetV3small 和 MobileNetV3large 架构,MobileNetV3large 架构的执行时间比 MobileNetV3small 架构大得多,这是预期的。然而,MobileNetV3small 架构的执行时间非常相似到 MobileNetV2。DenseNet 121,DenseNet169 和 DenseNet201 架构的 EM 模式与其他架构非常不同。
此外,与其他架构相比,显示的图案非常相似。然而,时序差异明显地识别了正确的架构 DenseNet 架构。关于 EfficientNet 架构,EM 模式与 MobileNet 架构相似,这是预期的,但是时序差异透露了正确的架构。
最后,NasNet 架构的 EM 模式与之前的架构有很大不同。在执行时间方面,NasNet 与 EfficientNetB4 非常相似,但是 NasNet 的 EM 振幅经常在接近零的位置时下降。
Architecture extraction using deep learning
在这一节中,作者介绍如何使用深度学习将架构提取攻击自动化,将问题框架为分类问题。每个架构的训练模型使用 TensorFlow 创建。对于某些架构,TensorFlow 实现涉及实际上不属于该架构的预处理层。这些预处理层使得网络可以接收未预处理的输入。在创建模型之前,这些预处理层被删除,这样每个架构都没有预处理层。此外,使用 TensorFlow 实现的默认参数值。
为了训练和验证深度学习分类器,作者为每个架构()创建了 5 个模型 。对于测试,作者为每个架构创建了 3 个模型。这些模型之间的唯一区别在于它们的权重 ,因为每个模型的所有权重都从均值为 0,方差为 1 的正态分布中随机采样。
正式地,请参阅下面的内容。
这意味着第 个模型 对于第 个架构()可以定义为它的权重和输入的函数。
其中 。 依赖于模型的架构。总的来说, 个模型被创建。实验期间,模型的输入和批处理大小分别设置为 32x32x3 和 1。
作者定义一个简单的卷积神经网络作为分类器,如表2 所示,因为在侧通道分析(SCA)环境中,它们被证明是有效的。作者为训练和验证集中的每个模型收集了 200 个测量值,并在测试集中收集了每个模型 20 个测量值,总共达到了 15,900 个轨迹。其中,测试集包含了 900 个测量值,其余 15,000 个轨迹被分为训练和验证集,比例为 70:30,即模型使用 10,500 个轨迹进行训练,使用 4,500 个轨迹进行验证。
此外,作者还使用了早期停止来避免过拟合。在模型训练完成后,它在测试集上进行评估,模型的准确率达到了 99%。从上一节中可以看出,区分架构并不困难,因此几乎完美的准确率并不奇怪。
4 Discussion
Limitations
描述的攻击仅针对该设备的 GPU 和由特定 TensorRT 版本提供的 CUDA Kernel 实现。此外,作者假设受害者使用的是众所周知架构。
Mitigation
传统的限制电磁辐射的方法,如正确的屏蔽或引入噪声以降低信噪比,可以缓解问题。
此外,在本工作中研究的架构之所以流行,是因为它们的效率和准确性。然而,忽略这些架构并设计自定义网络可以使对手的工作变得非常困难。自定义设计的神经网络基本上意味着有无数可能的层、层大小等组合。另一方面,神经网络有一些通用的设计原则,可以缩小搜索空间。例如,如果一个神经网络执行分类,那么可以安全地假设最后一层具有 softmax 激活。
分析也适用于自定义神经网络,一个持久的对手可以制作一个全面的概要,这也可以识别出影响电磁测量的层类型和层大小等因素。
Alternative method
在这项工作中,只需分析整个架构的痕迹就足以证明逆向工程架构的可能性。然而,一个持久的对手可以通过仅在未受保护的设备上运行架构的一部分来逆向工程整个架构。换句话说,从架构的第一层开始,然后是第一二层,然后是第一三层,以此类推。
通过这种可能有点耗时的(由于所研究的架构层数众多)方法,可以在痕迹中识别出单个层,而不仅仅是整个架构。由于这些架构的参数数量是恒定的(除了第一层和最后一层之外),因此这种方法仍然可行。第一层和最后一层的痕迹可能会有所不同,因为输入和输出大小是针对每个问题的特定值。
Example of breaking down network
为了识别单个层,作者需要考虑层的类型以及层的激活(如果有)。正如作者在分类结果中看到的那样,不同的权重几乎不影响整个电磁测量的总和。因此,作者可以专注于为带有和不带激活的单层 MLP 构建模板,2 层 MLP 带有和不带激活的模板,等等。
为此,作者将使用这种方法逆向工程一个 3 层 MLP。在实验中,输入批处理大小为 1,输入大小为 100,每个全连接层有 32 个神经元。
图4 显示了如果去掉了 ReLU 激活,电磁测量的轨迹会发生什么变化。上面的图是一个 3 层 MLP 的轨迹,其中全连接层之后跟随 ReLU 激活。下面的图是同样的 MLP,只是最后一个全连接层之后没有跟随 ReLU 层。
继续逐层移除并移除激活,图5 的顶部图示了如果移除一个全连接层,电磁测量的轨迹会发生什么变化。图4 中的 MLP 具有第三个全连接层,而图5 的顶部图是图4 中的 MLP,只是最后一个全连接层丢失了。接下来,移除第二全连接层后面的 ReLU 激活,导致轨迹与图5 中的底部图相同。
逐层移除层有助于确定层边界。图6 显示了在每层全连接层和每个激活之后用红色虚线划线的 3 层 MLP 的电磁测量轨迹。总的来说,分析可以更细粒度地进行,例如层 Level ,但这需要更多的分析来覆盖所有大小不同的层类型。
5 Conclusions
在本文中,作者分析了神经网络对侧通道攻击的易感性,研究目标是 NVIDIA Jetson Nano 上的神经网络。设备上的 GPU 是实际神经网络实现中常用的平台。
在作者的攻击中,作者根据电磁侧通道对流行的卷积神经网络架构进行分类。所选架构在实践中是常见的选择,尤其是在嵌入式设备中,当网络大小和延迟很重要,资源有限时。结果表明,分析的架构很容易彼此区分,并且可以通过深度学习分类器自动化这一过程。
总的来说,尽管网络在高度并行和噪声环境下运行,但 NVIDIA TensorRT 框架中的神经网络实现仍易受到侧通道攻击导致架构提取。
最后
从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。
因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。
干货主要有:
①1000+CTF历届题库(主流和经典的应该都有了)
②CTF技术文档(最全中文版)
③项目源码(四五十个有趣且经典的练手项目及源码)
④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)
⑤ 网络安全学习路线图(告别不入流的学习)
⑥ CTF/渗透测试工具镜像文件大全
⑦ 2023密码学/隐身术/PWN技术手册大全
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
扫码领取

更多推荐
所有评论(0)