CN109753794A - 一种恶意应用的识别方法、***、训练方法、设备及介质 - Google Patents

一种恶意应用的识别方法、***、训练方法、设备及介质 Download PDF

Info

Publication number
CN109753794A
CN109753794A CN201811453800.3A CN201811453800A CN109753794A CN 109753794 A CN109753794 A CN 109753794A CN 201811453800 A CN201811453800 A CN 201811453800A CN 109753794 A CN109753794 A CN 109753794A
Authority
CN
China
Prior art keywords
vector
data
target
dynamic
target application
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.)
Pending
Application number
CN201811453800.3A
Other languages
English (en)
Inventor
史东杰
周楠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201811453800.3A priority Critical patent/CN109753794A/zh
Publication of CN109753794A publication Critical patent/CN109753794A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种恶意应用的识别方法、***、训练方法、设备及介质,识别方法包括:获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。本申请提供的方法和***用以解决识别方法的考虑因素单一,存在恶意应用的识别准确度不高的技术问题。实现了提高识别准确度的技术效果。

Description

一种恶意应用的识别方法、***、训练方法、设备及介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种恶意应用的识别方法、***、训练方法、设备及介质。
背景技术
随着科技的进步,智能手机已经普及,大众的生活、消费、娱乐等活动都离不开各类移动设备。智能手机的普及带来了便利,这种便利来源于安装在智能手机上的丰富的不同种类的应用程序。
为了保证安装的应用程序的安全性,对应用程序是否携带病毒的识别就极为重要。现有的识别应用程序是否携带病毒的技术主要为,检测应用程序是否存在异常行为,如果存在异常行为,则认为该应用程序为恶意应用,则对其进行删除或查杀等处理。
然而,由于现有识别方法的考虑因素单一,存在恶意应用的识别准确度不高的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的恶意应用的识别方法、***、训练方法、设备及介质。
第一方面,提供一种恶意应用的识别方法,包括:
获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
可选的,所述获取目标应用的动态行为数据,包括:在沙箱环境中运行所述目标应用;根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
可选的,所述在沙箱环境中运行所述目标应用,包括:在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
可选的,所述获取目标应用的静态代码数据,包括:解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
可选的,所述获取目标应用的静态代码数据,包括:解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
可选的,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:将所述动态行为数据转化为向量表示的第一动态向量序列;将所述第一动态向量序列分批次输入所述第一卷积神经网络进行特征提取,获得目标动态向量。
可选的,所述将所述第一动态向量序列分批次输入所述第一卷积神经网络模型,包括:按照预设的批次长度和间隔参数,将所述第一动态向量序列分批次输入所述第一卷积神经网络,其中,每批次第一动态向量的向量数量等于所述批次长度,相邻批次的第一动态向量的起始向量之间间隔的向量数量等于所述间隔参数,所述批次长度大于所述间隔参数。
可选的,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:将所述动态行为数据转化为向量表示的第一动态向量序列;将所述第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列;采用第一卷积神经网络对所述第二动态向量序列进行特征提取,获得目标动态向量。
可选的,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:根据预设的病毒特征,筛除所述动态行为数据中与所述病毒特征不匹配的无意义数据;采用第一卷积神经网络对筛除所述无意义数据后的所述动态行为数据进行特征提取,获得目标动态向量。
可选的,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:在所述第一卷积神经网络中,采用多个不同尺寸的卷积核,对所述动态行为数据进行特征提取,获得多组特征向量;根据所述多组特征向量,获得所述目标动态向量。
可选的,所述多个不同尺寸的卷积核,包括:与所述动态行为数据中的每个向量的尺寸相同的单卷积核。
可选的,所述采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量,包括:基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量。
可选的,所述分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量,包括:将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,所述对所述激活后的第二特征信息进行池化处理,得到目标静态向量,包括:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果,包括:合并所述目标动态向量和所述目标静态向量,生成合并向量;根据所述合并向量输出所述目标应用的恶意检测结果。
第二方面,提供一种恶意应用的识别***,包括:
获取模块,用于获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
第一卷积神经网络模块,用于对动态行为数据进行特征提取,获得目标动态向量;
第二卷积神经网络模块,用于对静态代码数据进行特征提取,获得目标静态向量;
输出模块,用于根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
可选的,所述获取模块包括:第一获取单元,用于在沙箱环境中运行所述目标应用;根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
可选的,所述第一获取单元还用于:在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
可选的,所述获取模块还包括:第二获取单元,用于解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
可选的,还包括:第二获取单元,用于解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
可选的,所述第一卷积神经网络模块包括:词嵌入层,用于将所述动态行为数据转化为向量表示的第一动态向量序列;第一卷积层,用于对转化为向量表示的所述动态行为数据进行特征提取获得特征向量序列;第一池化层,用于对所述特征向量序列进行降维获得降维向量序列,并根据所述降维向量序列,获得目标动态向量。
可选的,所述词嵌入层还用于:将所述第一动态向量序列分批次输入所述第一卷积层进行特征提取。
可选的,所述词嵌入层还用于:按照预设的批次长度和间隔参数,将所述第一动态向量序列分批次输入所述第一卷积层,其中,每批次第一动态向量的向量数量等于所述批次长度,相邻批次的第一动态向量的起始向量之间间隔的向量数量等于所述间隔参数,所述批次长度大于所述间隔参数。
可选的,所述第一卷积神经网络模块还包括:预训练单元,用于将所述词嵌入层转化的第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列;再将所述第二动态向量序列输入所述第一卷积层进行特征提取。
可选的,所述第一卷积神经网络模块还包括:筛除单元,用于根据预设的病毒特征,筛除所述动态行为数据中与所述病毒特征不匹配的无意义数据;再将筛除所述无意义数据后的所述动态行为数据输入所述第一卷积层进行特征提取。
可选的,所述第一卷积层还用于:采用多个不同尺寸的卷积核,对所述动态行为数据进行特征提取,获得多组特征向量序列。
可选的,所述多个不同尺寸的卷积核,包括:与所述动态行为数据中的每个向量的尺寸相同的单卷积核。
可选的,所述第二卷积神经网络模块,包括:第一子网络,用于基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量。
可选的,所述第一子网络包括:输入层、第二卷积层和第二池化层,所述输入层、所述第二卷积层以及所述第二池化层依次连接;所述输入层用于基于所述静态代码数据,生成N个特征序列;所述第二卷积层用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;所述第二池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第二卷积层还用于:对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,所述第二池化层还用于:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第二子网络包括第三卷积层和第三池化层,所述第三卷积层和第三池化层依次连接;所述第三卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;所述第三池化层对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述第三卷积层还用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,所述第三池化层还用于:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述输出模块还包括:合并单元,用于合并所述目标动态向量和所述目标静态向量,生成合并向量;输出单元,用于根据所述合并向量输出所述目标应用的恶意检测结果。
第三方面,提供一种训练方法,所述方法用于训练第二方面所述的识别***;
所述训练方法的训练样本包括多个应用程序的动态行为数据、静态代码数据和描述所述多个应用程序是否为恶意应用的标注数据;所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一所述的方法。
第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一所述的方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供的恶意应用的识别方法、***、训练方法、设备及介质,获取目标应用的动态行为数据和静态代码数据共同作为恶意应用的识别考量数据,通过更全面的设置识别考量数据,有效提高了恶意应用的识别准确度。且采用卷积神经网络对动态行为数据和静态代码数据进行特征提取,获得更能表征应用特征的目标动态向量和目标静态向量,从而获得更准确的恶意检测结果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例中恶意应用的识别方法的流程图;
图2为本发明实施例中恶意应用的识别***的结构图;
图3为本发明实施例中训练方法的流程图;
图4为本发明实施例中电子设备的示意图;
图5为本发明实施例中存储介质的示意图。
具体实施方式
本申请实施例中的技术方案,总体思路如下:
获取目标应用的动态行为数据和静态代码数据,采用卷积神经网络进行特征提取,获得目标动态向量和目标静态向量,并根据两向量来输出所述目标应用的恶意检测结果。通过设置更全面的数据和采用卷积神经网络进行特征提取,来提高恶意应用识别的准确度。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
本实施例提供了一种恶意应用的识别方法,如图1所示,包括:
步骤S101,获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
步骤S102,采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
步骤S103,采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
步骤S104,根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
需要说明的是,本实施例提高的识别方法可以应用于服务器端(独立服务器、服务器组或云端)或客户终端。较优的,该识别方法应用于客户终端,以避免病毒通过多次访问服务器端来记录云端和服务器端的沙箱特征,从而避免沙箱逃逸情况的产生。
本实施例中的第一卷积神经网络和第二卷积神经网络为训练好的网络,可以采用后续实施例三中描述的训练方法来进行训练。
下面,结合图1来详细描述本实施例提供的恶意应用的识别方法:
步骤S101,获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
在一种实施方式中,动态行为数据是通过在沙箱环境中运行目标应用,再根据预设打桩点来获取的。
以该识别方法应用于手机为例,手机中安装有沙箱,目标应用可以是手机中的安全情况未知的应用程序,或者是需要进行病毒检测的应用程序。为了保证手机***的安全,可以在沙箱环境中运行目标应用,这样即便目标应用为病毒,也不会对手机***产生影响。在目标应用在沙箱环境的运行过程中,模拟用户的操作,以触发目标应用产生行为数据。在本实施例中,预设打桩点可以通过订制ROM(Read Only Memory,只读存储器)的方式在***服务中***打桩点来实现。应理解的是,打桩点可以是根据历史病毒行为检测经验以及程序的行为敏感度来设置的,例如,后台监控访问联系人、后台监控访问短信息等行为为敏感度较高的行为,可以在对应的***服务中***打桩点。当然,预设打桩点还可以设置在其他位置,如设置在待检测程序的进程中,这里不做限定。
打桩点的设置个数可以根据实际需要来进行设定。在一个实施例中,预设打桩点为200个,如果待检测程序在运行过程中触发了这200个打桩点中的任何一个,都会将该行为提取出来,通过提取到的多个行为构成动态的目标行为序列,以反映待检测程序在运行过程中的动态行为。
具体来讲,目标应用在进程中会产生许多行为,包括向***请求调用各类API(Application Programming Interface,应用程序编程接口)的行为。应理解的是,***服务可以理解为响应API调用的服务,在某一个API被调用后,可以根据对应的***服务对API的调用请求进行响应,并反馈一个调用结果。由于在目标***服务中进行了打桩处理,如果调用了目标***服务对应的API,通过打桩点可以把该调用行为进行提取。
在一种实施方式中,静态代码数据来源于目标应用的安装包,该安装包是指需要检测是否携带有病毒的应用程序安装包,或者,在本发明的其他实施例中,应用程序安装包也可以是需要检测是否携带有病毒以及携带的病毒种类的应用程序安装包。具体的,应用程序安装包可以是移动终端的软件安装包,如安卓(Android)安装包,后缀为apk,也可以是电脑的软件安装包,如后缀为exe的安装包。
本实施例中,静态代码数据为通过解析目标应用安装包的代码文件得到的信息。作为一种实施方式,静态代码数据可以为目标应用安装包的二进制文件。
在本发明的其他实施例中,静态代码数据也可以为根据目标应用安装包的代码文件得到的操作码序列,操作码为该目标应用安装包的代码文件中的部分代码,可以是具备功能逻辑的代码,获取到多个操作码后,将这些操作码进行排序后可得到操作码序列。此时,获取目标应用安装包的静态信息的过程可以为:获取目标应用安装包并对该应用程序安装包进行反汇编操作,得到返汇编后的smali文件,提取出操作码(opcode),得到操作码序列。例如,假设待测的应用程序安装包为apk文件,在apk文件中存在格式为dex的代码文件,dex文件中包含有该apk文件对应的目标应用的所有源码,通过反汇编工具可以获取到相应的Jave编码。反汇编后即可得到格式为smali的文件,每个smali文件代表dex文件中的一个类,每个类由函数组成,每个函数则由指令组成,每个指令由一个操作码和多个操作数组成。
步骤S102采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量。
第一卷积神经网络包括:词嵌入层,用于将所述动态行为数据转化为向量表示的第一动态向量序列;第一卷积层,用于对转化为向量表示的动态行为数据进行特征提取获得特征向量序列;第一池化层,用于对特征向量序列进行降维获得降维向量序列,并根据所述降维向量序列,获得目标动态向量。下面,详细描述第一卷积神经网络的特征提取过程。
为了提供适用于神经网络计算的数据,在对动态行为数据进行特征提取之前,词嵌入层先将动态行为数据转化为向量表示的第一动态向量序列,再将第一动态向量序列输入第一卷积神经网络进行特征提取。进一步,为了减少第一卷积神经网络每次计算的数据量,减少对应模型的大小和提高提取效率,可以将第一动态向量序列分批次输入第一卷积神经网络进行特征提取。
再进一步,为了保持神经网络计算的计算量的稳定性,还可以预先设置批次长度和间隔参数,在分批次输入第一动态向量序列的过程中,设置每批次第一动态向量的向量数量等于批次长度,相邻输入批次的第一动态向量的起始向量之间间隔的向量数量等于间隔参数。还可以设置批次长度大于间隔参数,以避免分批次输入第一动态向量序列时出现向量遗漏,其中,当批次长度固定时,间隔参数越小则相邻批次的第一动态向量中重复的向量数量越多,对应的同一向量在不同批次中的组合方式越多,能更大限度的实现有关联的向量包括在同一批次中,从而提高后续特征提取的全面性和准确度。
举例来讲,假设批次长度为30,间隔参数为9,则第一批次为第一动态向量序列中的第1-30个向量,第二批次为第10-40个向量,第三个批次为第20-50个向量,等等。
在一种实施方式中,还可以先对第一动态向量序列进行预训练,来加快第一卷积神经网络的收敛速度。训练方法为将第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列,将预训练后的第二动态向量序列输入第一卷积神经网络来进行特征提取。
举例来讲,假设第一动态向量序列为action1,action2,action3……action100,则对其预训练时,用通过action3和action1描述action2的位置的描述向量作为第二动态向量序列的第二个向量,或者将通过action3和action1描述action2的位置的描述向量合并入action2后作为第二动态向量序列的第二个向量。即通过在每个向量中加入描述其位置或意义的向量来提高卷积神经网络计算时的可参考因素,加快收敛速度。
需要说明的是,对第一动态向量序列进行的预训练可以在前述对第一向量序列分批次之前执行,也可以在其之后执行,在此不作限制。
在一种实施方式中,可以预先收集历史病毒的数据,并提取出病毒特征,在对动态行为数据进行特征提取之前,先根据病毒特征筛除动态行为数据中与病毒特征不匹配的无意义数据,以保留与病毒相关性较强的动态行为数据,减少后续第一卷积神经网络进行特征提取的计算量,提高收敛速度。
需要说明的是,对动态行为数据进行的无意义数据的筛除,可以在将动态行为数据转化为第一动态向量序列之前执行,也可以在其之后执行,在此不作限制。
在本申请实施例中,采用第一卷积神经网络对动态行为数据进行特征提取是先通过第一卷积层的特征向量序列的提取,再通过第一池化层的降维来实现的,下面分别进行介绍:
第一卷积神经网络的第一卷积层对动态行为数据进行特征提取时,需要通过预设的卷积核来进行特征的抽取。本申请实施例中,设置在第一卷积神经网络中,采用多个不同尺寸的卷积核,对动态行为数据进行特征提取,获得多组特征向量来进行后续的降维,以尽量保证有关联的向量能分入提取的同一组特征中,提高特征的泛化能力。
举例来讲,假设动态行为数据转化后,输入的每批次第一动态向量序列的批次长度为100,向量尺寸为64,则可以设置1*64、3*64、5*64、7*64这四个卷积核来对每批次第一动态向量序列进行特征向量序列的提取。
进一步,可以设置多个不同尺寸的卷积核包括第一动态向量序列中的每个向量的尺寸相同的单卷积核,以克服动态行为数据的获取时,真机打点和沙箱打点顺序不同造成的影响。举例来讲,假设动态行为数据转化后,输入的每批次第一动态向量序列的批次长度为100,向量尺寸为64,则设置的卷积核中包括1*64这个卷积核,以保证提取的特征中有单个向量为一组的特征向量序列。
在通过第一卷积层提取出特征向量序列后,输入第一池化层对特征向量序列进行降维获得降维向量序列,并合并降维向量序列,获得目标动态向量。具体合并降维向量序列可以是通过concat函数来实现。
步骤S103,采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量。
第二卷积神经网络包括第一子网络以及第二子网络。第一子网络用于目标应用安装包的静态代码数据分为多个特征序列,并提取每个特征序列对应的局部关键信息。第二子网络用于基于第一子网络提取的每个特征序列对应的局部关键信息进一步提取更全面的特征参数,获得目标静态向量。作为一种实施方式,第一子网络和第二子网络可以均采用卷积神经网络。
所述第一子网络基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量。
本实施例中,N为大于或等于2的整数。当静态代码数据为目标应用安装包的二进制文件时,基于静态代码数据,生成N个特征序列的具体实施过程可以有多种,下面主要介绍四种实施方式。
第一种,将二进制文件划分为N个二进制序列;对N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
第二种,将二进制文件划分为N个二进制序列;对N个二进制序列中每个二进制序列进行编码,得到N个第一编码序列;对N个第一编码序列中每个第一编码序列进行降维处理,得到N个特征序列,其中,每个特征序列的维数低于相应的第一编码序列的维数。
具体来讲,在上述第一种和第二种实施方式中,将二进制文件划分为N个二进制序列的划分方式可以根据实际需要设置。作为一种实施方式,可以间隔预设字节数划分,预设字节数可以根据实际需要设置,例如,假设ai表示第i个字节,当预设字节数为50000时,将a1~a50000划分为一个二进制序列,将a50001~a100000划分为一个二进制序列,以此类推。作为另一种实施方式,可以按照第一预设步长以及第一预设长度划分,第一预设步长和第一预设长度均可以根据需要设置,例如,假设ai表示第i个字节,当第一预设步长为10000个字节,第一预设长度为50000个字节时,将a1~a50000划分为一个二进制序列,将a10001~a60000划分为一个二进制序列,以此类推。
第三种,对二进制文件进行编码,得到第二编码序列,将第二编码序列划分为N个特征序列。
第四种,对二进制文件进行编码,得到第二编码序列,对第二编码序列进行降维处理,得到目标序列;将目标序列划分为N个特征序列。第二编码序列的编码数即为第二编码序列的维数,目标序列的维数低于第二编码序列的维数。具体降维倍数可以根据实际需要设置,例如可以降低100倍或50倍等,可以将第二编码序列由几百万维降为几万维。
同理,上述第三种和第四种方式中,将第二编码序列划分为N个特征序列的划分方式可以根据实际需要设置。作为一种实施方式,可以间隔预设编码数划分,预设编码数可以根据实际需要设置。作为另一种实施方式,可以按照第二预设步长以及第二预设长度划分,第二预设步长和第二预设长度均可以根据需要设置。
例如,第二编码序列为500万维,通过降维处理将第二编码序列转换为9万维的目标序列,然后再对9万维的目标序列进行划分。例如,当间隔预设编码数划分,且预设编码数为1000时,可以将目标序列划分为90个1000维的特征序列。
在上述几种实施方式中,编码方式可以有多种,具体可以根据需要设置。例如,可以将每个字节的二进制数转化为十进制数,则每个字节可以转化为一个0~255范围内的数。例如,对应用程序安装包的二进制文件中部分二进制数对应的十六进制编码为“\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff”,对应转化后的编码为“144,0,3,0,0,0,4,0,0,0,255,255”。
具体来讲,上述降维处理的具体实施过程可以为:采用预设算法对第一编码序列或第二编码序列进行降维。预设算法可以为:双三次插值算法、最邻近插值算法或双线性插值算法等。对编码序列进行降维后再进行后续处理,有利于提高处理速度,相应地,也可以减少神经网络***的训练时间,降低资源占用。
在本发明的其他实施例中,当静态代码数据为根据目标应用安装包的代码文件得到的操作码序列时,也可以基于操作码序列,得到N个特征序列,从而再对每个特征序列进行后续处理。
可选的,第一子网络包括:输入层、第二卷积层和第二池化层。输入层、第二卷积层以及第二池化层依次连接。可以理解的是,第二卷积层的作用在于基于预先设置的预设数量的卷积核与每个特征序列做卷积,得到卷积特征,并将卷积特征输入一激活函数进行激活。第二池化层的作用在于进一步对激活后的卷积特征进行降维以及特征提取。
此时,上述第一子网络基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量的过程可以包括:输入层执行上述基于静态代码数据,生成N个特征序列;第二卷积层分别对N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对第一特征信息进行激活,得到激活后的第一特征信息;第二池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到N个第一特征向量。
可选的,上述第一激活函数可以为Relu函数。Relu激活函数可以较好地防止梯度衰减问题。当然,也可以根据需要采用其他激活函数。
可选的,上述第二卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息具体可以包括:第二卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。其中,第二激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制局部特征信息的传递,提高了局部特征的表示能力。
需要说明的是,在上述一维卷积处理中,一维卷积核的数量、尺寸和步长可以根据实际需要设置。本实施例可以通过采用较大尺寸的一维卷积核和步长,以降低计算和存储压力。
可选的,第二池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量具体可以包括:第二池化层通过最大池化方式(max-pooling)分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。采用max-pooling引入了不变性,同时进行了降维和局部关键信息提取,防止过拟合。
在第一子网络处理完成后,第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到目标静态向量。
作为一种实施方式,第二子网络可以包括第三卷积层、第三池化层和输出层,第三卷积层、第三池化层和输出层依次连接。
此时,上述的第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到目标静态向量,具体可以包括:第三卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;第三池化层对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
其中,第三激活函数也可以采样Relu函数。同样,Relu激活函数可以较好地防止梯度衰减问题。
可选的,上述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息具体可以包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。其中,第四激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制全局特征信息的传递,提高了全局特征的表示能力。
可选的,所述第三池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:所述第三池化层通过平均池化方式(avg-pooling)对所述激活后的第二特征信息进行池化处理,得到目标静态向量。采用avg-pooling是为了兼顾全局信息与局部信息,使模型能够充分利用每个特征序列的特征。
步骤S104,根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
在本申请实施例中,可以先合并目标动态向量和目标静态向量,生成合并向量,再根据合并向量输出目标应用的恶意检测结果。具体可以是通过concat函数来实现目标动态向量和目标静态向量的合并,可以是通过softmax函数来计算目标应用是否为恶意应用的概率作为恶意检测结果。当然,也可以采用其他合并函数或其他计算恶意检测结果的函数,在此不作限制。
基于同一发明构思,本发明实施例还提供了实施例一中方法对应的***,见实施例二。
实施例二
提供一种恶意应用的识别***,如图2所示,包括:
获取模块201,用于获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
第一卷积神经网络模块202,用于对动态行为数据进行特征提取,获得目标动态向量;
第二卷积神经网络模块203,用于对静态代码数据进行特征提取,获得目标静态向量;
输出模块204,用于根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
可选的,所述获取模块201包括:第一获取单元,用于在沙箱环境中运行所述目标应用;根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
可选的,所述第一获取单元还用于:在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
可选的所述获取模块201还包括:第二获取单元,用于解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
可选的,所述第二获取单元,用于解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
可选的,所述第一卷积神经网络模块202包括:
词嵌入层,用于将所述动态行为数据转化为向量表示的第一动态向量序列;
第一卷积层,用于对转化为向量表示的所述动态行为数据进行特征提取获得特征向量序列;
第一池化层,用于对所述特征向量序列进行降维获得降维向量序列,并根据所述降维向量序列,获得目标动态向量。
可选的,所述词嵌入层还用于:将所述第一动态向量序列分批次输入所述第一卷积层进行特征提取。
可选的,所述词嵌入层还用于:按照预设的批次长度和间隔参数,将所述第一动态向量序列分批次输入所述第一卷积层,其中,每批次第一动态向量的向量数量等于所述批次长度,相邻批次的第一动态向量的起始向量之间间隔的向量数量等于所述间隔参数,所述批次长度大于所述间隔参数。
可选的,所述第一卷积神经网络模块202还包括:预训练单元,用于将所述词嵌入层转化的第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列;再将所述第二动态向量序列输入所述第一卷积层进行特征提取。
可选的,所述第一卷积神经网络模块202还包括:筛除单元,用于根据预设的病毒特征,筛除所述动态行为数据中与所述病毒特征不匹配的无意义数据;再将筛除所述无意义数据后的所述动态行为数据输入所述第一卷积层进行特征提取。
可选的,所述第一卷积层还用于:采用多个不同尺寸的卷积核,对所述动态行为数据进行特征提取,获得多组特征向量序列。
可选的,所述多个不同尺寸的卷积核,包括:与所述动态行为数据中的每个向量的尺寸相同的单卷积核。
可选的,所述第二卷积神经网络模块203,包括:
第一子网络2031,用于基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;
第二子网络2032,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量。
可选的,所述第一子网络2031包括:输入层、第二卷积层和第二池化层,所述输入层、所述第二卷积层以及所述第二池化层依次连接;
所述输入层用于基于所述静态代码数据,生成N个特征序列;
所述第二卷积层用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第二池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第二卷积层还用于:对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,所述第二池化层还用于:通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,所述第二子网络2032包括第三卷积层和第三池化层,所述第三卷积层和第三池化层依次连接;
所述第三卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
所述第三池化层对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述第三卷积层还用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,所述第三池化层还用于:通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
可选的,所述输出模块204还包括:
合并单元,用于合并所述目标动态向量和所述目标静态向量,生成合并向量;
输出单元,用于根据所述合并向量输出所述目标应用的恶意检测结果。
由于本发明实施例二所介绍的***,为实施本发明实施例一的方法所采用的***,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该***的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的***都属于本发明所欲保护的范围。
基于同一发明构思,本发明实施例还提供了实施例二中***的训练方法,即实施例一中第一卷积神经网络和第二卷积神经网络的训练方法,见实施例三。
实施例三
本实施例提供一种训练方法,所述方法用于训练实施例二所述的识别***;
所述训练方法的训练样本包括多个应用程序的动态行为数据、静态代码数据和描述所述多个应用程序是否为恶意应用的标注数据;所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
如图3所示,该训练方法的步骤为:
步骤S301,构建初始神经网络***(可以为初始的实施例二中的识别***,或初始的实施例一中的第一卷积神经网络和第二卷积神经网络);
步骤S302,输入训练样本对初始神经网络***进行训练,获得训练好的神经网络***(可以为训练好的实施例二中的识别***,或训练好的实施例一中的第一卷积神经网络和第二卷积神经网络);所述训练样本包括多个应用程序的动态行为数据、静态代码数据和描述所述多个应用程序是否为恶意应用的标注数据。
具体的样本训练方法和步骤与实施例一中介绍的识别方法相同,故而基于本发明实施例一所介绍的方法和实施例二所介绍的***,本领域所属人员能够了解该方法的步骤及变形,故而在此不再赘述。凡是本发明实施例一的卷积神经网络的训练方法及本发明实施例二的识别***的训练方法都属于本发明所欲保护的范围。
基于同一发明构思,本发明实施例还提供了实施例一中方法对应的设备,见实施例四。
实施例四
如图4所示,本实施例提供一种电子设备,包括存储器410、处理器420及存储在存储器410上并可在处理器420上运行的计算机程序411,所述处理器420执行所述计算机程序411时实现以下步骤:
获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
在本申请实施例中,所述处理器420执行所述计算机程序411时可以实现本申请实施例一中任一实施方式。
由于本发明实施例四所介绍的设备,为实施本发明实施例一的方法所采用的设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的设备都属于本发明所欲保护的范围。
基于同一发明构思,本发明实施例还提供了实施例一中方法对应的存储介质,见实施例五。
实施例五
本实施例提供一种计算机可读存储介质500,如图5所示,其上存储有计算机程序511,其特征在于,该计算机程序511被处理器执行时实现以下步骤:
获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
在具体实施过程中,该计算机程序511被处理器执行时,可以实现本申请实施例一中任一实施方式。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请实施例提供的恶意应用的识别方法、装置、训练方法、设备及介质,获取目标应用的动态行为数据和静态代码数据共同作为恶意应用的识别考量数据,通过更全面的设置识别考量数据,有效提高了恶意应用的识别准确度。且采用卷积神经网络对动态行为数据和静态代码数据进行特征提取,获得更能表征应用特征的目标动态向量和目标静态向量,从而获得更准确的恶意检测结果。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了,A1、一种恶意应用的识别方法,包括:
获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
A2、如A1所述的方法,其特征在于,所述获取目标应用的动态行为数据,包括:
在沙箱环境中运行所述目标应用;
根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
A3、如A2所述的方法,其特征在于,所述在沙箱环境中运行所述目标应用,包括:
在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
A4、如A1所述的方法,其特征在于,所述获取目标应用的静态代码数据,包括:
解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
A5、如A1所述的方法,其特征在于,所述获取目标应用的静态代码数据,包括:
解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,
反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
A6、如A1所述的方法,其特征在于,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:
将所述动态行为数据转化为向量表示的第一动态向量序列;
将所述第一动态向量序列分批次输入所述第一卷积神经网络进行特征提取,获得目标动态向量。
A7、如A6所述的方法,其特征在于,所述将所述第一动态向量序列分批次输入所述第一卷积神经网络模型,包括:
按照预设的批次长度和间隔参数,将所述第一动态向量序列分批次输入所述第一卷积神经网络,其中,每批次第一动态向量的向量数量等于所述批次长度,相邻批次的第一动态向量的起始向量之间间隔的向量数量等于所述间隔参数,所述批次长度大于所述间隔参数。
A8、如A1所述的方法,其特征在于,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:
将所述动态行为数据转化为向量表示的第一动态向量序列;
将所述第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列;
采用第一卷积神经网络对所述第二动态向量序列进行特征提取,获得目标动态向量。
A9、如A1所述的方法,其特征在于,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:
根据预设的病毒特征,筛除所述动态行为数据中与所述病毒特征不匹配的无意义数据;
采用第一卷积神经网络对筛除所述无意义数据后的所述动态行为数据进行特征提取,获得目标动态向量。
A10、如A1所述的方法,其特征在于,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:
在所述第一卷积神经网络中,采用多个不同尺寸的卷积核,对所述动态行为数据进行特征提取,获得多组特征向量;
根据所述多组特征向量,获得所述目标动态向量。
A11、如A10所述的方法,其特征在于,所述多个不同尺寸的卷积核,包括:
与所述动态行为数据中的每个向量的尺寸相同的单卷积核。
A12、如A1所述的方法,所述采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量,包括:
基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;
将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量。
A13、如A12所述的方法,其特征在于,所述分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A14、如A13所述的方法,其特征在于,所述对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:
对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
A15.根据A13所述的方法,其特征在于,对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:
通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A16、如A12所述的方法,其特征在于,将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量,包括:
将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
A17、如A16所述的方法,其特征在于,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
A18.根据A16所述的方法,其特征在于,所述对所述激活后的第二特征信息进行池化处理,得到目标静态向量,包括:
通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
A19、如A1所述的方法,其特征在于,所述根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果,包括:
合并所述目标动态向量和所述目标静态向量,生成合并向量;
根据所述合并向量输出所述目标应用的恶意检测结果。
B20、一种恶意应用的识别***,包括:
获取模块,用于获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
第一卷积神经网络模块,用于对动态行为数据进行特征提取,获得目标动态向量;
第二卷积神经网络模块,用于对静态代码数据进行特征提取,获得目标静态向量;
输出模块,用于根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
B21、如B20所述的***,其特征在于,所述获取模块包括:
第一获取单元,用于在沙箱环境中运行所述目标应用;根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
B22、如B21所述的***,其特征在于,所述第一获取单元还用于:
在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
B23、如B20所述的***,其特征在于,所述获取模块还包括:
第二获取单元,用于解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
B24、如B20所述的***,其特征在于,还包括:
第二获取单元,用于解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
B25、如B20所述的***,其特征在于,所述第一卷积神经网络模块包括:
词嵌入层,用于将所述动态行为数据转化为向量表示的第一动态向量序列;
第一卷积层,用于对转化为向量表示的所述动态行为数据进行特征提取获得特征向量序列;
第一池化层,用于对所述特征向量序列进行降维获得降维向量序列,并根据所述降维向量序列,获得目标动态向量。
B26、如B26所述的***,其特征在于,所述词嵌入层还用于:
将所述第一动态向量序列分批次输入所述第一卷积层进行特征提取。
B28、如B27所述的***,其特征在于,所述词嵌入层还用于:
按照预设的批次长度和间隔参数,将所述第一动态向量序列分批次输入所述第一卷积层,其中,每批次第一动态向量的向量数量等于所述批次长度,相邻批次的第一动态向量的起始向量之间间隔的向量数量等于所述间隔参数,所述批次长度大于所述间隔参数。
B29、如B26所述的***,其特征在于,所述第一卷积神经网络模块还包括:
预训练单元,用于将所述词嵌入层转化的第一动态向量序列中的每条向量预训练为,采用其周边向量进行描述的向量,生成第二动态向量序列;再将所述第二动态向量序列输入所述第一卷积层进行特征提取。
B30、如B26所述的***,其特征在于,所述第一卷积神经网络模块还包括:
筛除单元,用于根据预设的病毒特征,筛除所述动态行为数据中与所述病毒特征不匹配的无意义数据;再将筛除所述无意义数据后的所述动态行为数据输入所述第一卷积层进行特征提取。
B31、如B26所述的***,其特征在于,所述第一卷积层还用于:
采用多个不同尺寸的卷积核,对所述动态行为数据进行特征提取,获得多组特征向量序列。
B32、如B26所述的***,其特征在于,所述多个不同尺寸的卷积核,包括:
与所述动态行为数据中的每个向量的尺寸相同的单卷积核。
B33、如B20所述的***,所述第二卷积神经网络模块,包括:
第一子网络,用于基于所述静态代码数据,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;
第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到获得目标静态向量。
B34、如B33所述的***,其特征在于,所述第一子网络包括:输入层、第二卷积层和第二池化层,所述输入层、所述第二卷积层以及所述第二池化层依次连接;
所述输入层用于基于所述静态代码数据,生成N个特征序列;
所述第二卷积层用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第二池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
B35、如B34所述的***,其特征在于,所述第二卷积层还用于:
对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
B36.根据B34所述的***,其特征在于,所述第二池化层还用于:
通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
B37、如B33所述的***,其特征在于,所述第二子网络包括第三卷积层和第三池化层,所述第三卷积层和第三池化层依次连接;
所述第三卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
所述第三池化层对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
B38、如B37所述的***,其特征在于,所述第三卷积层还用于:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
B39.根据B37所述的***,其特征在于,所述第三池化层还用于:
通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到目标静态向量。
B40、如B20所述的***,其特征在于,所述输出模块还包括:
合并单元,用于合并所述目标动态向量和所述目标静态向量,生成合并向量;
输出单元,用于根据所述合并向量输出所述目标应用的恶意检测结果。
C41、一种训练方法,所述方法用于训练权利要求20-40任一所述的识别***;
所述训练方法的训练样本包括多个应用程序的动态行为数据、静态代码数据和描述所述多个应用程序是否为恶意应用的标注数据;所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
D42、一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现A1-A19任一所述的方法。
E43、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现A1-A19任一所述的方法。

Claims (10)

1.一种恶意应用的识别方法,其特征在于,包括:
获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量;
采用第二卷积神经网络对所述静态代码数据进行特征提取,获得目标静态向量;
根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
2.如权利要求1所述的方法,其特征在于,所述获取目标应用的动态行为数据,包括:
在沙箱环境中运行所述目标应用;
根据预设打桩点,获取所述目标应用在运行过程中的动态行为数据。
3.如权利要求2所述的方法,其特征在于,所述在沙箱环境中运行所述目标应用,包括:
在所述目标应用的运行过程中,模拟用户的操作,以触发所述目标应用产生行为数据。
4.如权利要求1所述的方法,其特征在于,所述获取目标应用的静态代码数据,包括:
解析所述目标应用的安装包的代码文件得到的所述静态代码数据。
5.如权利要求1所述的方法,其特征在于,所述获取目标应用的静态代码数据,包括:
解析所述目标应用的安装包的代码文件,得到所述目标应用安装包对应的二进制文件,以所述二进制文件作为所述静态代码数据;或者,
反编译所述目标应用的安装包的代码文件,得到所述目标应用安装包的编译代码,以所述编译代码作为所述静态代码数据。
6.如权利要求1所述的方法,其特征在于,所述采用第一卷积神经网络对所述动态行为数据进行特征提取,获得目标动态向量,包括:
将所述动态行为数据转化为向量表示的第一动态向量序列;
将所述第一动态向量序列分批次输入所述第一卷积神经网络进行特征提取,获得目标动态向量。
7.一种恶意应用的识别***,其特征在于,包括:
获取模块,用于获取目标应用的动态行为数据和静态代码数据,所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据;
第一卷积神经网络模块,用于对动态行为数据进行特征提取,获得目标动态向量;
第二卷积神经网络模块,用于对静态代码数据进行特征提取,获得目标静态向量;
输出模块,用于根据所述目标动态向量和所述目标静态向量输出所述目标应用的恶意检测结果。
8.一种训练方法,其特征在于,所述方法用于训练权利要求7所述的识别***;
所述训练方法的训练样本包括多个应用程序的动态行为数据、静态代码数据和描述所述多个应用程序是否为恶意应用的标注数据;所述动态行为数据为所述目标应用根据用户行为产生的行为数据,所述静态代码数据为编写所述目标应用产生的代码数据。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一所述的方法。
CN201811453800.3A 2018-11-30 2018-11-30 一种恶意应用的识别方法、***、训练方法、设备及介质 Pending CN109753794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811453800.3A CN109753794A (zh) 2018-11-30 2018-11-30 一种恶意应用的识别方法、***、训练方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811453800.3A CN109753794A (zh) 2018-11-30 2018-11-30 一种恶意应用的识别方法、***、训练方法、设备及介质

Publications (1)

Publication Number Publication Date
CN109753794A true CN109753794A (zh) 2019-05-14

Family

ID=66403452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811453800.3A Pending CN109753794A (zh) 2018-11-30 2018-11-30 一种恶意应用的识别方法、***、训练方法、设备及介质

Country Status (1)

Country Link
CN (1) CN109753794A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647746A (zh) * 2019-08-22 2020-01-03 成都网思科平科技有限公司 一种恶意软件检测方法、***及存储介质
CN112115266A (zh) * 2020-09-25 2020-12-22 奇安信科技集团股份有限公司 恶意网址的分类方法、装置、计算机设备和可读存储介质
WO2021207874A1 (zh) * 2020-04-13 2021-10-21 华为技术有限公司 一种非安全软件检测装置、检测方法以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598824A (zh) * 2015-01-28 2015-05-06 国家计算机网络与信息安全管理中心 一种恶意程序检测方法及其装置
KR101880686B1 (ko) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 Ai 딥러닝 기반의 악성코드 탐지 시스템
CN108334781A (zh) * 2018-03-07 2018-07-27 腾讯科技(深圳)有限公司 病毒检测方法、装置、计算机可读存储介质和计算机设备
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测***及方法
CN108595953A (zh) * 2018-04-04 2018-09-28 厦门雷德蒙软件开发有限公司 对手机应用进行风险评估的方法
CN108734012A (zh) * 2018-05-21 2018-11-02 上海戎磐网络科技有限公司 恶意软件识别方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104598824A (zh) * 2015-01-28 2015-05-06 国家计算机网络与信息安全管理中心 一种恶意程序检测方法及其装置
KR101880686B1 (ko) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 Ai 딥러닝 기반의 악성코드 탐지 시스템
CN108334781A (zh) * 2018-03-07 2018-07-27 腾讯科技(深圳)有限公司 病毒检测方法、装置、计算机可读存储介质和计算机设备
CN108595953A (zh) * 2018-04-04 2018-09-28 厦门雷德蒙软件开发有限公司 对手机应用进行风险评估的方法
CN108595955A (zh) * 2018-04-25 2018-09-28 东北大学 一种安卓手机恶意应用检测***及方法
CN108734012A (zh) * 2018-05-21 2018-11-02 上海戎磐网络科技有限公司 恶意软件识别方法、装置及电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王聪 等: "基于CNN和LSTM混合的Android恶意应用检测", 通信技术, vol. 51, no. 09, pages 2209 - 2214 *
芦效峰 等: "基于API序列特征和统计特征组合的恶意样本检测框架", 清华大学学报(自然科学版), vol. 58, no. 05, pages 500 - 508 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647746A (zh) * 2019-08-22 2020-01-03 成都网思科平科技有限公司 一种恶意软件检测方法、***及存储介质
WO2021207874A1 (zh) * 2020-04-13 2021-10-21 华为技术有限公司 一种非安全软件检测装置、检测方法以及存储介质
CN112115266A (zh) * 2020-09-25 2020-12-22 奇安信科技集团股份有限公司 恶意网址的分类方法、装置、计算机设备和可读存储介质

Similar Documents

Publication Publication Date Title
Xu et al. Hadm: Hybrid analysis for detection of malware
Tekerek et al. A novel malware classification and augmentation model based on convolutional neural network
CN109753794A (zh) 一种恶意应用的识别方法、***、训练方法、设备及介质
US20200273570A1 (en) Predictive analysis platform
CN109635563A (zh) 用于识别恶意应用程序的方法、装置、设备及存储介质
CN109976761A (zh) 软件开发工具包的生成方法、装置及终端设备
CN109711160A (zh) 应用程序检测方法、装置及神经网络***
CN109101817A (zh) 一种识别恶意文件类别的方法及计算设备
CN107862053A (zh) 基于用户关系的用户画像构造方法、装置及计算设备
CN116361801B (zh) 基于应用程序接口语义信息的恶意软件检测方法及***
US20230206029A1 (en) Graph Neural Network Ensemble Learning
Bensaoud et al. Deep multi-task learning for malware image classification
CN110135160A (zh) 软件检测的方法、装置及***
CN109753790A (zh) 一种落地页监控方法及***
CN109299032B (zh) 数据分析方法、电子设备及计算机存储介质
CN106960141A (zh) 虚拟机指令的编码、解码方法及装置、虚拟机保护***
Pu et al. Program synthesis with pragmatic communication
CN106227743B (zh) 广告目标群体触达比率评估方法及装置
CN109948604A (zh) 不规则排列文本的识别方法、装置、电子设备及存储介质
US11762758B2 (en) Source code fault detection
US20220084034A1 (en) Encoding multi-dimensional information for deep vision learning
CN115795487B (zh) 漏洞检测方法、装置、设备及存储介质
CN116564322A (zh) 语音转换方法、装置、设备及存储介质
CN108399066A (zh) 一种规则引擎实现方法及装置
CN111262818B (zh) 病毒检测方法、***、装置、设备及存储介质

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