基于DCGAN的Android对抗样本生成方法及系统技术方案

技术编号:20546369 阅读:14 留言:0更新日期:2019-03-09 19:17
本发明专利技术公开了一种基于DCGAN的Android对抗样本生成方法及系统,借助DCGAN模型生成虚拟样本,并根据ASG算法生成针对于特定恶意样本的修改策略,在修改策略指导下对原始样本进行修改得到相应的对抗样本,使其能够躲避Android恶意软件检测系统的检测。本发明专利技术充分展示了生成对抗网络在移动安全领域的新应用,并且生成的对抗样本不影响原始恶意功能,具有可执行性,生成的对抗样本可用于重新训练检测系统,以增强系统的鲁棒性,实现对Android恶意软件变种的主动防御。

A DCGAN-based sample generation method and system for Android countermeasure

The invention discloses an Android countermeasure sample generation method and system based on DCGAN, generates virtual samples with DCGAN model, generates modification strategies for specific malicious samples according to ASG algorithm, and modifies the original samples under the guidance of modification strategies to obtain corresponding countermeasure samples so as to avoid the detection of Android malicious software detection system. The invention fully demonstrates the new application of generating antagonistic network in the field of mobile security, and the generated antagonistic samples do not affect the original malicious function and are executable. The generated antagonistic samples can be used for retraining the detection system to enhance the robustness of the system and realize the active defense against Android malicious software variants.

【技术实现步骤摘要】
基于DCGAN的Android对抗样本生成方法及系统
本专利技术涉及恶意软件检测领域,特别是一种基于DCGAN的Android对抗样本生成方法及系统。
技术介绍
Android作为当下市场份额最大的移动终端操作系统,应用的数量呈现出了爆炸性的增长,与此同时,恶意软件的数量也在不断攀升,尤其是新增恶意软件变种数量。攻击者制作恶意软件来获取用户的隐私数据、金融账户等信息,给终端用户带来了极大的安全威胁。为了保护用户隐私数据的安全性,我们需要一种有效的方法能够检测新增恶意软件的变种。近几年随着机器学习的兴起,它给研究人员带来了新的研究思路,他们将机器学习作为特征提取方法或分类器应用到Android恶意软件检测当中,并展现出了良好的性能。检测技术的不断提升也进一步刺激了攻击者,攻击者为了使自己制作的恶意软件能够绕过检测系统的检测,他们想出了多种方法来制作对抗样本,于是如何检测对抗样本,增强检测系统的鲁棒性成为了一个研究热点。对抗机器学习最先在图像识别领域出现,通过对图像施加微小的扰动来让分类器对其进行错误分类,并且人们很难察觉出来图像修改前后的变化。在恶意软件检测领域,对Android的APK文件进行修改并不像图像或语音那样简单的加入一些噪声就可以了。对于图像的修改要求修改后的图像与原样本尽可能的相似,以保证人类观察者并不会发现,而对于恶意软件的修改可以不受此限制,但是对其修改后必须能够保证原有的恶意功能不受损坏,程序可以正常安装运行。现有的研究主要是针对网格数据的,主要是图像数据,针对序列化数据的攻击研究相对较少。
技术实现思路
本专利技术所要解决的技术问题是,针对现有Android恶意软件检测技术的不足,提供一种基于DCGAN(深度卷积生成对抗网络)的Android对抗样本生成方法及系统,此系统生成的对抗样本可以用来重新训练原始检测系统,以增强系统的鲁棒性,实现对Android恶意软件变种的主动防御。为解决上述技术问题,本专利技术所采用的技术方案是:一种基于DCGAN的Android对抗样本生成方法,包括以下步骤:1)对Android应用程序进行反编译,并提取出使用的API,生成一个描述该应用的特征向量;2)使用DCGAN生成模型对善意样本的特征向量进行学习,根据学习到的特征向量分布规律生成大量虚拟的善意样本特征向量,组成善意样本库;3)对于一个特定的恶意样本,使用ASG(AdversarialSampleGenerating)算法生成针对于特定恶意样本的修改策略;4)根据修改策略对原始样本进行修改得到相应的对抗样本,使其能够躲避Android恶意软件检测系统的检测。Android应用程序的表征采用API作为特征向量,其中向量维度为1x4096,即包含4096个API,对于API的选取采用卡方检验的方法,根据卡方值从高到低选取相关性最高的前4096个API作为特征,并生成由0和1构成的二值特征向量。对于Android应用的修改映射为对特征向量的修改,为了保持应用原有的功能不受影响,我们仅采用增加API的方式对特征向量进行修改。DCGAN生成模型由生成器与检测器组成,生成器对100维的噪声向量进行四次转置卷积操作,并最终得到64x64维度的虚拟善意样本特征向量,检测器通过四次相反的卷积操作得出样本为真实样本的概率,通过生成器与检测器间的相互博弈,训练出一个良好的生成器。ASG算法首先将恶意样本的特征向量与虚拟善意样本库中所有的特征向量进行一次‘或’操作得到中间样本,并将中间样本送入恶意软件检测系统中检测,能够绕过检测系统的所有中间样本组成对抗样本库,然后计算每个对抗样本相对于恶意样本的修改成本,并选取修改成本最小的对抗样本作为最佳对抗样本,从而输出对特征向量的修改策略。修改成本α为对抗样本相对与恶意样本所修改的API特征的数量,其中0<α≤4096。对样本进行修改时,首先解压缩APK文件,获取到classes.dex文件,然后使用baksmali得到smali文件,在程序的MainActivity.smali文件中加入冗余API调用,加入的具体API是由修改策略指出的,修改完成后,使用smali重新生成classes.dex文件,并替换掉原始APK中的dex文件,然后对APK进行重打包、重签名,从而得到修改后的对抗样本。相应的,本专利技术还提供了一种基于DCGAN的Android对抗样本生成系统,其包括:API特征选择模块:用于对Android应用程序进行反编译,并提取出使用的API,生成一个描述该应用的特征向量;虚拟善意样本生成模块:用于使用DCGAN生成模型对善意样本的特征向量进行学习,根据学习到的特征向量分布规律生成大量虚拟的善意样本特征向量,组成善意样本库;对抗样本生成模块:用于对于一个特定的恶意样本,生成针对于特定恶意样本的修改策略;应用修改模块:用于根据修改策略对原始样本进行修改,得到相应的对抗样本,使其能够躲避Android恶意软件检测系统的检测。相对现有技术,本专利技术的有益效果为:本专利技术生成的对抗样本可以用来重新训练原始检测系统,增强了系统的鲁棒性,实现了对Android恶意软件变种的主动防御。附图说明图1为本专利技术方法原理图;图2为应用恶意行为示例。具体实施方式在本部分中我们阐明了基于最小修改成本的ASG算法(AdversarialSampleGenerationAlgorithm)的实施方式与示例。对于一个应用x,我们对应用的修改映射为对特征向量Φ(x)的修改,下面我们引入几个定义:定义1修改成本我们对任意应用x的特征向量Φ(x)进行修改,包括增加特征与减少特征,修改后的特征向量为Φ(x)′,Φ(x)′相对于Φ(x)中对应位置元素发生变化的数量之和为应用x的修改成本,数学描述如下:Cost(Φ(x))=Φ(x)XORΦ(x)′定义2虚拟善意样本使用训练好的DCGAN网络生成的能够被检测系统识别为善意样本的特征向量α,特征向量α并不保证在真实世界中存在对应的应用,因此称为虚拟善意样本。由不同数量的虚拟善意样本组成的集合我们成为虚拟善意样本库Sα。定义3最佳对抗样本计算某个应用x相对于虚拟样本库中每一个虚拟善意样本α的修改成本,其中修改成本最小的虚拟样本称为最佳对抗样本Φ(x)bset,数学描述如下:Φ(x)bset=min{Φ(x)XORαi|αi∈Sα}对抗样本生成算法如表1所示:表1对抗样本生成算法在ASG算法中,输入为应用x的特征向量Φ(x),输出为应用x的最佳对抗样本Φ(x)bset。应用x的特征向量Φ(x)首先与虚拟样本库中的虚拟善意样本α(x)做或运算得到中间向量,这是为了保证特征只增加不减少,从而不会影响应用原始的恶意行为,然后将生成的中间向量β(x)放入恶意软件检测系统中检测并计算修改成本Cost(β(x)),如果中间向量能够绕过检测器的检测并且修改成本比之前的要小,则保存此次修改成本与中间向量,遍历完虚拟样本库中的所有虚拟向量后,输出应用x的最佳对抗样本Φ(x)bset。为了验证算法的可行性,我们给出了一个启发性的示例。我们从Drebin数据集中选取了一个恶意软件(sha256值为aabe5b64af5e841e02392865dc10dcd2df499ec644839227020本文档来自技高网...

【技术保护点】
1.一种基于DCGAN的Android对抗样本生成方法,其特征在于,包括以下步骤:1)对Android应用程序进行反编译,并提取出使用的API,生成一个描述该应用的特征向量;2)使用DCGAN生成模型对善意样本的特征向量进行学习,根据学习到的特征向量分布规律生成大量虚拟的善意样本特征向量,组成善意样本库;3)对于一个特定的恶意样本,生成针对于特定恶意样本的修改策略;4)根据修改策略对原始样本进行修改,得到相应的对抗样本,使其能够躲避Android恶意软件检测系统的检测。

【技术特征摘要】
1.一种基于DCGAN的Android对抗样本生成方法,其特征在于,包括以下步骤:1)对Android应用程序进行反编译,并提取出使用的API,生成一个描述该应用的特征向量;2)使用DCGAN生成模型对善意样本的特征向量进行学习,根据学习到的特征向量分布规律生成大量虚拟的善意样本特征向量,组成善意样本库;3)对于一个特定的恶意样本,生成针对于特定恶意样本的修改策略;4)根据修改策略对原始样本进行修改,得到相应的对抗样本,使其能够躲避Android恶意软件检测系统的检测。2.根据权利要求1所述的基于DCGAN的Android对抗样本生成方法,其特征在于,Android应用程序的表征采用API作为特征向量,其中向量维度为1x4096,即包含4096个API;采用卡方检验的方法选取API,根据卡方值从高到低选取相关性最高的前4096个API作为特征,并生成由0和1构成的二值特征向量。3.根据权利要求1所述的基于DCGAN的Android对抗样本生成方法,其特征在于,DCGAN生成模型包括生成器和检测器,所述生成器对100维的噪声向量进行四次转置卷积操作,并最终得到64x64维度的虚拟善意样本特征向量;所述检测器通过四次相反的卷积操作得出样本为真实样本的概率,通过生成器与检测器间的相互博弈,训练出新的生成器。4.根据权利要求1所述的基于DCGAN的Android对抗样本生成方法,其特征在于,所述修改策略的具体生成过程包括:首先将恶意样本的特征向量与虚拟善意样本库中所有的特征向量进行一次‘...

【专利技术属性】
技术研发人员:曾迎之张义靖彤莉刘吉元李文华
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1