CN110610066B - 仿冒应用检测方法和相关装置 - Google Patents
仿冒应用检测方法和相关装置 Download PDFInfo
- Publication number
- CN110610066B CN110610066B CN201810619963.8A CN201810619963A CN110610066B CN 110610066 B CN110610066 B CN 110610066B CN 201810619963 A CN201810619963 A CN 201810619963A CN 110610066 B CN110610066 B CN 110610066B
- Authority
- CN
- China
- Prior art keywords
- application
- counterfeit
- detected
- simhash
- certain known
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 147
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 54
- 238000012549 training Methods 0.000 claims description 93
- 238000004590 computer program Methods 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 241000700605 Viruses Species 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000002360 explosive Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种仿冒应用检测方法、相应装置、计算机设备和计算机存储介质,涉及网络安全技术领域。其中病毒库推送方法包括:当待检应用与某个已知正版应用满足预设条件时,判断出该待检应用为该某个已知正版应用的仿冒应用,该预设条件包括:Sx与Si的海明距离小于等于第一阈值,Sx是待检应用的simhash值,Si是该某个已知正版应用的simhash值。本方法从仿冒本质上入手,基于类名及方法名进行仿冒判断,检测准确度高,能防止漏检;基于ElasticSearch数据库可实现海量仿冒应用的快速检索,检索效率高,基于adaboost分类***,根据多种simhash算法对应用进行多权分类,仿冒判断更加准确。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种仿冒应用检测方法、装置、计算机设备及其计算机存储介质。
背景技术
随着移动互联网的高速发展以及智能终端的不断普及,应用也出现***式增长。应用***式增长的同时,带来的安全问题也同步增长,恶意应用数量逐年剧增,安全形势不容乐观,特别是对于更为开放的安卓***及其应用市场。
仿冒应用作为最具危害性的应用,其会导致恶意扣费、隐私泄露,以及发生流氓行为。虽然现在移动支付产业在发展,手机应用本身的安全程度在加强,但是仿冒应用仍可以通过拦截用户个人信息窃取用户钱财,另外,仿冒应用中通常带有病毒,这类应用会对用户的财产和隐私造成严重的侵害。流氓行为例如持续联网会导致流量费用大增,无法彻底关闭会导致手机越用越慢,且十分耗电。因此,亟需一种对仿冒应用进行检测的方法。
现有的仿冒应用检测方法从程序名称维度或包名维度进行关键词匹配从而确定是否为仿冒应用。然而,单纯通过这类关键词匹配,容易产生较高的误报率,例如某应用的程序名称为“支付宝使用攻略”,由于程序名称中包含关键词“支付宝”,因此现有方法判断该应用为支付宝的仿冒应用,但是,“支付宝使用攻略”应用开发的初衷并不是为了仿冒支付宝,而是单纯为了指引对支付宝不熟悉的群体如何使用,虽然其程序名称中包含关键词“支付宝”,但并不是仿冒应用,该方法判断错误。另外,程序名称维度或包名维度为基于单个字符串的检测,这种检测方式使得真实的仿冒应用被绕过检测,造成漏检,比如某应用开发者复制了王者荣耀的代码,然后程序名改为“5v5超好玩”,那么就能绕过检测。
发明内容
本发明实施例提供了一种仿冒应用检测方法、装置、计算机程序和计算机存储介质,用以解决现有的基于单个字符串的程序名称维度或包名维度来检测仿冒应用的方法所存在的错误率较高、容易漏检的技术问题。
第一方面,本发明实施例提供了仿冒应用检测方法。
具体地,所述仿冒应用检测方法包括:
当待检应用与某个已知正版应用满足预设条件时,判断出所述待检应用为所述某个已知正版应用的仿冒应用,
其中,所述预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是所述待检应用的simhash值,Si是所述某个已知正版应用的simhash值,某个应用的所述simhash值为根据某一simhash算法对所述某个应用的类名和方法名集合进行计算后得到的simhash值。
第二方面,本发明实施例提供了一种仿冒应用检测装置。
具体地,所述装置包括:
仿冒判断模块,用于当待检应用与某个已知正版应用满足预设条件时,判断出所述待检应用为所述某个已知正版应用的仿冒应用,
其中,所述预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是所述待检应用的simhash值,Si是所述某个已知正版应用的simhash值,某个应用的所述simhash值为根据某一simhash算法对所述某个应用的类名和方法名集合进行计算后得到的simhash值。
第三方面,本发明实施例提供了一种计算机设备。
具体地,所述一种计算机设备,包括:
处理器;以及
用于存放计算机程序的存储器,
其中所述处理器用于执行所述存储器上所存放的计算机程序,以实现第一方面所述的仿冒应用检测方法。
第四方面,本发明实施例提供了一种计算机存储介质。
具体地,所述计算机存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的仿冒应用检测方法。
由于仿冒正版应用的应用对于正版应用的仿冒,主要体现于类名和方法名这些源代码特征上,因此本发明实施例的仿冒应用检测方法、装置、计算机设备及其计算机存储介质基于应用的类名及类名下的方法名进行仿冒判断,相比于现有的基于单个字符串的程序名称维度或包名维度来进行仿冒应用检测的方法,更能从仿冒本质上入手,获得很高的检测准确度,防止漏检。
另外,通过利用ElasticSearch数据库,将待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配来进一步判断是否仿冒,判断的候选集通常已经至少降了四个数量级,能快速地从海量应用库中检索出疑似仿冒参考应用的集合,然后基于该疑似仿冒参考应用的集合再做准确的simhash计算,从而在保证了检测效率的同时,还保证了不会遗漏。
最后,本发明基于adaboost分类***,根据多种simhash算法对待检应用进行多权分类,使得仿冒判断更加准确。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法实施例1的仿冒应用检测方法的流程图;
图2是本发明方法实施例2的仿冒应用检测方法的流程图;
图3是本发明方法实施例3的仿冒应用检测方法的流程图;
图4是本发明装置实施例1的仿冒应用检测装置的示意图;
图5是本发明装置实施例2的仿冒应用检测装置的示意图;
图6是本发明装置实施例3的仿冒应用检测装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的标号如102、104等,仅仅是用于区分开各个不同的操作,标号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施方式,都属于本发明保护的范围。
【方法实施例1】
图1是根据本发明方法实施例1的仿冒应用检测方法的流程图。参见图1,在本实施例中,所述方法包括:
步骤S11,当待检应用与某个已知正版应用满足预设条件时,判断出该待检应用为该某个已知正版应用的仿冒应用,其中,预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是该待检应用的simhash值,Si是该某个已知正版应用的simhash值,某个应用的simhash值为根据某一simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值。。
其中第一阈值可以根据场景要求、人工经验确定。
由于仿冒正版应用的应用对于正版应用的仿冒,主要体现于类名和方法名这些源代码特征上,因此本实施例基于应用的类名及类名下的方法名进行仿冒判断,相比于现有的基于单个字符串的程序名称维度或包名维度来进行仿冒应用检测的方法,更能从仿冒本质上入手,获得很高的检测准确度,防止漏检。
进一步地,预设条件还可以包括:待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。
可以理解地,已知正版应用的所有字符串可以存入ElasticSearch数据库(Elasticsearch是一种天然的文本搜索引擎,核心是分布式存储以及数据索引)。对待检应用进行仿冒检测时,本方法可以先进行第一步:基于Elasticsearch的bool查询,通过Elasticsearch提供的API,将待检应用的字符串与ElasticSearch数据库中存储的每个已知正版应用的字符串在对应位置处进行字符串匹配判断,如果在任一个对应位置,待检应用的字符串在该位置上的字符串与某已知正版应用在该位置上的字符串相同,则该已知正版应用作为待检应用的疑似仿冒参考应用,由此可以得到疑似仿冒参考应用的集合,然后再进行第二步:计算集合中的每个疑似仿冒参考应用的simhash值与待检应用的simhash值的海明距离,进而判断该待检应用是否的确为该疑似仿冒参考应用的仿冒应用。
本实施例与不经过第一步直接进行第二步相比,判断的候选集通常已经至少降了四个数量级,这是因为在实际应用场景中,经常遇到这种场景:输入任一正版应用,需要从海量应用库中,快速计算得到与之对应的所有仿冒应用,而该海量应用库通常可能是千万甚至亿级别,该计算过程需要的时间非常久,影响工作效率,并且体验很差。本方法利用ElasticSearch数据库,能够快速地从海量应用库中检索出疑似仿冒参考应用的集合,然后基于该疑似仿冒参考应用的集合再做准确的相似度计算,从而在保证了计算效率的同时,还保证了不会遗漏。
较佳地,待检应用的simhash值和该某个已知正版应用的simhash值都被均分成四段,此时上述对应位置为该待检应用与该某个已知正版应用对应段的位置。也就是说,64位的simhash值中的每段字符串为16位,比较待检应用的simhash值的各段和该某个已知正版应用的simhash值的各段,若对应段16位字符串匹配,则该已知正版应用为该待检应用的疑似仿冒参考应用。
发明人经过大量实验发现,将simhash值分成4段后进行第一步筛选,得到疑似仿冒参考应用的在保证准确度的同时,计算效率更高。
进一步地,该预设条件还可以包括:card(Ax∩Bi)/card(Ax∪Bi)大于第二阈值,其中,Ax是待检应用的类名和方法名集合,Bi是该某个已知正版应用的类名和方法名集合。需要指出的是,card(A)函数表示集合A中元素的个数。第二阈值可以根据场景要求、人工经验确定。
【方法实施例2】
图2是根据本发明方法实施例2仿冒应用检测方法的流程图。参见图2,在本实施例中,所述方法包括:
步骤S21,获取海量参考应用;
其中,参考应用为任意的一大批应用程序,可以网上爬取获得,或为企业内部样本库。
步骤S21,对于每个参考应用,确定每个类名中每个方法名的出现频率,该出现频率为对应方法名出现于参考应用中的个数;
也就是说,计算每个类名中的每个方法名分别出现在多少个参考应用中,将计数值定义为出现频率。
步骤S23,利用排序靠前的出现频率所对应的方法名及其所属类名构建第三方库;
实际情况中,一个应用会调用一些第三方库,如android/support/v13、org/json等第三方库,本实施例可以运用出现频率来提取第三方库。
步骤S24,获取待检应用和某个已知正版应用中每个应用的所有类名和每个类名下的所有方法名;
步骤S25,对待检应用和该某个已知正版应用中的每个应用,删除所有方法名及每个方法名所属类名中,与第三方库中任一方法名及其所属类名均相同的方法名,利用删除后剩余的方法名及每个方法名所属的类名构建类名和方法名集合;
步骤S26,当该待检应用与该某个已知正版应用满足预设条件时,判断出该待检应用为该某个已知正版应用的仿冒应用,其中,预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是该待检应用的simhash值,Si是该某个已知正版应用的simhash值,其中某个应用的该simhash值为根据某一simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值。
很多不同应用可能使用同一第三方库,例如游戏app和视频app可能都支持支付宝付款,因此都需要调用支付宝的第三方库以实现支付功能,这时不能因为游戏app和视频app都调用了同一第三方库,从而认为二者具有一定相似度,因为事实上游戏app和视频app并无本质联系,更不存在仿冒。也就是说,第三方库在应用程序表征上,不仅没有贡献,反倒会造成干扰,需要去除,以提高后续相似度计算的准确率。本实施例通过第三方库剔除掉待检应用和该某个已知正版中的干扰项,使得仿冒判断更精确。
进一步地,预设条件还可以包括:待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。
更进一步地,该预设条件还可以包括:card(Ax∩Bi)/card(Ax∪Bi)大于第二阈值,其中,Ax是待检应用的类名和方法名集合,Bi是该某个已知正版应用的类名和方法名集合。需要指出的是,card(A)函数表示集合A中元素的个数,第二阈值可以根据场景要求、人工经验确定。
【方法实施例3】
图3是根据本发明方法实施例3仿冒应用检测方法的流程图。参见图3,在本实施例中,所述方法包括:
步骤S31,确定训练样本集合,其中训练样本包括对应S个已知正版应用的M个仿冒应用和N个非仿冒应用;
在本实施例中,xi表示第i个训练样本,包括对应应用的类名和方法名集合,并对应于S个正版应用中的一个已知正版应用。训练样本xi可以为该已知正版应用对应的仿冒应用,也可能为与该已知正版应用无关的其他应用,因此可以构成仿冒样本对和非仿冒样本对。
步骤S32,对所有训练样本赋予初始权重;
在本实施例中,所有仿冒应用和非仿冒应用初始权重相同。
步骤S33,基于adaboost分类***利用预定的多个simhash算法对训练样本进行训练,其中对于当前simhash算法,判断每个训练样本与每个已知正版应用是否满足预设条件,以确定每个训练样本是否为每个已知正版应用的仿冒应用,进而对每个训练样本进行仿冒分类,其中,预设条件包括:Sx与Si的海明距离小于等于该当前simhash算法所对应的simhash海明距离阈值,其中,Sx是训练样本的simhash值,Si是某个已知正版应用的simhash值,其中某个应用的simhash值为根据当前simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值;
具体地,对于当前simhash算法,判断每个训练样本与每个已知正版应用的海明距离是否小于对应的simhash海明距离阈值,如果小于,则与正版样本相似,分类为仿冒样本,否则与正版样本不相似,分类为非仿冒样本。
本实施例利用K种simhash算法来确定每个训练样本是否仿冒,包括md5Hash、apHash、pyHash等算法。
步骤S34,根据每个训练样本的仿冒分类结果确定当前弱分类器,该当前弱分类器用于二值输出当前simhash算法的分类结果;
这里,第i个训练样本对应于第k种simhash算法的分类判断结果可以用第k弱分类器Hk(xi)表示,即,Hk(xi)表示通过当前第k个simhash算法,分别将训练样本中的仿冒或者非仿冒应用与正版应用的类名、方法名计算得到两个对应的simhash值,然后计算二者的海明距离,判断海明距离是否小于当前第k个simhash算法所对应的simhash海明距离阈值,如果小于,则分类为仿冒样本,Hk(xi)输出为1,否则分类为非仿冒样本,Hk(xi)输出为-1。
步骤S35,根据每个训练样本所对应的样本标签,判断该当前弱分类器对每个训练样本是否分类错误;
另外,对某个训练样本,当样本标签为仿冒,若当前弱分类器分类为仿冒样本,则分类正确,否则分类错误;当样本标签为非仿冒,若当前分类器分类为仿冒样本,则分类错误,否则分类正确。
这里,可以用yi表示第i个训练样本的样本标签,通常当yi为仿冒应用时,值为1,当yi为非仿冒应用时,值为-1。此时,表示第i个训练样本的分类判定结果的第k个弱分类器Hk(xi)所输出的判定结果与第i个训练样本所对应的样本标签不一致时,表示分类错误,I(Hk(xi)≠yi)取值为1,否则表示分类正确,I(Hk(xi)≠yi)取值为0。
步骤S36,根据当前弱分类器的分类判断结果和每个训练样本的当前权重,确定当前弱分类器的误差率;
步骤S37,根据当前弱分类器的误差率确定该当前弱分类器的权重;
步骤S38,更新每个训练样本的权重以利用下一simhash算法进行分类,直至预定的所有simhash算法训练结束;
在本步骤中,当前simhash算法训练结束后,判断预定的K种simhash算法是否全部训练完毕,如果是,说明所有simhash算法训练完成,进行下一步,如果否,转至步骤S33。
步骤S39,利用上述所有弱分类器对待检应用进行仿冒分类,根据每个弱分类器的权重和仿冒分类结果,判断出待检应用是否为某个已知正版应用的仿冒应用。
具体地,针对待检应用和某个已知正版样本,若总共有K种simhash算法,则对于每种simhash算法,确定该待检应用的simhash值,计算该待检应用的simhash值与某个已知正版应用的simhash值的海明距离,判断该待检应用与该某个正版应用的海明距离是否小于与该种simhash算法对应的simhash海明距离阈值,如果小于,则分类为该正版样本的仿冒样本,弱分类器输出值为1,否则分类为该正版样本的非仿冒样本,弱分类器输出值为-1。然后根据每种simhash算法所对应的弱分类器的权重(由每次训练的步骤S37可以得知)以及每个弱分类器所输出的值,利用公式(其中,1≤k≤K,αk为第k种simhash算法对应的第k个弱分类器,Hk(xi)为某个待检应用对应第k种simhash算法的弱分类器),计算待检应用与该某个已知正版应用的多权分类结果SH,如果SH输出为正,说明待检应用是该已知正版样本的仿冒样本,如果SH结果输出为负,则待检应用为该已知正版样本的非仿冒样本。
本实施例基于adaboost分类***,根据多种simhash算法对待检应用进行多权分类,使得仿冒判断更加准确。
进一步地,预设条件还包括:待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。更进一步地,该待检应用的simhash值和该某个已知正版应用的simhash值都被均分成四段,该对应位置为待检应用与该某个已知正版应用对应段的位置。
进一步地,该方法还包括:
获取海量参考应用;
对于每个参考应用,确定每个类名中每个方法名的出现频率,出现频率为对应方法名出现于参考应用中的个数;
利用排序靠前的出现频率所对应的方法名及其所属类名构建第三方库,
获取待检应用和该某个已知正版应用中每个应用的所有类名和每个类名下的所有方法名;
对该待检应用和该某个已知正版应用中的每个应用,删除所有方法名及每个方法名所属类名中,与第三方库中任一方法名及其所属类名均相同的方法名,利用删除后剩余的方法名及每个方法名所属的类名构建类名和方法名集合。
【装置实施例1】
图4是根据本发明装置实施例1的仿冒应用检测装置的流程图。参见图4,在本实施例中,所述装置包括:
仿冒判断模块41,当待检应用与某个已知正版应用满足预设条件时,判断出该待检应用为该某个已知正版应用的仿冒应用,其中,预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是待检应用的simhash值,Si是该某个已知正版应用的simhash值,某个应用的simhash值为根据某一simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值。
由于仿冒正版应用的应用对于正版应用的仿冒,主要体现于类名和方法名这些源代码特征上,因此本实施例基于应用的类名及类名下的方法名进行仿冒判断,相比于现有的基于单个字符串的程序名称维度或包名维度来进行仿冒应用检测的方法,更能从仿冒本质上入手,获得很高的检测准确度,防止漏检。
进一步地,预设条件还包括:
待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。
可以理解地,已知正版应用的所有字符串可以存入ElasticSearch数据库(Elasticsearch是一种天然的文本搜索引擎,核心是分布式存储以及数据索引)。对待检应用进行仿冒检测时,本装置可以先基于Elasticsearch的bool查询,通过Elasticsearch提供的API,将待检应用的字符串与ElasticSearch数据库中存储的每个已知正版应用的字符串在对应位置处进行字符串匹配判断,得到疑似仿冒参考应用的集合,然后再计算集合中的每个疑似仿冒参考应用的simhash值与待检应用的simhash值的海明距离,进而判断该待检应用是否的确为该疑似仿冒参考应用的仿冒应用。这样,本装置利用ElasticSearch数据库,能够快速地从海量应用库中检索出疑似仿冒参考应用的集合,然后基于该疑似仿冒参考应用的集合再做准确的相似度计算,从而在保证了计算效率的同时,还保证了不会遗漏。
较佳地,待检应用的simhash值和该某个已知正版应用的simhash值都被均分成四段,此时上述对应位置为该待检应用与该某个已知正版应用对应段的位置。也就是说,64位的simhash值中的每段字符串为16位,比较待检应用的simhash值的各段和该某个已知正版应用的simhash值的各段,若对应段16位字符串匹配,则该已知正版应用为该待检应用的疑似仿冒参考应用。
【装置实施例2】
图5是根据本发明装置实施例2的仿冒应用检测装置的流程图。参见图5,在本实施例中,所述装置包括:
海量参考应用获取模块51,用于获取海量参考应用;
出现频率确定模块52,用于对于每个参考应用,确定每个类名中每个方法名的出现频率;
第三方库构建模块53,用于利用排序靠前的出现频率所对应的方法名及其所属类名构建第三方库;
类名和方法名获取模块54,用于获取待检应用和某个已知正版应用中每个应用的所有类名和每个类名下的所有方法名;
类名和方法名集合构建模块55,用于对待检应用和该某个已知正版应用中的每个应用,删除所有方法名及每个方法名所属类名中,与第三方库中任一方法名及其所属类名均相同的方法名,利用删除后剩余的方法名及每个方法名所属的类名构建类名和方法名集合;
仿冒判断模块56,用于当待检应用与该某个已知正版应用满足预设条件时,判断出该待检应用为该某个已知正版应用的仿冒应用,其中,预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是待检应用的simhash值,Si是该某个已知正版应用的simhash值,某个应用的simhash值为根据某一simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值。
由于很多不同应用可能使用同一第三方库,例如游戏app和视频app可能都支持支付宝付款,因此都需要调用支付宝的第三方库以实现支付功能,这时不能因为游戏app和视频app都调用了同一第三方库,从而认为二者具有一定相似度,因为事实上游戏app和视频app并无本质联系,更不存在仿冒。也就是说,第三方库在应用程序表征上,不仅没有贡献,反倒会造成干扰,需要去除,以提高后续相似度计算的准确率。本实施例通过第三方库剔除掉待检应用和该某个已知正版中的干扰项,使得仿冒判断更精确。
进一步地,该预设条件还可以包括:card(Ax∩Bi)/card(Ax∪Bi)大于第二阈值,其中,Ax是待检应用的类名和方法名集合,Bi是该某个已知正版应用的类名和方法名集合。需要指出的是,card(A)函数表示集合A中元素的个数。
进一步地,预设条件还可以包括:待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。较佳地,待检应用的simhash值和该某个已知正版应用的simhash值都被均分成四段,则“对应位置”为待检应用与该某个已知正版应用对应段的位置。
【装置实施例3】
图6是根据本发明装置实施例3的仿冒应用检测装置的流程图。参见图6,在本实施例中,所述装置包括:
训练样本集合确定模块61,用于确定训练样本集合,该训练样本为对应多个已知正版应用的多个已知仿冒应用和多个已知非仿冒应用;
训练样本权重初始化模块62,用于初始化训练集中各个训练样本的权重分布;
训练样本仿冒分类模块63,用于基于adaboost分类***利用预定的多个simhash算法对训练样本进行训练,其中对于当前simhash算法,判断每个训练样本与每个已知正版应用是否满足预设条件,以确定每个训练样本是否为每个已知正版应用的仿冒应用,进而对每个训练样本进行仿冒分类,其中训练样本作为暂定的待检应用,预设条件包括:Sx与Si的海明距离小于等于该当前simhash算法所对应的simhash海明距离阈值,其中,Sx是训练样本的simhash值,Si是某个已知正版应用的simhash值,其中某个应用的simhash值为根据当前simhash算法对该某个应用的类名和方法名集合进行计算后得到的simhash值;;
弱分类器确定模块64,用于根据每个训练样本的仿冒分类结果确定当前弱分类器,该当前弱分类器用于二值输出所述当前simhash算法的仿冒分类结果;
弱分类器分类判断模块65,用于根据每个训练样本所对应的样本标签,判断所述当前弱分类器对每个训练样本是否分类错误;
弱分类器权重确定模块66,用于根据当前弱分类器的分类判断结果和每个训练样本的当前权重,确定当前弱分类器的权重;
训练样本权重更新模块67,用于利用当前弱分类器及其权重、每个训练样本的当前权重和样本标签更新每个训练样本的权重,直至预定的所有simhash算法训练结束;
仿冒判断模块68,用于利用所有弱分类器对待检应用进行仿冒分类,根据每个弱分类器的权重和仿冒分类结果,判断出待检应用是否为某个已知正版应用的仿冒应用。
本发明实施例又提供了一种计算机设备,包括处理器以及用于存放计算机程序的存储器,该处理器用于执行存储器上所存放的计算机程序,以实现前文提及的任意一种仿冒应用检测方法,或者,以实现前文提及的任一仿冒应用检测装置所执行的处理。
此外,本发明实施例再提供了一种计算机存储介质,该计算机存储介质内存储有计算机程序,其中计算机程序被处理器执行时实现前文提及的任意一种仿冒应用检测方法,或者,实现前文提及的任一仿冒应用检测装置所执行的处理。
上述存储介质和计算机设备,由于实现了上述仿冒应用检测方法,同理相比于现有的基于单个字符串的程序名称维度或包名维度来进行仿冒应用检测的方法,更能从仿冒本质上入手,获得很高的检测准确度,防止漏检
另外,通过利用ElasticSearch数据库,将待检应用的simhash值与该某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配来进一步判断是否仿冒,判断的候选集通常已经至少降了四个数量级,能快速地从海量应用库中检索出疑似仿冒参考应用的集合,然后基于该疑似仿冒参考应用的集合再做准确的simhash计算,从而在保证了检测效率的同时,还保证了不会遗漏。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同及相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域的技术人员可以清楚地了解到本发明可全部通过软件实现,也可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、智能手机或者网络设备等)执行本发明各个实施例或实施例的某些部分所述的方法。
本文中所使用的“软件”等词均指一般意义上的任意类型的计算机编码或者计算机可执行指令集,可以运行所述编码或者指令集来使计算机或其他处理器程序化以执行如上所述的本发明的技术方案的各个方面。此外,需要说明的是,根据实施例的一个方面,在执行时实施本发明的技术方案的方法的一个或多个计算机程序不必须要在一台计算机或处理器上,而是可以分布于多个计算机或者处理器中的模块中,以执行本发明的技术方案的各个方面。
计算机可执行指令可以有许多形式,如程序模块,可以由一台或多台计算机或是其他设备执行。一般地,程序模块包括例程、程序、对象、组件以及数据结构等等,执行特定的任务或是实施特定的抽象数据类型。特别地,在各种实施例中,程序模块进行的操作可以根据各个不同实施例的需要进行结合或者拆分。
并且,本发明的技术方案可以体现为一种方法,并且已经提供了所述方法的至少一个示例。可以通过任何一种合适的顺序执行动作,所述动作表现为所述方法中的一部分。因此,实施例可以构造成可以按照与所示出的执行顺序不同的顺序执行动作,其中,可以包括同时地执行一些动作(尽管在示出的实施例中,这些动作是连续的)。
在本发明的各个具体实施例中,所描述的特征、架构或功能可在一个或一个以上实施例中以任何方式组合,其中众所周知的操作过程、程序模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。本领域技术人员应当理解,下述的各种实施例只用于举例说明,而非用于限制本发明的保护范围。本领域的技术人员还可以容易理解,本文所述和附图所示的各实施例中的程序模块、单元或步骤可以按多种不同配置进行组合和设计。
对于未在本说明书中进行具体说明的技术术语,除非另有特定说明,都应以本领域最为宽泛的意思进行解释。本文所给出的和使用的定义,应当对照字典、通过引用而并入的文档中的定义、和/或其通常意思进行理解。本文使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。
在权利要求书中以及上述的说明书中,所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项的任何或者所有可能组合。应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息和/或模块,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息和/或模块彼此区分开。例如,在不脱离本文范围的情况下,第一信息和/或模块也可以被称为第二信息和/或模块,类似地,第二信息和/或模块也可以被称为第一信息和/或模块。另外,在此所使用的词语“如果”,其意思取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。
在权利要求书中以及上述的说明书中,所有的过度短语,例如“包括”、“具有”、“包含”、“承载”、“具有”、“涉及”、“主要由…组成”以及其任何其它变体是应理解为是开放式的,即,包含但不限于,意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施例的基本原理的前提下,对上述实施例中的各细节可进行各种变化。因此本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (14)
1.一种仿冒应用检测方法,包括:
当待检应用与某个已知正版应用满足预设条件时,判断出所述待检应用为所述某个已知正版应用的仿冒应用;
其中,所述预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是所述待检应用的simhash值,Si是所述某个已知正版应用的simhash值,某个应用的所述simhash值为根据某一simhash算法对所述某个应用的类名和方法名集合进行计算后得到的simhash值;
其中,所述判断出所述待检应用为所述某个已知正版应用的仿冒应用,包括:
基于adaboost分类***,对预定的多种simhash算法进行训练,再根据多种simhash算法逐步对待检应用进行分类,当所述待检应用与某个已知正版应用满足预设条件时,输出分类值为1,当所述待检应用与某个已知正版应用不满足预设条件时,输出分类值为-1;
2.如权利要求1所述的仿冒应用检测方法,其特征在于,所述基于adaboost分类***,对预定的多种simhash算法进行训练包括:
确定训练样本集合,所述训练样本为对应多个所述已知正版应用的多个已知仿冒应用和多个已知非仿冒应用;
初始化所述训练样本集合中各个训练样本的权重分布;
基于adaboost分类***利用预定的多个simhash算法对所述训练样本进行训练,其中对于当前simhash算法,判断每个训练样本与每个所述已知正版应用是否满足所述预设条件,以确定每个所述训练样本是否为每个所述已知正版应用的仿冒应用,进而对所述每个训练样本进行仿冒分类,其中所述训练样本作为暂定的待检应用;
根据每个训练样本的仿冒分类结果确定当前弱分类器,所述当前弱分类器用于二值输出所述当前simhash算法的仿冒分类结果;
根据每个所述训练样本所对应的样本标签,判断所述当前弱分类器对所述每个训练样本是否分类错误;
根据所述当前弱分类器的分类判断结果和所述每个训练样本的当前权重,确定所述当前弱分类器的权重;
利用所述当前弱分类器及其权重、所述每个训练样本的当前权重和样本标签更新所述每个训练样本的权重,直至预定的所有simhash算法训练结束;
所述当所述待检应用与某个已知正版应用满足预设条件时,判断出所述待检应用为所述某个已知正版应用的仿冒应用,具体包括:
利用所有所述弱分类器对所述待检应用进行仿冒分类,根据每个所述弱分类器的权重和仿冒分类结果,判断出所述待检应用是否为所述某个已知正版应用的仿冒应用。
3.如权利要求1或2所述的仿冒应用检测方法,其特征在于,还包括:
获取海量参考应用;
对于每个参考应用,确定每个类名中每个方法名的出现频率,所述出现频率为对应方法名出现于参考应用中的个数;
利用排序靠前的出现频率所对应的方法名及其所属类名构建第三方库;
获取所述待检应用和所述某个已知正版应用中每个应用的所有类名和每个类名下的所有方法名;
对所述待检应用和所述某个已知正版应用中的每个应用,删除所有方法名及每个方法名所属类名中,与第三方库中任一方法名及其所属类名均相同的方法名,利用删除后剩余的方法名及每个方法名所属的类名构建所述类名和方法名集合。
4.如权利要求3所述的仿冒应用检测方法,其特征在于,所述预设条件还包括:
所述待检应用的simhash值与所述某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。
5.如权利要求4所述的仿冒应用检测方法,其特征在于,所述待检应用的simhash值和所述某个已知正版应用的simhash值都被均分成四段,所述对应位置为所述待检应用与所述某个已知正版应用对应段的位置。
6.如权利要求4所述的仿冒应用检测方法,其特征在于,所述预设条件还包括:
card(Ax∩Bi)/card(Ax∪Bi)大于第二阈值,其中,Ax是所述待检应用的类名和方法名集合,Bi是所述某个已知正版应用的类名和方法名集合。
7.一种仿冒应用检测装置,包括:
仿冒判断模块,用于当待检应用与某个已知正版应用满足预设条件时,判断出所述待检应用为所述某个已知正版应用的仿冒应用;
其中,所述预设条件包括:Sx与Si的海明距离小于等于第一阈值,其中,Sx是所述待检应用的simhash值,Si是所述某个已知正版应用的simhash值,某个应用的所述simhash值为根据某一simhash算法对所述某个应用的类名和方法名集合进行计算后得到的simhash值;
其中,所述判断出所述待检应用为所述某个已知正版应用的仿冒应用,包括:
基于adaboost分类***,对预定的多种simhash算法进行训练,再根据多种simhash算法逐步对待检应用进行分类,当所述待检应用与某个已知正版应用满足预设条件时,输出分类值为1,当所述待检应用与某个已知正版应用不满足预设条件时,输出分类值为-1;
8.如权利要求7所述的仿冒应用检测装置,其特征在于,所述基于adaboost分类***,对预定的多种simhash算法进行训练包括:
训练样本集合确定模块,用于确定训练样本集合,所述训练样本为对应多个所述已知正版应用的多个已知仿冒应用和多个已知非仿冒应用;
训练样本权重初始化模块,用于初始化所述训练样本集合中各个训练样本的权重分布;
训练样本仿冒分类模块,用于基于adaboost分类***利用预定的多个simhash算法对所述训练样本进行训练,其中对于当前simhash算法,判断每个训练样本与每个所述已知正版应用是否满足所述预设条件,以确定每个所述训练样本是否为每个所述已知正版应用的仿冒应用,进而对所述每个训练样本进行仿冒分类,其中所述训练样本作为暂定的待检应用;
弱分类器确定模块,用于根据每个训练样本的仿冒分类结果确定当前弱分类器,所述当前弱分类器用于二值输出所述当前simhash算法的仿冒分类结果;
弱分类器分类判断模块,用于根据每个所述训练样本所对应的样本标签,判断所述当前弱分类器对所述每个训练样本是否分类错误;
弱分类器权重确定模块,用于根据所述当前弱分类器的分类判断结果和所述每个训练样本的当前权重,确定所述当前弱分类器的权重;
训练样本权重更新模块,用于利用所述当前弱分类器及其权重、所述每个训练样本的当前权重和样本标签更新所述每个训练样本的权重,直至预定的所有simhash算法训练结束;
所述仿冒判断模块具体用于利用所有所述弱分类器对所述待检应用进行仿冒分类,根据每个所述弱分类器的权重和仿冒分类结果,判断出所述待检应用是否为所述某个已知正版应用的仿冒应用。
9.如权利要求7或8所述的仿冒应用检测装置,其特征在于,还包括:
海量参考应用获取模块,用于获取海量参考应用;
出现频率确定模块,用于对于每个参考应用,确定每个类名中每个方法名的出现频率;
第三方库构建模块,用于利用排序靠前的出现频率所对应的方法名及其所属类名构建第三方库;
类名和方法名获取模块,用于获取所述待检应用和所述某个已知正版应用中每个应用的所有类名和每个类名下的所有方法名;
类名和方法名集合构建模块,用于对所述待检应用和所述某个已知正版应用中的每个应用,删除所有方法名及每个方法名所属类名中,与第三方库中任一方法名及其所属类名均相同的方法名,利用删除后剩余的方法名及每个方法名所属的类名构建所述类名和方法名集合。
10.如权利要求9所述的仿冒应用检测装置,其特征在于,所述预设条件还包括:
所述待检应用的simhash值与所述某个已知正版应用的simhash值在任一个对应位置处的字符串相互匹配。
11.如权利要求10所述的仿冒应用检测装置,其特征在于,所述待检应用的simhash值和所述某个已知正版应用的simhash值都被均分成四段,所述对应位置为所述待检应用与所述某个已知正版应用对应段的位置。
12.如权利要求10所述的仿冒应用检测装置,其特征在于,所述预设条件还包括:
card(Ax∩Bi)/card(Ax∪Bi)大于第二阈值,其中,Ax是所述待检应用的类名和方法名集合,Bi是所述某个已知正版应用的类名和方法名集合。
13.一种计算机设备,包括:
处理器;以及
用于存放计算机程序的存储器,
其特征在于,所述处理器用于执行所述存储器上所存放的计算机程序,以实现权利要求1至6中任一项权利要求所述的仿冒应用检测方法。
14.一种计算机存储介质,其特征在于,所述计算机存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项权利要求所述的仿冒应用检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810619963.8A CN110610066B (zh) | 2018-06-15 | 2018-06-15 | 仿冒应用检测方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810619963.8A CN110610066B (zh) | 2018-06-15 | 2018-06-15 | 仿冒应用检测方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110610066A CN110610066A (zh) | 2019-12-24 |
CN110610066B true CN110610066B (zh) | 2022-08-09 |
Family
ID=68888235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810619963.8A Active CN110610066B (zh) | 2018-06-15 | 2018-06-15 | 仿冒应用检测方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110610066B (zh) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL140365A0 (en) * | 2000-12-17 | 2002-02-10 | Gammasite Inc | A system and method for multi-class multi-label hierarchical categorization |
CN100536411C (zh) * | 2006-04-17 | 2009-09-02 | 中国科学院自动化研究所 | 基于改进的自适应提升算法的互联网入侵检测方法 |
CN102521575B (zh) * | 2011-12-16 | 2014-07-02 | 北京天诚盛业科技有限公司 | 基于多方向Gabor和Adaboost虹膜识别方法 |
CN104866478B (zh) * | 2014-02-21 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 恶意文本的检测识别方法及装置 |
CN105989251B (zh) * | 2015-02-12 | 2019-03-29 | 卓望数码技术(深圳)有限公司 | 一种盗版安卓应用甄别方法及盗版安卓应用甄别*** |
CN105426706B (zh) * | 2015-11-20 | 2018-06-15 | 北京奇虎科技有限公司 | 盗版应用检测方法和装置、*** |
CN105989287A (zh) * | 2015-12-30 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种海量恶意样本同源性判定方法及*** |
CN107766868A (zh) * | 2016-08-15 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种分类器训练方法及装置 |
CN107220527A (zh) * | 2017-04-18 | 2017-09-29 | 努比亚技术有限公司 | 一种应用甄别方法及应用管理设备 |
CN107273546B (zh) * | 2017-07-14 | 2020-07-28 | 北京邮电大学 | 仿冒应用检测方法以及*** |
CN107360200A (zh) * | 2017-09-20 | 2017-11-17 | 广东工业大学 | 一种基于分类信心和网站特征的钓鱼检测方法 |
-
2018
- 2018-06-15 CN CN201810619963.8A patent/CN110610066B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110610066A (zh) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11689561B2 (en) | Detecting unknown malicious content in computer systems | |
CN108965245B (zh) | 基于自适应异构多分类模型的钓鱼网站检测方法和*** | |
CN112989035B (zh) | 基于文本分类识别用户意图的方法、装置及存储介质 | |
US11409642B2 (en) | Automatic parameter value resolution for API evaluation | |
CN110727766A (zh) | 敏感词的检测方法 | |
CN113254643B (zh) | 文本分类方法、装置、电子设备和 | |
CN110287292B (zh) | 一种裁判量刑偏离度预测方法及装置 | |
CN109840413B (zh) | 一种钓鱼网站检测方法及装置 | |
CN110609908A (zh) | 案件串并方法及装置 | |
Ibba et al. | Evaluating machine-learning techniques for detecting smart ponzi schemes | |
CN112699375A (zh) | 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法 | |
CN108961019A (zh) | 一种用户账户的检测方法和装置 | |
CN110226179A (zh) | 通过神经网络整合情境信息来自动检测支付交易流中的欺诈 | |
CN110958244A (zh) | 一种基于深度学习的仿冒域名检测方法及装置 | |
CN106874762A (zh) | 基于api依赖关系图的安卓恶意代码检测方法 | |
WO2023029397A1 (zh) | 训练数据获取方法、异常行为识别网络训练方法及装置、计算机设备、存储介质、计算机程序、计算机程序产品 | |
CN115473726A (zh) | 一种识别域名的方法及装置 | |
CN111753299A (zh) | 一种基于分组集成的不平衡恶意软件检测方法 | |
CN108920909B (zh) | 仿冒移动应用程序判别方法及*** | |
US20230075290A1 (en) | Method for linking a cve with at least one synthetic cpe | |
CN112364198A (zh) | 一种跨模态哈希检索方法、终端设备及存储介质 | |
CN114285587A (zh) | 域名鉴别方法和装置、域名分类模型的获取方法和装置 | |
CN116962089A (zh) | 一种针对信息安全的网络监测方法及*** | |
CN110610066B (zh) | 仿冒应用检测方法和相关装置 | |
CN111277433A (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 |