王粤晗 孙 磊 郭 松 戴乐育
(信息工程大学密码工程学院 河南 郑州 450001)(河南省信息安全重点实验室 河南 郑州 450001)
随着神经网络应用的普及,深度学习的安全威胁严重影响人们的正常生活。如有未授权用户绕过云端防御机制非法访问云环境下深度神经网络模型,利用云服务的API接口获取深度神经网络模型的初步信息(包括模型参数)带来次生威胁。
通过对深度神经网络模型进行逆向分析,未授权用户可能复制该深度神经网络模型进行滥用。次生安全威胁还包括攻击者能够得到模型内部的隐私数据,如病人医疗数据、用户面部识别数据等[1-2]。
深度神经网络模型的常见安全威胁按照其运行阶段可以分为训练阶段的安全威胁和预测阶段的安全威胁。
在训练阶段,未授权用户通过访问训练数据的方式在训练数据集中注入恶意数据或是对原有训练数据修改、删除,改变训练数据的原有分布,令模型在预测时使结果出错,这种攻击手段就被称为投毒攻击。而且一旦投毒成功,在预测阶段进行防御是十分困难的。
在预测阶段,未授权用户通过对图片增加肉眼难以辨别的轻微扰动欺骗神经网络,使目标模型预测结果出错。这种增加了轻微扰动的图片就被称为对抗样本,该种攻击手段被称为对抗样本攻击。
另一种在预测阶段的常见攻击手段被称为模型提取攻击。这种攻击能够对目标模型进行复制,并尝试恢复目标模型在训练中使用的数据信息,涉及对模型知识产权及用户隐私的威胁。有攻击者利用黑盒模型云服务平台API输出的置信值(Confidence Values),实现了方程求解攻击(Equation-solving Attacks),并在输出只含有标签信息的情况下,实现了包括深度神经网络在内等多种算法的模型提取攻击(Model Extraction Attacks)[3]。
本文针对云环境下深度神经网络模型可能面临的常见威胁,以卷积神经网络为研究对象,提出一种内嵌在深度神经网络模型中的深层控制方法。该方法能够限制未授权用户访问目标网络,从源头上抵抗未授权用户攻击,保护深度神经网络模型参数与用户的隐私信息。
目前,由于能够收集足够多的用户数据,大型公司多采用集中训练方式,这种方式能够一定程度上规避训练阶段的投毒攻击。
在预测阶段,通常采用正则化、对抗训练等手段抵抗对抗样本攻击带来的影响。正则化通过为代价函数添加正则项,提高目标模型的泛化能力,在预测中具有良好的适应性来抵抗攻击[4]。文献[5-7]使用正则化方法提高模型的顽健性,在抵抗攻击时取得良好的效果。对抗训练在训练数据集中引入了对抗样本,通过合法化对抗样本提高模型的顽健性。文献[8]提出联合对抗训练(Ensemble Adversarial Training)增加对抗样本的多样性,但是在对抗训练中引入所有未知攻击的对抗样本是不现实的,所以对抗训练具有一定的局限性。除此之外,还有学者提出防御精馏手段[9]抵抗攻击。针对模型提取攻击,目前较好的防御措施是PATE[10]。PATE通过将数据分区并训练多个模型,根据多个模型的结果进行决策,但决策结果仍可能被其他差分隐私系统的噪声欺骗。
若要对深度神经网络进行训练阶段的攻击,则恶意用户首先要获得访问神经网络训练数据的权限。云环境下深度神经网络遭受投毒攻击,通常是因为深度神经网络模型采用了开放的训练方式。
若要对深度神经网络进行预测阶段的攻击,则恶意用户首先要能够使用该神经网络。云环境下深度神经网络遭受对抗样本攻击、模型提取攻击,通常是因为恶意用户本身拥有访问目标网络的权限,或者获取到访问目标神经网络的权限,如表1所示。
表1 神经网络常见攻击手段与未授权用户权限
综上所述,针对深度神经网络的常见攻击源于未授权用户能够开放地访问深度神经网络,所以采用授权的方式对用户进行访问控制尤为必要。
然而现有情况下,云服务使用系统级的外部防御机制存在一定漏洞[11]。当恶意用户试图利用安全漏洞绕过系统防护访问云环境下的深度神经网络时,就需要在神经网络内部设计一种内嵌的访问控制模型。
针对云环境下深度神经网络模型面临的安全威胁,此前有学者期望采取对网络的输入进行加密的方式,形成加密神经网络,用以保护隐私数据。由于同态加密算法具有以下特性:原始数据同态加密后形成密文,对密文进行变换得到新的输出再解密,其结果与对原始数据采用相同变换得到的输出结果一致。因此,在理想情况下,同态加密技术能够较好地支持上述方法。Orlandi等[12]提出结合同态加密技术和典型双方计算结构的加密神经网络。Dowlin等[13]以Bos等[14]提出的全同态加密方案为基础,提出了一种可用于加密数据的类神经网络。
对深度神经网络模型进行控制的方法国内外学者提出较少。Sun等[15]采用了一种能够与被保护神经网络结合的保护锁模块,使未授权用户在使用目标模型时无法得到正确输出以保护目标模型。Wang等[16]对深度神经网络的单一隐层的偏置加入变异因子,只有授权用户能够解耦受控神经网络,实现对用户的访问控制。
本文在上述文献的基础上,提出卷积神经网络深层控制方法。当目标模型训练完成,通过在目标神经网络多个隐层的众多参数处加入控制因子,使未授权用户无法访问目标模型。授权用户输入用户ID使用目标深度神经网络模型时,目标模型可以对用户输入做出正确预测。
在人工智能即服务模式下,用户能够通过授权访问的方式使用云环境下深度神经网络模型,从而对数据进行预测分析。在现有场景下,授权访问通常是由云服务防御机制实现的,这种系统级的防护可能存在被绕过的风险,直接导致未授权用户能够直接访问并使用云环境下的神经网络。这样做的次生危害有:云环境下深度神经网络模型被窃取;深度神经网络模型中包含的训练数据信息泄露;攻击者可以利用深度神经网络模型信息发起白盒攻击等。
神经网络深层控制方法主要面向云环境下的卷积深度神经网络模型。假设云管理员完全可信,云管理员通过云端控制模块对卷积神经网络进行控制,如图1所示。
图1 用户使用云端受控网络
云端控制模块存储了与不同授权用户信息相对应的多组随机数。多组随机数包括与卷积神经网络不同层权重位的随机数rwm、不同层偏置位的随机数rbj和激活函数输入位的随机数rgl,其中l,m,j∈n,n为神经网络总的隐层数。
用户使用安全通道与云端服务器通信,云端控制模块接收到用户访问请求后,等待云管理员授权。云管理员对用户授权之后,随机选取多组随机数生成不同位置的控制因子,包含任意隐层的kgl、kwm和kbj。将选定的随机数用用户信息加密后存储于云端控制模块,如kb2表示与第二隐层的偏置位结合的控制因子,那么此时被加密存储的信息为Enc(rb2)。同时,控制模块将控制因子分别与卷积神经网络不同隐层的参数结合。云端控制模块根据用户信息,控制模块将生成的控制因子与深度神经网络模型中的对应参数作ζ(·,k)运算,神经网络深层控制完成。
神经网络深层控制完成之后,未授权用户即便绕过云端防御机制直接访问深度神经网络模型,也无法使用ζ(·,k)运算之后的神经网络。
当授权用户使用受控神经网络时,云端控制模块确认用户信息,解密随机数位置信息,利用相应随机数计算k-1还原受控神经网络,使授权用户能够使用模型进行预测。
当授权用户得到神经网络的预测输出后,云端控制模块刷新该用户信息下对应的多组随机数,保证模型受控。
这种在深度神经网络模型随机隐层的不同参数处实现控制的方法,被称为卷积神经网络深层控制方法。
链式结构是神经网络中最常用的结构,其中每一层都是前一层的函数。训练数据中样本伴随的标签为神经网络的输出提供了目标,但是训练数据并没有指明神经网络中每一层需要如何做才能得到最终理想的输出。这些由学习算法来决定的层被称为隐藏层,如图2所示。
图2 深度卷积神经网络中的隐藏层
图2中,激活函数的自变量z1由用户输入x和神经网络权重w1、偏置b1组成。
(1)
由于采用了链式结构,在神经网络层单元组中,第一隐层的输出h1可以表示为:
(2)
第二隐层的输出h2是第一隐层输出h1的函数,若第二隐层为图2所示池化层,则第二隐层的输出h2可以表示为:
h2=pooling2(h1)
(3)
第三隐层的输出是第二隐层的函数,若第三隐层为图2所示卷积层,则第三层的输出h3可以表示为:
(4)
以此类推,则第n隐层输出的表达式为:
(5)
式中:x为用户的输入数据。若第i隐层为卷积层,则gi为该层激活函数的表达式,wi为该隐层权重,bi为该隐层偏置。若第j隐层为池化层,则poolingj(hj-1)表示对j-1层的输出hj-1进行池化。
为了使神经网络能够拟合不同的曲线,在隐层引入了激活函数。具有隐藏层的前馈神经网络提供了一种万能近似框架[17]。具体而言,万能近似定理(Universal Approximation Theorem)[18-19]表明,一个前馈神经网络如果具有线性输出层和至少一层具有任何一种“挤压”性质的激活函数,例如Sigmoid激活函数的隐藏层,只要给予网络足够数量的隐藏单元,它可以以任意准确率来近似任何从一个有限维空间到另一个有限维空间的Borel可测函数。万能近似定理也已经被证明对于更广泛类别的激活函数也是适用的,其中就包括现在常用的线性整流单元。由此可见,激活函数对前馈神经网络拟合任意曲线有着至关重要的作用,而卷积神经网络就是前馈神经网络中的一种。
在深度卷积神经网络中,对输出起到决定性影响的参数除了深度神经网络训练完成的权重、偏置,还有每一隐层中激活函数的输出。
本文将激活函数自变量zi(i=1,2,…,n)看作参数的一种,故在基于众参数的多层控制模型中,涉及的参数类别主要有三种:权重w、偏置b和激活函数的自变量z。
定义1运算ζ(x,k)是由集合X到集合Y的一一映射,若x∈X,则集合Y中一定存在y,使y=ζ(x,k)。其中控制因子k为标量,当且仅当k=1时,y=ζ(x,1)=y。那么,双射ζ(x,k)中,存在ζ-1,使ζ-1(y,k-1)=ζ-1(ζ(x,k),k-1)=x。
在神经网络完成训练之后,对各层权重、偏置、激活函数作ζ(·,k)运算,如图3所示。
图3 受控卷积神经网络结构
则受控神经网络的第一隐层的输出h′1可以表示为:
(6)
不同卷积神经网络的结构各不同,因此每一层是否作用控制因子的表达式也各不相同。若受控神经网络第二隐层为池化层,由于控制因子不作用于池化层,则该层输出h′2可以表示为:
h′2=pooling2(h′1)
(7)
若受控卷积神经网络第二隐层为卷积层,由于控制因子作用于卷积运算层参数处,则该层输出h′2可以表示为:
(8)
(9)
卷积神经网络层数较多,每一层又分布不同类型的参数,如权重、偏置参数等。通过内嵌控制因子对卷积运算层中的多个位置进行控制,可能导致受控神经网络开销过大,下面对深层控制模型展开研究并进行方法优化。
为了探究卷积神经网络深层控制方法的可用性并进一步优化控制方法,以具有8个隐层结构的卷积神经网络作为研究对象,利用控制变量的方法进行研究。该网络包含了3层卷积运算、3层池化、1层全连接和1层输出。选择该网络的3个运算层作为实验对象,分别称其为卷积层C1、卷积层C2和卷积层C3。
对神经网络进行训练,训练完成准确率为97.68%。分别在每一隐层的权重、偏置、激活函数自变量处加入控制因子作ζ(·,k)运算。为保证实验结论不受控制因子大小影响,统一将各处k取定值。当k大于103数量级且ζ(·,k)运算满足定义1时,受控神经网络准确率稳定在10%左右,深度神经网络模型受控效果较好。
随机生成大于103的不同k值,将控制因子k作用于隐层激活函数自变量处进行实验,深层控制模型如图4所示。
图4 将控制因子作用于激活函数的深层控制模型
可以看到,单在C3隐层加入控制因子准确度降低较小,对神经网络受控效果较差。当控制因子在C2层激活函数处参与深层控制时,能够令神经网络受控准确率达到9.72%左右,起到较好的控制效果,如图5所示。
图5 将控制因子作用于不同层激活函数的准确率
将控制因子作用于各隐层权重处进行实验,深层控制模型如图6所示。
图6 将控制因子作用于不同层权重的深层控制模型
本实验同上实验,分为三部分:第一部分对单一隐层权重进行控制;第二部分同时对两个隐层权重进行控制;第三部分同时对三个隐层权重进行控制。结果如图7所示。
图7 将控制因子作用于不同层权重的准确率
目标模型未受控时正常使用的准确率为97.68%,只对隐层中的权重做受控操作对模型准确率几乎无影响,控制效果差。说明对于本次实验所选取的满足定义1的运算而言,在隐层权重处作ζ(·,k)运算对卷积深度神经网络模型影响较小。
将控制因子作用于各隐层偏置处进行实验,深层控制模型如图8所示。
图8 将控制因子作用于不同层偏置的深层控制模型
实验同样分为三部分:第一部分对单一隐层偏置进行控制;第二部分同时对两个隐层的偏置进行控制;第三部分同时对三个隐层的偏置进行控制。结果如图9所示。
图9 将控制因子作用于不同层偏置的准确率
可以看到,当控制因子作用于不同层偏置时,能够令神经网络平均受控准确率达到约10.29%,起到较好的控制效果。当C3层的偏置参与深层控制时,能够令受控神经网络的准确率达到最小值9.72%,起到较好的控制效果。
在授权用户使用受控神经网络时,控制模块需要先恢复受控参数。由于深层控制方法需要令控制因子内嵌在卷积神经网络各隐层的不同参数处,内嵌控制因子的参数越多,恢复神经网络的时间开销就越大。为了进一步降低使用深层控制方法产生的时间开销,同时提高控制效果,根据上述研究结果提出对深层控制方法的优化方案。
上述研究表明,在以三层卷积神经网络为研究对象的实验中,令C2层的激活函数和C3层偏置同时参与深层控制,能够起到最好的控制效果。所以在对卷积神经网络深度控制时,优先选取模型中间隐层的激活函数和靠近输出的隐层偏置。
验证卷积神经网络深层控制方法与优化后深层控制方法的有效性。
选取LeNet-5、VGG-16卷积神经网络作为实验对象,分别使用MNIST、ImageNet数据集。操作系统采用Windows 10,GPU为GeForce GTX 1060,算力为6.1,采用TensorFlow 1.12.0以及对应的cuda 9.0、cudnn 7.1.4,编译器选用Pycharm,卷积神经网络代码使用Python3.6,部分使用C/C++编写。
首先使用训练好的LeNet-5卷积神经网络模型对MNIST的10 000组数据进行多次测试,记录平均时间为0.463 s,模型准确率为94.49%。以该时间与准确率作为衡量后续实验结果的标准时间开销和标准准确率。
使用深层控制方法控制实验对象,记录授权用户多次使用受控网络测试10 000组数据的时间开销为0.516 s,受控模型准确率为94.49%,未授权用户多次使用受控网络,模型准确率为10.32%。
优化后的深层控制方法要求控制模块优先选取受控模型中间隐层的激活函数和靠近输出的隐层偏置。使用优化后的深层控制方法控制实验对象,授权用户多次使用受控网络,同样测试10 000组数据的时间开销为0.483 s,受控模型准确率为94.49%,未授权用户多次使用受控优化网络,模型准确率为8.92%。
对比三组时间数据,可以发现卷积神经网络采用深层控制方法后,运行时间增加11.45%,时间开销不大。在对深层控制方法优化后,时间从0.516 s降至0.483 s,受控模型时间缩短6.39%,如图10所示。
图10 LeNet-5在不同状态下的时间开销对比
对比三组准确率数据,可以发现卷积神经网络采用深层控制方法之后,未授权用户难以使用受控网络预测数据。在对深层控制方法优化后,受控优化网络的准确率进一步下降,从10.32%降低至8.92%,控制效果有所提升,如图11所示。
图11 LeNet-5在不同状态下的准确率对比
从ImageNet包含50 000组图片的验证集中随机抽取200组图片,使用训练好的VGG-16卷积神经网络模型多次测试,记录平均时间为6.04 s,模型准确率为78.50%。以该时间与准确率作为衡量后续实验结果的标准时间开销和标准准确率。
使用深层控制方法控制实验对象,记录授权用户多次使用受控网络的时间开销为6.73 s,受控模型准确率为78.50%,未授权用户使用受控网络,模型准确率为2.00%。优化控制方法后,要求控制模块优先选取受控模型中间隐层的激活函数和靠近输出的隐层偏置。使用优化后的深层控制方法控制实验对象,授权用户使用受控网络时间开销为6.36 s,受控模型准确率为78.50%,未授权用户多次使用受控优化网络,模型准确率为1.50%。
对比三组时间数据,可以发现卷积神经网络采用深层控制方法后,运行时间增加11.42%,时间开销不大。在对深层控制方法优化后,时间开销从6.73 s降至6.36 s,受控模型时间缩短5.50%,如图12所示。
图12 VGG-16在不同状态下的时间开销对比
对比三组准确率数据,可以发现卷积神经网络采用深层控制方法之后,未授权用户难以使用受控网络预测数据。在对深层控制方法优化后,受控优化网络的准确率进一步下降,从2.00%降低至1.50%,控制效果有所提升,如图13所示。
图13 VGG-16在不同状态下的准确率对比
验证实验成功,卷积神经网络深层控制方法在卷积神经网络中能够起到较好的控制效果,未授权用户无法使用受控神经网络做出预测。
在卷积深度神经网络模型内部参数处实现控制是一项技术难点,国内外相关研究较少。本文针对常用的卷积神经网络面临的未授权访问及其次生安全威胁,通过研究神经网络的基本结构,提出一种在隐层不同参数处结合因子的深层控制方法,并通过实验验证了方法的有效性。
深层控制方法的本质在于降低未授权用户使用神经网络的准确率,以至于未授权用户无法使用目标神经网络,而授权用户则能够使用目标神经网络进行正常预测。该方法不仅能够抵抗未授权用户的非法访问,同时能够实现对模型参数的保护。
本文的研究在一定程度上为保护神经网络模型提出了新的思路与方法,后续工作将把深层安全控制方法的实验框架更换为当前更易用的Pytorch,对方法进一步优化,并推广应用至更深的卷积神经网络模型及其他神经网络模型中。