CN115795460A - 恶意应用检测方法、系统、设备及存储介质 - Google Patents
恶意应用检测方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN115795460A CN115795460A CN202211459974.7A CN202211459974A CN115795460A CN 115795460 A CN115795460 A CN 115795460A CN 202211459974 A CN202211459974 A CN 202211459974A CN 115795460 A CN115795460 A CN 115795460A
- Authority
- CN
- China
- Prior art keywords
- malicious
- preset
- authority
- application program
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提出一种恶意应用检测方法、系统、设备及存储介质,该方法包括:对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;基于所述特定目标文件和预设特征查找表,提取预设检测特征;基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;根据所述目标应用程序包是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。本发明实施例通过静态分析权限得到的一种恶意应用防范机制,可以帮助用户降低受恶意应用入侵的危险。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种恶意应用检测方法、系统、设备及存储介质。
背景技术
随着科技的发展,智能电子设备在人们的生活中越来越普及,为了保证数据信息安全,需要对智能电子设备进行恶意程序检测。对于智能手机权限安全机制,国内外学者已经进行了非常丰富的研究,同时提出了各种各样地检测恶意软件的技术,对各类软件行为进行静态动态分析,从而根据特征判断恶意软件。但是由于部分权限对于良性软件和恶意软件都是常用权限,仅从恶意样本提取权限从而定义该权限风险性会产生误差,需要对比良性与恶意之间权限的使用差异。所以基于权限分级评分策略和权限风险评估机制,对样本使用信息增益策略,来对比良性软件和恶意软件中不同权限对于判断他们类别的影响大小。
检测应用程序中的恶意程序动态分析方法主要是通过安卓应用程序发现应用漏洞,常见的方式是通过在沙箱中运行应用程序,观察应用程序所表现出来的行为,分析其中是否存在恶意行为,如是否泄漏用户隐私、是否含有诱骗信息等。但是动态分析会对系统运行产生影响,所消耗的系统资源与时间较多。
发明内容
本发明提供一种恶意应用检测方法、系统、设备及存储介质,其主要目的在于提供一种恶意应用的静态检测方法,减少恶意应用检测时消耗的系统资源和时间。
第一方面,本发明实施例提供一种恶意应用检测方法,包括:
对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;
基于所述特定目标文件和预设特征查找表,提取预设检测特征;
基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
优选地,所述预设检测特征包括预设样本权限,所述预设特征查找表为预设样本权限查找表,所述基于所述特定目标文件和预设特征查找表,提取预设检测特征,包括:
获取所述特定目标文件的所有权限;
将每一权限在所述预设特征查找表中进行比对,若能在所述预设特征查找表中找到每一权限,则将所述权限作为所述预设样本权限。
优选地,所述预设样本权限查找表通过如下步骤得到:
获取良性样本集中良性软件的第一实际权限,并统计所述第一实际权限被所述良性样本集中所述良性软件调用次数,获取所述第一实际权限对应的第一调用次数;
获取恶意样本集中恶意软件的第二实际权限,并统计所述第二实际权限被所述恶意样本集中所述恶意软件调用次数,获取所述第二实际权限对应的第二调用次数;
若所述第一实际权限对应的第一调用次数大于预设良性阈值,则将所述第一实际权限加入所述预设样本权限查找表中;
若所述第二实际权限对应的第二调用次数大于预设恶意阈值,则将所述第二实际权限加入所述预设样本权限查找表中。
优选地,所述应用检测模型为信息熵计算模型,所述基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率,包括:
根据所述样本权限在目标系统中的实际调用情况,基于所述信息熵计算模型,获取所述样本权限下所述目标应用程序是恶意软件的概率。
优选地,所述信息熵计算模型的计算公式如下:
其中,i表示第i个样本权限,P(i)表示第i个样本权限下样本应用程序是良性软件的比率,Q(i)表示第i个样本权限下样本应用程序是恶意软件的比率,DKL表示信息增益,i为正整数。
优选地,所述根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用,之后还包括:
若判断得知所述目标应用程序不是恶意应用,则再次通过动态分析方法对所述目标应用程序进行判断;
若再次判断所述目标应用程序不是恶意应用,则判断所述目标应用程序不是恶意应用,否则,判断所述目标应用程序是恶意应用。
优选地,所述动态分析方法为基于深度学习的恶意应用检测方法。
第二方面,本发明实施例提供一种恶意应用检测系统,包括:
编译模块,用于对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;
查找模块,用于基于所述特定目标文件和预设特征查找表,提取预设检测特征;
预测模块,用于基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
检测模块,用于根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种恶意应用检测方法的步骤。
第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述一种恶意应用检测方法的步骤。
本发明提出的一种恶意应用检测方法、系统、设备及存储介质,先对目标应用程序进行反编译,得到该目标应用程序包对应的特定目标文件,然后基于该特定目标文件中包含的特征,在预设特征查找表中进行比对,即可提取出特定目标文件中包含的预设检测特征,接着讲该预设检测特征输入到应用检测模型中,即可得到该目标应用程序是恶意应用的概率。本发明实施例通过静态分析权限得到的一种恶意应用防范机制,可以帮助用户降低受恶意应用入侵的危险。
附图说明
图1为本发明实施例提供的一种恶意应用检测方法的应用场景示意图;
图2为本发明实施例提供的一种恶意应用检测方法的流程图;
图3为本发明实施例提供的一种恶意应用检测系统的结构示意图;
图4为本发明实施例中提供的一种计算机设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为本发明实施例提供的一种恶意应用检测方法的应用场景示意图,如图1所示,用户在客户端输入目标应用程序包,客户端接收到目标应用程序包后,将该目标应用程序包发送给服务端,服务端接收到该目标应用程序包后,执行该一种恶意应用检测方法,得到目标应用程序是否为恶意应用。
需要说明的是,服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。客户端可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。客户端和服务端可以通过蓝牙、USB(UniversalSerial Bus,通用串行总线)或者其他通讯连接方式进行连接,本发明实施例在此不做限制。
本发明实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(ArtificialIntelligence,简称AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习、深度学习等几大方向。
安卓系统因其开放性而成为恶意软件滋生的平台,许多恶意软件会诱导用户安装木马,或者通过过多或不当的权限来获取相关信息,实现其搜集用户隐私的目的,为了避免或者减少恶意软件带来的伤害,对恶意软件实现高精度的检测具有意义。
图2为本发明实施例提供的一种恶意应用检测方法的流程图,如图2所示,该方法包括:
S210,对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件,所述特定目标文件的后缀名为xml;
首先获取目标应用程序包,安卓应用程序包一般后缀名为.apk的压缩文件,目标应用程序包即为需要进行恶意应用检测的程序包,可以为系统软件对应的程序包,比如管理软件、文件系统软件,也可以是应用软件对应的程序包,比如拍照软件、通信软件等等,具体可以通过实际情况进行确定,本发明实施例对此不做具体限定。任何安卓应用程序的后缀都是.apk,即Android applicationfilepackage。APK文件是一个压缩包,主要包括Java源代码编译后的文件、资源文件、签名证书和配置文件等。
通过对该目标应用程序包进行反编译,可以得到该目标应用程序包的特定目标文件,具体反编译方法可以是利用现成的反编译工具实现,也可以是通过反编译程序来进行实现,现有的反编译工具包括apktool和androidfby,这两种工具都能用来直接实现反编译,以androidfby为例进行说明,打开该程序,输入目标应用程序包,即可提取出该目标应用程序包的特定目标文件。本发明实施例中,该特定目标文件是指包含所需要特征的文件,本发明实施例中该特定目标文件为AndroidManifest.xml文件,也可以是smali文件,该AndroidManifest.xml是应用程序的清单文件,描述了全局的数据,为应用程序的运行提供了说明,从中提取的一类信息可以作为检测特征,smali是安卓虚拟机的反汇编语言,每一个smali文件都对应一Java类,其中包含了所有的函数信息,smali语言是Davlik的寄存器语言,语法上和汇编语言相似,smali文件前三行的通用模式如下:
.class<访问权限[修饰关键字]><类名>,用于说明目前的类名;
.super<父类名>,说明目前类的父类名称;
.source<源文件名>,说明目前类的源文件名称。剩下的是类的主体部分,一个类包括多个字段或方法。
每类软件都需要一个安卓接口来实现其主要目标和功能,因此应用软件中使用的应用程序接口反映了应用程序的接口。
S220,基于所述特定目标文件和预设特征查找表,提取预设检测特征;
然后基于该特定目标文件和预设特征查找表,通过在预设特征查找表中查找目标文件中所包含的特征,如果该特征能在预设特征查找表中找到,即将该特征作为预设检测特征。AndroidManifest.xml文件中包含了应用程序所需的权限、组件、意图、软件、资源等信息,其中恶意软件和良性软件在权限、组件、意图的使用种类上有较大差异,因此可以选择权限、组件或者意图中的一种或者多种作为检测特征。例如,如果将权限选择特征,则事先提前找好能够较好反映恶意应用和良性应用之间区别的权限,将所有能反映恶意应用和良性应用区别之间的权限均放在预设特征查找表中,即该预设特征查找表中包含了预设权限,然后将特定目标文件中包含的权限在预设特征查找表中进行查找,如果找到了,即将该权限作为预设检测特征。具体地,在根据特定目标文件查找该文件中包含的权限时,可以通过对AndroidManifest.xml文件进行解析的方法,用JAVA对apk中的AndroidManifest.xml文件进行分别对程序的权限信息、组件列表、包名、版本号进行解析。使用JAVA中的DOM(JAXPCrimson解析器)来对xml文件进行解析。通过解析即可得到该特定目标文件中所包含的权限。
又如,还可以根据组件来对恶意应用进行区分,具体地,基于特定目标文件中所包含的组件信息,将该特定目标文件中所包含的组件信息与预设特征查找表中包含的组件进行比对,如果能在预设特征查找表中找到,即将该组件作为预设检测特征。同样地,预设特征查找表中存放的是能够反映恶意应用和良性应用之间区别的组件,需要事先进行统计分析,将提取出来的所有能够区分恶意软件和良性软件之间区别的组件均存放在预设特征查找表中。
S230,基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
通过提取出来的预设检测特征和应用检测模型,将该预设检测特征输入到应用检测模型中,即可得到该目标应用程序是恶意的概率,本发明实施例的应用检测模型可以是神经网络模型,也可以是其它不需要进行训练的分类模型。比如,如果该应用检测模型是神经网络模型,则需要先对神经网络模型进行训练,训练完成后,得到训练后的应用检测模型,然后将该预设检测特征输入到训练后的应用检测模型中,即可得到目标应用程序为恶意软件的概率。
又比如,该应用检测模型是分类模型,即直接将该预测检测特征输入到应用检测模型中,可以得到目标应用程序是恶意软件的概率。K最近邻(K-nearestneighbors,KNN)模型、逻辑回归模型是常用的分类预测模型。其中除KNN是非参数模型外,逻辑回归模型是参数模型。非参数模型指不明确假设一个或多个参数化形式F(x)的方法。
当类别为两类数据时,逻辑回归模型应用较多,逻辑回归主要用于Y是两类数据时的分类,而当Y的数据类别超过两类时,LDA被更多的使用。影响逻辑回归分类预测准确率的一个重要点是:预测概率的阈值的设定!即设定超过某个概率值时判定为不同的类别。当分类决策边界很复杂时,非参数方法KNN的分类结果更佳,在使用KNN算法时需注意:KNN的原理是通过圈定距离最近的观测值来实现,因此,变量的取值尺度将会对结果产生影响。所以,在应用KNN时,需首先将所有变量统一尺度,以使得不同变量的数据可以相互比较。一个方法是标准化数据,比如,可将所有变量转化为以0为均值、1为标准差的数据。
S240,根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
然后根据该目标应用程序包是恶意软件的概率,判断该目标应用程序包对应的目标应用程序是否为恶意应用,具体地,根据该目标应用程序包是恶意软件的概率,如果该概率大于预设概率阈值,则判断该目标应用程序包对应的目标应用程序是恶意应用,否则,判断该目标应用程序包对应的目标应用程序不是恶意应用。
本发明实施例提供一种恶意应用检测方法,先对目标应用程序进行反编译,得到该目标应用程序包对应的特定目标文件,然后基于该特定目标文件中包含的特征,在预设特征查找表中进行比对,即可提取出特定目标文件中包含的预设检测特征,接着讲该预设检测特征输入到应用检测模型中,即可得到该目标应用程序是恶意应用的概率。本发明实施例通过静态分析权限得到的一种恶意应用防范机制,可以帮助用户降低受恶意应用入侵的危险。
在上述实施例的基础上,优选地,所述预设检测特征包括预设样本权限,所述预设特征查找表为预设样本权限查找表,所述基于所述特定目标文件和预设特征查找表,提取预设检测特征,包括:
获取所述特定目标文件的所有权限;
将每一权限在所述预设特征查找表中进行比对,若能在所述预设特征查找表中找到每一权限,则将所述权限作为所述预设样本权限。
具体地,获取预设检测特征是先提取特定目标文件中的所有权限,然后每个权限在预设特征查找表中进行比对,如果能在预设特征查找表中能找到该权限,则直接将该权限作为预设样本权限。具体比对方法可以是顺序查找,也可以是折半查找,还可以是分块查找,具体可以根据实际情况进行确定,本发明实施例对此不做具体限定。对于顺序查找,顺序查找又叫线性查找,主要用于在线性表(顺序表和链表均可)中进行查找,从线性表的一端开始,逐字检查关键字是否满足条件;对于折半查找,又称为二分查找,仅仅适用于有序的顺序表,将给定的关键字与预设特征查找表中中间位置的关键字进行比较,若相等,则说明能找到,若不相等,则在中间位置的前半部分或者后半部分范围重复查找,直到成功找到,或者不成功;对于分块查找,分块查找又称索引顺序查找,将预设特征查找表分为若干个子块,块内的元素可以是无序的,也可以是有序的,具体在查找是先根据权限找到所在的块,然后再在该块内进行查找,直至成功找到,或者不成功。具体地,本发明实施例可以根据预设特征查找表的具体格式来选择相应的查找方法,如果预设特征查找表中存储的权限是按照一定顺序进行存储的,则进行二分查找;如果预设特征查找表中存储的权限是按照区块进行存储的,则进行分块查找;否则,进行顺序查找。
在上述实施例的基础上,优选地,所述预设样本权限查找表通过如下步骤得到:
获取良性样本集中良性软件的第一实际权限,并统计所述第一实际权限被所述良性样本集中所述良性软件调用次数,获取所述第一实际权限对应的第一调用次数;
获取恶意样本集中恶意软件的第二实际权限,并统计所述第二实际权限被所述恶意样本集中所述恶意软件调用次数,获取所述第二实际权限对应的第二调用次数;
若所述第一实际权限对应的第一调用次数大于预设良性阈值,则将所述第一实际权限加入所述预设样本权限查找表中;
若所述第二实际权限对应的第二调用次数大于预设恶意阈值,则将所述第二实际权限加入所述预设样本权限查找表中。
具体地,该预设样本权限查找表的获取步骤如下:首先获取良性样本集,良性样本集中包括很多个良性软件,该良性软件是基于对多个智能电子设备上的软件进行统计得到的,将在实际使用过程中所经常用到的良性软件均放在良性样本集中,这样良性样本集就包括了实际经常使用的良性软件。对于每个良性软件,获取该良性软件中所调用的第一实际权限,将所有的良性软件中调用的第一实际权限放在第一列表中,然后再以第一列表中的第一实际权限为对象,统计在良性样本集的所有良性软件中调用了该第一实际权限的个数,将调用次数作为第一权限对应的第一调用次数,对第一列表中的每个第一实际权限都进行同样的操作,直到获取第一列表中每个第一实际权限对应的第一调用次数。
同样地,获取恶意样本集,该恶意样本集中包括很多个恶意软件,该恶意软件是基于对多个智能电子设备上的软件进行统计得到的,将在实际使用过程中经常出现的恶意软件均放在恶意样本集中,这样恶意样本集就包括了实际经常出现的恶意软件。对于每个恶意软件,获取该恶意软件中所调用的第二实际权限,将所有的恶意软件中调用的第二实际权限放在第二列表中,然后再以第二列表中的第二实际权限为对象,统计在良性样本集的所有良性软件中调用了该第二实际权限的个数,将调用次数作为第二权限对应的第二调用次数,对第二列表中的每个第二实际权限都进行同样的操作,直到获取第二列表中每个第二实际权限对应的第二调用次数。
对于第一列表中的每个第一实际权限,将每个第一实际权限对应的第一调用次数与预设良性阈值进行比较,如果第一调用次数大于该预设良性阈值,则说明对应的第一实际权限可以很好地区分出良性软件和恶意软件,将对应的第一实际权限放入到预设样本权限查找表中,对第一列表中的每个第一实际权限都进行相应的判断,直到对第一列表中所有第一实际权限都判断完毕。对于第二列表中的每个第二实际权限,将每个第二实际权限对应的第二调用次数与预设恶意阈值进行比较,如果第二调用次数大于该预设恶意阈值,则说明对应的第二实际权限可以很好地区分出良性软件和恶意软件,将对应的第二实际权限放入到预设样本权限查找表中,对第二列表中的每个第二实际权限都进行相应的判断,直到对第二列表中所有第二实际权限都判断完毕。需要说明的是,预设良性阈值和预设恶意阈值均是预先根据经验进行设置的,具体取值可以根据实际情况进行确定,本发明实施例对此不做具体限定。通过上述步骤,可以有效的提取出能够将良性软件和恶意软件进行区分的所有权限,并将这些权限放在预设样本权限查找表中。
在上述实施例的基础上,优选地,所述应用检测模型为信息熵计算模型,所述基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率,包括:
根据所述样本权限在目标系统中的实际调用情况,基于所述信息熵计算模型,获取所述样本权限下所述目标应用程序是恶意软件的概率。
具体地,本发明实施例中的应用检测模型为信息熵计算模型,信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望,信息熵即考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。信息熵还可以作为一个系统复杂程度的度量,如果系统越复杂,出现不同情况的种类越多,那么他的信息熵是比较大的。
为了对上述恶意软件和正常软件的权限访问结果进行特征分析,本发明实施例中引入了信息增益,又名信息熵,来研究每项权限对于判断一个应用是否为恶意应用的作用性大小。在信息增益中,重点衡量标准就是看样本信息特征能够为分类系统带来多少信息,如果带来的信息越多,则该特征就越重要。一个变量可能的变化越多,那么它所携带的信息量就越大。信息增益是相对于单个特征而言的,总得来说,就是看一个特征,系统有它和没它的时候信息量各是多少,两者的差异就是该特征给整个系统带来的信息量,即信息增益,也作信息熵。
具体在根据预设检测特征和应用检测模型,计算出目标应用程序是恶意软件的概率计算过程中,直接将该样本权限在系统中的实际调用情况输入到应用检测模型中,得到该样本权限下目标应用程序是恶意软件的概率。
在上述实施例的基础上,优选地,所述信息熵计算模型的计算公式如下:
其中,i表示第i个样本权限,P(i)表示第i个样本权限下样本应用程序是良性软件的比率,Q(i)表示第i个样本权限下样本应用程序是恶意软件的比率,DKL表示信息增益,i为正整数。
具体地,该信息熵的计算公式如上所述,本发明实施例中为了考察每项权限对于判断一个程序为良性软件还是恶意软件的作用,分别标记良性软件和恶意软件为特定属性,i代表100多项权限列表的每个权限,P和Q分别代表良性软件与恶意软件,通过上述的试验结果可以分别得到每个权限i下良性软件和恶意软件分别占有的比率P(i)和Q(i),这样就鲜明地表示了i这个权限在帮助判断一个应用为良性应用还是恶意应用下的作用性大小,得到的信息增益也就表示了这个权限i携带的信息量的大小,值越大表示该权限对于区分恶意和良性的作用越大。
这样就可以将上述恶意软件和正常应用的权限提取结果分别带入信息增益的定义公式中的P、Q中,就可以考察该项权限对整个系统的贡献,简而言之就是具体某一项权限判断一个应用程序为恶意软件可能性的大小。
在上述实施例的基础上,优选地,所述根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用,之后还包括:
若判断得知所述目标应用程序不是恶意应用,则再次通过动态分析方法对所述目标应用程序进行判断;
若再次判断所述目标应用程序不是恶意应用,则判断所述目标应用程序不是恶意应用,否则,判断所述目标应用程序是恶意应用。
具体地,如果本发明实施例中通过上述判断该目标应用程序不是恶意应用,则说明该目标应用程序可能是良性应用,但是由于静态分析方法可能存在对目标应用程序包的误判,因此本发明实施例中,如果第一次判断得知该目标应用程序不是恶意应用,则可以再次通过动态分析方法对目标应用程序进行判断,静态分析方法与动态分析方法优势互补,如果再次通过动态分析方法也判断出该目标应用程序不是恶意应用,则可以得出该目标应用程序是良性应用,即如果两次都判断出该目标应用程序是良性应用,则最终可以证明该目标应用程序是良性应用,如果通过动态分析分析方法得出该目标应用程序是恶意应用,即使静态分析方法得出的结论是良性应用,则将该目标应用程序最终也作为恶意应用。
本发明实施例中先通过静态分析方法对目标应用程序进行检测,如果检测结果为良性应用,则再利用动态分析方法对目标应用程序进行检测,如果动态分析方法对目标应用程序的检测结果依然为良性应用,则最终认定该目标应用程序为良性应用,如果动态分析方法对目标应用程序的检测结果为恶意应用,则最终认定该目标应用程序为恶意应用。本发明实施例中充分发挥静态分析方法和动态分析方法的检测优势,先对目标应用程序包进行静态检测,后对目标应用程序包进行动态检测,由于并不是对每个目标应用程序包都进行动态检测,而是只对检测结果为良性应用的目标应用程序包才进行动态检测,因此不会占用太多系统资源和运行时间,同时经过两次检测又提高了恶意应用检测的准确性;另外,经过两次恶意应用的检测,可以最大程度的防止恶意应用的漏检和错检,保证了系统运行的安全性。
在上述实施例的基础上,优选地,所述动态分析方法为基于深度学习的恶意应用检测方法。
图3为本发明实施例提供的一种恶意应用检测系统的结构示意图,如图3所示,该系统包括编译模块310、查找模块320、预测模块330和检测模块340,其中:
编译模块310用于对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;
查找模块320用于基于所述特定目标文件和预设特征查找表,提取预设检测特征;
预测模块330用于基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
检测模块340用于根据所述目标应用程序包是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
本实施例为与上述方法相对应的系统实施例,其实施过程与上述方法实施例相同,详情请参考上述方法实施例,本系统实施例对此不做赘述。
在上述实施例的基础上,优选地,所述预设检测特征包括预设样本权限,所述预设特征查找表为预设样本权限查找表,所述查找模块包括权限单元和比对单元,其中:
所述权限单元用于获取所述特定目标文件的所有权限;
所述比对单元用于将每一权限在所述预设特征查找表中进行比对,若能在所述预设特征查找表中找到每一权限,则将所述权限作为所述预设样本权限。
在上述实施例的基础上,优选地,还包括第一实际权限模块、第二实际权限模块、预设良性模块和预设恶意模块,其中:
所述第一实际权限模块用于获取良性样本集中良性软件的第一实际权限,并统计所述第一实际权限被所述良性样本集中所述良性软件调用次数,获取所述第一实际权限对应的第一调用次数;
所述第二实际权限模块用于获取恶意样本集中恶意软件的第二实际权限,并统计所述第二实际权限被所述恶意样本集中所述恶意软件调用次数,获取所述第二实际权限对应的第二调用次数;
所述预设良性模块用于若所述第一实际权限对应的第一调用次数大于预设良性阈值,则将所述第一实际权限加入所述预设样本权限查找表中;
所述预设恶意模块用于若所述第二实际权限对应的第二调用次数大于预设恶意阈值,则将所述第二实际权限加入所述预设样本权限查找表中。
在上述实施例的基础上,优选地,所述应用检测模型为信息熵计算模型,所述预测模块包括预测单元,其中:
所述预测单元用于根据所述样本权限在目标系统中的实际调用情况,基于所述信息熵计算模型,获取所述样本权限下所述目标应用程序是恶意软件的概率。
在上述实施例的基础上,优选地,所述信息熵计算模型的计算公式如下:
其中,i表示第i个样本权限,P(i)表示第i个样本权限下样本应用程序是良性软件的比率,Q(i)表示第i个样本权限下样本应用程序是恶意软件的比率,DKL表示信息增益,i为正整数。
在上述实施例的基础上,优选地,还包括判断模块和优化模块,其中:
所述判断模块用于若判断得知所述目标应用程序不是恶意应用,则再次通过动态分析方法对所述目标应用程序进行判断;
所述优化模块用于若再次判断所述目标应用程序不是恶意应用,则判断所述目标应用程序不是恶意应用,否则,判断所述目标应用程序是恶意应用。
在上述实施例的基础上,优选地,所述动态分析方法为基于深度学习的恶意应用检测方法。
上述恶意应用检测系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图4为本发明实施例中提供的一种计算机设备的结构示意图,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行一种恶意应用检测方法过程中生成或获取的数据,如目标应用程序包、特定目标文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种一种恶意应用检测方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的一种恶意应用检测方法的步骤。或者,处理器执行计算机程序时实现一种恶意应用检测系统这一实施例中的各模块/单元的功能。
在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中一种恶意应用检测方法的步骤。或者,该计算机程序被处理器执行时实现上述一种恶意应用检测系统这一实施例中的各模块/单元的功能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种恶意应用检测方法,其特征在于,包括:
对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;
基于所述特定目标文件和预设特征查找表,提取预设检测特征;
基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
根据所述目标应用程序包是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
2.根据权利要求1所述的恶意应用检测方法,其特征在于,所述预设检测特征包括预设样本权限,所述预设特征查找表为预设样本权限查找表,所述基于所述特定目标文件和预设特征查找表,提取预设检测特征,包括:
获取所述特定目标文件的所有权限;
将每一权限在所述预设特征查找表中进行比对,若能在所述预设特征查找表中找到每一权限,则将所述权限作为所述预设样本权限。
3.根据权利要求2所述的恶意应用检测方法,其特征在于,所述预设样本权限查找表通过如下步骤得到:
获取良性样本集中良性软件的第一实际权限,并统计所述第一实际权限被所述良性样本集中所述良性软件调用次数,获取所述第一实际权限对应的第一调用次数;
获取恶意样本集中恶意软件的第二实际权限,并统计所述第二实际权限被所述恶意样本集中所述恶意软件调用次数,获取所述第二实际权限对应的第二调用次数;
若所述第一实际权限对应的第一调用次数大于预设良性阈值,则将所述第一实际权限加入所述预设样本权限查找表中;
若所述第二实际权限对应的第二调用次数大于预设恶意阈值,则将所述第二实际权限加入所述预设样本权限查找表中。
4.根据权利要求2所述的恶意应用检测方法,其特征在于,所述应用检测模型为信息熵计算模型,所述基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率,包括:
根据所述样本权限在目标系统中的实际调用情况,基于所述信息熵计算模型,获取所述样本权限下所述目标应用程序是恶意软件的概率。
6.根据权利要求1所述的恶意应用检测方法,其特征在于,所述根据所述目标应用程序是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用,之后还包括:
若判断得知所述目标应用程序不是恶意应用,则再次通过动态分析方法对所述目标应用程序进行判断;
若再次判断所述目标应用程序不是恶意应用,则判断所述目标应用程序不是恶意应用,否则,判断所述目标应用程序是恶意应用。
7.根据权利要求6所述的恶意应用检测方法,其特征在于,所述动态分析方法为基于深度学习的恶意应用检测方法。
8.一种恶意应用检测系统,其特征在于,包括:
编译模块,用于对目标应用程序包进行反编译,获取所述目标应用程序包的特定目标文件;
查找模块,用于基于所述特定目标文件和预设特征查找表,提取预设检测特征;
预测模块,用于基于所述预设检测特征和应用检测模型,获取所述目标应用程序是恶意软件的概率;
检测模块,用于根据所述目标应用程序包是恶意软件的概率,判断所述目标应用程序包对应的目标应用程序是否为恶意应用。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述恶意应用检测方法的步骤。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述恶意应用检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211459974.7A CN115795460A (zh) | 2022-11-17 | 2022-11-17 | 恶意应用检测方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211459974.7A CN115795460A (zh) | 2022-11-17 | 2022-11-17 | 恶意应用检测方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795460A true CN115795460A (zh) | 2023-03-14 |
Family
ID=85439634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211459974.7A Pending CN115795460A (zh) | 2022-11-17 | 2022-11-17 | 恶意应用检测方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795460A (zh) |
-
2022
- 2022-11-17 CN CN202211459974.7A patent/CN115795460A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109905385B (zh) | 一种webshell检测方法、装置及系统 | |
CN104508672B (zh) | 程序执行装置以及程序分析装置 | |
WO2012025865A1 (en) | Mining source code for violations of programming rules | |
KR101972825B1 (ko) | 하이브리드 분석 기술을 이용한 임베디드 기기 취약점 자동 분석 방법, 장치 및 그 방법을 실행하는 컴퓨터 프로그램 | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN110633211A (zh) | 对于多接口的测试方法、装置、服务器及介质 | |
CN116366377B (zh) | 恶意文件检测方法、装置、设备及存储介质 | |
CN114386046A (zh) | 一种未知漏洞检测方法、装置、电子设备及存储介质 | |
Saleem et al. | Android malware detection using feature ranking of permissions | |
CN111062040A (zh) | 一种确定未知漏洞的方法、服务器及计算机可读存储介质 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN111291377A (zh) | 一种应用漏洞的检测方法及系统 | |
Rana et al. | Malware analysis on Android using supervised machine learning techniques | |
CN115795460A (zh) | 恶意应用检测方法、系统、设备及存储介质 | |
CN115048645A (zh) | 超范围采集隐私信息的检测方法、装置、设备及介质 | |
CN110719274B (zh) | 网络安全控制方法、装置、设备及存储介质 | |
CN113392016A (zh) | 对程序异常情况处理的规约生成方法、装置、设备及介质 | |
KR102465307B1 (ko) | 화이트 리스트 생성 방법 및 이를 수행하는 사용자 단말, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램 | |
CN116578979B (zh) | 一种基于代码特征的跨平台二进制代码匹配方法及系统 | |
CN117891749B (zh) | Api应用安全监测方法、装置、设备及存储介质 | |
CN112380530B (zh) | 一种同源apk检测方法、终端设备及存储介质 | |
CN117093996B (zh) | 嵌入式操作系统的安全防护方法及系统 | |
CN112583840B (zh) | 终端框架安全检测方法、设备、存储介质及装置 | |
WO2023053226A1 (ja) | 判定装置、判定方法、および、判定プログラム | |
US20240241954A1 (en) | Method of detecting android malware based on heterogeneous graph and apparatus thereof |
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 |