恶意应用检测方法、介质、设备及装置与流程

文档序号:20442188发布日期:2020-04-17 22:29阅读:158来源:国知局
恶意应用检测方法、介质、设备及装置与流程

本发明涉及信息安全技术领域,特别涉及一种恶意应用检测方法、一种计算机可读存储介质、一种计算机设备以及一种恶意应用检测装置。



背景技术:

随着智能终端被广泛应用于人们的日常生活,各种应用(例如,移动支付、智能家居等)随之呈指数级地增长。而在这些应用中,有部分为开发人员非法制作的恶意应用,其中可能包含了勒索病毒或者特洛伊木马;如果用户安装了这类恶意应用,将可能造成个人隐私信息被窃取,或者人身财产安全受到损害。

相关技术中,在对应用软件进行评价的过程中,大多基于静态分析的特征,而忽略了应用软件运行过程中的动态特征,导致最终评价结果不准确;进而,难以用户使用应用过程中的安全性。



技术实现要素:

本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种恶意应用检测方法,能够对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种计算机设备。

本发明的第四个目的在于提出一种恶意应用检测装置。

为达到上述目的,本发明第一方面实施例提出了一种恶意应用检测方法,包括以下步骤:获取应用文件,并对所述应用文件进行反编译,以获取所述应用文件的静态信息;运行所述应用文件,并获取所述应用文件在运行过程中产生的动态信息;分别提取所述静态信息和所述动态信息对应的第一文本特征,并计算每个所述第一文本特征对应的第一特征向量;将所述第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以得到恶意应用检测模型;获取待检测应用文件,并提取所述待检测应用文件的第二文本特征和对应的第二特征向量,以及将所述第二文本特征和对应的第二特征向量输入到所述恶意应用检测模型,以通过所述恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用。

根据本发明实施例的恶意应用检测方法,首先,获取应用文件,并对获取到的应用文件进行反编译,以通过反编译来获取该应用文件对应的静态信息;接着,运行应用文件,并获取该应用文件在运行过程中所产生的动态信息;然后,分别提取静态信息和动态信息所对应的第一文本特征,并计算每个第一文本特征所对应的第一特征向量;接着,将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以在训练之后得到恶意应用检测模型;然后,在恶意应用检测模型训练得到后,获取待检测应用文件,并提取该待检测应用文件的第二文本特征和对应的第二特征向量,以及将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,以通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用;从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

另外,根据本发明上述实施例提出的恶意应用检测方法还可以具有如下附加的技术特征:

可选地,所述静态信息包括:静态应用权限信息、组件信息、监听信息、静态关键api调用信息和静态网络通信信息。

可选地,所述动态信息包括:动态网络通信信息、加密信息、实际调用api信息、动态应用权限信息和反射调用信息。

可选地,所述恶意应用检测模型通过以下公式进行表述:

其中,w0表示恶意应用检测模型的常数项,wi表示第i个文本特征的参数,fi表示第i个文本特征对应的特征向量,vi,f表示第i个文本特征在第f个特征向量下的隐向量,<vi,vj>表示向量vi和向量vj之间的内积,xi表示当前恶意应用是否含有第i个特征:xi=1表示含有第i个特征,xi=0表示不含有第i个特征。

为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有恶意应用检测程序,该恶意应用检测程序被处理器执行时,实现如上述的恶意应用检测方法。

根据本发明实施例的计算机可读存储介质,通过对恶意应用检测程序进行存储u,以使得处理器在执行该恶意应用检测程序时,实现如上述的恶意应用检测方法,从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的恶意应用检测方法。

根据本发明实施例的计算机设备,通过存储器对计算机程序进行存储,以使得处理器在执行存储器上存储的计算机程序时,实现如上述的恶意应用检测方法,从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为达到上述目的,本发明第四方面实施例提出了一种恶意应用检测装置,包括:第一获取模块,所述第一获取模块用于获取应用文件,并对所述应用文件进行反编译,以获取所述应用文件的静态信息;第二获取模块,所述第二获取模块用于运行所述应用文件,并获取所述应用文件在运行过程中产生的动态信息;特征提取模块,所述特征提取模块用于分别提取所述静态信息和所述动态信息对应的第一文本特征,并计算每个所述第一文本特征对应的第一特征向量;训练模块,所述训练模块用于将所述第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以得到恶意应用检测模型;第三获取模块,所述第三获取模块用于获取待检测应用文件,并提取所述待检测应用文件的第二文本特征和对应的第二特征向量;检测模块,所述检测模块用于将所述第二文本特征和对应的第二特征向量输入到所述恶意应用检测模型,并通过所述恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用。

根据本发明实施例的恶意应用检测装置,设置第一获取模块获取应用文件,并对获取到的应用文件进行反编译,以获取应用文件的静态信息;第二获取模块对应用文件进行运行,并在应用文件运行的过程中产生的动态信息;特征提取模块分别对静态信息对应的第一文本特征和动态信息对应的第一文本特征进行提取,并计算每个第一文本特征所对应的第一特征向量;训练模块将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,从而在训练完成后得到恶意应用检测模型;第三获取模块对待检测应用文件进行获取,并提取该待检测应用文件的第二文本特征和对应的第二特征向量;检测模块将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,并通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用;从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

另外,根据本发明上述实施例提出的恶意应用检测装置还可以具有如下附加的技术特征:

可选地,所述静态信息包括:静态应用权限信息、组件信息、静态关键api调用信息和静态网络通信信息。

可选地,所述动态信息包括:动态网络通信信息、加密信息、实际调用api信息、动态应用权限信息和反射调用信息。

可选地,所述恶意应用检测模型通过以下公式进行表述:

其中,w0表示恶意应用检测模型的常数项,wi表示第i个文本特征的参数,fi表示第i个文本特征对应的特征向量,vi,f表示第i个文本特征在第f个特征向量下的隐向量,<vi,vj>表示向量vi和向量vj之间的内积,xi表示当前恶意应用是否含有第i个特征:xi=1表示含有第i个特征,xi=0表示不含有第i个特征。

附图说明

图1为根据本发明实施例的恶意应用检测方法的流程示意图;

图2为根据本发明实施例的恶意应用检测装置的方框示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

相关技术中,在对应用软件进行评价的过程中,大多忽略了动态特征,导致最终评价结果不准确;根据本发明实施例的恶意应用检测方法,首先,获取应用文件,并对获取到的应用文件进行反编译,以通过反编译来获取该应用文件对应的静态信息;接着,运行应用文件,并获取该应用文件在运行过程中所产生的动态信息;然后,分别提取静态信息和动态信息所对应的第一文本特征,并计算每个第一文本特征所对应的第一特征向量;接着,将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以在训练之后得到恶意应用检测模型;然后,在恶意应用检测模型训练得到后,获取待检测应用文件,并提取该待检测应用文件的第二文本特征和对应的第二特征向量,以及将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,以通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用;从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

图1为根据本发明实施例的恶意应用检测方法的流程示意图,如图1所示,该恶意应用检测方法包括以下步骤:

s101,获取应用文件,并对应用文件进行反编译,以获取应用文件的静态信息;

也就是说,在获取到应用文件之后,对获取到的应用文件进行反编译,以通过反编译获取该应用文件的静态信息。

作为一种示例,首先,在pc端上安装主控程序,当pc端获取到apk文件(应用文件)之后,通过主控程序对apk进行反编译,以获取apk文件对应的静态信息。

其中,静态信息包含的数据可以有多种。

作为一种示例,静态信息包括:静态应用权限信息、组件信息、监听信息、静态关键api调用信息和静态网络通信信息。

其中,权限是应用系统中最重要的安全机制,一些恶意应用往往会申请特定的敏感权限,因此,对静态应用权限信息进行获取,并进行相应分析可有效对恶意应用进行排查;优选地,组件信息可以包括activities,services,contentproviders,broadcastreceivers;监听信息指的是应用在运行过程中连接两个不同的组件对intent进行监听所获取到的信息,一些恶意应用在运行过程中经常会监听一些特定的intent信息;另外,恶意应用在运行的过程中,经常会对一些关键api(例如,涉及某些敏感数据与资源的api:getdeviceid()、getsubscriberid()等)进行调用;优选地,静态信息还包括静态网络通信信息,因为一些恶意应用往往会通过网络连接来实现远程命令执行相关动作、并上传敏感信息等,因此,获取静态网络通信信息有助于对恶意应用进行有效排查。

s102,运行应用文件,并获取应用文件在运行过程中产生的动态信息。

也就是说,对应用文件进行运行,并获取该应用文件在运行过程中所产生的动态信息。

在一些实施例中,在实体设备上对应用文件进行运行,需要说明的是,如果在模拟器上对应用文件进行运行时,由于模拟器是完全虚拟的,应用如果能够判断设备是否有蓝牙、陀螺仪等传感器即可辨别当前环境是否为模拟器,从而隐藏自身的恶意行为;因此,通过实体设备对应用文件进行运行可以有效地对能够识别模拟器的应用进行有效排查。

作为一种示例,首先,实体设备获取root权限,接着,在获取到管理权限之后安装hook钩子框架以及相应组件和插件,例如,androidapimonitor组件、对抗模拟器检测插件、去https证书校验的hook插件等;然后,在实体设备上配置脚本语言环境和动态分析脚本,以便后续通过实体设备对应用文件进行运行和动态分析;接着,将实体设备与pc端进行连接,并使其与pc端处于同一局域网下,同时,将实体设备的网络代理设置为当前pc端,并安装ca证书,以便pc端通过主控程序对实体设备进行控制,并获取实体设备发送的信息;从而,在实体设备上的环境配置完毕之后,当pc端获取到应用文件时,可以通过主控程序对实体设备进行控制,例如,先通过adb命令将应用文件在实体设备上安装和运行;接着,通过rpc调用实体设备的动态分析脚本,以开始对应用文件运行过程的动态分析。

其中,静态信息所包含的信息可以有多种。

作为一种示例,动态信息包括:动态网络通信信息、加密信息、实际调用api信息、动态应用权限信息和反射调用信息。

作为另一种示例,动态信息包括:网络通信信息包括:域名信息,udp、http、dns等的流量信息;应用运行过程中动态申请的应用权限;加密密钥;加密的明文信息;使用到的文件信息;实际调用的api以及调用次数;反射调用;sharedpreferences;登录的账号信息等。

s103,分别提取静态信息和动态信息对应的第一文本特征,并计算每个第一文本特征对应的第一特征向量。

作为一种示例,提取动态信息中的网络通信信息中的url信息、动态申请的应用权限、加密的明文信息、实际调用的api信息和反射调用信息;提取静态信息中的静态应用权限信息、四大组件信息、静态监听信息、静态关键api调用信息和静态url信息;以将上述提取的信息作为第一文本特征,如此,可以获得10类文本特征;接着,对每一类文本特征采用onehot编码,则可以将类k的所有文本特征映射到一个特征向量sk,其中,sk每一维的取值为0或1,表示当前应用是否含有当前维所对应的特征。

s104,将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以得到恶意应用检测模型;

也就是说,通过场感知因子分解机对分类器模型进行训练,以获得恶意应用检测模型。

作为一种示例,在获取到10类第一文本特征之后,因为每类特征内部具有相同的性质,可以将其划分为同一个field(场),从而,根据10类第一文本特征可以获得10个场的特征向量。

在一些实施例中,恶意应用检测模型通过以下公式进行表述:

其中,w0表示恶意应用检测模型的常数项,wi表示第i个文本特征的参数,fi表示第i个文本特征对应的特征向量,vi,f表示第i个文本特征在第f个特征向量下的隐向量,<vi,vj>表示向量vi和向量vj之间的内积,xi表示当前恶意应用是否含有第i个特征:xi=1表示含有第i个特征,xi=0表示不含有第i个特征。

s105,获取待检测应用文件,并提取待检测应用文件的第二文本特征和对应的第二特征向量,以及将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,以通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用。

也就是说,在模型训练完毕之后,即可通过模型对应用进行评价,首先,在获取到待检测应用文件之后,提取待检测应用文件的第二文本特征和对应的第二特征向量,并将提取到的信息输入到恶意应用检测模型,以便根据恶意应用检测模型的输出结果判断待检测应用文件中的应用软件是否为恶意应用。

作为一种示例,在接收到恶意应用检测模型的输出结果之后,还可以结合提取到的待检测应用文件的静态信息和动态信息进行分析报告的生成,以便相关人员根据分析报告对待检测文件进行进一步的分析。

综上所述,根据本发明实施例的恶意应用检测方法,首先,获取应用文件,并对获取到的应用文件进行反编译,以通过反编译来获取该应用文件对应的静态信息;接着,运行应用文件,并获取该应用文件在运行过程中所产生的动态信息;然后,分别提取静态信息和动态信息所对应的第一文本特征,并计算每个第一文本特征所对应的第一特征向量;接着,将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以在训练之后得到恶意应用检测模型;然后,在恶意应用检测模型训练得到后,获取待检测应用文件,并提取该待检测应用文件的第二文本特征和对应的第二特征向量,以及将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,以通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用;从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为了实现上述实施例,本发明实施例还提出了一种计算机可读存储介质,其上存储有恶意应用检测程序,该恶意应用检测程序被处理器执行时,实现如上述的恶意应用检测方法。

根据本发明实施例的计算机可读存储介质,通过对恶意应用检测程序进行存储u,以使得处理器在执行该恶意应用检测程序时,实现如上述的恶意应用检测方法,从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为了实现上述实施例,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的恶意应用检测方法。

根据本发明实施例的计算机设备,通过存储器对计算机程序进行存储,以使得处理器在执行存储器上存储的计算机程序时,实现如上述的恶意应用检测方法,从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

为了实现上述实施例,本发明提出了一种恶意应用检测装置,如图2所示,该恶意应用检测装置包括:第一获取模块10、第二获取模块20、特征提取模块30、训练模块40、第三获取模块50和检测模块60。

其中,第一获取模块10用于获取应用文件,并对应用文件进行反编译,以获取应用文件的静态信息;

第二获取模块20用于运行应用文件,并获取应用文件在运行过程中产生的动态信息;

特征提取模块30用于分别提取静态信息和动态信息对应的第一文本特征,并计算每个第一文本特征对应的第一特征向量;

训练模块40用于将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,以得到恶意应用检测模型;

第三获取模块50用于获取待检测应用文件,并提取待检测应用文件的第二文本特征和对应的第二特征向量;

检测模块60用于将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,并通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用。

在一些实施例中,静态信息包括:静态应用权限信息、组件信息、静态关键api调用信息和静态网络通信信息。

在一些实施例中,动态信息包括:动态网络通信信息、加密信息、实际调用api信息、动态应用权限信息和反射调用信息。

在一些实施例中,恶意应用检测模型通过以下公式进行表述:

其中,w0表示恶意应用检测模型的常数项,wi表示第i个文本特征的参数,fi表示第i个文本特征对应的特征向量,vi,f表示第i个文本特征在第f个特征向量下的隐向量,<vi,vj>表示向量vi和向量vj之间的内积,xi表示。

需要说明的是,上述关于图1中恶意应用检测方法的说明同样适用与该恶意应用检测装置,在此不做赘述。

综上所述,根据本发明实施例的恶意应用检测装置,设置第一获取模块获取应用文件,并对获取到的应用文件进行反编译,以获取应用文件的静态信息;第二获取模块对应用文件进行运行,并在应用文件运行的过程中产生的动态信息;特征提取模块分别对静态信息对应的第一文本特征和动态信息对应的第一文本特征进行提取,并计算每个第一文本特征所对应的第一特征向量;训练模块将第一文本特征和对应的第一特征向量输入到场感知因子分解机进行分类器的训练,从而在训练完成后得到恶意应用检测模型;第三获取模块对待检测应用文件进行获取,并提取该待检测应用文件的第二文本特征和对应的第二特征向量;检测模块将第二文本特征和对应的第二特征向量输入到恶意应用检测模型,并通过恶意应用检测模型判断待检测应用文件中的应用软件是否为恶意应用;从而实现对恶意软件进行有效检测,提高恶意软件检测准确率,保证用户使用应用过程中的安全性。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1