CN115249048B - 一种对抗样本生成方法 - Google Patents
一种对抗样本生成方法 Download PDFInfo
- Publication number
- CN115249048B CN115249048B CN202211125507.0A CN202211125507A CN115249048B CN 115249048 B CN115249048 B CN 115249048B CN 202211125507 A CN202211125507 A CN 202211125507A CN 115249048 B CN115249048 B CN 115249048B
- Authority
- CN
- China
- Prior art keywords
- feature
- items
- characteristic information
- sample
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于对抗网络技术领域,其目的在于提供一种对抗样本生成方法。本发明公开了一种对抗样本生成方法。本发明能够批量产生对抗样本,同时绕过更多类型安全检测算法的扫描。具体地,本发明在实施过程中,在特征提取方面,依次获取数据样本的静态特征信息和动态特征信息后,对静态特征信息和动态特征信息中的特征项进行融合,得到特征向量,然后进行特征项筛选,得到筛选后特征向量,在此过程中,采用多特征项融合及筛选的方法,可便于形成更有效的特征向量,利于提升特征提取的精度。
Description
技术领域
本发明属于对抗网络技术领域,具体涉及一种对抗样本生成方法。
背景技术
2014年10月Ian J. Goodfellow等人提出了一个通过对抗过程估计生成模型的新框架,即生成式对抗网络(GAN,Generative Adversarial Networks),其分为两个网络:G(Generator,发生器)和D(Discriminator,鉴别器)。具体地,G是一个生成网络,它可接收一个随机的噪声z,并通过这个噪声生成样本,记做G(z);D是一个判别网络,用于判别一个样本是不是“真实的”,其输入参数是x,x代表一个样本,输出的结果是D(x),代表样本x为真实图片的概率,如果D(x)为1,就代表该样本100%是真实的,如果D(x)为0,就代表该样本不可能是真实的。在训练过程中,生成网络G的目标是尽量生成真实的样本去欺骗判别网络D,而判别网络D的目标是尽量把生成网络G生成的样本和真实的样本分别开来,这样,生成网络G和判别网络D构成了一个动态的“博弈过程”。在最理想的状态下,最后博弈的结果是:生成网络G可以生成足以“以假乱真”的样本G(z),而对于判别网络D来说,它难以判定生成网络G生成的样本究竟是不是真实的,此时D(G(z))=0.5,由此可得到一个生成式的模型G,其可以用来生成以假乱真的样本。
由此,研究人员提出了“对抗样本”这一概念。通过在原有样本中添加微小扰动的方法,成功地大幅度降低原有分类深度模型的准确率,实现了对于深度学习的对抗目的,同时也给深度学习的攻方提供了新的思路,对如何开展防御提出了新的要求。
但是,在使用现有技术过程中,发明人发现现有技术中至少存在如下问题:
在以往的技术中,研究人员大多在特征提取方面采用单一的类别,如HU[2]等人在特征提取这部分只提取了含有API(Application Program Interface,应用程序编程接口)的特征,或者提取多种特征进行简单的融合,如李[3]等人在特征提取这部分虽然提取了多种特征,但对于这些不同的特征也只是进行简单的融合,没有经过筛选,并不能将所提取的特征很好地代表软件的良恶性,导致对特征提取的精度不够准确。
发明内容
本发明旨在至少在一定程度上解决上述技术问题,本发明提供了一种对抗样本生成方法。
为了实现上述目的,本发明采用以下技术方案:
第一方面,提供了一种对抗样本生成方法,包括:
获取数据样本;其中,所述数据样本包括恶意样本和良性样本;
对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息;
对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息;
对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量;其中,所述静态特征信息和所述动态特征信息中均包括多个特征项;
对所述特征向量进行特征项筛选,得到筛选后特征向量;
构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型;
根据所述对抗样本生成模型,生成对抗样本。
本发明能够批量产生对抗样本,同时绕过更多类型安全检测算法的扫描。具体地,本发明在实施过程中,在特征提取方面,依次获取数据样本的静态特征信息和动态特征信息后,对静态特征信息和动态特征信息中的特征项进行融合,得到特征向量,然后进行特征项筛选,得到筛选后特征向量,在此过程中,采用多特征项融合及筛选的方法,可便于形成更有效的特征向量,利于提升特征提取的精度。
在一个可能的设计中,对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息,包括:
使用apktool工具对所述数据样本的apk文件进行静态反编译,得到所述apk文件的smali文件夹和AndroidManifest.xml文件;
从所述AndroidManifest.xml文件中提取所述apk文件的permission特征信息、action特征信息、service特征信息、category特征信息、activity特征信息、provider特征信息和receiver特征信息;
从所述smali文件夹中提取所述apk文件的API特征信息和操作码特征信息;
将所述permission特征信息、所述action特征信息、所述service特征信息、所述category特征信息、所述activity特征信息、所述provider特征信息、所述receiver特征信息、所述API特征信息和所述操作码特征信息作为所述数据样本的静态特征信息。
在一个可能的设计中,对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息,包括:
将所述数据样本的apk文件导入CuckooDroid工具部署的虚拟运行环境中模拟运行;
通过基于Xposed框架的Dalvik API挂钩,捕获所述apk文件运行时的动态API执行序列;
将所述动态API执行序列作为所述数据样本的动态特征信息。
在一个可能的设计中,对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量,包括:
获取所述静态特征信息和所述动态特征信息中各特征项在所述数据样本中出现的总次数;
根据各特征项在所述数据样本中出现的总次数,对所述静态特征信息和所述动态特征信息进行融合,得到特征向量;其中,第i个数据样本对应的特征向量为:
T i ={x1:c1,x2:c2,……,xk:ck,……,xn:cn}
式中,xk为当前数据样本中任一特征项的名称,ck为特征项xk在当前数据样本中出现的总次数,其中k={1,2,……,n},n为当前静态特征信息和所述动态特征信息中的特征项的总数。
在一个可能的设计中,对所述特征向量进行特征项筛选,得到筛选后特征向量,包括:
对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量;
获取并删除所述排序后特征向量中的恶意特征项和中性特征项,得到低维特征向量;
选取所述低维特征向量中排序靠前指定位数内的所有特征项,得到筛选后特征向量。
在一个可能的设计中,对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量,包括:
基于随机森林算法计算特征向量中的所有特征项的第一重要度值,并按第一重要度值的大小,对所述特征向量中的所有特征项进行第一重要度排序,得到第一特征序列;
基于逻辑回归算法计算特征向量中的所有特征项的第二重要度值,并按第二重要度值的大小,对所述特征向量中的所有特征项进行第二重要度排序,得到第二特征序列;
基于支持向量机算法计算特征向量中的所有特征项的第三重要度值,并按第三重要度值的大小,对所述特征向量中的所有特征项进行第三重要度排序,得到第三特征序列;
基于软投票法获取所述第一特征序列的第一均值、所述第二特征序列的第二均值和所述第三特征序列的第三均值;
根据所述第一均值、第二均值和第三均值,对所述特征向量中的所有特征项进行重排序,得到排序后特征向量。
在一个可能的设计中,获取所述排序后特征向量中的恶意特征项和中性特征项,包括:
计算所述排序后特征向量中各特征项的筛选指标值;其中,任一所述特征项j的筛选指标值为:
S j =Tb/Nb-Tm/Nm;
式中,Tb为含有特征项j的良性样本数量,Nb为数据样本中的良性样本总数,Tm为含有特征项j的恶意样本数量;Nm为数据样本中的恶意样本总数;
根据预设的筛选指标,判断各特征项的类型,进而得到所述排序后特征向量中的恶意特征项和中性特征项;其中,所述筛选指标为:
当任一特征项j的筛选指标值S j <0时,判定该特征项j为恶意特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为中性特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为良性特征项。
在一个可能的设计中,所述初始模型采用WGAN-GP模型;相应地,构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型,包括:
根据WGAN-GP模型构建生成器和判别器;
固定所述生成器,并对所述判别器进行训练,得到训练后判别器;
固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器;
将所述更新后生成器作为新的生成器,将所述训练后判别器作为新的判别器,然后重新固定该生成器,直到生成器和判别器互相平衡,得到对抗样本生成模型;其中,所述对抗样本生成模型包括互相平衡的生成器和判别器。
在一个可能的设计中,固定所述生成器,并对所述判别器进行训练,得到训练后判别器,包括:
获取噪声数据,并将所述筛选后特征向量与所述噪声数据输入所述生成器中,以便于生成器生成虚假数据;
将所述虚假数据输入所述判别器中,以便于所述判别器判断所述虚假数据的真实性,并对所述虚假数据的真实性的判别结果进行验证;
采用改进后的梯度惩罚训练所述判别器,得到训练后判别器,然后保存所述训练后判别器;
固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器,包括:
将所述虚假数据输入所述训练后判别器,以便于所述训练后判别器判断所述虚假数据的真实性,并采用距离损失函数更新所述生成器,得到更新后生成器,以便使所述更新后生成器能够欺骗所述训练后判别器,然后保存所述更新后生成器。
在一个可能的设计中,生成对抗样本后,所述方法还包括:
将所述筛选后特征向量输入预设的分类检测模型中进行分类检测,得到第一检测率R1;
将所述对抗样本输入预设的分类检测模型中进行分类检测,得到第二检测率R2;
计算所述第一检测率R1和第二检测率R2的检测率差值;其中,检测率差值为:△R=R1-R2;
判断检测率差值是否大于阈值,如是,则判定所述对抗样本逃逸检测成功。
第二方面,提供了一种移动端恶意代码对抗样本生成系统,用于实现如上述任一项所述的对抗样本生成方法;所述移动端恶意代码对抗样本生成系统包括:
数据样本采集模块,用于获取数据样本;其中,所述数据样本包括恶意样本和良性样本;
静态特征信息提取模块,与所述数据样本采集模块通信连接,用于对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息;
动态特征信息提取模块,与所述数据样本采集模块通信连接,用于对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息;
特征项融合模块,分别与所述静态特征信息提取模块和所述动态特征信息提取模块通信连接,用于对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量;其中,所述静态特征信息和所述动态特征信息中均包括多个特征项;
特征项筛选模块,与所述特征项融合模块通信连接,用于对所述特征向量进行特征项筛选,得到筛选后特征向量;
模型构建模块,与所述特征项筛选模块通信连接,用于构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型;
对抗样本生成模块,与所述模型构建模块通信连接,用于根据所述对抗样本生成模型,生成对抗样本。
第三方面,提供了一种电子设备,包括:
存储器,用于存储计算机程序指令;以及,
处理器,用于执行所述计算机程序指令从而完成如上述任一项所述的对抗样本生成方法的操作。
第四方面,提供了一种计算机可读存储介质,用于存储计算机可读取的计算机程序指令,所述计算机程序指令被配置为运行时执行如上述任一项所述的对抗样本生成方法的操作。
附图说明
图1是实施例中一种对抗样本生成方法的流程图;
图2是实施例中一种对抗样本生成系统的模块框图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
实施例1:
本实施例第一方面提供了一种对抗样本生成方法,可以但不限于由具有一定计算资源的计算机设备或虚拟机执行,例如由个人计算机、智能手机、个人数字助理或可穿戴设备等电子设备执行,或者由虚拟机执行。
如图1所示,一种对抗样本生成方法,可以但不限于包括有如下步骤:
S1.获取数据样本;其中,所述数据样本包括恶意样本和良性样本;具体地,本实施例中,恶意样本是从virus share(一个恶意软件样本库)中下载得到,良性样本是从CICMalDroid2020(一个大型安卓恶意App测试数据集)下载得到。本实施例中,根据样本数据得到的筛选后特征向量作为生成对抗样本生成模型过程中的实验数据集进行使用。本实施例中,所述数据样本为恶意APP应用程序相关数据。
S2.对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息;
本实施例中,对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息,包括:
S201.使用apktool工具对所述数据样本的apk文件进行静态反编译,得到所述apk文件的res文件夹、smali文件夹和AndroidManifest.xml文件;需要说明的是,res文件夹是所述apk文件中的所有资源文件,smali文件夹(其包含大量后缀为.smali的文件,为应用程序原始代码的汇编版本,本实施例中称之为smali文件)下存放了所述apk文件所有的反汇编代码,AndroidManifest.xml文件是整个所述apk文件的全局信息描述文件(其包含该应用程序需要用到的permission、action、service、category、activity、provider、receiver等信息的声明)。
S202.从所述AndroidManifest.xml文件中提取所述apk文件的permission特征信息、action特征信息、service特征信息、category特征信息、activity特征信息、provider特征信息和receiver特征信息;
S203.从所述smali文件夹中提取所述apk文件的API特征信息和操作码特征信息;
S204.将所述permission特征信息、所述action特征信息、所述service特征信息、所述category特征信息、所述activity特征信息、所述provider特征信息、所述receiver特征信息、所述API特征信息和所述操作码特征信息作为所述数据样本的静态特征信息。
需要说明的是,提取所述数据样本的静态特征信息的步骤,旨在尽可能的获取更全面的特征信息,以便于形成更完备的特征向量。
S3.对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息;
本实施例中,对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息,包括:
S301.将所述数据样本的apk文件导入CuckooDroid工具(一种自动化的Android恶意软件分析工具)部署的虚拟运行环境中模拟运行;
S302.通过基于Xposed框架的Dalvik API挂钩,捕获所述apk文件运行时的动态API执行序列;
S303.将所述动态API执行序列作为所述数据样本的动态特征信息。
本实施例中,在得到所述数据样本的静态特征信息和动态特征信息后,均将其存储至指定文件中,以便于后续流程中生成特征向量。
需要说明的是,本实施例中提取的静态特征信息和所述动态特征信息共包括10类特征信息,每类特征信息中又包括多个特征项,如permission特征信息中包括数百个具体权限信息等特征项。进行特征提取时,会一并得到每类特征信息中的特征项,以及各特征项的出现次数。
S4.对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量;其中,所述静态特征信息和所述动态特征信息中均包括多个特征项;
本实施例中,对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量,包括:
S401.获取所述静态特征信息和所述动态特征信息中各特征项在所述数据样本中出现的总次数;
S402.根据各特征项在所述数据样本中出现的总次数,对所述静态特征信息和所述动态特征信息进行融合,得到特征向量;其中,第i个数据样本对应的特征向量为:
T i ={x1:c1,x2:c2,……,xk:ck,……,xn:cn}
式中,xk为当前数据样本中任一特征项的名称,ck为特征项xk在当前数据样本中出现的总次数,其中k={1,2,……,n},n为当前静态特征信息和所述动态特征信息中的特征项的总数。
需要说明的是,所述特征向量为高维特征向量,其包括对应数据样本中的所有特征项,具有更强的语义信息,同时分辨率较高。
S5.对所述特征向量进行特征项筛选,得到筛选后特征向量;
本实施例中,对所述特征向量进行特征项筛选,得到筛选后特征向量,包括:
S501.对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量;需要说明的是,重要度排序可便于在后续流程中提取出更为重要的特征项。
具体地,步骤S501中,对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量,包括:
A1.基于随机森林算法计算特征向量中的所有特征项的第一重要度值,并按第一重要度值的大小,对所述特征向量中的所有特征项进行第一重要度排序,得到第一特征序列;需要说明的是,随机森林算法以决策树为估计器,可将多个决策树结合在一起,每次数据集是随机有放回的选出,同时随机选出部分特征作为输入。
A2.基于逻辑回归算法计算特征向量中的所有特征项的第二重要度值,并按第二重要度值的大小,对所述特征向量中的所有特征项进行第二重要度排序,得到第二特征序列;需要说明的是,逻辑回归算法主要解决二分类问题,用来表示某件事情发生的可能性。
A3.基于支持向量机算法计算特征向量中的所有特征项的第三重要度值,并按第三重要度值的大小,对所述特征向量中的所有特征项进行第三重要度排序,得到第三特征序列;需要说明的是,支持向量机(Support Vector Machine,SVM)算法是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析,其是将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面,在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化,假定平行超平面间的距离或差距越大,分类器的总误差越小。
A4.基于软投票法获取所述第一特征序列的第一均值、所述第二特征序列的第二均值和所述第三特征序列的第三均值;需要说明的是,软投票也称加权平均概率投票,是使用输出类概率分类的投票法,其通过输入权重,得到每个类概率的加权平均值,并选择值较大的那一类。
A5.根据所述第一均值、第二均值和第三均值,对所述特征向量中的所有特征项进行重排序,得到排序后特征向量。
S502.获取并删除所述排序后特征向量中的恶意特征项和中性特征项,得到低维特征向量;
本实施例中,步骤S502中,获取所述排序后特征向量中的恶意特征项和中性特征项,包括:
B1.计算所述排序后特征向量中各特征项的筛选指标值;其中,任一所述特征项j的筛选指标值为:
S j =Tb/Nb-Tm/Nm;
式中,Tb为含有特征项j的良性样本数量,Nb为数据样本中的良性样本总数,Tm为含有特征项j的恶意样本数量;Nm为数据样本中的恶意样本总数;
B2.根据预设的筛选指标,判断各特征项的类型,进而得到所述排序后特征向量中的恶意特征项和中性特征项;其中,所述筛选指标为:
当任一特征项j的筛选指标值S j <0时,判定该特征项j为恶意特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为中性特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为良性特征项。
S503.选取所述低维特征向量中排序靠前指定位数内的所有特征项,得到筛选后特征向量。具体地,本实施例中,指定位数取128,即筛选后特征向量中包括128位特征项,筛选后特征向量为128维的特征向量。
需要说明的是,排序后特征向量为高维特征向量,而高维特征向量带来的计算成本非常大,甚至难以完成,同时一般高维特征向量都比较稀疏,直接使用高维的特征训练需要样本量很大,难以拟合,模型效果不好,为解决上述问题,本实施例通过删除其中的恶意特征向量和中性特征向量,并选取其中靠前指定位数的特征向量,进而实现特征向量的降维,得到低维度的筛选后特征向量,以便提高后续的计算成本,同时便于拟合。
S6.构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型;
本实施例中,所述初始模型采用WGAN-GP模型;相应地,构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型,包括:
S601.根据WGAN-GP模型构建生成器和判别器;其中,所述生成器包括依次连接的第一Dense层、第二Dense层和第一激活层,所述第一Dense层的输入大小为(,148)(注:逗号前面为空表示全部行,148为总的维度,也是列数,输入大小为(,148)即表示输入的信息包括128维的特征向量以及20维的噪声)、输出大小为(,256)所述第二Dense层的输入大小为(,256)、输出大小为(,128),所述第一激活层采用sigmoid激活函数;所述判别器包括第三Dense层、第四Dense层和第二激活层,所述第三Dense层的输入大小为(,128)、输出大小为(,256),所述第四Dense层的输入大小为(,256)、输出大小为(,2)(注:即表示该特征项为恶意特征项或良性特征项),所述第二激活层采用sigmoid激活函数;
S602.固定所述生成器,并对所述判别器进行训练,得到训练后判别器;
具体地,步骤S602中,固定所述生成器,并对所述判别器进行训练,得到训练后判别器,包括:
获取噪声数据,并将所述筛选后特征向量与所述噪声数据输入所述生成器中,以便于生成器生成虚假数据;
将所述虚假数据输入所述判别器中,以便于所述判别器判断所述虚假数据的真实性,并对所述虚假数据的真实性的判别结果进行验证;
采用改进后的梯度惩罚训练所述判别器,具体地,在对判别器进行训练过程中计算梯度惩罚,使其趋向于0,由此得到训练后判别器,然后保存所述训练后判别器。
本实施例中,所述改进后的梯度惩罚为:
表示惩罚项,即计算分布函数中对应的梯度与参数K(本实施例中,K取1,因为在实验中发现越接近1效果越好)的差的平方的期望;具体地,,其中,,E为[0,1]之间的随机数,为真实数据分布,真实数据为各原始样本的特征向量,为生成数据分布,即为根据随机数E采集的和一对样本点的连线上随机获取的样本;为所有所满足的分布函数;参数λ取10,因为实验中此值在数据集上的工作表现良好。
S603.固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器;
具体地,步骤S603中,固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器,包括:
将所述虚假数据输入所述训练后判别器,以便于所述训练后判别器判断所述虚假数据的真实性,并采用距离损失函数更新所述生成器,得到更新后生成器,以便使所述更新后生成器能够欺骗所述训练后判别器,然后保存所述更新后生成器。
S604.将所述更新后生成器作为新的生成器,将所述训练后判别器作为新的判别器,然后重新固定该生成器,直到生成器和判别器互相平衡,得到对抗样本生成模型;其中,所述对抗样本生成模型包括互相平衡的生成器和判别器。
需要说明的是,现有技术中的GAN存在模式崩溃的问题,模式崩溃就是指生成器不具备多样性,往往会不断重复同样的数据或者同类型的数据作为生成结果。在测试中,虽然完全的模式崩溃不多见,但是部分模式崩溃还是很普遍。部分模式崩溃是指生成网络只产生真实数据分布函数中的一部分数据,或者漏掉一小部分类型的数据。而WGAN(Wasserstein GAN)[4]在实验中可以解决模式崩溃问题,在WGAN中为了满足1-Lipschitz连续条件,使用的方法是权值剪裁,以把整个网络的权重限定在一个大小范围内。但是这样会产生一些问题,第一个问题是权值剪裁限制了网络的表现能力,由于网络权重被限制在了固定的范围内,神经网络就很难模拟出复杂的函数;第二个问题是梯度爆炸和梯度消失。为了解决WGAN的问题,研究者提出了一种改进方法WGAN-GP[5],使用梯度惩罚的方法替代权值剪裁,需要满足函数在任意位置上的梯度都小于1,可以考虑根据网络的输入来限制对应判别器的输出,对此更新目标函数,添加惩罚项。
本实施例中,在生成对抗样本生成模型方面,本实施例采用改进的WGAN-GP模型作为生成框架,进而得到最终的对抗样本生成模型,提升了对抗样本生成模型在特征向量使用过程中的稳定性。
S7.根据所述对抗样本生成模型,生成对抗样本。
具体地,本实施例中,所述对抗样本生成模型生成对抗样本的流程如下:
1)计算需要插入到初始数据样本的各类特征的数量,并将各类特征的数量作为扰动数据;
2)分别自定义permission特征信息、action特征信息、service特征信息、category特征信息、activity特征信息、provider特征信息和receiver特征信息在AndroidManifest.xml文件的标准化代码,以及API特征信息和操作码特征信息在.smali文件夹中的标准化代码;
3)将待插入扰动数据的初始数据样本使用apktool工具进行反编译,得到反编译文件(包含AndroidManifest.xml文件、.smali文件等等);
4)将需插入原程序的标准化代码插入到反编译文件内,得到修改后反编译文件;
5)使用apktool工具对修改后反编译文件进行回编译,再使用apksigner工具(一种手机版apk签名工具)进行应用程序签名,得到对抗样本。
S8.对所述对抗样本进行逃逸检测。
具体地,对所述对抗样本进行逃逸检测,包括:
S801.将所述筛选后特征向量输入预设的分类检测模型中进行分类检测,得到第一检测率R1;
S802.将所述对抗样本输入预设的分类检测模型中进行分类检测,得到第二检测率R2;
S803.计算所述第一检测率R1和第二检测率R2的检测率差值;其中,检测率差值为:△R=R1-R2;
S804.判断检测率差值是否大于阈值,如是,则判定所述对抗样本逃逸检测成功。
本实施例通过采用更多样化的分类器进行检测,利于提升对抗样本的泛化性和对抗算法的迁移性。具体地,现有技术中,采取的检测方法不够多样,如朱[6]等人在最后检测逃避成功率这部分,只采取了随机森林分类器,没有使用多种分类器进行检测,不能很好地验证生成的对抗样本是否成功逃避了检测。为解决该技术问题,本实施例中,预设的分类检测模型包括随机森林算法、逻辑回归算法、决策树算法、支持向量机算法、神经网络和/或卷积神经网络等分类算法,以便实现对所述对抗样本的逃逸检测,检测准确度较高。
综上所述,本实施例能够批量产生对抗样本,同时绕过更多类型安全检测算法的扫描。具体地,本实施例在实施过程中,在特征提取方面,依次获取数据样本的静态特征信息和动态特征信息后,对静态特征信息和动态特征信息中的特征项进行融合,得到特征向量,然后进行特征项筛选,得到筛选后特征向量,在此过程中,采用多特征项融合及筛选的方法,可便于形成更有效的特征向量,利于提升特征提取的精度。
参考文献:
[1]Ian J. Goodfellow;Jean Pouget-Abadie;Mehdi Mirza;Bing Xu;DavidWarde-Farley;SherjilOzair;Aaron Courville;YoshuaBengio.Generative AdversarialNetworks[J].Statistics,2014
[2]HU Weiwei, TAN Ying. Generating Adversarial Malware Examples forBlack-Box Attacks Based on GAN[EB/OL]. https://arxiv.org/abs/1702.05983,2017-2-20.
[3] 李红娇,陈红艳.基于WGAN的移动恶意对抗样本生成研究[J].信息网络安全,2020,20(11): 51-58
[4]Martin Arjovsky;SoumithChintala;Léon Bottou.Wasserstein GAN[J].Statistics,2017,Vol.3
[5]Ishaan Gulrajani,Faruk Ahmed, Martin Arjovsky, Vincent Dumoulin,Aaron Courville.Improved Training of Wasserstein GANs[J].Statistics,2017
[6]朱晓慧,钱丽萍,傅伟.基于生成对抗网络增强恶意代码的方法[J].计算机工程与设计,2021,第42卷(11): 3034-3042
实施例2:
本实施例提供一种移动端恶意代码对抗样本生成系统,用于实现实施例1中对抗样本生成方法;如图2所示,所述移动端恶意代码对抗样本生成系统包括:
数据样本采集模块,用于获取数据样本;其中,所述数据样本包括恶意样本和良性样本;
静态特征信息提取模块,与所述数据样本采集模块通信连接,用于对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息;
动态特征信息提取模块,与所述数据样本采集模块通信连接,用于对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息;
特征项融合模块,分别与所述静态特征信息提取模块和所述动态特征信息提取模块通信连接,用于对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量;其中,所述静态特征信息和所述动态特征信息中均包括多个特征项;
特征项筛选模块,与所述特征项融合模块通信连接,用于对所述特征向量进行特征项筛选,得到筛选后特征向量;
模型构建模块,与所述特征项筛选模块通信连接,用于构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型;
对抗样本生成模块,与所述模型构建模块通信连接,用于根据所述对抗样本生成模型,生成对抗样本。
实施例3:
在实施例1或2的基础上,本实施例公开了一种电子设备,该设备可以是智能手机、平板电脑、笔记本电脑或者台式电脑等。电子设备可能被称为用于终端、便携式终端、台式终端等,电子设备包括:
存储器,用于存储计算机程序指令;以及,
处理器,用于执行所述计算机程序指令从而完成如实施例1中任一所述的对抗样本生成方法的操作。
实施例4:
在实施例1至3任一项实施例的基础上,本实施例公开了一种计算机可读存储介质,用于存储计算机可读取的计算机程序指令,所述计算机程序指令被配置为运行时执行如实施例1所述的对抗样本生成方法的操作。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种对抗样本生成方法,其特征在于:包括:
获取数据样本;其中,所述数据样本包括恶意样本和良性样本;
对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息;
对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息;
对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量;其中,所述静态特征信息和所述动态特征信息中均包括多个特征项;
对所述特征向量进行特征项筛选,得到筛选后特征向量;
构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型;
根据所述对抗样本生成模型,生成对抗样本;
对所述静态特征信息中的特征项和所述动态特征信息中的特征项进行融合,得到特征向量,包括:
获取所述静态特征信息和所述动态特征信息中各特征项在所述数据样本中出现的总次数;
根据各特征项在所述数据样本中出现的总次数,对所述静态特征信息和所述动态特征信息进行融合,得到特征向量;其中,第i个数据样本对应的特征向量为:
T i ={x1:c1,x2:c2,……,xk:ck,……,xn:cn}
式中,xk为当前数据样本中任一特征项的名称,ck为特征项xk在当前数据样本中出现的总次数,其中k={1,2,……,n},n为当前静态特征信息和所述动态特征信息中的特征项的总数;
对所述特征向量进行特征项筛选,得到筛选后特征向量,包括:
对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量;
获取并删除所述排序后特征向量中的恶意特征项和中性特征项,得到低维特征向量;
选取所述低维特征向量中排序靠前指定位数内的所有特征项,得到筛选后特征向量;
获取所述排序后特征向量中的恶意特征项和中性特征项,包括:
计算所述排序后特征向量中各特征项的筛选指标值;其中,任一所述特征项j的筛选指标值为:
S j =Tb/Nb-Tm/Nm;
式中,Tb为含有特征项j的良性样本数量,Nb为数据样本中的良性样本总数,Tm为含有特征项j的恶意样本数量;Nm为数据样本中的恶意样本总数;
根据预设的筛选指标,判断各特征项的类型,进而得到所述排序后特征向量中的恶意特征项和中性特征项;其中,所述筛选指标为:
当任一特征项j的筛选指标值S j <0时,判定该特征项j为恶意特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为中性特征项;
当任一特征项j的筛选指标值S j =0时,判定该特征项j为良性特征项。
2.根据权利要求1所述的一种对抗样本生成方法,其特征在于:对所述数据样本的apk文件进行静态反编译,得到所述数据样本的静态特征信息,包括:
使用apktool工具对所述数据样本的apk文件进行静态反编译,得到所述apk文件的smali文件夹和AndroidManifest.xml文件;
从所述AndroidManifest.xml文件中提取所述apk文件的permission特征信息、action特征信息、service特征信息、category特征信息、activity特征信息、provider特征信息和receiver特征信息;
从所述smali文件夹中提取所述apk文件的API特征信息和操作码特征信息;
将所述permission特征信息、所述action特征信息、所述service特征信息、所述category特征信息、所述activity特征信息、所述provider特征信息、所述receiver特征信息、所述API特征信息和所述操作码特征信息作为所述数据样本的静态特征信息。
3.根据权利要求1所述的一种对抗样本生成方法,其特征在于:对所述数据样本的apk文件进行动态分析,得到所述数据样本的动态特征信息,包括:
将所述数据样本的apk文件导入CuckooDroid工具部署的虚拟运行环境中模拟运行;
通过基于Xposed框架的Dalvik API挂钩,捕获所述apk文件运行时的动态API执行序列;
将所述动态API执行序列作为所述数据样本的动态特征信息。
4.根据权利要求1所述的一种对抗样本生成方法,其特征在于:对所述特征向量中的所有特征项进行重要度排序,得到排序后特征向量,包括:
基于随机森林算法计算特征向量中的所有特征项的第一重要度值,并按第一重要度值的大小,对所述特征向量中的所有特征项进行第一重要度排序,得到第一特征序列;
基于逻辑回归算法计算特征向量中的所有特征项的第二重要度值,并按第二重要度值的大小,对所述特征向量中的所有特征项进行第二重要度排序,得到第二特征序列;
基于支持向量机算法计算特征向量中的所有特征项的第三重要度值,并按第三重要度值的大小,对所述特征向量中的所有特征项进行第三重要度排序,得到第三特征序列;
基于软投票法获取所述第一特征序列的第一均值、所述第二特征序列的第二均值和所述第三特征序列的第三均值;
根据所述第一均值、第二均值和第三均值,对所述特征向量中的所有特征项进行重排序,得到排序后特征向量。
5.根据权利要求1所述的一种对抗样本生成方法,其特征在于:所述初始模型采用WGAN-GP模型;相应地,构建初始模型,并将所述筛选后特征向量输入所述初始模型进行处理,得到对抗样本生成模型,包括:
根据WGAN-GP模型构建生成器和判别器;
固定所述生成器,并对所述判别器进行训练,得到训练后判别器;
固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器;
将所述更新后生成器作为新的生成器,将所述训练后判别器作为新的判别器,然后重新固定该生成器,直到生成器和判别器互相平衡,得到对抗样本生成模型;其中,所述对抗样本生成模型包括互相平衡的生成器和判别器。
6.根据权利要求5所述的一种对抗样本生成方法,其特征在于:固定所述生成器,并对所述判别器进行训练,得到训练后判别器,包括:
获取噪声数据,并将所述筛选后特征向量与所述噪声数据输入所述生成器中,以便于生成器生成虚假数据;
将所述虚假数据输入所述判别器中,以便于所述判别器判断所述虚假数据的真实性,并对所述虚假数据的真实性的判别结果进行验证;
采用改进后的梯度惩罚训练所述判别器,得到训练后判别器,然后保存所述训练后判别器;
固定所述训练后判别器,并对所述生成器进行训练,得到更新后生成器,包括:
将所述虚假数据输入所述训练后判别器,以便于所述训练后判别器判断所述虚假数据的真实性,并采用距离损失函数更新所述生成器,得到更新后生成器,以便使所述更新后生成器能够欺骗所述训练后判别器,然后保存所述更新后生成器。
7.根据权利要求1所述的一种对抗样本生成方法,其特征在于:生成对抗样本后,所述方法还包括:
将所述筛选后特征向量输入预设的分类检测模型中进行分类检测,得到第一检测率R1;
将所述对抗样本输入预设的分类检测模型中进行分类检测,得到第二检测率R2;
计算所述第一检测率R1和第二检测率R2的检测率差值;其中,检测率差值为:△R=R1-R2;
判断检测率差值是否大于阈值,如是,则判定所述对抗样本逃逸检测成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125507.0A CN115249048B (zh) | 2022-09-16 | 2022-09-16 | 一种对抗样本生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211125507.0A CN115249048B (zh) | 2022-09-16 | 2022-09-16 | 一种对抗样本生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115249048A CN115249048A (zh) | 2022-10-28 |
CN115249048B true CN115249048B (zh) | 2023-01-10 |
Family
ID=83699229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211125507.0A Active CN115249048B (zh) | 2022-09-16 | 2022-09-16 | 一种对抗样本生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115249048B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN107180191A (zh) * | 2017-05-03 | 2017-09-19 | 北京理工大学 | 一种基于半监督学习的恶意代码分析方法和系统 |
CN108388795A (zh) * | 2018-02-11 | 2018-08-10 | 浙江工业大学 | 一种基于lstm检测器的对抗攻击防御方法 |
CN111832019A (zh) * | 2020-06-10 | 2020-10-27 | 国家计算机网络与信息安全管理中心 | 基于生成对抗网络的恶意代码检测方法 |
CN112464232A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种基于混合特征组合分类的Android系统恶意软件检测方法 |
CN112565261A (zh) * | 2020-12-04 | 2021-03-26 | 浙江大学 | 基于多生成器AugGAN的对抗动态恶意API序列生成方法 |
CN113221109A (zh) * | 2021-03-30 | 2021-08-06 | 浙江工业大学 | 一种基于生成对抗网络的恶意文件智能分析方法 |
CN114139155A (zh) * | 2021-11-30 | 2022-03-04 | 云南大学 | 一种恶意软件检测模型及其增强对抗样本的生成方法 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392025B (zh) * | 2017-08-28 | 2020-06-26 | 刘龙 | 基于深度学习的恶意安卓应用程序检测方法 |
US10728282B2 (en) * | 2018-01-19 | 2020-07-28 | General Electric Company | Dynamic concurrent learning method to neutralize cyber attacks and faults for industrial asset monitoring nodes |
US11200318B2 (en) * | 2018-12-28 | 2021-12-14 | Mcafee, Llc | Methods and apparatus to detect adversarial malware |
CN109753800B (zh) * | 2019-01-02 | 2023-04-07 | 重庆邮电大学 | 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统 |
US11657162B2 (en) * | 2019-03-22 | 2023-05-23 | Intel Corporation | Adversarial training of neural networks using information about activation path differentials |
US11606389B2 (en) * | 2019-08-29 | 2023-03-14 | Nec Corporation | Anomaly detection with graph adversarial training in computer systems |
CN110795732A (zh) * | 2019-10-10 | 2020-02-14 | 南京航空航天大学 | 基于SVM的Android移动网络终端恶意代码的动静结合检测方法 |
EP3989217B1 (en) * | 2020-10-22 | 2023-09-27 | Thomson Licensing | Method for detecting an audio adversarial attack with respect to a voice input processed by an automatic speech recognition system, corresponding device, computer program product and computer-readable carrier medium |
CN113158190B (zh) * | 2021-04-30 | 2022-03-29 | 河北师范大学 | 一种基于生成式对抗网络的恶意代码对抗样本自动生成方法 |
-
2022
- 2022-09-16 CN CN202211125507.0A patent/CN115249048B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107180191A (zh) * | 2017-05-03 | 2017-09-19 | 北京理工大学 | 一种基于半监督学习的恶意代码分析方法和系统 |
CN107180192A (zh) * | 2017-05-09 | 2017-09-19 | 北京理工大学 | 基于多特征融合的安卓恶意应用程序检测方法和系统 |
CN108388795A (zh) * | 2018-02-11 | 2018-08-10 | 浙江工业大学 | 一种基于lstm检测器的对抗攻击防御方法 |
CN111832019A (zh) * | 2020-06-10 | 2020-10-27 | 国家计算机网络与信息安全管理中心 | 基于生成对抗网络的恶意代码检测方法 |
CN112464232A (zh) * | 2020-11-21 | 2021-03-09 | 西北工业大学 | 一种基于混合特征组合分类的Android系统恶意软件检测方法 |
CN112565261A (zh) * | 2020-12-04 | 2021-03-26 | 浙江大学 | 基于多生成器AugGAN的对抗动态恶意API序列生成方法 |
CN113221109A (zh) * | 2021-03-30 | 2021-08-06 | 浙江工业大学 | 一种基于生成对抗网络的恶意文件智能分析方法 |
CN114139155A (zh) * | 2021-11-30 | 2022-03-04 | 云南大学 | 一种恶意软件检测模型及其增强对抗样本的生成方法 |
CN114266050A (zh) * | 2022-03-03 | 2022-04-01 | 西南石油大学 | 一种跨平台恶意软件对抗样本生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115249048A (zh) | 2022-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ganju et al. | Property inference attacks on fully connected neural networks using permutation invariant representations | |
Gibert | Convolutional neural networks for malware classification | |
Sheikhi et al. | An effective model for SMS spam detection using content-based features and averaged neural network | |
Kim et al. | Andro-simnet: Android malware family classification using social network analysis | |
CN112528284A (zh) | 恶意程序的检测方法及装置、存储介质、电子设备 | |
Ebrahimi et al. | Binary black-box evasion attacks against deep learning-based static malware detectors with adversarial byte-level language model | |
CN112241530B (zh) | 恶意pdf文档的检测方法及电子设备 | |
CN113935033A (zh) | 特征融合的恶意代码家族分类方法、装置和存储介质 | |
Li et al. | Enhancing Robustness of Deep Neural Networks Against Adversarial Malware Samples: Principles, Framework, and AICS'2019 Challenge | |
Kakisim et al. | Sequential opcode embedding-based malware detection method | |
Ito et al. | Detecting unknown malware from ASCII strings with natural language processing techniques | |
Park et al. | Birds of a feature: Intrafamily clustering for version identification of packed malware | |
US20220318387A1 (en) | Method and Computer for Learning Correspondence Between Malware and Execution Trace of the Malware | |
CN112329012B (zh) | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 | |
Boot | Applying supervised learning on malware authorship attribution | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
Sandhya et al. | Enhancing the Performance of an Intrusion Detection System Using Spider Monkey Optimization in IoT. | |
CN115249048B (zh) | 一种对抗样本生成方法 | |
Yusoff et al. | Optimizing decision tree in malware classification system by using genetic algorithm | |
Yadav et al. | Deep learning in malware identification and classification | |
CN113971283A (zh) | 一种基于特征的恶意应用程序检测方法及设备 | |
CN111324893A (zh) | 基于敏感模式的安卓恶意软件的检测方法及后台系统 | |
Khan et al. | OP2VEC: an opcode embedding technique and dataset design for end-to-end detection of android malware | |
Turnip et al. | Android malware classification based on permission categories using extreme gradient boosting | |
Li et al. | Enhancing robustness of deep neural networks against adversarial malware samples: Principles, framework, and application to AICS’2019 challenge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |