APP下载

基于时间侧信道逆向神经网络模型*

2021-03-03黄诚轩李景海

密码学报 2021年6期
关键词:网络结构攻击者分类器

黄诚轩, 唐 明,2, 李景海

1. 武汉大学国家网络安全学院空天信息安全与可信计算教育部重点实验室, 武汉 430072

2. 密码科学技术国家重点实验室, 北京 100878

1 引言

机器学习, 以及近期受到广泛关注的深度学习, 由于其高度的实用性和有效性, 在图像识别[1]、机器人[2]、自然语言处理[3], 以及信息安全等不同领域都受到许多研究者的重视[4,5]. 当今计算机不断增长的计算能力和海量可用数据导致了比以前预想的更加复杂的机器学习架构. 例如, 在2012 年时, 由8 层组成的AlexNet 架构在图像分类任务ILSVRC20121http://www.image-net.org/challenges/LSVRC/2012/中是性能最好的算法, 而到了2015 年, 同一任务性能最好的架构是由152 层[6]组成的ResNet. 预计这一趋势并不会停滞不前, 深度学习技术仍然在高速发展. 此外, 深度学习算法在传感器或驱动器等物联网边缘设备中越来越受欢迎, 因为它们在许多任务中是不可或缺的, 如图像分类任务、语音识别任务等. 因此, 越来越多的应用都乐于将神经网络部署在始终处于开启状态的系统上运行.

神经网络模型的训练以及参数调优需要大量的时间与金钱代价. Google 的XLNet 每次训练需要花费61 000 美元来寻找最优的训练参数, 并且, 模型训练过程中的数据集搜集与制作、分布式存储、管理等也需要花费大量的时间与人力. 其次, 许多高阶的针对神经网络的攻击, 诸如对抗样本攻击、数据投毒攻击都建立在模型已知的前提下, 或通过获取模型信息来提升攻击效果[7,8]. 因此, 神经网络模型不仅是重要的知识产权, 也是应用开发中最底层的安全性问题.

随着越来越多的设计策略和全新场景的使用, 神经网络模型需要快速构建达到较好的泛化效果, 迁移学习(transfer learning) 解决了这个问题, 成为深度学习算法主要的挑战之一. 迁移学习是一种机器学习方法, 就是把为任务A 开发的模型作为初始点, 重新使用到为任务B 开发模型的过程中. 迁移学习对人类来说很常见, 例如, 研究发现学习识别苹果可能有助于识别梨, 或者学习弹奏电子琴可能有助于学习钢琴. 简单来说, 找到目标问题的相似性, 迁移学习任务就是从相似性出发, 将旧领域学习过的模型应用在新领域上, 使得目标领域能够取得更好的学习效果.

迁移学习的广泛使用包含以下几个原因.

(1) 大数据与少标注的矛盾: 虽然有大量的数据, 但往往都是没有标注的, 无法训练机器学习模型. 人工进行数据标注数据时间成本过高.

(2) 大数据与弱计算的矛盾: 普通人无法拥有庞大的数据量与计算资源, 因此需要借助于模型的迁移.

(3) 普适化模型与个性化需求的矛盾: 即使是在同一个任务上, 一个模型也往往难以满足每个人的个性化需求, 比如特定的隐私设置. 这就需要在不同个体之间做模型适配.

(4) 特定应用(如冷启动) 的需求. 在迁移学习的背景下, 由于AI 模型的训练需要大量的时间与成本,当前许多应用开发的模型结构均来自于已知模型的再训练, 那么对已有模型结构的分析, 能够以很好地效果预测未知模型的结构.

神经网络模型是推理任务的基石, 其机密性对于应用开发具有多层次的意义. 在不同的行业使用人工智能算法时, 研究者们看到了知识产权(IP) 模式战略的增加. 当优化的网络具有商业利益时, 它们的细节基本上是保密的. 对神经网络结构保密除了商业利益外, 还有许多其他的原因. 通常, 这些预先训练过的模型可能会提供关于训练数据的额外信息, 这些信息可能非常敏感. 例如, 如果模型是基于病人[9]的病历进行训练的, 那么机密的信息可以在训练阶段被编码到网络中. 此外, 用于指导医疗治疗的机器学习模型通常基于患者的基因型等私密信息[10], 从隐私角度来看这些信息非常敏感. 即使不考虑隐私问题, 从神经网络架构中获取有用的信息, 也可以帮助攻击者从竞争中获取商业秘密, 从而在不侵犯知识产权的情况下产生有竞争力的产品. 因此, 利用其他竞争者已经训练过的网络来确定自身网络结构的部署是攻击者的理想目标.

目前最直接针对神经网络的逆向方法是对设备的物理访问, 对探测到的二进制代码进行逆向工程. 然而, 在保密的IP 设置中, 标准的保护措施(如阻止二进制回读、阻止JTAG 访问[11]、代码混淆等) 在正确部署到位的情况下, 能够有效防止物理攻击. 基于时间泄漏的侧信道分析方法可以作为这些防护条件下的一种逆向分析方法.

本文的目标是分析神经网络标准实现的潜在漏洞, 以卷积神经网络(convolutional neural networks,CNN) 算法为分析对象. 选择CNN 结构进行攻击的原因在于: (1) 它是现代应用中常用的深度学习算法;(2) 它由不同类型的层组成, 这些层也出现在其他的网络结构中, 比如递归神经网络; (3) 研究发现相同类型的网络层由于输入不同导致运算量不一致, 从而利用运算时间消耗能够区分出整体网络结构.

本文展示了利用时间侧信道信息恢复未知网络布局的可能性. 现有参考文献显示, 已有神经网络实现中未发现针对侧信道攻击方法的相关防护措施. 本文提出的逆向分析方法通过使用已存在网络模型结构构造时间特征序列, 可以匹配出目标模型的结构, 从而恢复整体的网络信息.

目前已有的研究中, 利用侧信道分析来攻击机器学习架构的研究受到各种方面的限制. Shokri 等人[12]研究了从机器学习模型中泄漏敏感信息的情况, 这些敏感信息来源于训练数据涉及到个人数据记录. 结果表明, 这些模型容易受到成员推理攻击, 并对一些缓解攻击的策略进行了评估. Song 等人[13]展示了如何使用恶意机器学习提供商的机器学习模型来获取模型的训练集信息. Tramèr 等人[14]通过商用公开的API, 在未知机器学习模型的参数和训练数据的情况下, 去复制(即“窃取”) 模型的功能. Hua 等人[15]首先通过缓存和时间侧信道泄漏对两种卷积神经网络AlexNet 和SqueezeNet 进行逆向工程. 攻击者通过人工引入的硬件木马来测量侧信道. 他们还需要访问攻击所需的原始训练数据集, 这些数据可能并不总是可用的. Hu 等人[16]通过GPU 上运行产生的kernel events 和对应的内存访问模式, 采用LSTM+CTC 的解决方案逆向基于GPU 实现的DNN 结构. Parashar 等人[17]为了获得神经网络的权值, 它们攻击中包含一个非常具体的操作, 即零剪枝. Wei 等人[18]还对基于FPGA 的卷积神经网络加速器进行了攻击. 他们从收集到的功耗痕迹中恢复了输入图像. 该攻击利用了一个特定的设计, 即CNN 卷积层中的行缓冲区(line buffer). Batina 等人[19]通过测量神经网络模型运行过程中的电磁信号, 通过使用差分功耗分析等方式成功逆向出ARM Cortex-M3 平台上实现的DNN 网络的相关信息, 包括层数、每层神经元的数量、激活函数类别信息等. Wei 等人[20]通过GPU 上下文切换的惩罚侧信道信息也逆向出了DNN 的网络结构. 简言之, 以上几种基于侧信道信息的逆向方法针对特定神经网络进行, 与之相比, 本文的目标在于确定现有典型神经网络结构是否具有时间敏感性, 基于该敏感性给出通用的逆向分析方法,将模型结构逆向问题, 通过时间侧信道转换为对已有模型的分类问题. 随后分析所提出攻击方法的优势与不足.

本文第2 节介绍了攻击场景, 提供了时间侧信道攻击实现方法. 第3 节为实验结果与分析. 第4 节简单对比了其他相关工作. 第5 节为讨论与总结.

2 神经网络模型逆向攻击

2.1 攻击者模型

攻击场景. 这项工作的主要目标是只使用时间信息恢复卷积神经网络结构. 假设深度学习算法的实现不包括任何侧信道防护. 一个合适的场景是, 攻击者合法地获取了一个具有API 访问权限的神经网络模型的一份副本, 并利用API 访问网络, 目的是恢复网络的内部细节, 进行知识产权窃取. 或者是通过对模型结构信息的推测以利于其他攻击的实施, 诸如对抗样本攻击、数据投毒攻击都能够利用模型信息来提升攻击效果.

攻击者的能力. 攻击者可以在“正常” 操作的情况下获取设备的测量值, 并且不会通过引发错误的计算和行为来干扰设备的内部操作. 更详细地说, 考虑以下情况:

(1) 攻击者不知道所使用网络的体系结构, 但可以向该体系结构提供随机输入. 本文提出的攻击和分析并不依赖于对输入分布的任何假设. 假设攻击者对设备具有物理访问权限(可以是远程访问),并且他知道该设备运行某种神经网络. 攻击者只能通过选择输入来控制它的执行, 但是可以观察输出和侧信道信息.

(2) 攻击者能够测量从目标体系结构的实现中泄漏的侧信道信息. 本文假定攻击者采集目标系统运行过程的时间侧信道信号.

2.2 攻击流程

通过研究发现, 神经网络模型运算过程之中, 不同网络层结构的不一致导致其运算量不同, 也因此产生了运行时间上的差异. 卷积神经网络中, 使用三种主要类型的层: 卷积层、池化层和全连接层. 以浮点运算数(floating point operations, FLOPs) 来衡量网络层运算的复杂度, 卷积层是在空间中共享权重的线性层, 单层卷积层的FLOPs 为: 2·K2·M2·Cin·Cout. 其中K为每个卷积核(kernel) 的边长,M为每个卷积核输出特征图(feature map) 的边长,Cin为每个卷积核的输入通道数, 即上一层的输出通道数,Cout为卷积核个数, 即输出通道数. 系数2 代表卷积核运算过程中包含乘加运算两个操作.

池化层是减少空间大小以限制神经元数量的非线性层, 由池化大小、步长和填充控制. 单层池化层的FLOPs 为M2, 其中M为每个池化层输出特征图的边长.

全连接层是指每个神经元都与邻域层中的所有神经元相连的层. 单层全连接层的FLOPs 为2·I ·O,其中I为输入神经元个数,O为输出神经元个数, 系数2 代表全连接层运算中包含乘加运算两个操作.

上面的时间分析揭示出了神经网络结构上的差异, 导致各层之间运算量不同, 卷积层FLOPs 与(K,M,Cin,Cout) 相关, 池化层FLOPs 与M相关, 全连接层FLOPs 与(I,O) 相关, 造成了硬件资源上运行时所需的时间消耗也不同, 这一点为时间侧信道攻击提供了理论基础.

本文以各运算层的时间消耗不同提出了神经网络模型逆向攻击. 攻击主要分为三个阶段, 第一个阶段是对时间消耗特征进行刻画, 并对数据预处理, 即数据准备阶段; 第二个阶段利用以提取特征进行分类器训练, 即训练阶段; 第三个阶段对待测试时间序列进行预测, 得到预测的模型结构, 并进行精度评价, 即预测阶段. 整个攻击的流程如图1.

2.2.1 数据准备阶段

数据准备阶段对被攻击设备的特征进行刻画, 这意味着攻击者可以确定出某些模型时间消耗的特征序列. 例如, 攻击者可能拥有一台与被攻击设备类型相同的设备, 并且该设备完全由攻击者控制, 又或者是攻击者合法地获取网络模型的一份拷贝, 并使用API 访问网络. 利用相同的设备, 攻击者运行不同的模型结构fi, 并记录不同网络层的时间消耗信息ti, 然后将fi与相对应的迹分组, 这样对于每一种数据和模型fi都可以得到多组特征序列hfi=(ˆt1,ˆt2,··· ,ˆtn). 通过采集到的数据验证了此前的发现: 不同网络层结构的不一致导致其运算量不同, 可以利用时间消耗来确定神经网络模型结构.

本文以Pytorch 的profile 模块作为采集时间信息的方式, 在NVIDIA GeForce GTX 1060 6 GB 上运行不同模型, 采集时间序列序列hfi=(ˆt1,ˆt2,··· ,ˆtn). 目前还有许多其他的神经网络分析工具可以达到实验要求. 例如英伟达的NV prof 工具, 其是用来测试了解并优化CUDA 或OpenACC 应用程序的性能的分析工具. 分析工具能够从命令行收集和查看分析数据. 可以测得GPU 上运算所消耗的时间. 著名的深度学习框架TensorFlow 从r1.3 版本开始, 提供profiler 模块. 为方便描述, 下面将TensorFlow 中运行的神经网络模型简称为graph, 其中的节点称为node. profiler 模块的最大好处是: 打开TensorFlow执行的黑盒, 以graph node 为最细的粒度, 从多个维度、多个层面去统计神经网络运行的时间和内存消耗, 为进一步优化神经网络模型的运行效率提供最直接的数据依据. 本文使用的深度学习框架Pytorch 包含的profile 模块. Pytorch 的Autograd 模块包括一个分析器profiler, 它可以让你检查模型中不同操作符的时间消耗——包括CPU 和GPU. 以Vgg 系列网络为例, 采集到的时间特征序列如图2(图2 中只展示前20 层layer).

图1 攻击流程图Figure 1 Attack flow chart

图2 Vgg 系列网络(layer1—20) 各层时间消耗Figure 2 Time consumption for each layer of Vgg network (layer1–20)

图2 中所有时间轨迹叠加在一起, 每一条轨迹代表了一个模型前二十层运行所需要的时间消耗. 蓝色曲线即Vgg-11 网络结构的时间消耗轨迹, 从layer2 开始就能清晰地区分开来, 而另外的三个Vgg 系列网络结构的时间轨迹在layer1—14 完全重合. 这是因为其结构有相似部分, Vgg 的网络结构图如图3.

图3 Vgg 网络结构设置Figure 3 Vgg convNet configuration

观察图3 中的网络结构, 运算层layer1–14 中, 除Vgg-11 外的其他Vgg 网络结构完全一致, 造成了时间消耗轨迹完全重合. 神经网络中通常把卷积运算加上激活函数整体统称为一层卷积层, 而实际测量时,卷积运算与激活函数均为单独的一层layer, 即卷积层包含了两层运算layer. Vgg-11 的网络结构在第一个卷积层后紧跟一个池化层, 而Vgg-13、16、19 则均为卷积层+ 卷积层+ 池化层的结构, 对于layer3的运算来说, Vgg-11 为池化Maxpool 计算, 而其他Vgg 网络结构均为卷积运算, 该结构上的差异导致了Vgg-11 的layer3 计算量小于其他网络. 由于运算量不一致, 也因此区分出了Vgg-11 的时间消耗轨迹不同于其他轨迹. 对于其他网络结构, 在浅层次(layer1–14) 的网络结构一致, 所以运算量也一致, 这导致时间特征轨迹相同, 如图2 中所示layer1–14 曲线重合, 符合实验预期. 因此浅层次的时间特征不足以完全确立模型具体结构, 但是能够为网络类型进行初步分类.

继续观察图2 中采集到的时间特征序列layer15–20, 可以清晰地区分出Vgg 系列的四个网络时间消耗轨迹, 原因在于这部分的Vgg 网络的结构不一致, 由图3 可知, 运算layer15 层时, Vgg-13 是Maxpool层, 而Vgg-16 和19 均为卷积运算, layer17 时, Vgg-16 是Maxpool 层, Vgg-19 仍为卷积运算, 由于时间消耗与网络结构运算的复杂程度正相关, 也因此导致图2 中layer15–20 的时间轨迹产生了差异, 符合实验预期, 同时证明了可以通过时间消耗序列来区分神经网络的模型结构. 其他的网络结构也符合此项结论.

2.2.2 训练阶段

2.2.1节中已经验证了不同网络结构的时间消耗序列不相同, 那么接下来则是需要一个合适的分类器能够对搜集到的时间轨迹信息进行分类区分. 本文选择机器学习中应用最广泛的一个算法—支持向量机(SVM)[21], 它在解决小样本、非线性及高维模式识别中有特有的优势. 通过寻求结构化风险最小来提高学习机泛化能力, 实现经验风险和置信范围的最小化, 从而达到在统计样本量较少的情况下, 亦能获得良好统计规律的目的. 采集到的时间序列hfi=(ˆt1,ˆt2,··· ,ˆtn), 可以作为训练数据输入支持向量机, 模型的具体结构即为对应标签.

SVM 的主要原理是寻找一个满足分类要求的最优分类超平面, 使得该超平面在保证分类精度的同时,能够使得超平面两侧的空白区域最大化. 理论上, 支持向量机能够实现对线性可分数据的最优分类.

其中ξi为松弛变量, 表示误差, 0≤ξi ≤1 指样本xi被正确分类,ξi ≥1 为xi被错误分类;C为正则化参数, 即对分类错误的惩罚系数, 松弛变量需要满足:

为了对非线性分类的问题进行分类, SVM 通过一个映射函数φ(x) 将原始数据空间映射到高维空间,于是线性不可分的问题变成了线性可分的问题. 为了减小计算量, SVM 通过使用核技巧来加速在高维映射下的计算:

K(x,y) 是核函数,xi与xj在特征空间的内积等于它们在原始样本空间中通过函数K(x,y) 计算的结果,即对任意的xi,xj有K(xi,xj) =φ(xi)·φ(xj). 在实际应用中, 不需要考虑如何映射, 而是直接可以直接选择合适的核函数. 实验选取的核函数为高斯核函数, 它可以将数据映射到无穷维, 是最常用的核函数.通过将时间序列输入到支持向量机中训练后, 得到的分类器还需要进行参数选择, 实验选取网格搜索的方式进行参数的选择, 得到了最优的分类器后就可以进行模型结构的预测.

2.2.3 预测阶段

实验获取了目标分类器之后, 采用准确率、精确率、召回率、F1值指标作为模型结果预测的精度评判标准. 为了介绍这些指标, 首先说明一些相关概念如表1.

表1 相关概念Table 1 Related concept

各项指标计算公式如下:

(1) 准确率(Accuracy): 所有的预测正确(正类和负类) 的占总的比重

(2) 精确率(Precision): 查准率. 正确预测为正的占全部预测为正的比例.

(3) 召回率(Recall): 查全率. 即正确预测为正的占全部实际为正的比例.

(4)F1值(H-mean 值):F1对Precision 和Recall 都进行了加权.

公式转化后有

通过以上多个维度的指标来判断所预测模型结构的效果好坏. 准确率用于整体评估模型的预测能力,但是由于训练样本正负样本数量的差距过于明显的时候, 可能导致模型具有高准确率情况下对正样本检出能力过弱(Recall 低) 或过强(Precision 低), 因此需要通过召回率和精确率来具体评价模型的优异程度.而F1值, 则是均衡精确率和召回率的综合评价指标. 为了判别对所有类别总体预测效果的好坏, 计算各项指标的宏平均(Macro-averaging) 值, 即先对每一个类统计上述指标值, 最后对所有类计算算术平均值.

通过比较上述指标就能更全面地评判分类器的效果.

3 实验及分析

3.1 实验设置

实验采用在GPU 上运行神经网络模型, 进行测量时间参数. GPU 型号为NVIDIA GeForce GTX 1060 6 GB.选取了以下常见的网络模型结构进行建立时间模板. 包括: AlexNet,Vgg-11,Vgg-13,Vgg-16,Vgg-19, ResNet-18, ResNet-34, ResNet-50, ResNet-101, ResNet-152, Densenet-121. 选取这些网络的具体原因如下:

(1) 它们均是现代应用中常用的深度学习算法;

(2) 这些网络包含了卷积神经网络中的常见网络层, 这些层也出现在其他的网络结构中, 比如递归神经网络;

(3) 主要选取了两个系列的网络结构, 包括Vgg 系列和ResNet 系列. 同一系列的网络结构有许多相似的结构, 如果能够很好地预测同一系列的神经网络模型, 那么对于其他不同类型的模型预测也会有很好地效果.

构建的时间特征序列(以前十层为例) 如图4 所示, 2.2 节的分析表明时间消耗序列和网络的复杂程度有关, 和参数具体的值无关, 因此将模型参数初始化为Pytorch 中提供的预训练模型, 每条时间轨迹的绘制是运行多次取平均值的结果.

图4 中, 所有时间轨迹叠加在一起, 每一条轨迹代表了一个模型前十层运行所需要的时间消耗. 大部分时间轨迹可以清晰地区分开, 但是部分网络结构的时间轨迹完全重合, 例如网络结构Vgg-13,16,19 重合; ResNet-18,34 重合; ResNet-50, ResNet-101, ResNet-152 重合. 产生这种现象的原因已在2.2 节中介绍. 当观察更深层的运算layer 时, 不同网络的时间消耗会出现差异, 就能够区分出目标具体的模型结构.

图4 所选网络(layer1–10) 各层时间消耗Figure 4 Time consumption for each layer of selected network (layer1–10)

实验使用了共11 000 条不同模型运行时的时间轨迹, 其中8000 条作为训练数据, 3000 条作为测试数据. SVM 的核函数选择为高斯核函数, 经过多次网格搜索参数调优后, 支持向量机的参数中, 惩罚系数选取C=4.737, 核函数参数选取gamma=0.053 有最好的实验效果. 具体的实验结果如3.2 节.

3.2 实验结果

首先使用浅层次的时间特征验证该攻击方法是否有效. 即只使用layer1–5 的时间特征轨迹进行模型构建与预测, 得到的结果如表2 所示.

表2 Layer1–5 时间序列匹配结果Table 2 Layer1–5 time series matching results

表2 中展示了浅层次特征区分出两个网络结构, 分别是AlexNet 和Vgg-11 网络, 它们的精确率与召回率都是1.00, 原因在于这两个网络在本次实验挑选的网络中结构较为独特, 在浅层次的结构上就与其他网络有很大的区别, 因此使用浅层次的特征就可以完全正确预测出该网络. 而Vgg 系列与ResNet 系列网络浅层次结构一致, 分类器无法区分出具体结构, 所以预测的指标很低, 整体的预测准确率只有56%, 精确率、召回率、F1值的宏平均值也在56% 附近. 此实验结果表明使用的时间特征数量不足时, 难以预测出正确的模型结构, 但可以观察到时间特征序列恢复模型结构的初步效果. 因此继续以更深层次的时间特征进行进一步的实验.

使用layer1–20 的时间轨迹进行分类器构建与预测, 得到的结果如表3 所示. 此时分类器已经能够完全区分出所选Vgg 系列网络, 所有Vgg 系列的结构精确率召回率都达到了100%, 原因可以结合图5 进行分析, Vgg 系列网络在layer14–layer20 处结构不完全一致, 再结合图3 发现Vgg 系列的网络分别在layer15, 16, 17, 19 层为池化层运算, 由于池化层运算量较小, 使得时间消耗显著下降, 时间消耗轨迹产生了差别, 经过训练后分类器能很好地预测Vgg 系列的网络结构.

表3 Layer1–20 时间序列匹配结果Table 3 Layer1–20 time series matching results

图5 Vgg 网络(layer11–20) 各层时间消耗Figure 5 Time consumption for each layer of Vgg network (layer11–20)

表3 中ResNet 系列网络各项指标仍然较低, 原因可以从图6 中分析得知, ResNet 网络拥有比Vgg 更深层次的结构, 在conv1 与conv2_x 的结构中, ResNet-50, 101, 152 的运算结构仍然保持一致, ResNet-152 在conv3_x 出现了结构差异, 而ResNet-50 与101 在conv4_x 才出现结构上的差异, 这导致只用layer1–20 构建的分类器的预测效果不好. 但是该分类器各项指标的宏平均值提升到了85% 左右, 原因是区分出了所有Vgg 结构网络.

图6 ResNet 网络结构设置Figure 6 ResNet convNet configuration

结合表2 和3 的实验可以得出结论, 使用更深层的时间特征序列, 即更多的layer 运算时间数据, 分类器的预测效果就会更好. 那么进一步使用更多的时间特征序列为分类器进行训练, 对于不同特征层数最终预测效果如图7.

图7 分类结果Figure 7 Classification results

图7 中Accuracy, MacroP, MacroR, MacroF的曲线近乎重合, 在layer100 时值都达到了98.9%. 曲线重合的原因是测试数据并不存在样本不均衡的现象, 所以这些指标衡量模型的效果相似. 该曲线变化趋势能够说明, 随着使用网络层的数量增多, 分类器的预测效果越来越好. 表2 与3 中Vgg 系列各项指标优于ResNet 系列是因为Vgg 系列模型结构更简单, 对于结构越复杂的模型, 正确预测出来结构所需的时间特征就需要越多.

以上实验成功验证了神经网络模型结构的不同导致运算量不一致, 从而使得时间消耗不一致, 能够以时间特征序列进行神经网络模型结构的恢复. 使用的特征层数越多, 分类器预测的效果越好.

4 相关工作

近些年来, 深度学习方向的安全性问题获得了越来越多的关注和研究, 之前的工作中表明, 神经网络模型结构包含了商业价值、敏感信息, 且攻击者在已知目标模型结构的前提下, 能够生成更好的对抗样本进行攻击[7,8,22,23]. 文献[12,13,24] 研究了从机器学习模型中泄漏敏感信息的情况, 这些敏感信息来源于训练数据. 这一类攻击只提取了用户敏感信息. 文献[25] 从机器学习算法和神经网络中提取超参数信息.也没有涉及针对神经网络模型结构的逆向工程.

目前已提出的基于侧信道信息逆向工程主要针对特定的神经网络设计而进行, 例如文献[15] 通过内存信息和时间侧信道泄漏对两种卷积神经网络AlexNet 和SqueezeNet 进行逆向工程. 并且攻击需要侵入式的方法来获得内存侧信道信息, 比如植入硬件木马, 这意味着攻击者需要对系统拥有更高的访问权限.文献[16,19,20] 均为针对DNN 模型进行逆向工程, 其中部分工作同样类似地假设了攻击者可以获得足够多的系统权限. 文献[18] 利用特定的行缓冲区(line buffer) 结构, 对基于FPGA 的卷积神经网络加速器进行了攻击, 而本文提出的方法可以针对不同的物理设备上运行的网络结构.

本文提出了一种通用的依靠时间序列逆向神经网络结构的攻击方式, 能够针对不同结构的神经网络模型, 同时不需要取得更高的系统权限. 本文通过实验确定了现有典型神经网络结构具有时间敏感性, 基于该敏感性将模型结构逆向问题, 转换为对已有模型的分类问题.

5 总结与展望

本文以神经网络模型结构逆向攻击为研究目标, 通过计算与实验验证了神经网络结构的不同会导致运算时不同的时间消耗, 提出了一种通用的基于时间侧信道逆向模型的方法. 该方法的理论基础在于, 由于神经网络每层的结构不同导致了运算量的不一致, 因此时间消耗也不一致. 实验挑选Vgg 系列、ResNet系列等神经网络结构进行实际的时间采集恢复模型结构的实验, 使用不同数量的时间特征序列输入支持向量机进行训练与预测, 经过参数调整, 观察特征层数数量对预测效果的影响, 所选取的指标包括准确率、精确率、召回率、F1值, 随着选取的时间特征层数越多, 分类器预测的指标越高. 当使用100 层运算层的时间特征序列时, 上述指标都达到了98.9%. 实验能够有效区分出选取的11 种神经网络结构, 该攻击方法的主要优势在于仅需要时间侧信道信息就可以实现攻击, 且有较好的预测效果和通用性.

本文中提出的攻击方法适用于各种边缘计算的场景, 包括安防摄像头、无人驾驶、智能家居设备等物联网场景. 或者攻击者合法地获取了一个具有API 访问权限的神经网络模型, 通过利用API 访问网络获取侧信道信息, 包括云AI 服务场景.

但是本方法仍然存在一些局限性, 需要对已有模型结构进行大量建模, 实验中只挑选了11 种神经网络模型结构验证攻击的可行性, 实际攻击时选取网络结构是一个较为繁琐的过程. 考虑到现阶段各种应用部署的神经网络模型结构是有限的, 由于迁移学习的火热和从零训练神经网络的高成本等问题, 目前的应用开发大多是知名网络结构的再训练, 通过常见结构来搜索目标结构的攻击方式仍可视为具有实际威胁性的逆向方法.

下一步的工作将集中于:

(1) 通过其他的侧信道信息结合现有方法, 更直接地逆向神经网络模型结构以及其他的隐私信息;

(2) 给出关于神经网络侧信道攻击的防护手段.

猜你喜欢

网络结构攻击者分类器
基于贝叶斯博弈的防御资源调配模型研究
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
快递网络结构研究进展
基于AutoML的保护区物种识别①
一种自适应子融合集成多分类器方法
正面迎接批判
正面迎接批判
基于互信息的贝叶斯网络结构学习
浅谈多分类器动态集成技术