一种应用甄别方法及应用管理设备与流程

文档序号:11199793阅读:462来源:国知局
一种应用甄别方法及应用管理设备与流程

本发明涉及信息技术领域,更具体地说,涉及一种应用甄别方法及应用管理设备。



背景技术:

随着智能终端技术的日趋成熟,终端的功能也越来越强大,而终端上应用的创新日新月异。然而,在当前的终端应用市场中,可供用户下载的应用往往良莠不齐,山寨应用更是充斥着应用市场。而山寨应用往往难以满足用户的实际需求,反而还可能携带病毒,甚至泄露用户资料,给用户带来极大的安全隐患。

事实上,伴随着终端用户群体的不断扩大,山寨应用的数量也在不断增长,而山寨应用具有较高的迷惑性,令人防不胜防,甚至有的山寨应用和正版应用的图标、文字都几乎一模一样。目前,山寨应用已经成为了终端安全和用户隐私的重大威胁。在这样的情况下,寻找一种能够准确地甄别山寨应用的方法就显得十分必要。



技术实现要素:

本发明要解决的技术问题在于:目前应用市场中充斥着大量山寨应用难以鉴别,从而严重威胁到终端安全和用户隐私安全。针对该技术问题,本发明提供了一种应用甄别方法及应用管理设备。

为解决上述技术问题,本发明提供一种应用管理设备,所述应用管理设备包括:

特征获取模块,用于获取当前样本应用的建模应用特征,所述当前样本应用包括已知正版应用和山寨应用中的至少两个应用,所述建模应用特征包括正版应用与山寨应用存在差异的差异特征;以及用于获取当前待识别应用的建模应用特征;

模型建立模块,用于基于各所述样本应用的建模应用特征得到应用甄别模型,并获取与所述应用甄别模型对应的山寨应用甄别阈值;

应用甄别模块,用于根据所述待识别应用的建模应用特征和所述应用甄别模型得到该待识别应用的类型甄别值,并将所述类型甄别值与所述山寨应用甄别阈值进行比对判定其是否为山寨应用。

进一步地,所述模型建立模块包括:

特征计算单元,用于对各所述样本应用和待识别应用的建模应用特征进行特征计算;

归一化处理单元,用于对计算得到的各所述样本应用和待识别应用的同一建模应用特征之特征值进行归一化处理;

模型建立单元,用于将所述归一化处理后的各所述样本应用的特征值作为训练集,通过机器学习算法建立应用甄别模型。

进一步地,所述应用甄别模块用于将所述待识别应用之归一化处理后的特征值作为测试集输入所述应用甄别模型,得到该待识别应用的类型甄别值。

进一步地,所述模型建立模块包括:

样本应用更新单元,用于将甄别后的各正版应用和/或山寨应用加入所述样本应用中;

模型更新单元,用于在模型更新条件触发时,基于当前样本应用的建模应用特征建立新的应用甄别模型以对所述应用甄别模型进行更新,并获取与所述更新后的应用甄别模型对应的山寨应用甄别阈值。

进一步地,所述差异特征包括:应用名称相似度、应用名称包含特殊字符情况、应用开发者情况、应用累计版本数、应用包体大小、应用数据包含官方标识情况、应用数据包含广告情况、应用下载量、应用举报量、应用用户评分、应用危险权限数量目、应用来源中的至少两种。

进一步地,本发明提供了一种应用甄别方法,所述方法包括:

获取当前样本应用的建模应用特征,所述当前样本应用包括已知的至少一个正版应用和至少一个山寨应用,所述建模应用特征包括正版应用与山寨应用存在差异的差异特征;

基于各所述样本应用的建模应用特征得到应用甄别模型,并获取与所述应用甄别模型对应的山寨应用甄别阈值;

获取当前待识别应用的建模应用特征,根据获取的所述建模应用特征和所述应用甄别模型得到该待识别应用的类型甄别值;

将所述类型甄别值与所述山寨应用甄别阈值进行比对判定其是否为山寨应用。

进一步地,所述基于各样本应用的建模应用特征得到应用甄别模型包括:

对各所述样本应用和待识别应用的建模应用特征进行特征计算;

对计算得到的各所述样本应用和待识别应用的同一建模应用特征之特征值进行归一化处理;

将所述归一化处理后的各所述样本应用的特征值作为训练集,通过机器学习算法建立应用甄别模型。

进一步地,所述获取待识别应用的建模应用特征,根据获取的所述建模应用特征和所述应用甄别模型得到该待识别应用的类型甄别值包括:

将所述待识别应用之归一化处理后的特征值作为测试集输入所述应用甄别模型,得到该待识别应用的类型甄别值。

进一步地,所述基于各所述样本应用的建模应用特征得到应用甄别模型还包括:

将甄别后的各正版应用和/或山寨应用加入所述样本应用中;

在模型更新条件触发时,基于当前样本应用的建模应用特征建立新的应用甄别模型以对所述应用甄别模型进行更新,并获取与所述更新后的应用甄别模型对应的山寨应用甄别阈值。

进一步地,在所述获取待识别应用的建模应用特征,根据获取的所述建模应用特征和所述应用甄别模型得到该待识别应用的类型甄别值之前,还包括:

在甄别触发条件触发时,获取当前存在的类别未知的应用,并将所述类别未知的应用作为待识别应用。

有益效果

本发明提供的一种应用甄别方法及应用管理设备,通过从包括已知的至少一个正版应用和至少一个山寨应用的样本应用中获取各样本应用的建模应用特征(建模应用特征包括正版应用与山寨应用存在差异的差异特征),再基于各样本应用的建模应用特征得到应用甄别模型,并获取与应用甄别模型对应的山寨应用甄别阈值。之后对待识别应用获取其建模应用特征,通过该建模应用特征和应用甄别模型即可得到该待识别应用的类型甄别值,而将类型甄别值与山寨应用甄别阈值进行比对即可判定其是否为山寨应用。这样,通过利用正版应用与山寨应用存在差异的差异特征,使得建立的应用甄别模型可以很好的反映出正版应用与山寨应用之间的差异,通过应用甄别模型对未知应用进行检测,实现了对应用的高效自动化甄别,保证了供给用户下载的应用的安全性,进而保障了终端安全和用户隐私安全,同时通过模型进行自动甄别,极大地减少了通过人工甄别山寨应用的成本,还提高了检测准确率。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;

图2为实现本发明各个实施例一个可选的服务器的结构示意图;

图3为本发明第一实施例提供的一种应用甄别方法的流程示意图;

图4为本发明第一实施例提供的基于各样本应用的建模应用特征得到应用甄别模型的一种具体流程示意图;

图5为本发明第一实施例提供的一种动态调整应用甄别模型的方法流程示意图;

图6为本发明第二实施例提供的一种应用甄别方法实施过程的基本框架图;

图7为本发明第二实施例提供的一种应用甄别方法实施过程的具体流程示意图;

图8为本发明第三实施例提供的一种应用管理设备结构示意图;

图9为本发明第三实施例提供的一种模型建立模块的具体结构示意图;

图10为本发明第四实施例提供的一种模型建立模块的具体结构示意图。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

现在将参考附图描述实现本发明各个实施例的终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。

移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。下面,假设终端是移动终端,然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。

图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。

移动终端100可以包括无线通信单元110、a/v(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或更少的组件,将在下面详细描述移动终端的元件。

无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。

a/v输入单元120用于接收音频或视频信号。a/v输入单元120可以包括相机和麦克风。

用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。

感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。

接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(uim)、客户识别模块(sim)、通用客户识别模块(usim)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。

另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。

存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。

存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。

控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。

电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。

这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理装置(dspd)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。

至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。

同时参见图2所示,图2为实现本发明各个实施例一个可选的服务器的结构示意图,该服务器至少包括:输入输出(io)总线21、处理器22、存储器23、内存24和通信装置25。其中,

输入输出(io)总线21分别与自身所属的服务器的其它部件(处理器22、存储器23、内存24和通信装置25)连接,并且为其它部件提供传送线路。

处理器22通常控制自身所属的服务器的总体操作。例如,处理器22执行计算和确认等操作。其中,处理器22可以是中央处理器(cpu)。

存储器23存储处理器可读、处理器可执行的软件代码,其包含用于控制处理器22执行本文描述的功能的指令(即软件执行功能)。

其中,本发明提供的应用管理设备中,实现特征获取模块、模型建立模块和应用甄别模块的功能的软件代码可存储在存储器23中,并由处理器22执行或编译后执行。

内存24,一般采用半导体存储单元,包括随机存储器(ram),只读存储器(rom),以及高速缓存(cache),ram是其中最重要的存储器。内存24是计算机中重要的部件之一,它是与cpu22进行沟通的桥梁,计算机中所有程序的运行都是在内存中进行的,其作用是用于暂时存放cpu22中的运算数据,以及与硬盘等外部存储器交换的数据,只要计算机在运行中,cpu22就会把需要运算的数据调到内存中进行运算,当运算完成后cpu22再将结果传送出来。

通信装置25,通常包括一个或多个组件,其允许自身所属的服务器与无线通信系统或网络之间的无线电通信。

以下通过具体实施例进行详细说明。

第一实施例

为了实现准确高效地甄别出应用是否为山寨应用,本发明提供了一种应用甄别方法。参照图3,图3为本发明第一实施例提供的应用甄别方法流程示意图,包括:

s301:获取当前样本应用的建模应用特征;

值得注意的是,本实施例中的当前样本应用应当包括已知的至少一个正版应用和至少一个山寨应用。还值得注意的是,本实施例中用于建模的各当前样本应用之建模应用特征应当包括正版应用与山寨应用存在差异的差异特征。

本实施例中,差异特征可以通过特征挖掘工程进行确定,例如,可以通过应用相关领域的工程师来对相关应用进行特征比对,确定出山寨应用与正版应用存在区分度的一些特征,这些特征即为差异特征。通常而言,工程师可以先确定山寨应用与正版应用相比,具备的特点,比如模仿热门应用名称、logo(例如“淘.宝.网”即模仿热门应用“淘宝网”);非法汉化(中文名称,内容为英文);功能单一(只有简单页面);名称奇怪(例如“愤怒的切小鸟,破解版”);权限过多,且多涉及安全、隐私权限;包体较小,多为1-2m及以下;版本单一,长时间未更新版本;包含情色、敏感信息;下载量低、评分低;等等;而根据这些特点,即可对应确定出山寨应用与正版应用区分度较大的特征,例如应用名称相似度(如一款应用为正版应用,则其与另一款正版应用的应用名称相似度不会太高,而山寨应用则极可能会与某一款正版应用的应用名称相似度很高,如“淘.宝.网”和“淘宝网”)。

在本实施例中,还可以通过机器和工程师联动的方式确定出差异特征。例如,让工程师可以尽量全面确定出山寨应用与正版应用存在区分度的一些特征,再利用机器算法,如相似度算法等确定出差异化较为明显的一些特征,以这些特征作为差异特征。

s302:基于各当前样本应用的建模应用特征得到应用甄别模型;

本实施例中,各当前样本应用可以是应用市场白名单中的各正版应用和黑名单中各山寨应用,也可以是不在白名单或黑名单中的一致正版应用和/或山寨应用。在采用应用市场白名单中的各正版应用和黑名单中各山寨应用作为样本应用时,可以将白名单中的所有正版应用和黑名单中所有山寨应用均作为样本应用,也可以仅将白名单中的部分正版应用和黑名单中部分山寨应用作为样本应用。

本实施例中,将各当前样本应用的建模应用特征作为训练集,通过机器学习算法建立模型。应当理解的是,本实施例中可以采用监督学习类机器学习算法对训练集进行训练学习,从而建立模型。

例如,设当前样本应用为100个,其中正版应用50个,山寨应用50个;设x,y,z为每个样本应用具有的三类的建模应用特征,x1-x50,y1-y50,z1-z50,分别为50个正版应用对应的三类的建模应用特征,x51-x100,y51-y100,z51-z100,分别为50个山寨应用对应的三类的建模应用特征;设正版应用用0表征,山寨应用用1表征;则将训练集(x1,y1,z1,0),(x2,y2,z2,0),…,(x50,y50,z50,0),(x51,y51,z51,1),(x52,y52,z52,1),…,(x100,y100,z100,1)输入设备进行学习、训练,也即告知设备输入x1,y1,z1时,输出为0,输入x2,y2,z2时,输出为0,…,输入x50,y50,z50时,输出为0,输入x51,y51,z51时,输出为1,输入x52,y52,z52时,输出为1,…,输入x100,y100,z100时,输出为1;此后设备根据设定算法得到满足上述训练集输入输出的模型。此后只要向该模型输入相应待识别应用的相应建模应用特征,模型即可输出其为山寨应用的概率,并根据设定的阈值进行判定分类。应当理解的是,正版应用和山寨应用的表征值可以为任意两个不同的数值,例如还可以将正版应用用1表征,山寨应用用0表征;或将正版应用用0.1表征,山寨应用用0.9表征等。当正版应用用0表征,山寨应用用1表征时,模型输出值实际即为相应待识别应用为山寨应用的概率;当正版应用用1表征,山寨应用用0表征时,模型输出值实际即为相应待识别应用为正版应用的概率。

s303:获取与该应用甄别模型对应的山寨应用甄别阈值;

本实施例中,由于建模算法的不同会导致得到的应用甄别模型也不同,而应用甄别模型的不同会导致其对应的山寨应用甄别阈值也可能不同。

应当理解的是,山寨应用甄别阈值可以是相关领域的工程师根据实际经验进行设定的;或是通过对模型进行大量测试性甄别,再根据模型输出的类型甄别值和对应的测试应用的类比进行统计得到的。

s304:获取当前待识别应用的建模应用特征;

值得注意的是,获取的当前待识别应用的建模应用特征应当与获取的样本应用的建模应用特征相对应。例如获取的样本应用的建模应用特征为名称相似度、应用累计版本数和应用包体大小,则获取的当前待识别应用的建模应用特征也应当为名称相似度、应用累计版本数和应用包体大小。

s305:根据获取的建模应用特征和应用甄别模型得到该待识别应用的类型甄别值;

在获取到当前待识别应用的建模应用特征之后,待识别应用的建模应用特征即构成了应用甄别模型的测试集,将这些建模应用特征输入之后,应用甄别模型即可对应计算输出相应的类型甄别值。应当理解的是,由于建模算法的不同,应用甄别模型输出的类型甄别值可能与训练集设定表征是正版应用还是山寨应用的设定值不同。

s306:将得到的类型甄别值与山寨应用甄别阈值进行比对判定其是否为山寨应用。

本实施例中,可以将山寨应用甄别阈值写入设备中,在应用甄别模型输出类型甄别值之后,自动进行对比,将判定结果输出。应当理解的是,本实施例还可以在类型甄别值输出之后,通过人工审核方式进行比对,判定待识别应用的类型。

应当理解的是,本实施例中的当前待识别应用可以是一个也可以是多个,即可以实现对待识别应用的批量甄别。

应当理解的是,样本应用越多(即训练集容量越大),得到的模型对于待识别应用类型甄别的准确率即会越高,但其建模时间也会随之增加,对于资源消耗量也会增大,因此,对于样本应用的数量可以根据实际需求进行确定。

还应当理解的是,本实施例中各个步骤均可通过设备自动进行,即可以在上一步骤完成后,不需用户介入即可自动进行下一步骤的操作。

本实施例中,差异特征可以包括应用名称相似度、应用名称包含特殊字符情况、应用开发者情况、应用累计版本数、应用包体大小、应用数据包含官方标识情况、应用数据包含广告情况、应用下载量、应用举报量、应用用户评分、应用危险权限数量目、应用来源中的至少两种。

本实施例中,基于各样本应用的建模应用特征得到应用甄别模型的一种具体流程可以参见图4,包括:

s401:对各样本应用和待识别应用的建模应用特征进行特征计算;

本实施例中,对于应用名称相似度可以采用simhash等算法进行计算,得到相应相似度计算值;对于应用名称包含特殊字符情况可以通过对应用的检测结果进行判定得到,例如:包含特殊字符则即为0,不包含则即为1,或包含3个及以上特殊字符则即为0,包含1-2个特殊字符则即为0.5,不包含则即为1等。对于应用开发者情况、应用累计版本数、应用包体大小、应用数据包含官方标识情况、应用数据包含广告情况、应用下载量、应用举报量、应用用户评分、应用危险权限数量目、应用来源等的特征计算,可以采用与计算特征“应用名称包含特殊字符情况”相同的方式进行;相应的,对于应用名称相似度也可以采用前述方式,例如simhash算法计算得到似度计算值小于0.8,则记为1,否则记为0。

s402:对计算得到的各样本应用和待识别应用的同一的建模应用特征之特征值进行归一化处理;

本实施例中,会对各样本应用和待识别应用的各同一建模应用特征之特征值进行归一化处理,例如对某样本应用和待识别应用而言,有a、b、c三类建模应用特征,设样本应用有100个,a、b、c三类建模应用特征对应的特征值依次分别为a1-a100,b1-b100,c1-c100;待识别应用有10个,a、b、c三类建模应用特征对应的特征值依次分别为a101-a110,b101-b110,c101-c110;则分别将a1-a110进行归一化处理,b1-b110进行归一化处理,c1-c110进行归一化处理,得到数值在0-1之间的a’1-a’110,b’1-b’110,c’1-c’110。

s403:将归一化处理后的各样本应用之特征值作为训练集,通过机器学习算法建立应用甄别模型。

值得注意的是,本实施例中训练集中不包含待识别应用的归一化特征值。仍以上例为例,此时训练集中不包含a’100-a’110,b’100-b’110,c’100-c’110。

本实施例中,可采用进行建模的机器学习算法包括:逻辑回归算法、决策树算法、随机森林算法等机器学习算法。

本实施例中,在根据图4的方法建立好应用甄别模型之后,再将将待识别应用的归一化处理后的建模应用特征之特征值作为测试集输入应用甄别模型中,即可得到该待识别应用的类型甄别值。

应当理解的是,本实施例中的应用甄别模型在如图4所述的步骤中已经建立,即相当于已经确定了一个多元函数,此时通过将归一化处理后的待识别应用的建模应用特征之特征值输入应用甄别模型中,即相当于告知了函数变量值,由此应用甄别模型进行计算即可得到一个值,该值即为对应的待识别应用的类型甄别值。

本实施例中,根据得到的某一应用的类型甄别值和获取的山寨应用甄别阈值即可得到该应用的类型是否为山寨应用。例如某一应用的类型甄别值为0.3,而山寨应用甄别阈值为0.5,则判定该应用为山寨应用。应当理解的是,越靠近训练集中设定的山寨应用表征值,则进行甄别的应用越可能是山寨应用。例如训练集中设定的山寨应用表征值为0,正版应用为1,则类型甄别值越接近0的应用,越可能是山寨应用,越接近1的应用越可能是正版应用。

本实施例中,判定了各待识别应用的类型之后,可以对甄别出的山寨应用通过人工操作或设备自动操作等方式进行下架处理。这样,用户在进入应用市场时,可供用户下载的应用即为甄别后的正版应用。

本实施例中,对于下架处理的山寨应用可以加入到应用市场的黑名单中,以避免以后对同款应用需要进行再次甄别。同样的,对于甄别出的正版应用,可以将其加入到应用市场的白名单中。

由于样本容量的大小会影响模型甄别准确度,通常而言,样本应用的数量越多,建立的应用甄别模型就会甄别的越准确,为不断提高模型的甄别精度,本实施例还提供了一种动态调整应用甄别模型的方法,参见图5,包括:

s501:将甄别后的各正版应用和/或山寨应用加入样本应用中;

本实施例中,若样本应用中包含应用市场黑名单或白名单中的应用,则将甄别后的各正版应用加入到应用市场的白名单中,将甄别后的各山寨应用加入到应用市场的黑名单中。

s502:在模型更新条件触发时,基于当前样本应用的建模应用特征建立新的应用甄别模型以对原有应用甄别模型进行更新;

值得注意的是,用于更新应用甄别模型的当前样本应用是指加入了上一次已甄别出的各正版应用和/或山寨应用的应用集合。

本实施例中,模型更新条件可以是周期时间,也即设备在每一周期到达时自动根据各样本应用重新获取训练集数据,再根据重新获取的训练集数据重新得到一个应用甄别模型。本实施例中,模型更新条件也可以是设定的某些时刻;还可以是样本应用的增加个数等。应当理解的是,前述三种模型更新条件仅为本实施例示例的三种条件,不代表模型更新条件仅可为前述三种。

s503:获取与更新后的应用甄别模型对应的山寨应用甄别阈值。

本实施例中,由于更新后的应用甄别模型与原应用甄别模型相比可能具有一定改变,因此更新后的应用甄别模型对应的山寨应用甄别阈值也即需要重新确定。

应当理解的是,随着应用甄别模型的不断更新,其甄别准确率会越来越高,随之更新后的应用甄别模型对应的山寨应用甄别阈值与上一应用甄别模型对应的山寨应用甄别阈值相差会越来越小,甚至等同。

应当理解的是,在样本容量达到一定的程度之后,对于模型甄别准确度的提高作用就不明显了,反而由于样本容量过大,对资源的消耗很高,得不偿失,因此,在样本应用的数量达到一定的程度之后,即可以不再扩大样本应用的数量。

本实施例中,由于加入应用市场的应用很多,在一次甄别之后,又会有许多应用进入到应用市场中,而这些新进入的应用中很可能包含有许多山寨应用,因此需要长期对进入应用市场的应用进行甄别。

对此,一种可行的方案是:设置甄别触发条件,在甄别触发条件触发时,对上一次甄别之后进入到应用市场中的应用进行甄别,也即会获取在甄别触发条件触发时应用市场中存在的类别未知的应用,并将这些类别未知的应用作为待识别应用进行甄别。这里甄别触发条件可以是周期时间,例如周期为一周,这样每周都会调用应用甄别模型进行一次甄别;甄别触发条件也可以是设定时刻,例如设定2017年4月31日和2017年5月3日,则设备在件也可以是设定时刻,例如设定2017年4月31日和2017年5月3日这两天会调用应用甄别模型进行甄别;甄别触发条件还可以是新进入应用市场中的应用个数,例如设定新进入应用个数阈值为100,则当在检测到上一次甄别之后进入到应用市场中的应用大于等于100条时,则调用应用甄别模型进行甄别。

应当理解的是,上述三种甄别触发条件仅为本实施例示例的三种条件,不代表甄别触发条件仅可为上述三种。

应当理解的是,上述甄别触发条件触发时,获取在甄别触发条件触发时应用市场中存在的类别未知的应用的操作应在“获取待识别应用的建模应用特征,根据获取的建模应用特征和所述应用甄别模型得到该待识别应用的类型甄别值”之前进行。

应当理解的是,为防止用户在上一次甄别之后,本次甄别尚未开始这一时间段下载到山寨应用,可以对这些新进入应用市场的应用做暂不上架处理,在甄别之后,再将甄别出的正版应用进行上架。

而另一种可行的方案是:在每一个应用进入应用市场时,即调用应用甄别模型进行甄别。

值得注意的是,本实施例中的各个步骤可以由如图2所示的服务器来完成,具体的,如图2所示的服务器,工程师可以通过输入输出总线21设置各应用中的哪些特征为建模应用特征;处理器22从存储器23中获取样本应用和待识别应用的,并获取各样本应用和待识别应用的建模应用特征进行特征计算、归一化处理等操作,进而建立应用甄别模型;同时,处理器22还会利用建立的应用甄别模型得到各待识别应用对应的类型甄别值,从而判定各待识别应用是否为山寨应用,并对甄别出的山寨应用进行下架处理;而后,通信装置25即可在用户进入应用市场时,将可供用户下载的正版应用发送到用户终端上。

应当理解的是,本实施例中的各个步骤也可以由如图1所示的终端来独立实现,具体的,工程师可以通过用户输入单元130或接口单元170来设置各应用中的哪些特征为建模应用特征;控制器180从存储器160中获取样本应用和待识别应用,并获取各样本应用和待识别应用的建模应用特征进行特征计算、归一化处理等操作,进而建立应用甄别模型;同时,控制器180还会利用建立的应用甄别模型得到各待识别应用对应的类型甄别值,从而判定各待识别应用是否为山寨应用,并对甄别出的山寨应用进行下架处理。

本实施例提供的应用甄别方法,通过从包括已知的至少一个正版应用和至少一个山寨应用的样本应用中获取各样本应用的建模应用特征(建模应用特征包括正版应用与山寨应用存在差异的差异特征),再基于各样本应用的建模应用特征得到应用甄别模型,并获取与应用甄别模型对应的山寨应用甄别阈值。之后对待识别应用获取其建模应用特征,通过该建模应用特征和应用甄别模型即可得到该待识别应用的类型甄别值,而将类型甄别值与山寨应用甄别阈值进行比对即可判定其是否为山寨应用。这样,通过利用正版应用与山寨应用存在差异的差异特征,使得建立的应用甄别模型可以很好的反映出正版应用与山寨应用之间的差异,通过应用甄别模型对未知应用进行检测,实现了对应用的高效自动化甄别,保证了供给用户下载的应用的安全性,进而保障了终端安全和用户隐私安全,同时通过模型进行自动甄别,极大地减少了通过人工甄别山寨应用的成本,还提高了检测准确率。第二实施例

本实施例在第一实施例的基础上,以样本应用为应用市场白名单中的正版应用和黑名单中的山寨应用,且模型更新条件和甄别触发条件为设定时刻(即设定有两个不同的定时任务)的情况为例,对本发明作进一步的示例说明。

参见图6,图6为本发明第二实施例提供的一种应用甄别方法实施过程的基本框架图,可见,本实施例中应用甄别方法实施过程主要包括:设备首先根据白名单和黑名单中的应用构建了应用甄别模型,此时白名单和黑名单中的应用即为样本应用;再将待识别应用输入构建好的应用甄别模型中(应当理解的是,此处输入的是归一化处理后的待识别应用的建模应用特征之特征值),应用甄别模型即输出对应待识别应用的类型甄别值,此后通过人工判定或机器自动判定等方法将类型甄别值和山寨应用甄别阈值比较,得到待识别应用的类型。其具体流程可以参见图7,包括:

s701:加载定时任务1;

即在预先设定时刻自动完成下述s702-s704的步骤,例如每隔一周则自动进行s702-s704的步骤,即重新建立应用甄别模型。

s702:获取白名单和黑名单中的应用,以及各待识别应用的建模应用特征并进行特征计算及归一化处理;

应当理解的是,每次加载定时任务1时,由于步骤s710更新了白名单和黑名单,故每次加载定时任务1时获取的白名单和黑名单中的应用不相同。

应当理解的是,每次加载定时任务1时,会重新获取待识别应用,这些待识别应用即为上次甄别之后新加入的应用和/或上次甄别时未甄别完的应用类别未知(即不清楚是为山寨应用还是为正版应用)的应用。

还应当理解的是,本实施例中可用于进行特征计算的方法包括simhash算法、scikit-learn等。

s703:通过机器学习算法建立应用甄别模型;

值得注意的是,在通过机器学习算法建立应用甄别模型时,所采用的数据中包含有白名单和黑名单中的应用对应的归一化特征值,但不含各待识别应用对应的归一化特征值。

s704:保存应用甄别模型。

s705:加载定时任务2;

即在预先设定时刻自动完成下述s706-s710的步骤,例如每当检测到步骤s704完成之后,则自动进行s706-s710的步骤,即通过重新建立的应用甄别模型进行待识别应用甄别。

s706:加载应用甄别模型;

s707:将待识别应用输入应用甄别模型中;

输入的实质是进行归一化处理后的待识别应用的建模应用特征之特征值。

s708:输出类型甄别值;

s709:根据类型甄别值与山寨应用甄别阈值判定待识别应用类型;

本实施例中,可以通过运营人工进行待识别应用类型的判定并将山寨应用进行下架,也可以通过机器进行自动化判定并自动将山寨应用进行下架。

s710:更新白名单和黑名单。

本实施例提供的应用甄别方法,通过将已有的白名单和黑名单中的应用作为样本应用进行建模应用特征提取并建立应用甄别模型,在通过将待识别应用的建模应用特征之特征值输入应用甄别模型中,得到该待识别应用的类型甄别值,进而判定该待识别应用是否为山寨应用,并将识别后的应用加入到黑名单或白名单中,实现对样本应用的扩大以及对模型的更新。这样,由于建模应用特征中包含有正版应用与山寨应用存在差异的差异特征,使得建立的应用甄别模型可以很好的甄别出正版应用与山寨应用,实现了对应用的高效自动化甄别,极大地减少了通过人工甄别山寨应用的成本,提高了检测准确率,保证了供给用户下载的应用的安全性。

第三实施例

为了实现准确高效地甄别出应用是否为山寨应用,本发明提供了一种应用管理设备。参见图8,图8为本发明第三实施例提供的一种应用管理设备结构示意图,包括:

特征获取模块81,用于获取当前样本应用和当前待识别应用的建模应用特征。

应当注意的是,本实施例中的当前样本应用应当包括已知的至少一个正版应用和至少一个山寨应用。还值得注意的是,本实施例中用于建模的各当前样本应用之建模应用特征应当包括正版应用与山寨应用存在差异的差异特征。

模型建立模块82,用于基于特征获取模块81获取的各当前样本应用的建模应用特征得到应用甄别模型,并获取与所述应用甄别模型对应的山寨应用甄别阈值。

应用甄别模块83,用于根据特征获取模块81获取的当前待识别应用的建模应用特征和模型建立模块82建立的应用甄别模型得到该待识别应用的类型甄别值,并将该类型甄别值与山寨应用甄别阈值进行比对,从而判定该类型甄别值对应的待识别应用是否为山寨应用。

本实施例中,差异特征可以通过特征挖掘工程进行确定,例如,可以通过应用相关领域的工程师来对相关应用进行特征比对,确定出山寨应用与正版应用存在区分度的一些特征,这些特征即为差异特征。

本实施例中,差异特征可以包括应用名称相似度、应用名称包含特殊字符情况、应用开发者情况、应用累计版本数、应用包体大小、应用数据包含官方标识情况、应用数据包含广告情况、应用下载量、应用举报量、应用用户评分、应用危险权限数量目、应用来源中的至少两种。

本实施例中,各样本应用可以是应用市场白名单中的各正版应用和黑名单中的各山寨应用,也可以是不在白名单或黑名单中的一致正版应用和/或山寨应用。在采用应用市场白名单中的各正版应用和黑名单中各山寨应用作为样本应用时,可以将白名单中的所有正版应用和黑名单中所有山寨应用均作为样本应用,也可以仅将白名单中的部分正版应用和黑名单中部分山寨应用作为样本应用。

本实施例中,模型建立模块82会将各当前样本应用的建模应用特征作为训练集,通过机器学习算法建立模型。应当理解的是,本实施例中,模型建立模块82可以采用监督学习类机器学习算法对训练集进行训练学习,从而建立应用甄别模型。

本实施例中,由于建模算法的不同会导致模型建立模块82得到的应用甄别模型也不同,而应用甄别模型的不同会导致其对应的山寨应用甄别阈值也可能不同。

应当理解的是,山寨应用甄别阈值可以是相关领域的工程师根据实际经验进行设定的;或是通过对模型进行大量测试性甄别,再根据模型输出的类型甄别值和对应的测试应用的类比进行统计得到的。

值得注意的是,特征获取模块81获取的当前待识别应用的建模应用特征应当与获取的样本应用的建模应用特征相对应。例如特征获取模块81获取的样本应用的建模应用特征为名称相似度、应用累计版本数和应用包体大小,则获取的待识别应用的建模应用特征也应当为名称相似度、应用累计版本数和应用包体大小。

在特征获取模块81获取到当前待识别应用的建模应用特征之后,当前待识别应用的建模应用特征即构成了应用甄别模型的测试集,应用甄别模块83将这些建模应用特征输入到应用甄别模型中后,应用甄别模型即可对应计算输出相应的类型甄别值。应当理解的是,由于模型建立模块82采用的建模算法不同,应用甄别模型输出的类型甄别值可能与训练集设定表征是正版应用还是山寨应用的设定值不同。

本实施例中,工程师还可以将山寨应用甄别阈值写入设备中,应用甄别模块83在应用甄别模型输出类型甄别值之后,自动进行对比,将判定结果输出。应当理解的是,本实施例还可以在类型甄别值输出之后,通过人工审核方式将应用甄别模型输出类型甄别值与应用甄别模型对应的山寨应用甄别阈值进行比对,判定待识别应用的类型。

应当理解的是,本实施例中的待识别应用可以是一个也可以是多个,即可以实现对待识别应用的批量甄别。

本实施例中,应用甄别模块83判定了各待识别应用的类型之后,应用管理设备可以对甄别出的山寨应用通过人工操作或设备自动操作等方式进行下架处理。这样,用户在进入应用市场时,看到的可供用户下载的应用即为应用管理设备甄别后的正版应用。

应当理解的是,本实施例中各个模块在上一模块完成相应功能后,即可自动开始完成自身功能,例如在模型建立模块82完成自身功能之后,应用甄别模块83即可自动开始工作,不需人工介入。应当理解的是,在各个模块完成自身功能之后,也可通过用户选择的方式来开始下一模块的工作。

应当理解的是,样本应用越多(即训练集容量越大),模型建立模块82得到的模型对于待识别应用类型甄别的准确率即会越高,但其建模时间也会随之增加,对于资源消耗量也会增大,因此,对于样本应用的数量可以根据实际需求进行确定。

本实施例中,模型建立模块82的一种具体结构可以参见图9,包括:

特征计算单元821,用于对各样本应用和待识别应用的建模应用特征进行特征计算。

归一化处理单元822,用于对计算得到的各样本应用和待识别应用的同一建模应用特征之特征值进行归一化处理。

模型建立单元823,用于将归一化处理后的各所述样本应用的特征值作为训练集,通过机器学习算法建立应用甄别模型。

本实施例中,特征计算单元821对于应用名称相似度可以采用simhash等算法进行计算,得到相应相似度计算值;对于应用名称包含特殊字符情况可以通过对应用的检测结果进行判定得到,例如:包含特殊字符则即为1,不包含则即为0,或包含3个及以上特殊字符则即为1,包含1-2个特殊字符则即为0.5,不包含则即为0等。对于应用开发者情况、应用累计版本数、应用包体大小、应用数据包含官方标识情况、应用数据包含广告情况、应用下载量、应用举报量、应用用户评分、应用危险权限数量目、应用来源等的特征计算,可以采用与计算特征“应用名称包含特殊字符情况”相同的方式进行;相应的,对于应用名称相似度也可以采用前述方式,例如simhash算法计算得到似度计算值小于0.9,则记为0,否则记为1。

值得注意的是,本实施例中,模型建立单元823用于建立应用甄别模型的训练集中不包含待识别应用的归一化特征值。

本实施例中,模型建立单元823可采用进行建模的机器学习算法包括:逻辑回归算法、决策树算法、随机森林算法等机器学习算法。

本实施例中,在模型建立单元823建立好应用甄别模型之后,应用甄别模块83可以将由归一化处理单元822归一化处理后的所述待识别应用之特征值作为测试集输入所述应用甄别模型,得到该待识别应用的类型甄别值。

应当理解的是,本实施例中的建立应用甄别模型可以相当于一个已经确定的多元函数,此时通过将归一化处理后的待识别应用的建模应用特征之特征值输入应用甄别模型中,即相当于告知了函数变量值,由此应用甄别模型进行计算即可得到一个值,该值即为对应的待识别应用的类型甄别值。

本实施例中,应用甄别模块83根据得到的某一应用的类型甄别值和获取的山寨应用甄别阈值即可得到该应用的类型是否为山寨应用。

应当理解的是,越靠近训练集中设定的山寨应用表征值,则进行甄别的应用越可能是山寨应用。例如训练集中设定的山寨应用表征值为1,正版应用为0,则类型甄别值越接近1的应用,越可能是山寨应用,越接近0的应用越可能是正版应用。

本实施例中,对于下架处理的山寨应用可以加入到应用市场的黑名单中,以避免以后对同款应用需要进行再次甄别。同样的,对于甄别出的正版应用,可以将其加入到应用市场的白名单中。

值得注意的是,本实施例中,应用管理设备的功能可以由如图2所示的服务器来完成,具体的,特征获取模块81、模型建立模块82和应用甄别模块83的功能的软件代码可存储在如图2所示的服务器的存储器23中,并由处理器22执行或编译后执行;特征获取模块81、模型建立模块82和应用甄别模块83可以设置于处理器22之内。应当理解的是,处理器22还可以实现对甄别后的山寨应用进行下架的操作,此后通信装置25即可在用户进入应用市场时,将可供用户下载的正版应用发送到用户终端上。

应当理解的是,本实施例中应用管理设备的功能也可以由如图1所示的终端来独立实现,此时特征获取模块81、模型建立模块82和应用甄别模块83的功能即可由终端控制器180实现,特征获取模块81、模型建立模块82和应用甄别模块83可以设置于终端控制器180内。

本实施例提供的应用管理装置,通过特征获取模块从包括已知的样本应用中获取各样本应用的建模应用特征(建模应用特征包括正版应用与山寨应用存在差异的差异特征),由模型建立模块建立应用甄别模型,通过应用甄别模块得到待识别应用的类型甄别值,并将类型甄别值与山寨应用甄别阈值进行比对,从而判定待识别应用是否为山寨应用。这样,利用正版应用与山寨应用存在差异的差异特征,使得建立的应用甄别模型可以很好的反映出正版应用与山寨应用之间的差异,再通过应用甄别模型对未知应用进行检测,实现了对应用的高效自动化甄别,保证了供给用户下载的应用的安全性,进而保障了终端安全和用户隐私安全,同时通过模型进行自动甄别,极大地减少了通过人工甄别山寨应用的成本,还提高了检测准确率。

第四实施例

本实施例是在第三实施例的基础上,对本发明的技术方案做进行进一步示例说明。

应当理解,样本容量的大小会影响模型甄别准确度,通常而言,样本容量越大,模型甄别准确度就越高。也即样本应用的数量越多,建立的应用甄别模型就会甄别的越准确。为不断提高模型的甄别精度,参见图10,图10为本实施例提供的另一种模型建立模块82的结构示意图,包括:

样本应用更新单元824,用于将应用甄别模块83甄别后的各正版应用和/或山寨应用加入样本应用中。

模型更新单元825,用于在模型更新条件触发时,基于各样本应用的建模应用特征更新应用甄别模型,并获取与更新后的应用甄别模型对应的山寨应用甄别阈值。

应当理解的是,样本应用更新单元824和模型更新单元825可以与第三实施例中的特征计算单元821、归一化处理单元822和模型建立单元823共存。

本实施例中,若样本应用中包含应用市场黑名单或白名单中的应用,则样本应用更新单元824可以将甄别后的各正版应用加入到应用市场的白名单中,将甄别后的各山寨应用加入到应用市场的黑名单中。

值得注意的是,本实施例中,模型更新单元825用于更新应用甄别模型的各样本应用是指加入了上一次已甄别出的各正版应用和/或山寨应用的应用集合。

本实施例中,模型更新条件可以是周期时间,也即设备在每一周期到达时自动根据各样本应用重新获取训练集数据,再根据重新获取的训练集数据重新得到一个应用甄别模型。本实施例中,模型更新条件也可以是设定的某些时刻;还可以是样本应用的增加个数等。应当理解的是,前述三种模型更新条件仅为本实施例示例的三种条件,不代表模型更新条件仅可为前述三种。

本实施例中,由于模型更新单元825更新后的应用甄别模型与原应用甄别模型相比可能具有一定改变,因此更新后的应用甄别模型对应的山寨应用甄别阈值也即需要重新确定。

应当理解的是,随着应用甄别模型的不断更新,应用甄别模型的甄别准确率会越来越高,随之更新后的应用甄别模型对应的山寨应用甄别阈值与上一应用甄别模型对应的山寨应用甄别阈值相差会越来越小,甚至等同。

应当理解的是,在样本容量达到一定的程度之后,对于模型甄别准确度的提高作用就不明显了,反而由于样本容量过大,对资源的消耗很高,得不偿失,因此,在样本应用的数量达到一定的程度之后,样本应用更新单元824即可以不再扩大样本应用的数量。

本实施例中,由于加入应用市场的应用很多,在一次甄别之后,又会有许多应用进入到应用市场中,而这些新进入的应用中很可能包含有许多山寨应用,因此应用管理设备需要长期对进入应用市场的应用进行甄别。

对此,一种可行的方案是:应用管理设备设置甄别触发条件,在甄别触发条件触发时,应用甄别模块83对上一次甄别之后进入到应用市场中的应用进行甄别。这里甄别触发条件可以是周期时间,也可以是设定时刻,还可以是新进入应用市场中的应用个数等。

应当理解的是,上述三种甄别触发条件仅为本实施例示例的三种条件,不代表甄别触发条件仅可为上述三种。

应当理解的是,为防止用户在上一次甄别之后,本次甄别尚未开始这一时间段下载到山寨应用,应用管理设备可以对这些新进入应用市场的应用做暂不上架处理,在甄别之后,再将甄别出的正版应用进行上架。

另一种可行的方案是:应用管理设备在每一个应用进入应用市场时,应用甄别模块83即调用应用甄别模型进行甄别。

值得注意的是,本实施例中应用管理设备的功能仍旧可以由如图2所示的服务器来完成,具体的,样本应用更新单元824和模型更新单元825的功能的软件代码可存储在如图2所示的服务器的存储器23中,并由处理器22执行或编译后执行;样本应用更新单元824和模型更新单元825可以设置于处理器22之内。

应当理解的是,本实施例中应用管理设备的功能同样也可以由如图1所示的终端来独立实现,此时样本应用更新单元824和模型更新单元825的功能即可由终端控制器180实现,样本应用更新单元824和模型更新单元825可以设置于终端控制器180内。

本实施例提供的应用管理设备,通过将识别后的应用加入到样本应用中,再通过设置模型更新触发条件的方式实现对原有的应用甄别模型的更新,使得在实现高效自动化甄别山寨应用的同时,也不断自动提高应用甄别模型的甄别准确度,在减少甄别成本的同时,进一步提高了检测准确率,保证了供给用户下载的应用的安全性。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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