恶意应用的检测方法、装置、电子设备及存储介质与流程

未命名 09-08 阅读:104 评论:0
1.本公开涉及计算机
技术领域
:,具体涉及移动网络安全、以及人工智能等
技术领域
:,尤其涉及一种恶意应用的检测方法、装置、电子设备及存储介质。
背景技术
::2.随着移动终端的使用普及,涌现出越来越多的移动终端上安装和使用的应用(application;app),其中,一些恶意的app也呈现飞速增长的态势。所以,恶意app的检测是一项非常重要的技术,能够对恶意app进行有效检测,并做出相应的安全预警。3.现有技术中,恶意app的检测,可以包括:获取已安装app的用户的反馈,并对已安装该app的用户的反馈进行分析,确定该app是否为恶意app。技术实现要素:4.本公开提供了一种恶意应用的检测方法、装置、电子设备及存储介质。5.根据本公开的一方面,提供了一种恶意应用的检测方法,包括:6.获取待检测的应用的资源文件字符串;7.基于所述资源文件字符串,获取所述应用的多个第一特征词;8.获取所述多个第一特征词中各第一特征词的恶意分值;9.基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。10.根据本公开的另一方面,提供了一种恶意应用的检测装置,包括:11.字符串获取模块,用于获取待检测的应用的资源文件字符串;12.特征词获取模块,用于基于所述资源文件字符串,获取所述应用的多个第一特征词;13.分值获取模块,用于获取所述多个第一特征词中各第一特征词的恶意分值;14.第一检测模块,用于基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。15.根据本公开的再一方面,提供了一种电子设备,包括:16.至少一个处理器;以及17.与所述至少一个处理器通信连接的存储器;其中,18.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。19.根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。20.根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。21.根据本公开的技术,能够有效地提高恶意应用检测的准确性和检测效率。22.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明23.附图用于更好地理解本方案,不构成对本公开的限定。其中:24.图1是根据本公开第一实施例的示意图;25.图2是根据本公开第二实施例的示意图;26.图3是根据本公开第三实施例的示意图;27.图4是根据本公开第四实施例的示意图;28.图5根据本公开第五实施例的示意图;29.图6是用来实现本公开实施例的方法的电子设备的框图。具体实施方式30.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。31.显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。32.需要说明的是,本公开实施例中所涉及的终端设备可以包括但不限于手机、个人数字助理(personaldigitalassistant,pda)、无线手持设备、平板电脑(tabletcomputer)等智能设备;显示设备可以包括但不限于个人电脑、电视等具有显示功能的设备。33.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。34.现有技术中,已安装app的用户的反馈,主观性较强,导致基于安装该app的用户的反馈,确定该app是否为恶意app的准确性较差。35.图1是根据本公开第一实施例的示意图;如图1所示,本实施例提供一种恶意应用的检测方法,具体可以包括如下步骤:36.s101、获取待检测的应用的资源文件字符串;37.s102、基于该资源文件字符串,获取该应用的多个第一特征词;38.s103、获取多个第一特征词中各第一特征词的恶意分值;39.s104、基于各第一特征词的恶意分值,检测该应用是否为恶意应用。40.本实施例的恶意应用检测方法,可以应用在恶意应用下载之后,安装之前,实现对恶意应用的检测,进而可以基于检测结果,为用户提供安全预警。41.本实施例的恶意应用可以指的是涉嫌各种非正常供用户使用的应用。例如可以包括诱导用户进行非正常活动的应用,或者以表面上的正常活动欺骗用户使用,并通过非法手段窃取用户信息的应用,等各种异常应用。42.本实施例的待检测的应用的资源文件字符串,可以指的是应用的资源文件的硬编码字符串。该字符串可以为一个长文本字符串,可以包括该应用使用过程中会出现的所有文本信息。43.本实施例的该资源文件字符串为一个长文本字符串,其中可以包括很多的信息,其中有一些词语为中性词语,对应用是否为恶意没有贡献,而还有一些词语,能够表征该应用是否为恶意。本实施例中,为了准确地检测该应用是否为恶意应用,可以获取该应用的多个第一特征词。此时可以理解为,该应用的多个第一特征词中,是从资源文件字符串中过滤掉一些明显无贡献的词语之后,得到的特征词。例如,“你”、“我”、“她”、“你们”、“我们”、“他们”、“的”、“地”、“得”等词语,可以认为这些词语是对恶意应用的检测无贡献的词语,在基于该资源文件字符串,获取该应用的多个第一特征词时,可以过滤掉。基于此,可以理解为,该应用的多个第一特征词,为从该资源文件字符串中抽取的具有一定的区分度,能够对恶意应用的检测有贡献的词语。44.本实施例中,第一特征词的恶意分值,可以表征第一特征词的恶意程度,例如分值越高,该第一特征词的恶意程度越高,包括该第一特征词的应用为恶意应用的概率就越高。基于各第一特征词的恶意分值,可以综合分析该应用的恶意程度,进而可以检测该应用是否为恶意应用。45.本实施例的恶意应用的检测方法,可以通过该资源文件字符串,获取该应用的多个第一特征词;并基于多个第一特征词中各第一特征词的恶意分值,检测该应用是否为恶意应用,与现有技术相比,能够有效地提高恶意应用检测的准确性和检测效率。46.图2是根据本公开第二实施例的示意图;本实施例提供一种恶意应用的检测方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地介绍本公开的技术方案。如图2所述,本实施例的恶意应用的检测方法,具体可以包括如下步骤:47.s201、获取待检测的应用的资源文件字符串;48.例如,本实施例中的恶意应用的检测可以用于对安卓(android)系统的应用的检测。49.在本公开的一个实施例中,可以从应用的安卓应用程序包(androidapplicationpackage;apk)文件中获取该应用的资源文件硬编码字符串,作为该应用的资源文件字符串。50.具体地,可以将该应用的apk中的所有资源文件硬编码字符串拼接起来,生成一个长文本字符串,作为该应用的资源文件字符串。这些资源文件字符串为该应用安装后使用过程中展示的字符构成的字符串,基于这些字符串,可以得知该应用的使用过程中的会展示的信息。基于这些信息可以分析该应用是否为恶意应用。本实施例即是基于该思想,实现恶意应用的检测。51.s202、基于资源文件字符串,获取应用的多个第一特征词;52.例如,可以对该资源文件字符串进行分词,得到多个词语。具体地,可以按照词典进行分词。然后可以基于停用词表,过滤掉多个词语中已经停用的词语。再统计剩下的各词语的词频,若词频过高,如“的”、“地”、“得”等词语,对恶意应用检测也无贡献,也可以过滤掉。或者还饿可以采用其他方式过滤掉一些无意义的词语,最终保留多个第一特征词。本实施例中,获取的多个第一特征词,可以认为是具有一定的区分度,对恶意应用检测具有一定贡献的词语。53.s203、基于预设的黑名单、预设的恶意应用检测规则和多个第一特征词,检测该应用是否为恶意应用;若不是,执行步骤s204;若检测并确定该应用为恶意应用,发出安全预警,结束。54.例如,具体实现时,可以包括如下步骤:55.(1)获取多个第一特征词中各第一特征词在应用中出现的次数;56.(2)基于预设的黑名单,检测多个第一特征词中出现在黑名单中的目标特征词;57.(3)检测并确定所有的目标特征词的出现次数总和达到预设次数阈值,确定应用为恶意应用。58.在该实现方案中,预设的恶意应用检测规则可以是,包括在黑名单中的目标特征词的出现次数总和达到预设次数阈值时,认为该应用为恶意应用。例如,若多个第一特征词中有n个目标特征词出现在黑名单中,所有的目标特征词的出现次数总和,等于n个目标特征词分别在应用中的出现次数之和。预设次数阈值可以基于经验或者实际需求来设置。例如可以为1、2、3等整数值。59.上述步骤仅为恶意应用检测规则的一种示例。实际应用中,预设的恶意应用检测规则还可以包括其他各种规则。例如,可以检测出现在黑名单中的目标特征词的数量是否达到预设数量阈值;或者检测出现在黑名单中的一个指定的目标特征词的次数是否达到预设次数阈值,与上述步骤(3)的区别在于,可以仅检测一个指定的目标特征词的出现次数是否达到预设次数阈值,而不是检测所有的目标特征词的次数总和是否达到预设次数阈值。实际应用中,还可以包括其他的恶意应用检测规则,在此不再举例赘述。60.s204、基于预先建立的特征词的恶意分值表,获取各第一特征词的恶意分值;61.例如,具体实现时,可以包括如下步骤:62.(a1)对于各第一特征词,检测特征词的恶意分值表中是否包括该第一特征词;若包括,执行步骤(b1);若未包括,执行步骤(c1);63.(b1)从特征词的恶意分值表中获取该第一特征词的恶意分值,结束;64.(c1)配置第一特征词的恶意分值。65.可选地,在本公开的一个实施例中,配置第一特征词的恶意分值可以包括如下实现方式:66.第一实现方式中,配置第一特征词的恶意分值可以为0。67.由于特征词的恶意分值表中未包括该第一特征词的恶意分值,所以,为了保证恶意应用检测的准确性,在不能准确确定该第一特征词的恶意分值时,可以将其恶意分值配置为0,即在恶意应用检测时,不考虑该第一特征词的恶意分值。68.第二种实现方式中,可以包括如下步骤:69.(a2)获取特征词的恶意分值表中与第一特征词的语义相似度大于预设相似度阈值的至少一个候选特征词;70.(b2)从特征词的恶意分值表获取各候选特征词的恶意分值,得到至少一个恶意分值;71.(c2)基于至少一个恶意分值,确定第一特征词的恶意分值。72.该实现方式中,预设相似度阈值可以根据实际需求或者经验来设置,例如可以为0.8、0.9等接近1的数值。73.对于各第一特征词,若特征词的恶意分值表中仅存在与一个候选特征词,将该候选特征词的恶意分值作为该第一特征词的恶意分值。若存在至少两个候选特征词,可以取至少两个候选特征词的恶意分值的平均,作为该第一特征词的恶意分值。74.实际应用中,无论采用上述哪种方式,均能够准确地获取到第一特征词的恶意分值。可选地,实际应用中,上述两种方式也可以联合使用。例如先采用上述第二种实现方式,若上述第二种实现方式中,从特征词的恶意分值表中未获取到与第一特征词的语义相似度大于预设相似度阈值的候选特征词,此时可以采用第一种实现方式,将该第一特征词的恶意分值配置为0。75.实际应用中,可以定期更新应用样本集合,相应地定期更新特征词的恶意分值表,使得特征词的恶意分值表中尽可能包括更多的特征词的恶意分值,以避免第一特征词的恶意分值的配置,以有效地提高恶意应用检测的准确性。76.s205、基于各第一特征词的恶意分值,计算各第一特征词的恶意分值和;77.s206、检测各第一特征词的恶意分值和,是否大于预设分值阈值,若是,确定该应用为恶意应用;否则确定该应用不是恶意应用。78.本实施例中,是以检测到各第一特征词的恶意分值和,大于预设分值阈值时为恶意应用为例。可选地,实际应用中,还可以检测多个第一特征词的恶意分值中,最大的恶意分值是否大于第一预设阈值;若大于,确定该应用为恶意应用。或者还可以检测恶意分值大于第二预设阈值的第一特征词的数量是否大于第二预设阈值;若大于,确定该应用为恶意应用,等等。实际应用中,还可以基于各第一特征词的恶意分值,采用其他的检测条件,检测该应用是否为恶意应用,在此不在一一举例赘述。79.可选地,在本实施例的步骤s204之前,还可以包括建立特征词的恶意分值表,具体可以包括如下步骤:80.(a3)采集包括多个已知应用的应用样本集合;各已知应用包括多个第二特征词,各已知应用具有已知标签,已知标签用于标识对应的应用是否为恶意应用;81.(b3)对于各已知应用中的各第二特征词,计算各已知应用中的各第二特征词的特征值;82.例如,本实施例的第二特征词的特征值可以取tf-idf值,或者也可以取各特征词在待检测应用中的出现次数等。83.例如,基于上述步骤,可以得到如下表的信息:84.表185.特征词1特征词2......特征词nlabelx11x12......x1n1(黑)x21x22......x2n1(黑)x31x32......x3n0(白)..............................xn1xn2......xnn0(白)86.表中最后一列lable代表应用的标签,其中1表示黑,即恶意应用;0表示白,即非恶意应用。其他每一列代表一个特征词的特征值,每一行代表一个已知应用中的各个特征词的特征值。87.(c3)基于各已知应用中的各第二特征词的特征值,获取第二特征词为恶意的概率值;88.例如,该步骤的具体实现方式为:基于各已知应用中的各第二特征词的特征值,计算第二特征词的在应用样本集合中的恶意应用样本中对应的特征值之和,作为第一数值;基于各已知应用中的各第二特征词的特征值,计算应用样本集合的恶意应用样本中,所有第二特征词的特征值之和,作为第二数值;基于第一数值和第二数值,计算第二特征词为恶意的概率值。89.(d3)基于各已知应用中的各第二特征词的特征值,获取第二特征词为非恶意的概率值;90.例如,该步骤的具体实现方式为:基于各已知应用中的各第二特征词的特征值,计算第二特征词的在应用样本集合中的非恶意应用样本中对应的特征值之和,作为第三数值;基于各已知应用中的各第二特征词的特征值计算应用样本集合的非恶意应用样本中,所有第二特征词的特征值之和,作为第四数值;基于第三数值和第四数值,计算第二特征词为非恶意的概率值。91.(e3)对于各已知应用中的各第二特征词,基于第二特征词为恶意的概率值和第二特征词为非恶意的概率值,获取第二特征词的恶意分值;92.例如,本实施例中,可以取第二特征词为恶意的概率值除以第二特征词为非恶意的概率值的对数,作为该第二特征词的恶意分值。通过取对数的方式,可以将第二特征词的恶意分值设置在一个合理的区间内,方便后续基于各第二特征词的恶意分值,检测该应用是否为恶意应用。93.例如,第二特征词的恶意分值可以采用如下公式表示:[0094][0095]其中,p(x|y)表示应用样本集合中y类别样本下指定特征词j的特征值xj之和+alpha)/(y类别样本下所有特征词的特征值之和+类的取值个数*alpha),在本实施例的场景中,y类别包括黑样本和白样本,即恶意应用和非恶意应用,共两类。alpha为一个超参数,可以根据经验,设置为0-1之间的数值。[0096]本实施例的上述步骤(c3)-(e3),可以对现有的朴素贝叶斯算法进行改进,实现各第二特征词的恶意分值的计算。[0097]例如,参考朴素贝叶斯分类器的算法,各第二特征词为恶意应用的概率和为非恶意的概率,可以采用如下公式表示:[0098][0099]其中y=1表示黑样本,即恶意应用,x表示第二特征词的特征值。[0100]各第二特征词为非恶意的概率,可以采用如下公式表示:[0101][0102]其中y=0表示白样本,即非恶意应用。[0103]本实施例中,可以取上述公式(2)与公式(3)的比值,作为第二特征词的恶意程度比值,例如,可以采用如下公式表示:[0104][0105]其中,xj表示第j个第二特征词的特征值。[0106]进一步地,为了将第二特征词的恶意程度比值限定在一个较小的、合理的范围内,可以对上述公式(4)取对数,例如,可以采用如下公式表示:[0107][0108]由于公式(5)中第一项为常数,后一项可以理解为各第二特征词的恶意程度比值之和。基于此,可以取第j个第二特征词的恶意程度比值作为该第二特征词的恶意分值,即得到公式(1)。[0109](f3)基于各已知应用中的各第二特征词的恶意分值,建立特征词的恶意分值表。[0110]按照上述方式,可以得到应用样本集合中每个已知应用中的每个第二特征词的恶意分值,进而建立包括多个已知应用中的多个第二特征词的恶意分值的恶意分值表。[0111]本实施例,通过上述方式,能够高效、准确地计算出各第二特征词的恶意分值,进而可以准确、高效地建立特征词的恶意分值表。[0112]本实施例的恶意应用的检测方法,通过上述方式,通过查询特征词的恶意分值表,能够准确地获取到各第一特征词的恶意分值,进而基于各第一特征词的恶意分值,准确、高效地检测该应用是否为恶意应用。该检测方式,采用的第一特征词的恶意分值能够在一定程度上表征该第一特征词的恶意强度,所以,基于该应用的各第一特征词的恶意分值,能够有效地提高应用是否为恶意应用的检测准确性和检测效率。[0113]而且,本实施例中,增加了基于预设的黑名单、预设的恶意应用检测规则和多个第一特征词,检测该应用是否为非恶意应用,作为第一级检测,并在第一级检测确定该应用为非恶意应用时,获取各第一特征词的恶意分值;并基于各第一特征词的恶意分值,检测应用是否为恶意应用,实现两级检测,能够有效地提高应用检测的准确性和检测效率。[0114]图3是根据本公开第三实施例的示意图;本实施例提供一种恶意应用的检测方法,在上述图1所示实施例的技术方案的基础上,进一步更加详细地介绍本公开的技术方案。如图3所述,本实施例的恶意应用的检测方法,具体可以包括如下步骤:[0115]s301、获取待检测的应用的资源文件字符串;[0116]s302、基于资源文件字符串,获取应用的多个第一特征词;[0117]s303、对于各第一特征词,获取第一特征词在应用中的出现次数、在预先建立的应用样本集合中的出现次数、出现在应用样本集合中的恶意应用样本中出现的次数,包括有第一特征词的恶意应用样本的数量、出现在应用样本集合中的非恶意应用样本中出现的次数,包括有第一特征词的非恶意应用样本的数量中至少一个;[0118]s304、对于各第一特征词,基于第一特征词在应用中的出现次数、在应用样本集合中的出现次数、出现在应用样本集合中的恶意应用样本中出现的次数,包括有第一特征词的恶意应用样本的数量、出现在应用样本集合中的非恶意应用样本中出现的次数,包括有第一特征词的非恶意应用样本的数量中至少一个,采用预先训练的恶意分值预测模型,预测第一特征词的恶意分值;[0119]s305、基于各第一特征词的恶意分值,计算各第一特征词的恶意分值和;[0120]s306、检测各第一特征词的恶意分值和,是否大于预设分值阈值,若是,确定该应用为恶意应用;否则确定该应用不是恶意应用。[0121]本实施例的步骤s303和步骤s304,实现基于预先训练的恶意分值预测模型,获取各第一特征词的恶意分值。[0122]具体使用时,对于各第一特征词,将该第一特征词在应用中的出现次数、在应用样本集合中的出现次数、出现在应用样本集合中的恶意应用样本中出现的次数,包括有第一特征词的恶意应用样本的数量、出现在应用样本集合中的非恶意应用样本中出现的次数,包括有第一特征词的非恶意应用样本的数量中的至少一个特征信息,输入至预先训练好的恶意分值预测模型,该恶意分值预测模型可以预测并输出该第一特征词的恶意分值。[0123]具体地,训练时,可以基于已知应用样本集合,将各已知应用样本作为训练样本,并获取各已知应用样本中各特征词的特征信息,作为输入数据;计算各特征词对应的计算得到的恶意分值,作为标注数据。然后基于各已知应用样本中的各特征词对应的输入数据和标注数据,对该恶意分值预测模型进行训练,使得恶意分值预测模型可以学习到基于已知应用样本中的各特征词对应的特征信息,能够准确地预测该特征词的恶意分值。[0124]该恶意分值预测模型使用的输入的特征信息越多,模型的预测越准确。[0125]本实施例中,应用样本集合可以为上述图2所示实施例中,建立特征词的恶意分值表时,采集的包括多个已知应用的应用样本集合。[0126]本实施例中,在步骤s302之后,步骤s303之前,也可以包括上述图2所示实施例的步骤s203,可以实现两级检测,能够进一步有效地提高检测准确性和检测效率。[0127]步骤s305和步骤s306的实现方式,与上述图2所示实施例的步骤s205和步骤s206相同,详细可以参考上述图2所示实施例的相关记载,在此不在赘述。进一步可选地,在上述图2所示实施例的步骤s206和图3所示实施例的步骤s306之后,还可以包括:若该应用为恶意应用时,发出预警提示,以提示用户该应用为恶意应用,请谨慎安装和使用,能够有效地对恶意应用进行预警和提示,提高用户使用的安全性。[0128]本实施例的恶意应用的检测方法,通过上述方式,能够基于恶意分值预测模型,准确地获取到各第一特征词的恶意分值,进而基于各第一特征词的恶意分值,准确、高效地检测该应用是否为恶意应用。该检测方式,与上述图2所示实施例相比,本实施例的技术方案,不会存在获取不到特征词的恶意分值的情况,实现方式更加智能,而且能够更加有效地提高特征词的恶意分值获取的准确性。进一步地,基于该应用的各第一特征词的恶意分值,能够进一步有效地提高应用是否为恶意应用的检测准确性和检测效率。[0129]本公开的上述实施例的恶意应用的检测方法,主要用于实现对android应用的检测。在检测到用户下载了应用的安装包之后,可以采用本公开的上述任一实施例的技术方案,准确、高效地对恶意应用进行检测。并进一步地,还可以在检测到恶意应用时,及时向用户发出预警提示,能够有效地提高用户使用应用的安全性。[0130]图4是根据本公开第四实施例的示意图;如图4所示,本实施例提供一种恶意应用的检测装置400,包括:[0131]字符串获取模块401,用于获取待检测的应用的资源文件字符串;[0132]特征词获取模块402,用于基于所述资源文件字符串,获取所述应用的多个第一特征词;[0133]分值获取模块403,用于获取所述多个第一特征词中各第一特征词的恶意分值;[0134]第一检测模块404,用于基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。[0135]本实施例的恶意应用的检测装置400,通过采用上述模块实现恶意应用检测的实现原理以及技术效果,与上述相关方法实施例相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。[0136]图5是根据本公开第五实施例的示意图;如图5所示,本实施例提供一种恶意应用的检测装置500,包括上述图4所示的同名同功能模块:字符串获取模块501、特征词获取模块502、分值获取模块503和第一检测模块504。[0137]如图5所示,本实施例的恶意应用的检测装置500,还包括:[0138]第二检测模块505,用于基于预设的黑名单、预设的恶意应用检测规则和所述多个第一特征词,检测并确定所述应用为非恶意应用。[0139]可选地,在本公开的一个实施例中,第二检测模块505,用于:[0140]获取所述多个第一特征词中各所述第一特征词在所述应用中出现的次数;[0141]基于预设的黑名单,检测所述多个第一特征词中出现在所述黑名单中的目标特征词;[0142]检测并确定所有的所述目标特征词的出现次数总和达到预设次数阈值,确定所述应用为恶意应用。[0143]可选地,在本公开的一个实施例中,分值获取模块503,用于:[0144]基于预先建立的特征词的恶意分值表,获取各所述第一特征词的恶意分值。[0145]可选地,如图5所示,在本公开的一个实施例中,还包括:[0146]采集模块506,用于采集包括多个已知应用的应用样本集合;各所述已知应用包括多个第二特征词,各所述已知应用具有已知标签,所述已知标签用于标识对应的所述应用是否为恶意应用;[0147]计算模块507,用于对于各所述已知应用中的各所述第二特征词,计算各所述已知应用中的各所述第二特征词的特征值;[0148]概率值获取模块508,用于基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为恶意的概率值;[0149]概率值获取模块508,还用于基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为非恶意的概率值;[0150]分值获取模块503,还用于对于各所述已知应用中的各第二特征词,基于所述第二特征词为恶意的概率值和所述第二特征词为非恶意的概率值,获取所述第二特征词的恶意分值;[0151]建立模块509,用于基于各所述已知应用中的各所述第二特征词的恶意分值,建立所述特征词的恶意分值表。[0152]可选地,在本公开的一个实施例中,概率值获取模块508,用于:[0153]基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的恶意应用样本中对应的特征值之和,作为第一数值;[0154]基于各所述已知应用中的各所述第二特征词的特征值,计算所述应用样本集合的恶意应用样本中,所有第二特征词的特征值之和,作为第二数值;[0155]基于所述第一数值和所述第二数值,计算所述第二特征词为恶意的概率值。[0156]可选地,在本公开的一个实施例中,概率值获取模块508,还用于:[0157]基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的非恶意应用样本中对应的特征值之和,作为第三数值;[0158]基于各所述已知应用中的各所述第二特征词的特征值计算所述应用样本集合的非恶意应用样本中,所有第二特征词的特征值之和,作为第四数值;[0159]基于所述第三数值和所述第四数值,计算所述第二特征词为非恶意的概率值。[0160]可选地,在本公开的一个实施例中,分值获取模块503,用于:[0161]对于各所述第一特征词,检测所述特征词的恶意分值表中是否包括所述第一特征词;[0162]若包括,从所述特征词的恶意分值表中获取对应的所述第一特征词的恶意分值;[0163]若未包括,配置所述第一特征词的恶意分值。[0164]可选地,在本公开的一个实施例中,分值获取模块503,用于:[0165]配置所述第一特征词的恶意分值为0;或者[0166]获取所述特征词的恶意分值表中与所述第一特征词的语义相似度大于预设相似度阈值的至少一个候选特征词;从所述特征词的恶意分值表获取各所述候选特征词的恶意分值,得到至少一个恶意分值;基于所述至少一个恶意分值,确定所述第一特征词的恶意分值。[0167]可选地,在本公开的一个实施例中,分值获取模块503,用于:[0168]基于预先训练的恶意分值预测模型,获取各所述第一特征词的恶意分值。[0169]可选地,在本公开的一个实施例中,分值获取模块503,用于:[0170]对于各所述第一特征词,获取所述第一特征词在所述应用中的出现次数、在预先建立的应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个;[0171]基于所述第一特征词在所述应用中的出现次数、在所述应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个,采用预先训练的所述恶意分值预测模型,预测所述第一特征词的恶意分值。[0172]本实施例的恶意应用的检测装置500,通过采用上述模块实现恶意应用检测的实现原理以及技术效果,与上述相关方法实施例相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。[0173]根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。[0174]图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0175]如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram603中,还可存储设备600操作所需的各种程序和数据。计算单元601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。[0176]设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0177]计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如本公开的上述方法。例如,在一些实施例中,本公开的上述方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到ram603并由计算单元601执行时,可以执行上文描述的本公开的上述方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行本公开的上述方法。[0178]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0179]用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0180]在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0181]为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0182]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。[0183]计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0184]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。[0185]上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种恶意应用的检测方法,包括:获取待检测的应用的资源文件字符串;基于所述资源文件字符串,获取所述应用的多个第一特征词;获取所述多个第一特征词中各第一特征词的恶意分值;基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。2.根据权利要求1所述的方法,其中,获取所述多个第一特征词中各第一特征词的恶意分值之前,所述方法还包括:基于预设的黑名单、预设的恶意应用检测规则和所述多个第一特征词,检测并确定所述应用为非恶意应用。3.根据权利要求2所述的方法,其中,基于预设的黑名单、预设的恶意应用检测规则和所述多个第一特征词,检测并确定所述应用为非恶意应用,包括:获取所述多个第一特征词中各所述第一特征词在所述应用中出现的次数;基于预设的黑名单,检测所述多个第一特征词中出现在所述黑名单中的目标特征词;检测并确定所有的所述目标特征词的出现次数总和达到预设次数阈值,确定所述应用为恶意应用。4.根据权利要求1-3任一所述的方法,其中,获取所述多个第一特征词中各第一特征词的恶意分值,包括:基于预先建立的特征词的恶意分值表,获取各所述第一特征词的恶意分值。5.根据权利要求4所述的方法,其中,基于预先建立的特征词的恶意分值表,获取各所述第一特征词的恶意分值之前,所述方法还包括:采集包括多个已知应用的应用样本集合;各所述已知应用包括多个第二特征词,各所述已知应用具有已知标签,所述已知标签用于标识对应的所述应用是否为恶意应用;对于各所述已知应用中的各所述第二特征词,计算各所述已知应用中的各所述第二特征词的特征值;基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为恶意的概率值;基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为非恶意的概率值;对于各所述已知应用中的各第二特征词,基于所述第二特征词为恶意的概率值和所述第二特征词为非恶意的概率值,获取所述第二特征词的恶意分值;基于各所述已知应用中的各所述第二特征词的恶意分值,建立所述特征词的恶意分值表。6.根据权利要求5所述的方法,其中,基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为恶意的概率值,包括:基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的恶意应用样本中对应的特征值之和,作为第一数值;基于各所述已知应用中的各所述第二特征词的特征值,计算所述应用样本集合的恶意应用样本中,所有第二特征词的特征值之和,作为第二数值;基于所述第一数值和所述第二数值,计算所述第二特征词为恶意的概率值。
7.根据权利要求5所述的方法,其中,基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为非恶意的概率值,包括:基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的非恶意应用样本中对应的特征值之和,作为第三数值;基于各所述已知应用中的各所述第二特征词的特征值计算所述应用样本集合的非恶意应用样本中,所有第二特征词的特征值之和,作为第四数值;基于所述第三数值和所述第四数值,计算所述第二特征词为非恶意的概率值。8.根据权利要求5-7任一所述的方法,其中,基于预先建立的特征词的恶意分值表,获取各所述第一特征词的恶意分值,还包括:对于各所述第一特征词,检测所述特征词的恶意分值表中是否包括所述第一特征词;若包括,从所述特征词的恶意分值表中获取对应的所述第一特征词的恶意分值;若未包括,配置所述第一特征词的恶意分值。9.根据权利要求8所述的方法,其中,配置所述第一特征词的恶意分值,包括:配置所述第一特征词的恶意分值为0;或者获取所述特征词的恶意分值表中与所述第一特征词的语义相似度大于预设相似度阈值的至少一个候选特征词;从所述特征词的恶意分值表获取各所述候选特征词的恶意分值,得到至少一个恶意分值;基于所述至少一个恶意分值,确定所述第一特征词的恶意分值。10.根据权利要求1-3任一所述的方法,其中,获取所述多个第一特征词中各第一特征词的恶意分值,包括:基于预先训练的恶意分值预测模型,获取各所述第一特征词的恶意分值。11.根据权利要求10所述的方法,其中,基于预先训练的恶意分值预测模型,获取各所述第一特征词的恶意分值,包括:对于各所述第一特征词,获取所述第一特征词在所述应用中的出现次数、在预先建立的应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个;基于所述第一特征词在所述应用中的出现次数、在所述应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个,采用预先训练的所述恶意分值预测模型,预测所述第一特征词的恶意分值。12.一种恶意应用的检测装置,包括:字符串获取模块,用于获取待检测的应用的资源文件字符串;特征词获取模块,用于基于所述资源文件字符串,获取所述应用的多个第一特征词;分值获取模块,用于获取所述多个第一特征词中各第一特征词的恶意分值;第一检测模块,用于基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。13.根据权利要求12所述的装置,其中,所述装置还包括:
第二检测模块,用于基于预设的黑名单、预设的恶意应用检测规则和所述多个第一特征词,检测并确定所述应用为非恶意应用。14.根据权利要求13所述的装置,其中,所述第二检测模块,用于:获取所述多个第一特征词中各所述第一特征词在所述应用中出现的次数;基于预设的黑名单,检测所述多个第一特征词中出现在所述黑名单中的目标特征词;检测并确定所有的所述目标特征词的出现次数总和达到预设次数阈值,确定所述应用为恶意应用。15.根据权利要求12-14任一所述的装置,其中,所述分值获取模块,用于:基于预先建立的特征词的恶意分值表,获取各所述第一特征词的恶意分值。16.根据权利要求15所述的装置,其中,所述装置还包括:采集模块,用于采集包括多个已知应用的应用样本集合;各所述已知应用包括多个第二特征词,各所述已知应用具有已知标签,所述已知标签用于标识对应的所述应用是否为恶意应用;计算模块,用于对于各所述已知应用中的各所述第二特征词,计算各所述已知应用中的各所述第二特征词的特征值;概率值获取模块,用于基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为恶意的概率值;所述概率值获取模块,还用于基于各所述已知应用中的各所述第二特征词的特征值,获取所述第二特征词为非恶意的概率值;所述分值获取模块,还用于对于各所述已知应用中的各第二特征词,基于所述第二特征词为恶意的概率值和所述第二特征词为非恶意的概率值,获取所述第二特征词的恶意分值;建立模块,用于基于各所述已知应用中的各所述第二特征词的恶意分值,建立所述特征词的恶意分值表。17.根据权利要求16所述的装置,其中,所述概率值获取模块,用于:基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的恶意应用样本中对应的特征值之和,作为第一数值;基于各所述已知应用中的各所述第二特征词的特征值,计算所述应用样本集合的恶意应用样本中,所有第二特征词的特征值之和,作为第二数值;基于所述第一数值和所述第二数值,计算所述第二特征词为恶意的概率值。18.根据权利要求16所述的装置,其中,所述概率值获取模块,还用于:基于各所述已知应用中的各所述第二特征词的特征值,计算所述第二特征词的在所述应用样本集合中的非恶意应用样本中对应的特征值之和,作为第三数值;基于各所述已知应用中的各所述第二特征词的特征值计算所述应用样本集合的非恶意应用样本中,所有第二特征词的特征值之和,作为第四数值;基于所述第三数值和所述第四数值,计算所述第二特征词为非恶意的概率值。19.根据权利要求16-18任一所述的装置,其中,所述分值获取模块,用于:对于各所述第一特征词,检测所述特征词的恶意分值表中是否包括所述第一特征词;若包括,从所述特征词的恶意分值表中获取对应的所述第一特征词的恶意分值;
若未包括,配置所述第一特征词的恶意分值。20.根据权利要求19所述的装置,其中,所述分值获取模块,用于:配置所述第一特征词的恶意分值为0;或者获取所述特征词的恶意分值表中与所述第一特征词的语义相似度大于预设相似度阈值的至少一个候选特征词;从所述特征词的恶意分值表获取各所述候选特征词的恶意分值,得到至少一个恶意分值;基于所述至少一个恶意分值,确定所述第一特征词的恶意分值。21.根据权利要求12-14任一所述的装置,其中,所述分值获取模块,用于:基于预先训练的恶意分值预测模型,获取各所述第一特征词的恶意分值。22.根据权利要求21所述的装置,其中,所述分值获取模块,用于:对于各所述第一特征词,获取所述第一特征词在所述应用中的出现次数、在预先建立的应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个;基于所述第一特征词在所述应用中的出现次数、在所述应用样本集合中的出现次数、出现在所述应用样本集合中的恶意应用样本中出现的次数,包括有所述第一特征词的恶意应用样本的数量、出现在所述应用样本集合中的非恶意应用样本中出现的次数,包括有所述第一特征词的非恶意应用样本的数量中至少一个,采用预先训练的所述恶意分值预测模型,预测所述第一特征词的恶意分值。23.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-11中任一项所述的方法。24.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-11中任一项所述的方法。25.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-11中任一项所述的方法。

技术总结
本公开提供了一种恶意应用的检测方法、装置、电子设备及存储介质,涉及移动网络安全、以及人工智能等技术领域。具体实现方案包括:获取待检测的应用的资源文件字符串;基于所述资源文件字符串,获取所述应用的多个第一特征词;获取所述多个第一特征词中各第一特征词的恶意分值;基于各所述第一特征词的恶意分值,检测所述应用是否为恶意应用。本公开的技术,能够有效地提高恶意应用检测的准确性和检测效率。效率。效率。


技术研发人员:张展翔 吴承辉 管巍
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2023.05.23
技术公布日:2023/9/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐