一种判别对抗网络的恶意应用检测方法和系统技术方案

技术编号:29301045 阅读:15 留言:0更新日期:2021-07-17 01:22
本发明专利技术公开了一种判别对抗网络的恶意应用检测方法和系统,所述方法包括如下步骤:建立应用的API调用神经网络;建立应用的权限神经网络;建立应用的操作码序列神经网络;分别向上述三种神经网络输入对应的特征,获取分别输出的三种特征矢量;将三种输出的特征矢量输入到判别对抗网络中,输出应用的识别结果。述方法和系统通过建立判别对抗网络(DAN)架构对恶意应用进行识别,所述判别对抗网络(DAN)将传统的GAN中的生成器替换为鉴别器,所述判别对抗网络的其中一个鉴别器可以检测恶意软件,另一个鉴别器对混淆无感知,可以识别具有不同域的混淆和未混淆恶意应用,并消除了学习中混淆带来的偏差。淆带来的偏差。淆带来的偏差。

【技术实现步骤摘要】
一种判别对抗网络的恶意应用检测方法和系统


[0001]本专利技术涉及手机恶意应用检测领域,特别涉及一种判别对抗网络的恶意应用检测方法和系统

技术介绍

[0002]现有的安卓恶意代码检测技术主要为基于静态检测技术和基于沙盒的动态行为检测技术,或者同时使用两者的混合检测技术。
[0003]一般的静态分析内容有签名信息分析、代码语义分析、控制流分析、数据流分析等。典型的静态检测方法在没有运行应用或者安装应用的情况下,通过对应用程序中的代码内容采用源代码的静态分析工具进行检测分析,然后汇总分析代码在执行过程中对资源的使用。
[0004]动态行为检测方法运用虚拟机环境(沙箱),将未知待检测的代码运行其中,通过检测相应软件是否产生恶意行为作为判断依据来判断是否是恶意代码。同时代码加密和混淆不会轻易影响基于行为的检测方法,但是需要收集如函数调用、运行行为、文件使用等应用产生的大量相关动态运行信息。该类方法与静态检测方法相比,对未知的恶意应用检测效果方面优于基于特征代码的检测方式,可以减少漏报,但是速度较慢,其计算资源和时间是很难承受的,并且有些应用检测到沙箱运行后会针对性地改变其行为,躲避检测。
[0005]现有技术存在如下缺陷:检测准确率低。传统机器学习系统使用由恶意软件人工干预的统计方法和功能集导致检测系统对变化和新威胁的反应可能会很慢。随着时间的推移,这种费力的手工工程和功能改变不断发生,这些检测方法可能仅在短期内有效。此外,现阶段学界对混淆后Android恶意应用软件进行分类的情况研究不足。特征学习不准确。Android恶意软件检测使用静态分析,使用无执行代码的衍生签名或使用动态分析,其中试图实时执行恶意软件以获取行为学习。早期的研究结合传统的机器学习算法包括k均值聚类,KNN,SVM,决策树和朴素贝叶斯。这些机器学习算法通常具有手动选择或排序作为输入的功能。

技术实现思路

[0006]本专利技术其中一个目的在于提供一种判别对抗网络的恶意应用检测方法和系统,所述方法和系统通过建立判别对抗网络(DAN)架构对恶意应用进行识别,所述判别对抗网络(DAN)将传统的GAN中的生成器替换为鉴别器,所述判别对抗网络的其中一个鉴别器可以检测恶意软件,另一个鉴别器对混淆无感知,可以识别具有不同域的混淆和未混淆恶意应用,并消除了学习中混淆带来的偏差。
[0007]本专利技术另一个目的在于提供一种判别对抗网络的恶意应用检测方法和系统,所述方法和系统采用CNN和操作码序列辨别计算机指令,可以无需了解恶意应用的领域知识下直接判别是否是恶意指令,并减少计算和人工操作的工作量。
[0008]本专利技术另一个目的在于提供一种判别对抗网络的恶意应用检测方法和系统,所述
方法和系统采用多视图的学习方式识别恶意网络,其中多视图包括API调用、应用权限和操作码序列,从而可以准确地识别恶意应用。
[0009]本专利技术另一个目的在于提供一种判别对抗网络的恶意应用检测方法和系统,所述方法和系统采用API调用指神经网络学习并识别API调用和应用指令之间的关系,并根据所述API调用和应用指令之间关系识别恶意应用,提高恶意应用的识别准确度。
[0010]本专利技术另一个目的在于提供一种判别对抗网络的恶意应用检测方法和系统,所述方法和系统通过多方面的学习生成共享特征表示恶意应用,并且采用的是混淆前的特征,因此可以对抗未知的混淆技术,无需知道混淆技术即可完成恶意应用的识别。
[0011]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种判别对抗网络的恶意应用检测方法,所述方法包括:
[0012]建立应用的API调用神经网络;
[0013]建立应用的权限神经网络;
[0014]建立应用的操作码序列神经网络;
[0015]分别向上述三种神经网络输入对应的特征,获取分别输出的三种特征矢量;
[0016]将三种输出的特征矢量输入到判别对抗网络中,输出应用的识别结果。
[0017]根据本专利技术其中一个较佳实施例,获取manifest文件中的应用权限数据;根据所述应用权限数据建立应用权限的第一多热点矢量,将所述第一多热点矢量输入到所述权限神经网络的全连接层中,输出第二特征矢量。
[0018]根据本专利技术另一个较佳实施例,获取应用的dex文件,并将所述dex文件反汇编为smali文件,通过获取smali代码指令提取应用的操作码序列,并根据所述操作码序列建立独热码,将所述独热码投影嵌入欧式空间,形成投影向量输入到操作码序列神经网络全连接层输出第一特征矢量。
[0019]根据本专利技术另一个较佳实施例,所述独热码投影嵌入欧式空间中,并将嵌入的投影向量进行最大池化操作,生成固定长度的池化向量,将池化向量输入到所述操作码序列神经网络的全连接层中,用于输出所述第一特征矢量。
[0020]根据本专利技术另一个较佳实施例,解析smali文件,获取smali文件中API调用数据,根据所述调用数据生成第二多热点矢量,将所述第二多热点矢量输入到所述API调用神经网络的全连接层中,生成第三特征矢量。
[0021]根据本专利技术另一个较佳实施例,获取manifest文件后,根据Android系统的权限数据生成138维的第一多热点矢量,所述第一多热点矢量的每一元素映射Android系统的一个权限。
[0022]根据本专利技术另一个较佳实施例,获取smali文件并获取操作码序列后,生成218维的独热码,其中所述独热码的每一位代表着一种操作状态。
[0023]根据本专利技术另一个较佳实施例,根据所述API调用数据建立56维的第二多热点矢量,若存在混淆API调用,则采用正则表达式生成的随机数作为第二多热点矢量的元素。
[0024]根据本专利技术另一个较佳实施例,将所述第一特征矢量、第二特征矢量和第三特征矢量输入到判别神经网络的两个鉴别器中,其中两个鉴别器分别为恶意应用鉴别器和混淆鉴别器,分别输出恶意应用鉴别矢量和混淆鉴别矢量,将所述恶意应用鉴别矢量输入到判别对抗网络的SoftMax层,将所述混淆鉴别矢量输入到判断对抗网络的Sigmoid层,分别输
出预测结果。
[0025]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种判别对抗网络的恶意应用检测系统,所述系统采用上述一种判别对抗网络的恶意应用检测方法。
[0026]本专利技术进一步提供一种计算机可读存储介质,所述计算机可读存储介质存储并应用上述一种判别对抗网络的恶意应用检测系统。
附图说明
[0027]图1显示的是本专利技术一种判别对抗网络的恶意应用检测方法流程示意图;
[0028]图2显示的是本专利技术中判别对抗网络的恶意软件检测技术架构示意图。
具体实施方式
[0029]以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种判别对抗网络的恶意应用检测方法,其特征在于,所述方法包括:建立应用的API调用神经网络;建立应用的权限神经网络;建立应用的操作码序列神经网络;分别向上述三种神经网络输入对应的特征,获取分别输出的三种特征矢量;将三种输出的特征矢量输入到判别对抗网络中,输出应用的识别结果。2.根据权利要求1所述的一种判别对抗网络的恶意应用检测方法,其特征在于,获取manifest文件中的应用权限数据;根据所述应用权限数据建立应用权限的第一多热点矢量,将所述第一多热点矢量输入到所述权限神经网络的全连接层中,输出第二特征矢量。3.根据权利要求2所述的一种判别对抗网络的恶意应用检测方法,其特征在于,获取应用的dex文件,并将所述dex文件反汇编为smali文件,通过smali代码指令提取应用的操作码序列,并根据所述操作码序列建立独热码,将所述独热码投影嵌入欧式空间,形成投影向量输入到操作码序列神经网络全连接层输出第一特征矢量。4.根据权利要求3所述的一种判别对抗网络的恶意应用检测方法,其特征在于,所述独热码投影嵌入欧式空间中,并将嵌入的投影向量进行最大池化操作,生成固定长度的池化向量,将池化向量输入到所述操作码序列神经网络的全连接层中,用于输出所述第一特征矢量。5.根据权利要求3所述的一种判别对抗网络的恶意应用检测方法,其特征在于,解析smali文件,获取smali文件中API调用数据,根据所述调用数据生成第二多热点矢量,将所述第二多热点矢量输入到所述A...

【专利技术属性】
技术研发人员:马敏燕沈颖彦季莹莹陈形项菲李鹏霄胡少杰
申请(专利权)人:国家计算机网络与信息安全管理中心浙江分中心
类型:发明
国别省市:

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

1