CN109711160B - 应用程序检测方法、装置及神经网络系统 - Google Patents

应用程序检测方法、装置及神经网络系统 Download PDF

Info

Publication number
CN109711160B
CN109711160B CN201811456673.2A CN201811456673A CN109711160B CN 109711160 B CN109711160 B CN 109711160B CN 201811456673 A CN201811456673 A CN 201811456673A CN 109711160 B CN109711160 B CN 109711160B
Authority
CN
China
Prior art keywords
feature
characteristic
information
application program
layer
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
Application number
CN201811456673.2A
Other languages
English (en)
Other versions
CN109711160A (zh
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 CN201811456673.2A priority Critical patent/CN109711160B/zh
Publication of CN109711160A publication Critical patent/CN109711160A/zh
Application granted granted Critical
Publication of CN109711160B publication Critical patent/CN109711160B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种应用程序检测方法、装置以及神经网络系统,该方法通过获取应用程序安装包的静态信息,并将静态信息输入预先训练好的目标神经网络系统,目标神经网络系统包括第一子网络以及第二子网络;第一子网络基于静态信息,生成N个特征序列,并分别对每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;第二子网络将N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于第三特征向量,得到应用程序安装包的病毒检测结果,有效地提高了应用程序安装包病毒检测的准确性。

Description

应用程序检测方法、装置及神经网络系统
技术领域
本发明涉及网络安全技术领域,尤其涉及一种应用程序检测方法、装置以及神经网络系统。
背景技术
随着互联网技术的不断发展,软件的在人们的工作和生活中的使用越来越广泛。但是随着软件的广泛使用,诸多潜在的安全问题也逐渐暴露出来。近年来,根据不同杀毒软件厂商的调查报告,不同种类的恶意软件正在成倍的增长。这些恶意软件会破坏计算机系统或者在计算机系统上执行不良行为,如中断计算机操作,收集敏感信息,绕过访问控制,非法访问私人计算机以及显示各种广告信息等。因此,对恶意软件的检测至关重要。
现有的恶意软件检测方法是通过标记已知的恶意代码来创建恶意代码库,进而通过恶意代码匹配的方式,得到检测结果。但是这种方式需要不断人为去更新恶意代码库,很容易被绕过,准确性较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种应用程序检测方法、装置以及神经网络系统。
第一方面,本发明实施例提供了一种应用程序检测方法,所述方法包括:获取应用程序安装包的静态信息,并将所述静态信息输入预先训练好的目标神经网络系统,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,所述目标神经网络系统包括第一子网络以及第二子网络。所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数。所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述静态信息为所述应用程序安装包对应的二进制文件。所述基于所述静态信息,生成N个特征序列,包括:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
进一步地,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接。所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:所述输入层基于所述静态信息,生成N个特征序列;所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:所述第一卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
进一步地,所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:所述第一池化层通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
进一步地,所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:所述第二池化层通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
第二方面,本发明实施例提供了一种应用程序检测方法,所述方法包括:获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统。其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数。所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
第三方面,本发明实施例提供了一种神经网络系统,所述系统包括:第一子网络,用于基于获取到的应用程序安装包的静态信息,生成N个特征序列,分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,N为大于或等于2的整数;第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述静态信息为所述应用程序安装包对应的二进制文件,所述第一子网络具体用于:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
进一步地,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接。所述输入层,用于基于所述静态信息,生成N个特征序列。所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第一卷积层具体用于针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
进一步地,所述第一池化层具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
进一步地,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
进一步地,所述第二卷积层具体用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
进一步地,所述第二池化层具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
第四方面,本发明实施例提供了一种应用程序检测装置,所述装置包括:获取模块,用于获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;训练模块,用于通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统。
其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数。所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
第五方面,本发明实施例提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备上述应用程序检测方法的步骤。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述应用程序检测方法的步骤。
本发明实施例提供的技术方案中,通过将应用程序安装包的静态信息输入预先训练好的目标神经网络系统,先由目标神经网络系统中的第一子网络基于静态信息,生成N个特征序列,并分别对每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数,然后再由目标神经网络系统中的第二子网络将N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于第三特征向量,得到应用程序安装包的病毒检测结果。本方案通过将应用程序安装包的静态信息输入预先训练好的包含第一子网络和第二子网络的目标神经网络系统,对应用程序安装包的静态信息进行深入学习,得到应用程序安装包的病毒检测结果,有效地提高了应用程序安装包病毒检测的准确性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了适用于本发明实施例的一种运行环境示意图;
图2示出了本发明第一实施例提供的一种应用程序检测方法的方法流程图;
图3示出了本发明第一实施例提供的一种目标神经网络系统的解析过程示意图;
图4示出了本发明提供的神经网络系统的训练方法一实施例的流程图;
图5示出了本发明提供的神经网络系统一实施例的结构示意图;
图6示出了本发明提供的应用程序检测装置一实施例的结构示意图;
图7示出了本发明一实施例提供的一种电子设备的结构示意图。
具体实施方式
请参见图1,为适用于本发明实施例的一种运行环境示意图。如图1所示,一个或多个用户终端100(图1中仅示出一个)可通过网络200与一个或多个服务器300(图1中仅示出一个)相连,以进行数据通信或交互。其中,用户终端100可以是个人电脑(PersonalComputer,PC)、笔记本电脑、平板电脑、智能手机、电子阅读器、车载设备、网络电视和可穿戴设备等具有网络功能的智能设备。
本发明实施例提供的应用程序检测方法可以应用于用户终端中,或者,也可以应用于服务器中。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图2示出了本发明第一实施例提供的一种应用程序检测方法的方法流程图。本实施例中,该应用程序检测方法可以应用于用户终端。当然,在本发明的其他实施例中,该应用程序检测方法也可以应用于服务器。如图2所示,所述方法至少包括以下步骤S201至步骤S203。
步骤S201,获取应用程序安装包的静态信息,并将所述静态信息输入预先训练好的目标神经网络系统。
本实施例中,应用程序安装包是指需要检测是否携带有病毒的应用程序安装包,或者,在本发明的其他实施例中,应用程序安装包也可以是需要检测是否携带有病毒以及携带的病毒种类的应用程序安装包。具体的,应用程序安装包可以是移动终端的软件安装包,如安卓(Android)安装包,后缀为apk,也可以是电脑的软件安装包,如后缀为exe的安装包。
本实施例中,静态信息为通过解析应用程序安装包的代码文件得到的信息。作为一种实施方式,静态信息可以为应用程序安装包的二进制文件。
在本发明的其他实施例中,静态信息也可以为根据应用程序安装包的代码文件得到的操作码序列,操作码为该应用程序安装包的代码文件中的部分代码,可以是具备功能逻辑的代码,获取到多个操作码后,将这些操作码进行排序后可得到操作码序列。此时,获取应用程序安装包的静态信息的过程可以为:获取应用程序安装包并对该应用程序安装包进行反汇编操作,得到返汇编后的smali文件,提取出操作码(opcode),得到操作码序列。例如,假设待测的应用程序安装包为apk文件,在apk文件中存在格式为dex的代码文件,dex文件中包含有该apk文件对应的应用程序的所有源码,通过反汇编工具可以获取到相应的Jave编码。反汇编后即可得到格式为smali的文件,每个smali文件代表dex文件中的一个类,每个类由函数组成,每个函数则由指令组成,每个指令由一个操作码和多个操作数组成。
本实施例中,目标神经网络系统包括第一子网络以及第二子网络。第一子网络用于应用程序安装包的静态信息分为多个特征序列,并提取每个特征序列对应的局部关键信息。第二子网络用于基于第一子网络提取的每个特征序列对应的局部关键信息进一步提取更全面的特征参数,并得到应用程序安装包的病毒检测结果。作为一种实施方式,第一子网络和第二子网络可以均采用卷积神经网络。当然,在本发明其他实施例中,第一子网络和第二子网络也可以根据实际需要采用其他类型的神经网络,如深度神经网络。
步骤S202,第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量。
本实施例中,N为大于或等于2的整数。当静态信息为应用程序安装包的二进制文件时,基于静态信息,生成N个特征序列的具体实施过程可以有多种,下面主要介绍四种实施方式。
第一种,将二进制文件划分为N个二进制序列;对N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
第二种,如图3所示,将二进制文件划分为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”。
具体来讲,上述降维处理的具体实施过程可以为:采用预设算法对第一编码序列或第二编码序列进行降维。预设算法可以为:双三次插值算法、最邻近插值算法或双线性插值算法等。对编码序列进行降维后再进行后续处理,有利于提高处理速度,相应地,也可以减少神经网络系统的训练时间,降低资源占用。
下面以上述第二种方式为例,对具体降维处理的一种可以遵循的原理进行介绍:假设对应用程序安装包的二进制文件进行编码后,得到的第一编码序列的编码数为M,降维后的编码数为m。为了得到降维后的编码值,首先可以基于公式x=X*(M/m)得到降维后的点在第一编码序列中对应的位置。其中,x表示降维后的点在第一编码序列中对应的位置,X表示降维后的点在相应特征序列中的位置。可以理解的是,所求得的x是小数值,可以通过这个小数值坐标找到距离x最近的4个点,利用预先设置的基函数,求出对应的权值,从而获得降维后的编码值。例如,预先设置的基函数可以如下:
def_hermite(A,B,C,D,t)
{/*基函数
参数:A、B、C、D为距离该点最近的4个点,t为该点的小数部分
*/
a=A*(-0.5)+B*1.5+C*(-1.5)+D*0.5
b=A+B*(-2.5)+C*2.0+D*(-0.5)
c=A*(-0.5)+C*0.5
d=B
return a*t*t*t+b*t*t+c*t+d}
该函数的返回结果即为该点的编码值。
需要说明的是,在本发明的其他实施例中,当静态信息为根据应用程序安装包的代码文件得到的操作码序列时,也可以基于操作码序列,得到N个特征序列,从而再对每个特征序列进行后续处理。
可选的,第一子网络包括:输入层、第一卷积层和第一池化层。输入层、第一卷积层以及第一池化层依次连接。可以理解的是,第一卷积层的作用在于基于预先设置的预设数量的卷积核与每个特征序列做卷积,得到卷积特征,并将卷积特征输入一激活函数进行激活。第一池化层的作用在于进一步对激活后的卷积特征进行降维以及特征提取。
此时,上述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量的过程可以包括:输入层执行上述基于静态信息,生成N个特征序列;第一卷积层分别对N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对第一特征信息进行激活,得到激活后的第一特征信息;第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到N个第一特征向量。
可选的,上述第一激活函数可以为Relu函数。Relu激活函数可以较好地防止梯度衰减问题。当然,也可以根据需要采用其他激活函数。
可选的,上述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息具体可以包括:第一卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息,如图3所示。其中,第二激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制局部特征信息的传递,提高了局部特征的表示能力。
需要说明的是,在上述一维卷积处理中,一维卷积核的数量、尺寸和步长可以根据实际需要设置。本实施例可以通过采用较大尺寸的一维卷积核和步长,以降低计算和存储压力。
可选的,第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量具体可以包括:第一池化层通过最大池化方式(max-pooling)分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。其中,第一特征向量的维数由第一卷积层所设置的一维卷积核的数量决定。采用max-pooling引入了不变性,同时进行了降维和局部关键信息提取,防止过拟合。
步骤S203,第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
作为一种实施方式,第二子网络可以包括第二卷积层、第二池化层和输出层,第二卷积层、第二池化层和输出层依次连接。
此时,上述的第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果具体可以包括:第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
例如,Pj表示N个特征序列中第j个特征序列对应的第一特征向量,j为1到N之间的整数。将P1至PN进行拼接得到第二特征向量。可以理解的是,假设P1至PN均为H维的向量,则第二特征向量为一个N*H维的向量,例如H=10,N=90,则第二特征向量为一个900维的向量。
本实施例中,第三激活函数也可以采样Relu函数。同样,Relu激活函数可以较好地防止梯度衰减问题。
可选的,上述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息具体可以包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息,如图3所示。其中,第四激活函数可以采用Sigmoid函数。这样就可以形成一种Gate结构,此时,这种Gate结构可以更好地控制全局特征信息的传递,提高了全局特征的表示能力。
可选的,所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:所述第二池化层通过平均池化方式(avg-pooling)对所述激活后的第二特征信息进行池化处理,得到第三特征向量。采用avg-pooling是为了兼顾全局信息与局部信息,使模型能够充分利用每个特征序列的特征。
可选的,如图3所示,输出层可以包括全连接层和分类器。可以理解的是,卷积神经网络的卷积层和池化层等作用是将原始数据映射到隐层特征空间中,全连接层的目的是将网络学习到的特征映射到样本的标记空间中,将经过卷积层和池化层处理得到的特征进行整合,获取这些特征具有的高层含义,以便用于后续分类。
本实施例中,可以将第三特征向量作为全连接层的输入,全连接层的输出为一个T×1的向量,作为分类器的输入。其中,T为类别数。分类器用于基于全连接层的输出向量得到样本属于每个类别的概率。分类器的输出也是一个T×1的向量,分类器输出向量中每个元素的值的大小范围为0到1之间,且各元素的值相加等于1。
需要说明的是,分类的类别数根据实际需要设置。例如,在一种应用场景中,需要检测应用程序安装包是否携带有病毒,则属于二分类,此时,应用程序安装包的病毒检测结果为应用程序安装包是否携带病毒的概率。又例如,在另一种应用场景中,需要检测应用程序安装包是否携带有病毒以及携带病毒的种类,此时应用程序安装包的病毒检测结果可以分为三类或三类以上,包括应用程序安装包是否携带有病毒以及携带病毒的种类,应用程序安装包的病毒检测结果为应用程序安装包是否携带有病毒以及携带病毒属于每一类的概率。
可选的,全连接层可以采用Highway Network结构。通过采用Highway Network结构,将层表示为学习残差函数。这样能够通过单纯地增加网络深度,来提高网络性能。可选的,分类器可以采用Softmax函数。
在本发明的一实施例中,为了提高神经网络系统训练过程的收敛速度,本方法还可以包括:获取应用程序安装包的相关特征。此时,第二子网络可以基于第三特征向量以及上述相关特征,得到应用程序安装包的病毒检测结果。
具体来讲,相关特征可以为应用程序安装包的标识信息。标识信息可以是应用程序安装包的唯一标识符。例如,应用程序安装包的标识信息可以包括该应用程序的名称和/或包名。此时,基于第三特征向量以及应用程序安装包的标识信息,得到应用程序安装包的病毒检测结果的实施过程可以包括:将应用程序安装包的标识信息转化为第四特征向量,将第三特征向量和第四特征向量进行拼接,得到第五特征向量,将第五特征向量输入全连接层,进而再通过分类器得到应用程序安装包的病毒检测结果。
可以理解的是,当应用程序安装包的标识信息为应用程序的名称时,第五特征向量即为应用程序名称转化成的向量;当应用程序安装包的标识信息为应用程序的包名时,第五特征向量即为应用程序包名转化成的向量;当应用程序安装包的标识信息包括应用程序的名称和包名时,则第五特征向量包括应用程序名称转化成的向量以及应用程序的包名转化成的向量。
需要说明的是,相关特征可以不限于应用程序安装包的上述标识信息,在能够实现上述提高收敛速度且较准确地得到应用程序安装包的病毒检测结果的效果的基础上,还可以是应用程序安装包的其他唯一标识符。
本方案通过将应用程序安装包的静态信息输入预先训练好的包含第一子网络和第二子网络的目标神经网络系统,对应用程序安装包的静态信息进行深入学习,得到应用程序安装包的病毒检测结果,有效地提高了应用程序安装包病毒检测的准确性。
当然,在执行第一实施例所示的应用程序检测方法之前,还需要先对目标神经网络系统进行训练,得到目标神经网络系统各子网络的相关参数。对目标神经网络系统进行训练的过程可以在服务器中执行。图4为本发明神经网络系统的训练方法一个实施例的流程图。如图4所示,本实施例的方法至少可以包括以下步骤S401至步骤S402:
步骤S401,获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的。
可以理解的是,训练样本的选取与具体的检测需求有关。例如,当需要检测应用程序安装包是否携带有病毒时,所述训练样本包括多个携带病毒的应用程序安装包的静态信息以及多个未携带病毒的应用程序安装包的静态信息;当需要检测应用程序安装包是否携带有病毒以及携带病毒的种类时,假设病毒种类为两类,分别为Ⅰ类病毒和Ⅱ类病毒,则训练样本包括多个未携带病毒的应用程序安装包的静态信息、多个携带Ⅰ类病毒的应用程序安装包的静态信息以及多个携带Ⅱ类病毒的应用程序安装包的静态信息。
步骤S402,通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统。
其中,初始神经网络系统包括第一子网络和第二子网络。第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数。第二子网络用于将N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于第三特征向量,得到应用程序安装包的病毒检测结果。
可选的,静态信息为所述应用程序安装包对应的二进制文件。此时,基于所述静态信息,生成N个特征序列,包括:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
可选的,第一子网络和第二子网络均采用卷积神经网络。
可选的,第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接。此时,输入层用于基于所述静态信息,生成N个特征序列。第一卷积层用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。第一池化层用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第一卷积层具体用于:针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,第一池化层具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。此时,第二卷积层用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。第二池化层用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。输出层用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,第二卷积层具体用于对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,第二池化层具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
可选的,为了提高神经网络系统训练过程的收敛速度,训练样本还可以包括:每个应用程序安装包的相关特征。此时,第二子网络具体用于基于第三特征向量以及上述相关特征,得到应用程序安装包的病毒检测结果。具体来讲,相关特征可以为应用程序安装包的标识信息。例如,应用程序安装包的标识信息可以包括该应用程序的名称和/或包名。
图5为本发明提供的神经网络系统一个实施例的结构示意图,如图5所示,本实施例提供的神经网络系统可以包括:第一子网络51和第二子网络52。
其中,第一子网络51,用于基于获取到的应用程序安装包的静态信息,生成N个特征序列,分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,N为大于或等于2的整数。
第二子网络52,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,第一子网络51包括:输入层511、第一卷积层512和第一池化层513,所述输入层511、所述第一卷积层512以及所述第一池化层513依次连接。其中,输入层511用于基于所述静态信息,生成N个特征序列。第一卷积层512用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息。第一池化层513用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第一卷积层512具体用于所述第一卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
可选的,第一池化层513具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
可选的,第二子网络52包括第二卷积层521、第二池化层522和输出层523,所述第二卷积层521、第二池化层522和输出层523依次连接。其中,第二卷积层521用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。第二池化层522用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。输出层523用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
可选的,第二卷积层521具体用于对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
可选的,第二池化层522具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本实施例提供的神经网络系统,可用于执行图2所示方法实施例提供的技术方案,具体实现方式和技术效果类似,此处不再赘述。
另外,本发明一实施例还提供了一种应用程序检测装置。如图6所示,该应用程序检测装置包括:
获取模块61,用于获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
训练模块62,用于通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统;
其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数;
所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
需要说明的是,本发明实施例所提供的应用程序检测装置,其具体实现及产生的技术效果和前述神经网络系统的训练方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述神经网络系统的训练方法实施例中相应内容。
本发明一实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行上述第一实施例提供的应用程序检测方法的步骤。
本发明一实施例还提供了一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行上述神经网络系统的训练方法的步骤。
图7示出了一种示例性电子设备700的模块框图。如图7所示,电子设备700包括存储器702、存储控制器704,一个或多个(图中仅示出一个)处理器706、外设接口708、网络模块710、输入输出模块712以及显示模块714等。这些组件通过一条或多条通讯总线/信号线716相互通讯。
存储器702可用于存储软件程序以及模块,如本发明实施例中的应用程序检测方法对应的程序指令/模块,处理器706通过运行存储在存储器702内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的应用程序检测方法。
存储器702可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。处理器706以及其他可能的组件对存储器702的访问可在存储控制器704的控制下进行。
外设接口708将各种输入/输出装置耦合至处理器706以及存储器702。在一些实施例中,外设接口708,处理器706以及存储控制器704可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
网络模块710用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。
输入输出模块712用于提供给用户输入数据实现用户与电子设备的交互。所述输入输出模块712可以是,但不限于,鼠标、键盘和触控屏幕等。
显示模块714在电子设备700与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示模块917可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
可以理解,图7所示的结构仅为示意,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
本发明一实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的应用程序检测方法的步骤。
本发明一实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一实施例提供的神经网络系统的训练方法的步骤。
所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,本说明书中每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种应用程序检测方法,所述方法包括:获取应用程序安装包的静态信息,并将所述静态信息输入预先训练好的目标神经网络系统,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,所述目标神经网络系统包括第一子网络以及第二子网络;所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
A2、根据A1所述的方法,所述静态信息为所述应用程序安装包对应的二进制文件,所述基于所述静态信息,生成N个特征序列,包括:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
A3、根据A1所述的方法,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接,
所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
所述输入层基于所述静态信息,生成N个特征序列;
所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A4、根据A3所述的方法,所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:所述第一卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
A5、根据A3所述的方法,所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:所述第一池化层通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
A6、根据A1所述的方法,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
A7、根据A6所述的方法,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
A8、根据A6所述的方法,所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:所述第二池化层通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本发明公开了B9、一种应用程序检测方法,所述方法包括:获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统。其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数;所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
本发明公开了C10、一种神经网络系统,所述系统包括:第一子网络,用于基于获取到的应用程序安装包的静态信息,生成N个特征序列,分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,N为大于或等于2的整数;第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
C11、根据C10所述的系统,所述静态信息为所述应用程序安装包对应的二进制文件,所述第一子网络具体用于:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
C12、根据C10所述的系统,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接,所述输入层,用于基于所述静态信息,生成N个特征序列;所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
C13、根据C12所述的系统,所述第一卷积层具体用于针对所述N个特征序列中每个特征序列,执行以下步骤:对所述特征序列进行一维卷积处理,得到第一处理结果;通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
C14、根据C12所述的系统,所述第一池化层具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
C15、根据C10所述的系统,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接。所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息。所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量。所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
C16、根据C15所述的系统,所述第二卷积层具体用于:对所述第二特征向量进行一维卷积处理,得到第三处理结果;通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
C17、根据C15所述的系统,所述第二池化层具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
本发明公开了D18、一种应用程序检测装置,所述装置包括:获取模块,用于获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;训练模块,用于通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统。其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数;所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
本发明公开了E19、一种电子设备,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行A1-A8以及B9中任一项所述方法的步骤。
本发明公开了F20、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A8以及B9中任一项所述方法的步骤。

Claims (20)

1.一种应用程序检测方法,其特征在于,所述方法包括:
获取应用程序安装包的静态信息,并将所述静态信息输入预先训练好的目标神经网络系统,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,所述目标神经网络系统包括第一子网络以及第二子网络;
所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,N为大于或等于2的整数;
所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
2.根据权利要求1所述的方法,其特征在于,所述静态信息为所述应用程序安装包对应的二进制文件,所述基于所述静态信息,生成N个特征序列,包括:
将所述二进制文件划分为N个二进制序列;
对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
3.根据权利要求1所述的方法,其特征在于,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接,
所述第一子网络基于所述静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,包括:
所述输入层基于所述静态信息,生成N个特征序列;
所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
4.根据权利要求3所述的方法,其特征在于,所述第一卷积层分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,包括:
所述第一卷积层针对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
5.根据权利要求3所述的方法,其特征在于,所述第一池化层分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量,包括:
所述第一池化层通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
6.根据权利要求1所述的方法,其特征在于,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接,
所述第二子网络将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果,包括:
所述第二卷积层将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
所述输出层基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
7.根据权利要求6所述的方法,其特征在于,所述对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,包括:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
8.根据权利要求6所述的方法,其特征在于,所述第二池化层对所述激活后的第二特征信息进行池化处理,得到第三特征向量,包括:
所述第二池化层通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
9.一种应用程序检测方法,其特征在于,所述方法包括:
获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统;
其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数;
所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
10.一种神经网络系统,其特征在于,所述系统包括:
第一子网络,用于基于获取到的应用程序安装包的静态信息,生成N个特征序列,分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的,N为大于或等于2的整数;
第二子网络,用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
11.根据权利要求10所述的系统,其特征在于,所述静态信息为所述应用程序安装包对应的二进制文件,所述第一子网络具体用于:将所述二进制文件划分为N个二进制序列;对所述N个二进制序列中每个二进制序列进行编码,得到所述N个特征序列。
12.根据权利要求10所述的系统,其特征在于,所述第一子网络包括:输入层、第一卷积层和第一池化层,所述输入层、所述第一卷积层以及所述第一池化层依次连接,
所述输入层,用于基于所述静态信息,生成N个特征序列;
所述第一卷积层,用于分别对所述N个特征序列中每个特征序列进行一维卷积处理,得到该特征序列的第一特征信息,并通过预设的第一激活函数对所述第一特征信息进行激活,得到激活后的第一特征信息;
所述第一池化层,用于分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
13.根据权利要求12所述的系统,其特征在于,所述第一卷积层具体用于针对所述N个特征序列中每个特征序列,执行以下步骤:
对所述特征序列进行一维卷积处理,得到第一处理结果;
通过预设的第二激活函数对所述第一处理结果进行激活,得到第二处理结果;
将所述第一处理结果和所述第二处理结果的乘积,作为所述特征序列的第一特征信息。
14.根据权利要求12所述的系统,其特征在于,所述第一池化层具体用于通过最大池化方式分别对所述N个特征序列中每个特征序列对应的激活后的第一特征信息进行池化处理,得到所述N个第一特征向量。
15.根据权利要求10所述的系统,其特征在于,所述第二子网络包括第二卷积层、第二池化层和输出层,所述第二卷积层、第二池化层和输出层依次连接,
所述第二卷积层,用于将所述N个第一特征向量进行拼接,得到第二特征向量,对所述第二特征向量进行一维卷积处理,得到所述第二特征向量的第二特征信息,并通过预设的第三激活函数对所述第二特征信息进行激活,得到激活后的第二特征信息;
所述第二池化层,用于对所述激活后的第二特征信息进行池化处理,得到第三特征向量;
所述输出层,用于基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
16.根据权利要求15所述的系统,其特征在于,所述第二卷积层具体用于:
对所述第二特征向量进行一维卷积处理,得到第三处理结果;
通过预设的第四激活函数对所述第三处理结果进行激活,得到第四处理结果;
将所述第三处理结果和所述第四处理结果的乘积,作为所述第二特征向量的第二特征信息。
17.根据权利要求15所述的系统,其特征在于,所述第二池化层具体用于通过平均池化方式对所述激活后的第二特征信息进行池化处理,得到第三特征向量。
18.一种应用程序检测装置,其特征在于,所述装置包括:
获取模块,用于获取训练样本,所述训练样本包括多个应用程序安装包的静态信息以及每个应用程序安装包的病毒标签,其中,所述静态信息为通过解析所述应用程序安装包的代码文件得到的;
训练模块,用于通过所述训练样本对预先构建的初始神经网络系统进行训练,得到目标神经网络系统;
其中,所述初始神经网络系统包括第一子网络和第二子网络,所述第一子网络用于基于应用程序安装包的静态信息,生成N个特征序列,并分别对每个所述特征序列进行预设的第一特征参数提取处理,得到N个第一特征向量,N为大于或等于2的整数;
所述第二子网络用于将所述N个第一特征向量进行拼接,对拼接后得到的第二特征向量进行预设的第二特征参数提取处理,得到第三特征向量,并基于所述第三特征向量,得到所述应用程序安装包的病毒检测结果。
19.一种电子设备,其特征在于,包括处理器和存储器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时使所述电子设备执行权利要求1-9中任一项所述方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-9中任一项所述方法的步骤。
CN201811456673.2A 2018-11-30 2018-11-30 应用程序检测方法、装置及神经网络系统 Active CN109711160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811456673.2A CN109711160B (zh) 2018-11-30 2018-11-30 应用程序检测方法、装置及神经网络系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811456673.2A CN109711160B (zh) 2018-11-30 2018-11-30 应用程序检测方法、装置及神经网络系统

Publications (2)

Publication Number Publication Date
CN109711160A CN109711160A (zh) 2019-05-03
CN109711160B true CN109711160B (zh) 2023-10-31

Family

ID=66255462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811456673.2A Active CN109711160B (zh) 2018-11-30 2018-11-30 应用程序检测方法、装置及神经网络系统

Country Status (1)

Country Link
CN (1) CN109711160B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111259385B (zh) * 2018-11-30 2023-10-31 北京奇虎科技有限公司 应用程序识别方法、装置及神经网络系统
CN110837638B (zh) * 2019-11-08 2020-09-01 鹏城实验室 一种勒索软件的检测方法、装置、设备及存储介质
CN111079143B (zh) * 2019-11-25 2022-02-11 北京理工大学 一种基于多维特征图的木马检测方法
CN113554145B (zh) * 2020-04-26 2024-03-29 伊姆西Ip控股有限责任公司 确定神经网络的输出的方法、电子设备和计算机程序产品
CN115134153A (zh) * 2022-06-30 2022-09-30 中国电信股份有限公司 安全评估方法、装置和模型训练方法、装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346829A (zh) * 2011-09-22 2012-02-08 重庆大学 基于集成分类的病毒检测方法
CN103793650A (zh) * 2013-12-02 2014-05-14 北京邮电大学 Android应用程序的静态分析方法及装置
CN104537309A (zh) * 2015-01-23 2015-04-22 北京奇虎科技有限公司 应用程序漏洞检测方法、装置及服务器
CN107085684A (zh) * 2016-02-16 2017-08-22 腾讯科技(深圳)有限公司 程序特征的检测方法和装置
CN107103235A (zh) * 2017-02-27 2017-08-29 广东工业大学 一种基于卷积神经网络的Android恶意软件检测方法
CN107180191A (zh) * 2017-05-03 2017-09-19 北京理工大学 一种基于半监督学习的恶意代码分析方法和系统
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
CN107798243A (zh) * 2017-11-25 2018-03-13 国网河南省电力公司电力科学研究院 终端应用的检测方法和装置
CN108021932A (zh) * 2017-11-22 2018-05-11 北京奇虎科技有限公司 数据检测方法、装置及电子设备
RU2654146C1 (ru) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
CN108334781A (zh) * 2018-03-07 2018-07-27 腾讯科技(深圳)有限公司 病毒检测方法、装置、计算机可读存储介质和计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017011702A1 (en) * 2015-07-15 2017-01-19 Cylance Inc. Malware detection
US10476893B2 (en) * 2015-10-30 2019-11-12 Citrix Systems, Inc. Feature engineering for web-based anomaly detection

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346829A (zh) * 2011-09-22 2012-02-08 重庆大学 基于集成分类的病毒检测方法
CN103793650A (zh) * 2013-12-02 2014-05-14 北京邮电大学 Android应用程序的静态分析方法及装置
CN104537309A (zh) * 2015-01-23 2015-04-22 北京奇虎科技有限公司 应用程序漏洞检测方法、装置及服务器
CN107085684A (zh) * 2016-02-16 2017-08-22 腾讯科技(深圳)有限公司 程序特征的检测方法和装置
CN107103235A (zh) * 2017-02-27 2017-08-29 广东工业大学 一种基于卷积神经网络的Android恶意软件检测方法
CN107180191A (zh) * 2017-05-03 2017-09-19 北京理工大学 一种基于半监督学习的恶意代码分析方法和系统
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
RU2654146C1 (ru) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносных файлов с использованием элементов статического анализа
CN108021932A (zh) * 2017-11-22 2018-05-11 北京奇虎科技有限公司 数据检测方法、装置及电子设备
CN107798243A (zh) * 2017-11-25 2018-03-13 国网河南省电力公司电力科学研究院 终端应用的检测方法和装置
CN108334781A (zh) * 2018-03-07 2018-07-27 腾讯科技(深圳)有限公司 病毒检测方法、装置、计算机可读存储介质和计算机设备

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Learning to Detect and Classify Malicious Executables in the Wild;J. Zico Kolter 等;Journal of Machine Learning Research 7 (2006);第2721-2744页 *
N-gram-based Detection of New Malicious Code;Tony Abou-Assaleh 等;Proceedings of the 28th Annual INternational Computer Software and Application Conference,2004;全文 *
基于多类特征的JavaScript恶意脚本检测算法;付垒朋;张瀚;霍路阳;;模式识别与人工智能(第12期);第56-64页 *
基于操作码序列的静态恶意代码检测方法的研究;卢占军;中国优秀硕士学位论文全文数据库 信息科技辑 2014年底04期;全文 *
基于操作码序列频率向量和行为特征向量的恶意软件检测;修扬;刘嘉勇;;信息安全与通信保密(第09期);第97-101页 *
基于纹理指纹与活动向量空间的Android恶意代码检测;罗世奇;田生伟;禹龙;于炯;孙华;;计算机应用(第04期);第142-147页 *
文件静态特性评估下的木马检测机制;王维, 肖新光, 戴敏, 李柏松;信息安全与通信保密(第08期);第68-70页 *
检测迷惑恶意代码的层次化特征选择方法;张健飞;陈黎飞;郭躬德;;计算机应用(第10期);第85-91页 *

Also Published As

Publication number Publication date
CN109711160A (zh) 2019-05-03

Similar Documents

Publication Publication Date Title
CN109711160B (zh) 应用程序检测方法、装置及神经网络系统
CN111107048B (zh) 一种钓鱼网站检测方法、装置和存储介质
WO2021096649A1 (en) Detecting unknown malicious content in computer systems
CN109905385B (zh) 一种webshell检测方法、装置及系统
US20240144709A1 (en) Methods, systems, articles of manufacture and apparatus to categorize image text
Jeong et al. Adversarial attack-based security vulnerability verification using deep learning library for multimedia video surveillance
CN110730164B (zh) 安全预警方法及相关设备、计算机可读存储介质
CN111612635A (zh) 用户金融风险分析方法、装置及电子设备
CN111198967A (zh) 基于关系图谱的用户分组方法、装置及电子设备
CN110781925A (zh) 软件页面的分类方法、装置、电子设备及存储介质
CN111868709A (zh) 自动批次分类
CN114978624B (zh) 钓鱼网页检测方法、装置、设备及存储介质
CN115795000A (zh) 基于联合相似度算法对比的围标识别方法和装置
Bhaskara et al. Emulating malware authors for proactive protection using GANs over a distributed image visualization of dynamic file behavior
CN111259385B (zh) 应用程序识别方法、装置及神经网络系统
CN113918949A (zh) 基于多模态融合的诈骗app的识别方法
CN111262818B (zh) 病毒检测方法、系统、装置、设备及存储介质
CN113626576A (zh) 远程监督中关系特征抽取方法、装置、终端及存储介质
CN113409014A (zh) 基于人工智能的大数据业务处理方法及人工智能服务器
Şahin et al. On the Android Malware Detection System Based on Deep Learning
CN103856476A (zh) 用于识别网络机器人的方法和设备
CN115618349A (zh) 工控资产漏洞检测方法、设备、存储介质及装置
CN113420065A (zh) 一种应用于业务大数据的数据处理方法及大数据服务器
CN113221035A (zh) 用于确定异常网页的方法、装置、设备、介质和程序产品
CN111368164A (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
GR01 Patent grant
GR01 Patent grant