CN107766342B - 一种应用的识别方法和装置 - Google Patents
一种应用的识别方法和装置 Download PDFInfo
- Publication number
- CN107766342B CN107766342B CN201610670627.7A CN201610670627A CN107766342B CN 107766342 B CN107766342 B CN 107766342B CN 201610670627 A CN201610670627 A CN 201610670627A CN 107766342 B CN107766342 B CN 107766342B
- Authority
- CN
- China
- Prior art keywords
- application
- information
- identified
- legal
- illegal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000009434 installation Methods 0.000 claims description 16
- 238000005516 engineering process Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009517 secondary packaging Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用的识别方法和装置,建立合法应用列表和非法应用列表;并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性。本发明还公开了一种应用的识别装置。
Description
技术领域
本发明涉及移动应用安全领域,尤其涉及一种应用的识别方法和装置。
背景技术
移动互联网应用快速普及,同时,面临的安全威胁也日益严峻;尤其是近年来移动支付业务飞跃发展,巨大的利益空间促使非法组织通过模仿、二次打包、篡改植入等方式发布非法应用。所谓非法应用,通常称为山寨应用,是指对官方应用进行篡改或模仿后重新发布的伪装应用,诱骗终端用户下载使用,达到破坏或获取非法利益的目的,可能对正版应用的开发者、运营者及终端用户的利益造成严重侵害。
公开数据显示,2015年移动应用的非法制作情况十分猖獗,尤其是Android类应用;平均每款正版应用对应92个盗版APP,其中每款软件类应用对应100个盗版,每款游戏类应用对应66个盗版;与2014年相比,这项数据平均增长了3.5倍;应用的知名度越高,下载量越大,对应的非法应用数量越多;造成该问题的主要原因在于:
1、缺乏完整有效的官方应用白名单特征库,导致非法应用监测无据可依,缺少分析基准;
2、现有非法应用的监测分析技术方法在实际业务运用中存在不足,目标范围太广,现阶段采用的技术方案需要投入的网络资源、硬件设备资源较大;
3、不能清除用户终端上已装非法应用,缺少非法应用的抑制手段。
通过对现有技术的文献检索发现,现有技术中一类技术方案多是通过网络爬虫的方式,从应用发布商城、网络论坛、网页等渠道爬取应用信息,下载应用样本,每次对下载后的应用样本进行解包、特征信息提取、归类、存储。当有官方正版应用需要监测是否存在非法应用时,将正版应用的特征信息提取出来,通过算法规则与已存储的样本库对比分析,发现非法应用或疑似非法应用。此类技术方案需要有较大的网络和硬件设备资源支撑,现阶段国内排名前十的主流的应用发布商城上应用样本数量均超过30万款,如果按平均每款应用20MB大小计算,则需要的应用样本存储空间至少为5.7TB,加上应用解包及特征信息的存储,则单个应用商城上的应用存储空间至少需要12TB;此外,还需要较大的带宽资源才能完成应用的快速更新爬取,因此,实现非法应用识别发现的建设成本较高。
另一类技术方案是先爬取应用发布网页信息,获取应用的基本信息如名称、描述、版本、类别、作者等信息归类后入库;当有官方正版应用需要监测盗版时,先对正版应用的基本特征信息提取,与应用信息库数据对比分析,得出需要进一步对比分析的应用集合,然后再由爬虫引擎将应用从互联网下载至本地,之后提取下载应用的特征信息,通过算法规则分析出非法应用和疑似非法应用。此类方案较前面一类方案在资源上有较大节省,但实效性较差,由于没有建立统一的正版应用白名单库,在比对分析时仍存在数据遗漏的现象。
综上,现有非法应用识别方法的不足之处在于:
1、分析范围从互联网入口,通过网络爬虫的方式从海量应用集合中根据算法规则寻找非法应用,由于目标体量大,需要投入的资源成本高,且非法应用的识别覆盖率不高;
2、在识别算法方面,现有技术方案基于应用二进制文件特征或名称分词相似度或基本属性比对等方案;未对应用的内容特征做关联分析,识别的准确率存在不足;
3、现有非法应用识别的技术方案是针对具体某一款正版应用,从海量的未知应用中根据算法规则进行匹配得出非法应用集合;此方案一方面识别耗时的周期长,另外无法针对智能终端上所有已安装应用进行一次性批量识别分析;
4、现有技术方案识别非法应用后通过报告、预警的方式由人工进行处理,不能直接给终端用户替换正版应用。
因此,提高非法应用识别的准确率和识别效率是亟待解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种应用的识别方法和装置,能提高非法应用识别的准确率和识别效率,降低非法应用识别的资源成本。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种应用的识别方法,所述方法包括:建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;所述方法还包括:
根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;
所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性。
上述方案中,所述按照预设规则确定所述待识别应用的合法性,包括:
对比待识别应用与合法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;
对比待识别应用与非法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;
所述待识别应用与合法应用列表和非法应用列表中各应用的第一指定信息均不相同,则确定所述待识别应用与所述合法应用列表中各应用的基本信息和/或特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性;
所述第一指定信息包括:应用消息摘要算法5(MD5,Message Digest Algorithm5)值、和/或签名证书信息。
上述方案中,所述确定所述待识别应用与所述合法应用列表中各应用的基本信息和/或特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性,包括:
在基本信息和/或特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;
确定各所述信息匹配度与所述信息匹配度对应的预设权值之积;
将各乘积之和的均值确定为相似度,对比所述相似度和预设合法阈值和非法阈值;
如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;
所述第二指定信息包括:应用名称、和/或应用包名、和/或配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值。
上述方案中,所述确定合法应用列表和非法应用列表中各应用的特征信息,包括:使用自动化逆向技术,对各应用做解包、逆向处理,获取所述各应用的特征信息。
上述方案中,所述方法还包括:将非法应用删除、或用合法应用替换所述非法应用。
上述方案中,所述基本信息包括:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息;
所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值;
所述源码目录结构树包括:源码文件目录结构、和/或源码文件大小、和/或源码文件关键函数。
本发明实施例还提供了一种应用的识别装置,所述装置包括:设置模块、第一确定模块和第二确定模块;其中,
所述设置模块,用于建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;所述方法还包括:
所述第一确定模块,用于根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;
所述第二确定模块,用于所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,则根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性。
上述方案中,所述第二确定模块,具体用于:
对比待识别应用与合法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;
对比待识别应用与非法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;
所述待识别应用与合法应用列表和非法应用列表中各应用的第一指定信息均不相同,则确定所述待识别应用与所述合法应用列表中各应用的基本信息和/或特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性;
所述第一指定信息包括:应用MD5值、和/或签名证书信息。
上述方案中,所述第二确定模块,具体用于:
在基本信息和/或特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;
确定各所述信息匹配度与所述信息匹配度对应的预设权值之积;
将各乘积之和的均值确定为相似度,对比所述相似度和预设合法阈值和非法阈值;
如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;
所述第二指定信息包括:应用名称、和/或应用包名、和/或配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值。
上述方案中,所述基本信息包括:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息;
所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值。
本发明实施例所提供的应用的识别方法和装置,建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性。如此,通过建立合法应用列表和非法应用列表,为识别应用建立了基准信息,并对待识别应用进行多重识别,能提高非法应用识别准确、提升非法应用识别效率;且能降低非法应用识别的资源成本。
附图说明
图1为本发明实施例应用的识别方法的流程示意图;
图2为本发明实施例建立合法应用列表和非法应用列表步骤的流程示意图;
图3为本发明实施例初步识别待识别应用的流程示意图;
图4为本发明实施例进一步识别待识别应用的流程示意图;
图5为本发明实施例替换非法应用步骤的流程示意图;
图6为本发明实施例应用的识别装置的结构示意图。
具体实施方式
本发明实施例中,建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,则根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性。
这里,所述的合法应用列表可以是实际应用中所说的白名单;所述非法应用列表可以是实际应用中所说的黑名单。
下面结合实施例对本发明再作进一步详细的说明。
本发明实施例提供的应用的识别方法,如图1所示,所述方法包括:
步骤101:建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;
具体的,如图2所示,建立合法应用列表和非法应用列表的具体步骤可以包括:
步骤1011:通过自动化信息***或人工方式报备所有合法应用或已发现的非法应用;
步骤1012:可以对各应用的MD5值进行唯一性验证,以及对各应用的完整性进行验证;
步骤1013:如果MD5值重复或应用不完整,则拒绝入合法应用列表或非法应用列表,流程结束,否则,进入步骤1014;
步骤1014:提取各应用的基本信息;这里,可以采用现有的一些应用基本信息提取方式,如现有的软件或指令等提取应用的基本信息;并根据报备的类别选择录入合法应用列表或非法应用列表;录入的合法应用列表基本信息不限于:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息、开发者、运营单位等;录入的非法应用列表基本信息不限于:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息、发现方式、下载量、非法特征描述等;
步骤1015:提取应用的特征信息;这里,可以通过逆向应用软件,深度提取应用的特征信息,并根据报备的类别选择录入合法应用列表或非法应用列表应;所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值,和/或资源文件大小、和/或配置文件结构索引表、和/或资源文件结构索引表、所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值、和/或库文件、和/或软件开发工具包(SDK,Software Development Kit)文件结构,和/或资源文件结构等;其中所述源码目录结构树包括:源码文件目录结构、和/或源码文件大小、和/或源码文件关键函数。
实际应用中,可以由安装待识别应用的终端或外部终端通过数据连接到安装待识别应用的终端来进行应用的识别。
步骤102:根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;
首先,可以对待识别应用进行基本信息的比较,如果所述待识别应用的基本信息与合法应用列表中应用的基本信息匹配,则确定所述待识别应用为合法应用;如果所述待识别应用的基本信息与非法应用列表中应用的基本信息匹配,则确定所述待识别应用为非法应用;这里,可以对获取的所有基本信息进行比较;
如图3所示,通过比较基本信息,确定所述待识别应用的合法性的具体步骤包括:
步骤1021:提取已安装待识别应用的基本信息,所述待识别应用的基本信息包括:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息等;
步骤1022:将所述待识别应用的基本信息与非法应用列表各应用的基本信息比对,如果所述待识别应用的基本信息与非法应用列表应用的基本信息匹配,则确定所述待识别应用为非法应用,初步识别结束;否则,进入步骤1023;
步骤1023:将所述待识别应用的基本信息与合法应用列表各应用的基本信息比对,如果所述待识别应用的基本信息与合法应用列表应用的基本信息匹配,则确定所述待识别应用为合法应用,初步识别结束;否则,进入步骤1024;
步骤1024:如果所述待识别应用的基本信息与合法应用列表和非法应用列表应用的基本信息均不匹配,则转入下一步骤,进行更深入的比较。
步骤103:所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性;
具体的,可以将完成基本信息对比,但无法识别的待识别应用进行进一步识别;首先可以对比待识别应用与合法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;对比待识别应用与非法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;这里,所述第一指定信息可以由用户从基本信息或特征信息中选定具有唯一性特点的一个或多个信息,如应用的MD5信息或签名证书信息等;通过对比第一指定信息可以确定所述待识别应用的合法性;
如果比较所述第一指定信息后,仍然无法确定所述待识别应用的合法性,则通过确定无法识别的待识别应用与所述合法应用列表中各应用的基本信息和/或特征信息的匹配度,根据所述匹配度确定所述无法识别的待识别应用的合法性;可以在基本信息和特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;确定所述信息匹配度与所述匹配度对应的预设权值之积;将所述乘积之和的均值确定为相似度,对比所述相似度和预设合法阈值和非法阈值;如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用。其中,所述第二指定信息可以包括:应用名称、和/或应用包名、和/或配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值等信息;
这里,可以将所述待识别应用与所有合法应用列表应用进行匹配度对比,将最高的相似度与阈值进行对比;也可以根据基本信息对比结果,取对比结果中一或多个合法应用列表应用的进行匹配度对比;
具体的,如图4所示,通过深入比较所述基本信息和特征信息,进一步识别所述待识别应用的步骤包括:
步骤10201:判断所述待识别应用的MD5值与非法应用列表应用库中的MD5值是否存在相同的情况,如果相同,则说明所述待识别应用是非法应用,识别流程结束;否则,进入1022;由于MD5值具有唯一性,因此,对基本信息没有完全匹配的待识别应用可以仅通过MD5值来进行判断;
步骤10202:判断待识别应用的签名证书信息是否与非法应用列表应用库中应用的签名证书存在一致的情况,如果签名证书信息一致,则说明待识别应用和非法应用列表应用是同一开发者或运营者发布,说明所述待识别应用是非法应用,识别流程结束;否则,进入1023;由于签名证书信息可以表明开发者,通常认为相同开发者开发的应用具有相同的合法性,因此,对基本信息没有完全匹配的待识别应用可以仅通过签名证书信息来进行判断;
步骤10203:判断待识别应用的MD5值与合法应用列表应用库中的MD5值是否存在相同的情况,如果相同,则说明待识别应用是合法应用列表应用,为合法应用,识别流程结束;否则,进入1024;
步骤10204:判断待识别应用的签名证书信息是否与合法应用列表应用库中应用的签名证书存在一致的情况,如果签名证书信息一致,则说明待识别应用和合法应用列表应用是同一开发者或运营者发布,说明所述待识别应用是合法应用,识别流程结束;否则,进入1025。通过签名证书比较前或后,可以对基本信息中的应用的名称、包名与合法应用列表中应用的应用名称、包名进行匹配比较,进一步识别待识别应用;如果应用名称、包名、证书均相同则说明该应用可能是合法应用列表中的应用升级版本或历史版本,为合法应用;如果名称、包名不同但签名证书相同,则说明待识别应用和合法应用列表应用是同一开发者发布,应属于合法应用列表应用,为合法应用;
步骤10205:采用关键词匹配算法,计算待识别应用名称与合法应用列表中应用名称相似度值;对于有多个单词的应用名称采取分词计算,可以取相似度值最高一组;
步骤10206:采用关键词匹配算法,计算待识别应用包名与合法应用列表中应用包名相似度值;包名相似度分析时,可以剔除常用的com、cn、org、android、ios、java、lang、string等关键词,提高相似度值结果的准确性;
步骤10207:分析待识别应用配置文件特征树与合法应用列表中应用配置文件特征树的相似度,对于Android应用主要分析AndroidManifest.xml文件中申明的Service、Intent、Content、Activity四大组件结构,在IOS中,可以跳过此项;
步骤10208:分析待识别应用的源码目录结构树与合法应用列表中应用源码目录结构树相似度,本发明中对源码目录结构树相似度分析可以从源码文件目录结构相似度、源码文件大小相似度和源码文件关键函数相似度三个维度分析,并按权重计算最终相似度值;
步骤10209:分析待识别应用资源文件目录下资源文件MD5值与合法应用列表应用的资源文件MD5值相似度;由于多数非法应用篡改的是应用源码或植入源码、添加配置文件及部分资源文件,对原正版应用的资源文件改动较小;
步骤10210:根据算法规则设置的上述各项相似度所占权重,计算出待识别应用与合法应用列表应用库中应用的相似度值;计算规则可以用表达式(1)表示:
其中,S表示相似度,N表示应用名称相似度,w1对应的是应用名称相似度权重,P表示应用包名相似度,w2对应的是应用包名相似度权重,单个Ci表示配置文件结构相似度,w3对应的是配置文件结果相似度权重,Si表示单个源码文件相似度,w4对应的是源码结构相似度权重,Ai表示单个资源文件MD5值相似度,w5对应的是资源文件MD5值相似度权重;其中n表示配置文件结构数量1~n,m表示源码文件数1~m,q表示资源文件数量1~q;权重可在算法模型中动态调整以达到最佳的识别效果;
步骤10211:上述方法所得相似度值与算法规则设定的非法应用相似度阀值比对,判断是否达到非法应用阀值标准,如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度小于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;即:
如果S>=LL:则判定为合法应用;
如果UL<S<LL:则判定为疑似非法应用;
如果S<=UL:则判定为非法应用;
其中S是按表达式(1)计算得出的整体相似度;LL是判定合法应用的阀值界限,DL是判定非法应用的阀值界限;
步骤10212:对于疑似非法应用可以发出提示,由人工进一步确认其合法性;
进一步的,本发明实施例提供的方法还包括:将非法应用删除、或用合法应用替换所述非法应用;如图5所示,采用合法应用替换所述非法应用的步骤可以包括:
步骤501:在用户界面选择一款已识别为非法应用的软件,将非法应用的信息显示区,不限于:名称、图标、版本、大小等;
步骤502:从用户界面触发非法应用替换操作,在Android***中可以通过安卓调试桥(ADB,AndroidDebugBridge)命令,将已连接智能终端上已识别的非法应用卸载,替换成合法应用列表中对应的合法应用列表应用;
步骤503:通过消息命令向智能终端设备发送非法应用卸载指令;
步骤504:收到卸载指定非法应用指令后,执行应用卸载指令,将需要删除的非法应用进行卸载;
步骤505:发送安装合法应用指令;
步骤506:收到应用安装指令后,对相应的应用软件程序包执行安装命令操作,流程结束。
本发明实施例提供的应用的识别装置,如图6所示,所述装置包括:设置模块61、第一确定模块62和第二确定模块63;其中,
所述设置模块61,用于建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;
具体的,如图2所示,所述设置模块61建立合法应用列表和非法应用列表的具体步骤可以包括:
步骤1011:通过自动化信息***或人工方式报备所有合法应用或已发现的非法应用;
步骤1012:可以对各应用的MD5值进行唯一性验证,以及对各应用的完整性进行验证;
步骤1013:如果MD5值重复或应用不完整,则拒绝入合法应用列表或非法应用列表,流程结束,否则,进入步骤1014;
步骤1014:提取各应用的基本信息;这里,可以采用现有的一些应用基本信息提取方式,如现有的软件或指令等提取应用的基本信息;并根据报备的类别选择录入合法应用列表或非法应用列表;录入的合法应用列表基本信息不限于:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息、开发者、运营单位等;录入的非法应用列表基本信息不限于:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息、发现方式、下载量、非法特征描述等;
步骤1015:提取应用的特征信息;这里,可以通过逆向应用软件,深度提取应用的特征信息,并根据报备的类别选择录入合法应用列表或非法应用列表应;所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值,和/或资源文件大小、和/或配置文件结构索引表、和/或资源文件结构索引表、所述特征信息包括:配置文件目录表、和/或源码目录结构树、和/或配置文件结构树、和/或资源文件目录表、和/或资源文件MD5值、和/或库文件、和/或SDK文件结构,和/或资源文件结构等;其中所述源码目录结构树包括:源码文件目录结构、和/或源码文件大小、和/或源码文件关键函数;
实际应用中,可以由安装待识别应用的终端或外部终端通过数据连接到安装待识别应用的终端来进行应用的识别。
所述第一确定模块62,用于根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;
首先,所述第一确定模块62可以对待识别应用进行基本信息的比较,如果所述待识别应用的基本信息与合法应用列表中应用的基本信息匹配,则确定所述待识别应用为合法应用;如果所述待识别应用的基本信息与非法应用列表中应用的基本信息匹配,则确定所述待识别应用为非法应用;这里,可以对获取的所有基本信息进行比较;
如图3所示,通过比较基本信息,确定所述待识别应用的合法性的具体步骤包括:
步骤1021:提取已安装待识别应用的基本信息,所述待识别应用的基本信息包括:应用名称、和/或签名证书信息、和/或应用包名、和/或应用标记、和/或应用文件大小、和/或应用版本号、和/或应用MD5值、和/或应用安装文件信息等;
步骤1022:将所述待识别应用的基本信息与非法应用列表各应用的基本信息比对,如果所述待识别应用的基本信息与非法应用列表应用的基本信息匹配,则确定所述待识别应用为非法应用,初步识别结束;否则,进入步骤1023;
步骤1023:将所述待识别应用的基本信息与合法应用列表各应用的基本信息比对,如果所述待识别应用的基本信息与合法应用列表应用的基本信息匹配,则确定所述待识别应用为合法应用,初步识别结束;否则,进入步骤1024;
步骤1024:如果所述待识别应用的基本信息与合法应用列表和非法应用列表应用的基本信息均不匹配,则转入下一步骤,进行更深入的比较。
所述第二确定模块63,用于所述待识别应用基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的基本信息和/或特征信息,以及所述合法应用列表和/或非法应用列表中各应用的基本信息和/或特征信息,按照预设规则确定所述待识别应用的合法性;
具体的,所述第二确定模块63可以将完成基本信息对比,但无法识别的待识别应用进行进一步识别;首先可以对比待识别应用与合法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;对比待识别应用与非法应用列表中各应用的基本信息和/或特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;这里,所述第一指定信息可以由用户从基本信息或特征信息中选定具有唯一性特点的一个或多个信息,如应用的MD5信息或签名证书信息等;通过对比第一指定信息可以确定所述待识别应用的合法性;
如果比较所述第一指定信息后,仍然无法确定所述待识别应用的合法性,则通过确定无法识别的待识别应用与所述合法应用列表中各应用的基本信息和/或特征信息的匹配度,根据所述匹配度确定所述无法识别的待识别应用的合法性;可以在基本信息和特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;确定所述信息匹配度与所述匹配度对应的预设权值之积;将所述乘积之和的均值确定为相似度,对比所述相似度和预设合法阈值和非法阈值;如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用。其中,所述第二指定信息可以包括:应用名称、和/或应用包名、和/或配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值等信息;
这里,可以将所述待识别应用与所有合法应用列表应用进行匹配度对比,将最高的相似度与阈值进行对比;也可以根据基本信息对比结果,取对比结果中一或多个合法应用列表应用的进行匹配度对比;
具体的,如图4所示,通过深入比较所述基本信息和特征信息,进一步识别所述待识别应用的步骤包括:
步骤10201:判断所述待识别应用的MD5值与非法应用列表应用库中的MD5值是否存在相同的情况,如果相同,则说明所述待识别应用是非法应用,识别流程结束;否则,进入1022;由于MD5值具有唯一性,因此,对基本信息没有完全匹配的待识别应用可以仅通过MD5值来进行判断;
步骤10202:判断待识别应用的签名证书信息是否与非法应用列表应用库中应用的签名证书存在一致的情况,如果签名证书信息一致,则说明待识别应用和非法应用列表应用是同一开发者或运营者发布,说明所述待识别应用是非法应用,识别流程结束;否则,进入1023;由于签名证书信息可以表明开发者,通常认为相同开发者开发的应用具有相同的合法性,因此,对基本信息没有完全匹配的待识别应用可以仅通过签名证书信息来进行判断;
步骤10203:判断待识别应用的MD5值与合法应用列表应用库中的MD5值是否存在相同的情况,如果相同,则说明待识别应用是合法应用列表应用,为合法应用,识别流程结束;否则,进入1024;
步骤10204:判断待识别应用的签名证书信息是否与合法应用列表应用库中应用的签名证书存在一致的情况,如果签名证书信息一致,则说明待识别应用和合法应用列表应用是同一开发者或运营者发布,说明所述待识别应用是合法应用,识别流程结束;否则,进入1025。通过签名证书比较前或后,可以对基本信息中的应用的名称、包名与合法应用列表中应用的应用名称、包名进行匹配比较,进一步识别待识别应用;如果应用名称、包名、证书均相同则说明该应用可能是合法应用列表中的应用升级版本或历史版本,为合法应用;如果名称、包名不同但签名证书相同,则说明待识别应用和合法应用列表应用是同一开发者发布,应属于合法应用列表应用,为合法应用;
步骤10205:采用关键词匹配算法,计算待识别应用名称与合法应用列表中应用名称相似度值;对于有多个单词的应用名称采取分词计算,可以取相似度值最高一组;
步骤10206:采用关键词匹配算法,计算待识别应用包名与合法应用列表中应用包名相似度值;包名相似度分析时,可以剔除常用的com、cn、org、android、ios、java、lang、string等关键词,提高相似度值结果的准确性;
步骤10207:分析待识别应用配置文件特征树与合法应用列表中应用配置文件特征树的相似度,对于Android应用主要分析AndroidManifest.xml文件中申明的Service、Intent、Content、Activity四大组件结构,在IOS中,可以跳过此项;
步骤10208:分析待识别应用的源码目录结构树与合法应用列表中应用源码目录结构树相似度,本发明中对源码目录结构树相似度分析可以从源码文件目录结构相似度、源码文件大小相似度和源码文件关键函数相似度三个维度分析,并按权重计算最终相似度值;
步骤10209:分析待识别应用资源文件目录下资源文件MD5值与合法应用列表应用的资源文件MD5值相似度;由于多数非法应用篡改的是应用源码或植入源码、添加配置文件及部分资源文件,对原正版应用的资源文件改动较小;
步骤10210:根据算法规则设置的上述各项相似度所占权重,计算出待识别应用与合法应用列表应用库中应用的相似度值;计算规则可以用表达式(1)表示;其中,S表示相似度,N表示应用名称相似度,w1对应的是应用名称相似度权重,P表示应用包名相似度,w2对应的是应用包名相似度权重,单个Ci表示配置文件结构相似度,w3对应的是配置文件结果相似度权重,Si表示单个源码文件相似度,w4对应的是源码结构相似度权重,Ai表示单个资源文件MD5值相似度,w5对应的是资源文件MD5值相似度权重;其中n表示配置文件结构数量1~n,m表示源码文件数1~m,q表示资源文件数量1~q;权重可在算法模型中动态调整以达到最佳的识别效果;
步骤10211:上述方法所得相似度值与算法规则设定的非法应用相似度阀值比对,判断是否达到非法应用阀值标准,如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度小于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;即:
如果S>=LL:则判定为合法应用;
如果UL<S<LL:则判定为疑似非法应用;
如果S<=UL:则判定为非法应用;
其中S是按表达式(1)计算得出的整体相似度;LL是判定合法应用的阀值界限,DL是判定非法应用的阀值界限;
步骤10212:对于疑似非法应用可以发出提示,由人工进一步确认其合法性;
进一步的,本发明实施例提供的装置还包括:替换模块64,用于将非法应用删除、或用合法应用替换所述非法应用;如图5所示,所述替换模块64采用合法应用替换所述非法应用的步骤可以包括:
步骤501:在用户界面选择一款已识别为非法应用的软件,将非法应用的信息显示区,不限于:名称、图标、版本、大小等;
步骤502:从用户界面触发非法应用替换操作,在Android***中可以通过ADB命令,将已连接智能终端上已识别的非法应用卸载,替换成合法应用列表中对应的合法应用列表应用;
步骤503:通过消息命令向智能终端设备发送非法应用卸载指令;
步骤504:收到卸载指定非法应用指令后,执行应用卸载指令,将需要删除的非法应用进行卸载;
步骤505:发送安装合法应用指令;
步骤506:收到应用安装指令后,对相应的应用软件程序包执行安装命令操作,流程结束。
在实际应用中,所述设置模块61、第一确定模块62和第二确定模块63和替换模块64均可终端中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
以上所述,仅为本发明的佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种应用的识别方法,其特征在于,所述方法包括:建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;所述方法还包括:
根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;所述基本信息包括以下至少之一:应用名称、签名证书信息、应用包名、应用标记、应用文件大小、应用版本号、应用MD5值、应用安装文件信息;
所述待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,根据所述待识别应用的特征信息,以及所述合法应用列表和非法应用列表中各应用的特征信息,按照预设规则确定所述待识别应用的合法性,包括:对比待识别应用与合法应用列表中各应用的特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;对比待识别应用与非法应用列表中各应用的特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;所述待识别应用与合法应用列表和非法应用列表中各应用的第一指定信息均不相同,则确定所述待识别应用与所述合法应用列表中各应用的特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性;所述特征信息包括以下至少之一:配置文件目录表、源码目录结构树、配置文件结构树、资源文件目录表、资源文件MD5值;所述源码目录结构树包括以下至少之一:源码文件目录结构、源码文件大小、源码文件关键函数;所述第一指定信息包括:配置文件目录表、和/或资源文件目录表。
2.根据权利要求1所述的方法,其特征在于,所述确定所述待识别应用与所述合法应用列表中各应用的特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性,包括:
在特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;
确定各所述信息匹配度与所述信息匹配度对应的预设权值之积;
将各乘积之和的均值确定为相似度,对比所述相似度和预设的合法阈值和非法阈值;
如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;
所述第二指定信息包括:配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值。
3.根据权利要求1所述的方法,其特征在于,所述确定合法应用列表和非法应用列表中各应用的特征信息,包括:使用自动化逆向技术,对各应用做解包、逆向处理,获取所述各应用的特征信息。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:将非法应用删除、或用合法应用替换所述非法应用。
5.一种应用的识别装置,其特征在于,所述装置包括:设置模块、第一确定模块和第二确定模块;其中,
所述设置模块,用于建立合法应用列表和非法应用列表,并分别确定合法应用列表和非法应用列表中各应用的基本信息和特征信息;所述基本信息包括以下至少之一:应用名称、签名证书信息、应用包名、应用标记、应用文件大小、应用版本号、应用MD5值、应用安装文件信息;
所述第一确定模块,用于根据待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息是否匹配,确定所述待识别应用的合法性;
所述第二确定模块,用于所述待识别应用的基本信息与合法应用列表和非法应用列表中各应用的基本信息均不匹配时,则根据所述待识别应用的特征信息,以及所述合法应用列表和非法应用列表中各应用的特征信息,按照预设规则确定所述待识别应用的合法性,包括:对比待识别应用与合法应用列表中各应用的特征信息中的第一指定信息,如果相同,则确定所述待识别应用为合法应用;对比待识别应用与非法应用列表中各应用的特征信息中的第一指定信息,如果相同,则确定所述待识别应用为非法应用;所述待识别应用与合法应用列表和非法应用列表中各应用的第一指定信息均不相同,则确定所述待识别应用与所述合法应用列表中各应用的特征信息的匹配度,根据所述匹配度确定所述待识别应用的合法性;所述特征信息包括以下至少之一:配置文件目录表、源码目录结构树、配置文件结构树、资源文件目录表、资源文件MD5值;所述源码目录结构树包括以下至少之一:源码文件目录结构、源码文件大小、源码文件关键函数;所述第一指定信息包括:配置文件目录表、和/或资源文件目录表。
6.根据权利要求5所述的装置,其特征在于,所述第二确定模块,具体用于:
在特征信息中预设确定一个以上的第二指定信息,确定所述待识别应用的各第二指定信息与所述合法应用列表中应用的各第二指定信息的信息匹配度;
确定各所述信息匹配度与所述信息匹配度对应的预设权值之积;
将各乘积之和的均值确定为相似度,对比所述相似度和预设的合法阈值和非法阈值;
如果所述相似度不小于所述合法阈值,则确定所述待识别应用为合法应用,如果所述相似度不大于所述非法阈值,则确定所述待识别应用为非法应用,否则,确定所述待识别应用为待判别应用;
所述第二指定信息包括:配置文件结构树、和/或源码目录结构树、和/或资源文件MD5值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610670627.7A CN107766342B (zh) | 2016-08-15 | 2016-08-15 | 一种应用的识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610670627.7A CN107766342B (zh) | 2016-08-15 | 2016-08-15 | 一种应用的识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107766342A CN107766342A (zh) | 2018-03-06 |
CN107766342B true CN107766342B (zh) | 2021-11-23 |
Family
ID=61259930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610670627.7A Active CN107766342B (zh) | 2016-08-15 | 2016-08-15 | 一种应用的识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766342B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955450B (zh) * | 2019-12-16 | 2023-09-29 | 北京智游网安科技有限公司 | 一种应用包文件的归属统计方法、***及存储介质 |
CN111143833B (zh) * | 2019-12-23 | 2022-03-11 | 绿盟科技集团股份有限公司 | 一种非法应用程序类别识别方法及装置 |
CN113312591A (zh) * | 2021-05-28 | 2021-08-27 | 杭州迈冲科技有限公司 | 基于Android***应用白名单的控制方法及装置 |
CN113934625A (zh) * | 2021-09-18 | 2022-01-14 | 深圳市飞泉云数据服务有限公司 | 软件检测方法、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062567B2 (en) * | 2000-11-06 | 2006-06-13 | Endeavors Technology, Inc. | Intelligent network streaming and execution system for conventionally coded applications |
CN102222199B (zh) * | 2011-06-03 | 2013-05-08 | 奇智软件(北京)有限公司 | 应用程序身份识别方法及*** |
CN103544046A (zh) * | 2013-10-25 | 2014-01-29 | 苏州通付盾信息技术有限公司 | 一种移动应用的软件加固方法 |
CN104123493B (zh) * | 2014-07-31 | 2017-09-26 | 百度在线网络技术(北京)有限公司 | 应用程序的安全性检测方法和装置 |
CN105426706B (zh) * | 2015-11-20 | 2018-06-15 | 北京奇虎科技有限公司 | 盗版应用检测方法和装置、*** |
-
2016
- 2016-08-15 CN CN201610670627.7A patent/CN107766342B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107766342A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11188635B2 (en) | File authentication method and apparatus | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及*** | |
CN106961419B (zh) | WebShell检测方法、装置及*** | |
CN107766342B (zh) | 一种应用的识别方法和装置 | |
CN106503558B (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
US9349006B2 (en) | Method and device for program identification based on machine learning | |
CN107688743B (zh) | 一种恶意程序的检测分析方法及*** | |
CN112084497A (zh) | 嵌入式Linux***恶意程序检测方法及装置 | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
KR101582601B1 (ko) | 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법 | |
CN111104579A (zh) | 一种公网资产的识别方法、装置及存储介质 | |
CN102222199A (zh) | 应用程序身份识别方法及*** | |
CN110084064B (zh) | 基于终端的大数据分析处理方法及*** | |
CN113032792A (zh) | ***业务漏洞检测方法、***、设备及存储介质 | |
CN110071924B (zh) | 基于终端的大数据分析方法及*** | |
CN113190838A (zh) | 一种基于表达式的web攻击行为检测方法及*** | |
CN110135153A (zh) | 软件的可信检测方法及装置 | |
CN106790025B (zh) | 一种对链接进行恶意性检测的方法及装置 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
KR20160090566A (ko) | 유효마켓 데이터를 이용한 apk 악성코드 검사 장치 및 방법 | |
Feichtner et al. | Obfuscation-resilient code recognition in Android apps | |
CN110691090B (zh) | 网站检测方法、装置、设备及存储介质 | |
CN112149115A (zh) | 一种病毒库的更新方法、装置、电子装置和存储介质 | |
CN113297583B (zh) | 漏洞风险分析方法、装置、设备及存储介质 | |
CN108322912B (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 |