◆周思明 李丹
基于机器学习在公共云中的攻击和防御
◆周思明 李丹
(四川大学锦城学院 四川 611731)
对于现在新兴的云服务,传统的安全防御方法对云平台安全已经不起作用了。现在针对对抗性攻击和云服务的特点,提出了面向机器学习应用的安全开发生命周期:ML for SDL。它通过减少ML-as-a-service中的漏洞数量和漏洞的严重性,降低了开发成本,帮助安全人员构建更安全的软件。
计算机网络安全;云平台;图像处理
近年来,机器学习技术被广泛应用于计算机视觉分类问题,但有序机器学习的训练过程长,成本高,为了进一步拓宽和简化机器学习算法的使用,亚马逊、谷歌、微软、和其他公共云公司开发了一种在云端训练自己模型的工具:ML-as-a-service。因此,用户和公司可以很容易地从机器学习应用程序中受益,并且无需培训或托管自己的模型。但显然,无论是公共云公司还是传统安全公司都不太注意这些针对云平台的攻击和防御。因此公共云的防御显得尤为脆弱。但由于公共云有大量的人来使用,有些错误的操作依然会给攻击者留下机会,因此我们提出不仅要增强模型的稳定性,还要对使用云平台的相关人员进行安全培训。
本文针对机器学习应用的攻击,提出了有效的防御和缓解措施,提出了ML for SDL,它可以成为机器学习与应用程序的安全开发生命周期。它包括对抗性攻击、入侵检测、安全检测和安全增强。
比如一个图像分类或者图像检测的模型F,是从输入的图片中生成一系列的标签。对于一个干净的例子A来说,它被F正确地分类为真正的标签y∈Y,其中Y是一个从1到k的集合{1,2,…,k}。然而攻击者的目的是在A中加入小的扰动从而产生一个敌对的例子:ADV。让模型F对敌对样本ADV分类的标签和原图A生成的标签不相同,及:F(Adv)≠F(A)。但产生的这个小的扰动要在模型无法识别的范围之内,如:X(ADV,A) 生成对抗性示例通常需要对受害者模型的白盒访问(对设备终端进行操作,从而获得用户的信息),但攻击者也能访问云平台打开的API(Goodman等人,2019a)。因此,在云中保持模型通常会给人一种(错误)的安全感。不幸的是,许多实验证明,攻击者可以成功地攻击ML-as-a-service服务(Goodman&Wei,2019;Goodman,2020) 基于查询的对抗性攻击:是典型的黑匣子攻击,攻击者不具备相关知识,对于低分辨率的图像,通过成千上万次的成功查询就可产生一个对抗性示例,就可获取ML模型的内部信息,(Shokri等人,2017)。(Ilyas等人,2017)。但对于高分辨率图像,它仍然需要数万次的成功查询才能达到相同的效果。例如,如果要达到95.5%的成功率,那么平均需要104 342次查询黑匣子分类器。但在真正的攻击中,发起这么多请求的成本非常高。 转移对抗性攻击:首先由研究在同一数据集上训练的不同模型之间的可转移性,(Liu等人,2016)提出了一种新的基于集合的方法来生成对抗性示例,并且它们的分解使很大一部分目标对抗性示例能够第一次在多个模型之间传输。但在真正的攻击中,能找到一个与目标ML-as-a-service功能完全相同的开源模型是几乎不可能的。 FFL PGD攻击:通过攻击快速特征地图来实现只用有限的查询次数就能达到很高的丢包率。比如:在以前的研究中,FFL PGD攻击通过一次或者两次查询就能生成对抗示例。 FFL-PGD攻击提出了一种特殊的对象函数,它可以减少对抗性样本与原始图像之间的低级特征的差异,并增加高级语义特征的差异。实验表明,这种策略大大提高了攻击效果 空间攻击可以理解为广义对抗性攻击。通过对原始图像的变换,不影响人对图像内容的理解,但它可以欺骗机器学习模型。与对抗性攻击不同,空间攻击通常会影响图像的全部或大部分像素,人类可以感知图像的变化 图1 原图 图2 攻击后的图片 针对对抗性攻击和云服务的特点,提出了面向机器学习应用的安全开发生命周期,提出了SDL FOR ML。 微软已经针对传统的软件开发,提出了软件安全开发周期SDL,并为开发人员提供了许多最佳实践,提出了SDL GOR ML,它是针对对抗性攻击和云服务的特点,而提出的面向机器学习应用的安全开发生命周期。 SDL FOR ML帮助开发人员通过减少网络中漏洞的数量和严重性来构建更安全的软件,并且降低了开发成本。 SDL FOR ML通常使图片模糊,对抗性训练帮助工程师在对抗性攻击中找到安全特征。并且它帮助工程师在该模型所有的安全特征中找到有效的特征。 对抗训练(adversarial training)是增强神经网络鲁棒性的重要方式。在对抗训练的过程中,样本会被混合一些微小的扰动影响,虽然改变很小,但是很可能造成误分类,因此提出使神经网络适应这种改变,从而对对抗样本具有鲁棒性。因此对抗性训练可以描述为:生成一个对抗性样本,然后把对抗性样本加入到模型中去训练,使模型能适应这种加入小的扰动后的改变。 的方向是沿着梯度提升的方向的,沿着梯度提升也就意味着让损失值增大到最大。它通过sign函数对梯度采取max归一化。max归一化是说如果梯度某个维度上的值为正,则设为1;如果为负,则设为-1;如果为0,则设为0。 其中是损失函数关于的梯度,也就是对求偏导。按照fgsw的步骤,我们最后会找到一个损失函数是局部线性的。 我们一开始选取了基于fgsw算法来生成这个对抗性样本,fgsw攻击算法是增加一个固定扰动,也就是在通过梯度去改变权值,让loss值最大化,以达到欺骗机器的目的,在我们实验中,不管怎么去调整这一个步长∈,都很难找到这个局部最优的值,也就是说找到最优的梯度提升方向很困难,导致我们的在选取梯度上进行的对抗性训练对模型稳定性提升很小。 因此我们选用了cw的攻击的pgd形式,PGD是做多次迭代,每次走一小步,每次迭代都会将扰动投射到规定范围内,那么我们每次找到的就是局部最优,因此我们可以解决fgsw算法所无法确定的局部最优。 但攻击突破我们防御后已经造成了伤害,那么我们能做的就是去减缓这种攻击带来的影响后,再去建立新的防御方法并修复攻击带来的影响。 对抗攻击减缓有两种防御策略: 一种是反应式:建立深层神经网络后再进行检测对抗例子,比如输入重构,网络验证这类操作 另一种是主动式:让深层神经网络在产生对手之前更加强大,比如网络精馏,对抗性训练,以及分类器。 对于针对被iclr认证为非白盒对抗性例子提出的9种防御措施中,其中有7种使用了梯度模糊,它就是一种梯度演示或输入重构。但梯度模糊只提供了有限的鲁棒稳定性,因此导致在对抗敌对的例子的防御中产生虚假的安全感。但这个虚假的安全感可以通过引进攻击技术加以打破。Athalye表明:在提出的威胁模型中,唯一能提高对对手攻击性实例的防御的稳定性的是对抗性训练。 采用多种办法,根据一定的条件(方法阈值)生成与原始图像有一定视觉差异的测试值,通过使模型预测错误的标签,来评估模型在这些环境中的鲁棒性。它可以被分为两类:一类是利用空间变换或图像损坏形成的对抗性例子,比如:缩放、光变换、天气、模糊、抖动等;第二类是利用模型梯度叠加扰动攻击,如FGSM、PGD、C/W等,前者更通用、更常见,同时也支持黑箱测试;第二类是更有针对性的攻击。在图片被攻击后,人的眼睛几乎不可能发现图片已经受到攻击,因此需要对模型抵抗对抗性攻击的稳定性进行评估。 目前,我们为验证加入对抗性训练后,模型抵抗敌对攻击的稳定性提升。我们选择了模型:resnet50,以及基于模型梯度扰动攻击的cw算法。 图3 原图 图4 干扰 图5 对抗性样本 图6为加入对抗性训练前后,模型抵抗敌对攻击稳定性的对比,我们发现模型的稳定性从30%提高到了90%。 图6 加入对抗性训练后模型稳定性对比 针对对抗性攻击和云服务的特点,本文提出了面向机器学习应用的安全开发生命周期,如用于SDL FOR ML。它通过减少ML-as-a-service服务中漏洞的数量和严重程度,同时降低开发成本,帮助开发人员构建更安全的软件。在SDL FOR ML中包含了对抗性训练、建立设计要求、对抗攻击缓解、健壮性评估测试、对抗性攻击检测等功能。 [1]陈天荣,凌捷. 基于特征映射的差分隐私保护机器学习方法[J]. 计算机科学,2021,48(07):33-39. [2]李欣姣,吴国伟,姚琳,等. 机器学习安全攻击与防御机制研究进展和未来挑战[J]. 软件学报,2021,32(02):406-423. [3]陈晋音,邹健飞,苏蒙蒙,等. 深度学习模型的中毒攻击与防御综述[J]. 信息安全学报,2020,5(04):14-29.1.2 敌对攻击
1.3 空间攻击
2 SDL FOR ML
2.1 概况
2.2 设计建立的需求
2.3 对抗性训练
2.4 鲁棒性评估测试
3 结论