一种获取APP业务特征库的方法及相应的装置与流程

文档序号:18704591发布日期:2019-09-17 23:28阅读:348来源:国知局
一种获取APP业务特征库的方法及相应的装置与流程

本发明属于大数据领域,更具体地,涉及一种获取app业务特征库的方法及相应的装置。



背景技术:

近几年来,计算机技术迅猛发展,大数据和机器学习等热门领域更是精彩纷呈。在互联网方面,用户画像、精准营销成为产业热词,而这一系列技术的基础就是有标签的数据。对于dpi(deeppacketinspection,简写为dpi)产品来说,业务流量就是数据,怎样合理的利用好业务数据是dpi产品的重中之重。在这需求之中:app(application,简写为app)业务识别正是分析处理基础数据的关键技术。

现有技术中,关于app特征识别存在几种不同的方案,例如,申请号为cn201710453676.x的专利,公开了一种app识别规则的获取方法及装置,该专利只采集了本地一段时间内模拟产生的业务特征数据,具有一定数据盲区,且采用分词的方式采集特征,特征值具有单一性,没有使用复合特征,不能满足dpi识别的要求。

申请号为cn201810346473.5的专利,公开了一种app流量自动识别模型构建方法,该专利虽然顾及到了本地模拟抓包数据集,但是由于模拟抓包数据集中不包含基于ios的业务数据,且ios应用和安卓应用的服务具有一定的隔离性,该专利无法做到双系统的特征均识别到位,覆盖面较窄。

申请号为cn201610994224.8的专利,公开了一种app识别方法及系统,该专利只对安装包内的url进行了分析,识别力度较弱,很容易产生特征盲区,造成共有特征被认定为私有特征。

鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种获取app业务特征库的方法及相应的装置,其目的在于,本发明中的现网业务数据具有一定的复杂性,解决了本地抓包的模拟数据的局限性和单一性,可以消除数据盲区,保证了识别率;而且,结合app安装包、现网业务数据和模拟业务数据,可以得到复合特征,进而从多特征维度构造业务特征库,能够有效识别辨识度较低的业务数据,提高了特征识别的精准性,能够有效解决人力。

为实现上述目的,按照本发明的一个方面,提供了一种获取app业务特征库的方法,所述app业务特征库用于识别用户数据所属的app名称,所述方法包括:

获取app安装包、现网业务数据和模拟业务数据;

分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集;

对所述现网业务数据和所述模拟业务数据进行特征提取,得到包含至少一个业务特征的业务特征树;

将所述业务特征树与所述学习数据集进行特征匹配,确定所述业务特征树中的各个业务特征所属的app名称,并将所述业务特征树中的各个业务特征与各自所属的app名称建立映射关系,生成业务特征库。

优选地,所述学习数据集包括第一标签数据集,所述分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集包括:

在获取所述app安装包的过程中,从应用市场中爬取所述app安装包所属的app名称,或,解析所述app安装包得到所述app安装包所属的app名称;

解析所述app安装包,得到所述app安装包内所包含的url数据,将所述url数据与其所属的app名称建立映射关系,得到第一标签数据集,将所述第一标签数据集添加至所述学习数据集中。

优选地,所述获取app安装包、现网业务数据和模拟业务数据包括:

触发模拟器安装所述app安装包,并遍历app的功能;

在app运行期间,采用抓包工具获取app业务流量,其中,每一所述app业务流量与其所属的app安装包一一对应;

将所述app业务流量按照预设的格式进行存储,得到模拟业务数据,其中,每一所述模拟业务数据与其所属的app安装包一一对应。

优选地,所述学习数据集包括第二标签数据集,所述分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集包括:

在获取所述app安装包的过程中,从应用市场中爬取所述app安装包所属的app名称,或,解析所述app安装包得到所述app安装包所属的app名称;

将所述模拟业务数据与其所属的app名称建立映射关系,得到第二标签数据集,将所述第二标签数据集添加至所述学习数据集中。

优选地,所述获取app安装包、现网业务数据和模拟业务数据包括:

在实际网络环境中,搜集用户使用各类app时所产生的数据,得到现网业务数据。

优选地,所述学习数据集包括第三标签数据集,所述分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集包括:

在获取所述app安装包的过程中,从应用市场中爬取所述app安装包所属的app名称,或,解析所述app安装包得到所述app安装包所属的app名称;

解析所述app安装包,得到所述app安装包的包名,其中,所述包名中包含所述app安装包对应的app标识,将所述包名与其所属的app名称建立映射关系;

解析所述现网业务数据,得到所述现网业务数据中的ua数据,其中,所述ua数据中包含产生所述现网业务数据的app的app标识;

采用字符串相似性判断算法,对所述包名和所述ua数据进行识别,当所述包名内的app标识与所述ua数据中的app标识相同时,所述ua数据所属的app名称与所述包名所属的app名称相同,得到所述现网业务数据所属的app名称;

将所述现网业务数据与其所属的app名称建立映射关系,得到第三标签数据集,将所述第三标签数据集添加至所述学习数据集中。

优选地,所述app安装包具体包括基于安卓系统的apk包和基于ios系统的ipa包;所述解析所述app安装包,得到所述app安装包的包名包括:

识别所述app安装包所适用的系统类型;

当所述app安装包为基于安卓系统的apk包时,从androidmanifest文件中提取app安装包的包名;

当所述app安装包为基于ios系统的ipa包时,从propertylist文件中提取app安装包的包名。

优选地,所述学习数据集包括第二标签数据集和第三标签数据集;所述模拟业务数据是模拟器在安装所述app安装包后,遍历app功能时所产生的数据,其中,所述模拟业务数据中包含模拟器的设备号,所述现网业务数据是实际网络环境下,用户使用各类app时所产生的数据;

所述分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集包括:

获取所述模拟业务数据中重复率高于第一预设阈值的特征项,将所述特征项遍历所述现网业务数据;

若所述特征项在所述现网业务数据中的出现率不大于第二预设阈值,则将所述特征项标记为模拟器的设备号,并将所述特征项从所述模拟业务数据中剔除,得到修正后的模拟业务数据;

将修正后的模拟业务数据与其所属的app名称建立映射关系,得到第二标签数据集;

将所述现网业务数据与其所属的app名称建立映射关系,得到第三标签数据集;

分别将所述第二标签数据集和所述第三标签数据集添加到所述学习数据集中。

优选地,对所述现网业务数据和所述模拟业务数据进行特征提取,得到包含至少一个业务特征的业务特征树包括:

采用特征嗅探算法提取所述现网业务数据和所述模拟业务数据中的关键字段;

根据关键字段的加密情况和/或键值对情况,判断所述关键字段是否为有效特征;

当所述关键字段为有效特征时,将所述关键字段标记为业务特征,以得到包含至少一个业务特征的业务特征树。

按照本发明的另一方面,提供了一种app业务特征库的获取装置,包括至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被程序设置为执行本发明所述的获取app业务特征库的方法。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明提供

由于现网业务数据具有一定的复杂性,解决了本地抓包的模拟数据的局限性和单一性,可以消除数据盲区,保证了识别率;而且,结合app安装包、现网业务数据和模拟业务数据,可以得到复合特征,进而从多特征维度构造业务特征库,能够有效识别辨识度较低的业务数据,提高了特征识别的精准性,能够有效解决人力。

进一步地,现网业务数据中包含ios业务数据和安卓业务数据,然后通过ua数据和包名关联的方式,将ios业务数据加入到学习数据集,可以做到对双系统业务数据均识别到位,提高了业务特征识别的覆盖范围和适用场景。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种获取app业务特征库的方法的流程示意图;

图2是本发明实施例提供的图1中的步骤102的具体流程示意图;

图3是本发明实施例提供的一种ipa安装包中所包含的关键字段示意图;

图4是本发明实施例提供的不同格式的ua数据的示意图;

图5是本发明实施例提供的一种app名称、包名中的app标识和ua数据中的app标识之间的关联示意图;

图6是本发明实施例提供的图1中步骤103的具体流程示意图;

图7是本发明实施例提供的一种建立学习数据集的流程示意图;

图8是本发明实施例提供的一种建立业务特征库的流程示意图;

图9是本发明实施例提供的一种app业务特征库的获取装置。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

实施例1:

本实施例提供一种获取app业务特征库的方法,采用本实施例的获取app业务特征库的方法可以构造携带有app名称的业务特征库,通过该业务特征库对未知业务类型的用户数据进行其所属app应用的判断,为分析互联网中用户使用app的网络行为奠定基础。本实施例的获取app业务特征库的方法,适用于各种涉及app业务特征识别的应用场景,例如,dpi技术中对业务数据的特征分析、对业务数据进行精准营销或对业务数据进行分析得到用户画像等。

如图1所示,本实施例的获取app业务特征库的方法包括以下步骤:

在步骤101中,获取app安装包、现网业务数据和模拟业务数据。

在可选的方案中,可以采用信息爬虫技术,在各应用市场获取app安装包,其中,所述app安装包具体包括基于安卓系统的apk包和基于ios系统的ipa包。

其中,现网业务数据指的是实际网络环境中,用户在使用app各项功能时所产生的业务数据,由于用户群体是很庞大的,现网业务数据具有一定的复杂性和全面性。

其中,模拟业务数据是模拟器通过自动触发app各项功能时所产生的业务数据,虽然模拟器的数目一定,所产生的模拟业务数据的复杂性不及现网业务数据,但是模拟业务数据的有效性以及准确性较高,当结合现网业务数据和模拟业务数据生成业务特征库时,能够同时满足特征的全面性和精准性。

在具体应用场景下,为了保证能够全方位搜集业务特征,本实施例中所涉及的app安装包基本可以覆盖目前用户所使用的各类app。本实施例中所涉及的现网业务数据的数目为多个,且数目的量级是很高的,而且现网业务数据的种类较丰富,不仅可以覆盖不同类型的app,同时可以覆盖不同的用户群体。此外,本实施例的现网业务数据包括基于ios系统的现网业务数据和基于安卓系统的业务数据。

目前,由于mac(苹果公司)端开发者的ios模拟器,只能开发者使用源码工程文件编译安装或者采用开发者提供的debug包测试,直接从应用市场拿到的ipa文件是无法安装到模拟器上测试的。鉴于此局限性,在本实施例中所涉及的模拟业务数据主要是指基于安卓系统的模拟业务数据,所述模拟业务数据的数目为多个,能够覆盖大多数的app应用。当然,如果能够打破前述模拟器的局限性,本实施例中所涉及的模拟业务数据还可以包括基于ios系统的模拟业务数据。

在步骤102中,分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,生成学习数据集。

其中,app名称指的是呈现给用户的应用名称,以便于用户能够区分不同的app,例如,某个业务数据对应的字段包括weixin.qq.com,则该业务数据所属的app名称为微信。

在优选的方案中,所述现网业务数据和所述模拟业务数据均为xdr(xdatarecording,简写为xdr)格式的数据,其中,xdr是由cdr(calldatarecording,呼叫数据记录)演变而来的概念,cdr是传统通信网中对通话过程中网络关键信息的记录。xdr是cdr概念的扩展,在本规范中泛指对移动网络、承载网络中数据流量的关键信息记录,即流量日志,以用户会话为单位,一个会话形成一条xdr记录。由于xdr数据是已经提取过数据包重点字段(包括host、destination-url、referer、user-agent、cookies等http请求头部字段)的数据,数据规范,便于使用。在其他方案中,所述现网业务数据和所述模拟业务数据还可以为其他格式的数据,便于进行后续的特征提取。

在实际应用场景下,所述app安装包、所述现网业务数据和所述模拟业务数据均具有与app名称相关的特征,可以分别解析所述app安装包、所述现网业务数据和所述模拟业务数据,得到各自所属的app名称,并将所述app安装包、所述现网业务数据和所述模拟业务数据与各自所属的app名称建立映射关系,以各自建立标签数据集,从而得到携带有app名称的学习数据集。

在具体应用场景下,所述app安装包中包括url(uniformresourcelocator,简写为url)字符串,该url字符串中包括host(可以反映ip地址和主机名)、path(反映路径)和键值对等信息。所述app安装包还包括对应的包名,其中,包名中包括app标识。所述现网业务数据中包含ua(useragent,简写为ua)数据,所述ua数据中包含浏览器类型(例如,android、iphone、ipad和电脑),所述ua数据中还包含产生所述现网业务数据的app的app标识,因此可以通过现网业务数据中的ua数据与app安装包中解析出来的包名之间的关联,建立标签数据集,以标定某一条现网业务数据所属的app名称。

在此,需要说明的是,本实施例所涉及的app标识,代表一个app应用,用于系统识别应用,几乎不会被最终用户看到;本实施例所涉及的app名称(例如,微信、京东、淘宝等),是日常使用中用户所能看到和知晓的一种app应用的称呼,用以用户区分不同类型的app。

在步骤103中,对所述现网业务数据和所述模拟业务数据进行特征提取,得到包含至少一个业务特征的业务特征树。

在本实施例中,通过前述步骤101和步骤102建立的学习数据集包含业务数据和该业务数据对应的app名称,不过该学习数据集中的业务数据并未进行处理,不仅包含了app标识或ua数据等业务特征信息,还包含很多其他无用的信息,例如,设备id号、用户名、地理位置或时间等随机特征信息,不同业务数据的随机特征信息是会发生变化的,当采用此学习数据集进行业务数据识别时,无法获知哪个特征是产生该业务数据的app的业务特征,因此该学习数据集并不适用于甄别某条未知业务数据所属的app名称。在实际应用场景下,需要将业务数据中的随机特征信息或无用信息进行剔除,仅保留不会发生变更的特征(业务特征),用于后续的特征识别。

其中,可以采用特征提取的方式对所述现网业务数据和所述模拟业务数据进行修剪,得到业务特征树。

在步骤104中,将所述业务特征树与所述学习数据集进行特征匹配,确定所述业务特征树中的各个业务特征所属的app名称,并将所述业务特征树中的各个业务特征与各自所属的app名称建立映射关系,生成业务特征库。

其中,业务特征库中包含与app相关的业务特征,而不包含随机特征信息,当用户数据(未知业务数据)中的某一特征与业务特征库中的特征a相匹配时,则可以得知该用户数据对应的app名称与特征a对应的app名称相同,从而确定该用户数据所属的app名称。

本实施例提供的获取app业务特征库的方法,结合app安装包、现网业务数据和模拟业务数据,可以得到复合特征,进而从多特征维度构造业务特征库,能够有效识别辨识度较低的业务数据,提高了特征识别的精准性,能够有效解决人力。相较于现有技术中,仅通过单一特征进行业务特征识别而言,识别率更高,可以识别难以识别的业务。另一方面,由于现网业务数据具有一定的复杂性,解决了本地抓包的模拟数据的局限性和单一性,可以消除数据盲区,保证了识别率。

本实施例的携带有app名称的学习数据集包括多种不同类型的标签数据集,根据不同的数据源可以产生不同类型的标签数据集,在可选的方案中,数据源包括app安装包、现网业务数据和模拟业务数据,通过对前述不同的数据源进行解析,可以分别得到三种不同类型的标签数据集,具体为第一标签数据集、第二标签数据集和第三标签数据集。其中,第一标签数据集为多条url数据和对应app名称形成的集合,第二标签数据集为多条模拟业务数据和对应app名称形成的集合,第三标签数据集为多条现网业务数据和对应app名称形成的集合。

为了更清楚地说明本实施例的携带有app名称的学习数据集的建立过程,下面本实施例基于不同的数据源所对应的标签数据集的建立过程进行说明。

第一标签数据集建立过程:从app安装包中获取特征信息,以建立对应的标签数据集。在本实施例中,在步骤102中,具体包括如下步骤:

在本实施例中,采用信息爬虫技术从应用市场获取各类app安装包,同时,还爬取各个app安装包所属的app名称。在可选的实施例中,app安装包中会包含app的名称,因此可以通过解析所述app安装包得到所述app安装包所属的app名称。

然后,解析所述app安装包,得到所述app安装包内所包含的url数据,将所述url数据与其所属的app名称建立映射关系,并进行存储,得到第一标签数据集,将所述第一标签数据集添加至所述学习数据集中。

在实际过程中,可以批量解压apk安装包及ipa安装包,搜索程序文件中符合url正则格式的所有字符串,即可完成安装包内的url数据的提取工作,从而建立第一标签数据集,其中,第一标签数据集包括app名称和对应的url数据。

在此,需要说明的是app名称与app标识存在差异,例如,app名称为返利,是日常使用中用户所能看到和知晓的一种app应用的称呼;app标识fanli,是程序中用于系统识别的字符串。

第二标签数据集建立过程:首先,根据app安装包在模拟器上安装对应的app应用,然后遍历app的功能获取模拟业务数据,再根据app安装包对应的app名称,确定模拟业务数据所属的app名称,以建立第二标签数据集。

具体地,在步骤101中,具体包括如下过程:启动安卓模拟器,根据获取到的app安装包在模拟器上安装对应的app应用,遍历app功能,例如,可以采用adb(androiddebugbridge,简写为adb)命令获取并触发app所有控件及其功能,以遍历app功能。

在app运行期间,采用抓包工具获取app业务流量,在实际应用场景下,依据模拟器的操作系统的类型选择对应的抓包工具,例如,当模拟器为linux操作系统时,可以采用tcpdump抓包命令获取app业务流量,当模拟器为windows操作系统时,可以采用wireshark的dumpcap或tshark命令获取app业务流量,或者也可使用其他抓包工具,具体可以依据实际情况而定。

在抓取流量的过程中,将每个app对应产生的app业务流量进行分区放置,将每一所述app业务流量与其所属的app安装包一一对应,以使每一所述模拟业务数据与其所属的app安装包一一对应,从而便于后续确定每个模拟业务数据所述的app名称。

在获取到app业务流量后,将所述app业务流量按照预设的格式进行存储,得到模拟业务数据,其中,预设的格式可以为pcap格式,或者其他格式,具体依据实际情况而定。

其中,所述模拟业务数据可以为xdr数据,所述模拟业务数据包括host、desination_url、cookies、referer、user_agent、servername等http头部或https字段。

按照前述方式获取模拟业务数据后,在步骤102中,可以按照前述第一标签数据集相同的方式,获取app名称,具体地,在获取所述app安装包的过程中,从应用市场中爬取所述app安装包所属的app名称,或,解析所述app安装包得到所述app安装包所属的app名称。

然后,将所述模拟业务数据与其所属的app名称建立映射关系,并进行存储,得到第二标签数据集,将所述第二标签数据集添加至所述学习数据集中。

第三标签数据集建立过程:通过ua数据与包名的关联方式,建立第三标签数据集。如前述的描述,一般无法通过模拟器获取基于ios系统的业务数据,因此,现有技术中,在进行特征识别时,一般通过基于安卓系统的模拟数据建立学习数据集和业务特征树,而无法覆盖到ios系统,为了能够覆盖到ios系统,本实施例中,通过采集现网业务数据获取基于ios系统的业务数据,再通过ua数据与a包名关联的方式,确定现网业务数据对应的app名称,从而提高学习数据集的全面性和复杂性。

在实际应用场景下,从现网中获取的业务数据,无法直接识别出现网业务数据对应的app名称,为了能够将现网业务数据和产生该现网业务数据的app名称建立关联,需要依据ua数据中的app标识与包名中的app标识建立关联,以确定现网业务数据对应的app名称。

在此,需要说明的是,前述的ua数据指的是通过解析现网业务数据而得到的,ua数据中包含app标识;前述的app标识指的是,通过解析app安装包得到包名,包名中获取到的app标识。前述两种方式均可以获取app标识,只是获取的方式和对应的数据源不同,对于同一个app,其app标识是相同的,因此,可以通过ua数据和包名之间的关联关系,确定某个现网业务数据对应的app名称。

下面结合图2,具体说明建立第三标签数据集的过程。在本实施例中,可以在实际网络环境中,搜集用户使用各类app时所产生的数据,得到现网业务数据。

参阅图2,在步骤102中,具体包括如下步骤:

在步骤1021中,在获取所述app安装包的过程中,从应用市场中爬取所述app安装包所属的app名称,或,解析所述app安装包得到所述app安装包所属的app名称。

在步骤1022中,解析所述app安装包,得到所述app安装包的包名,其中,所述包名中包含所述app安装包对应的app标识,将所述包名与其所属的app名称建立映射关系。

在具体应用场景下,所述app安装包具体包括基于安卓系统的apk包和基于ios系统的ipa包。当安装包的类型不同时,获取包名的方式存在差异,可以采用如下方式,获取不同app安装包对应的包名,从而获取app安装包对应的app标识。

首先,识别所述app安装包所适用的系统类型;当所述app安装包为基于安卓系统的apk包时,从androidmanifest文件中提取app安装包的包名,其中,所述包名中包含所述app安装包对应的app标识,将所述包名与其所属的app名称建立映射关系,并进行存储。

当所述app安装包为基于ios系统的ipa包时,从propertylist文件中提取app安装包的包名(bundlename),其中,所述包名中包含所述app安装包对应的app标识,将所述包名与其所属的app名称建立映射关系,并进行存储。

如图3所示,通过解析ipa包的propertylist文件,提取该app安装包对应的app名称相关的字符段,其中,cfbundledisplayname对应的束名,即为app安装包对应的app名称;cfbundleidentifier对应束的唯一标识,即为app安装包对应的app标识。

在此,需要强调的是,ipa包解压后的propertylist文件分为两种,一种为父目录下的文件,一种为子目录下的文件,两个文件需要配合分析,得到对应的app标识和app名称。

在此,需要说明的是,某些app安装包中不包含app名称,此时,需要通过从相应的应用市场爬取该app安装包的app名称。

在本实施例中,将基于ios系统的ipa包对应的app标识以及其所述的app名称和基于安卓系统的apk包对应的app标识以及其所属的app名称,整合在一起,形成带有app名称的app标识集,以备后续关联ua数据时使用。

在步骤1023中,解析所述现网业务数据,得到所述现网业务数据中的ua数据,其中,所述ua数据中包含产生所述现网业务数据的app的app标识。

在本实施例中,所述现网业务数据为xdr格式的数据,可以使用ua提取app关键字算法提取出现网业务数据的ua数据,其中,所述ua数据中包含产生所述现网业务数据的app的app标识,将所述ua数据与其对应的现网业务数据形成映射关系后,生成ua数据集。

在实际应用场景下,需要依据现网业务数据中对应的http报文中的user-agent字段的类型进行区分化处理,得到对应的app标识。其中,user-agent字段的类型分为主流格式和非主流格式,如图4所示,两种不同格式的user-agent字段。

当user-agent字段符合主流化格式时,采用正则提取方式提取与app标识,例如,图4所示的主流格式中的字符串对应的app标识为qq。当user-agent字段符合非主流化格式时,需要使用字符串打分算法对字符串进行打分,以确定app标识。

在可选的方案中,首先使用特有分词手段对ua数据进行分词,得到多种类型的字符串,其中,按照字符串的类型可以分为公共字符串、无规则字符串和接版本号的字符串等,然后,为不同类型的字符串设置权重值,按照权重值为相应的字符串打分,将符合标准分且分值最高的字符串设置为app标识。具体而言,可以按照公共字符串分数低、无规则字符串分数低和接版本号的字符串分数高的逻辑对词组打分,选取符合标准分且分数最高的字符串为app标识。

以图4为例,a934864feba92ecd2d7d427030eeeabb626f55e8为无规则字符串,cfnetwork、darwin、mobile和applewebkit为公共字符串,5.9.5.451为版本号。

在步骤1024中,采用字符串相似性判断算法,对所述包名和所述ua数据进行识别,当所述包名内的app标识与所述ua数据中的app标识相同时,所述ua数据所属的app名称与所述包名所属的app名称相同,得到所述现网业务数据所属的app名称。

如前述分析可知,所述ua数据中包含app标识,所述包名中包含app标识,对于同一个app,其app标识是相同的,因此,可以通过ua数据和包名之间的关联关系,确定某个现网业务数据对应的app名称。

在本实施中,可以采用字符串相似性判断算法,对所述包名和所述ua数据进行识别,当所述包名内的app标识与所述ua数据中的app标识相同时,所述ua数据所属的app名称与所述包名所属的app名称相同,得到所述现网业务数据所属的app名称。

如图5所示,为app名称、包名中的app标识和ua数据中的app标识之间的关联示意图,针对返利app,app名称为“返利”,包名中的app标识为package="com.fanli.android.apps",ua数据中的app标识为fanli,通过字符串“fanli”建立包名中的app标识与ua数据中的app标识之间的关联关系,确定二者为同一app应用,从而确定业务数据所属的app名称。

在步骤1025中,将所述现网业务数据与其所属的app名称建立映射关系,得到第三标签数据集,将所述第三标签数据集添加至所述学习数据集中。

在本实施例中,第三标签数据集中包括携带有app名称的ios业务数据,可以实现双系统(ios系统和安卓系统)业务数据的特征识别,解决现有技术中,不能对ios业务数据进行特征识别的问题。

在实际应用场景下,第三标签数据集具有一定的复杂性,但是第三标签数据集的精准性有所欠缺,不过,由模拟业务数据建立的第二标签数据集具有较高的精准性,二者相互结合可以同时考虑数据的复杂性和精准性,既保证了识别率又保证了准确率。

在本实施例中,需要将业务数据中的随机特征信息或无用信息进行剔除,仅保留不会发生变更的特征(业务特征),用于后续的特征识别。需要对前述所使用的现网业务数据和所述模拟业务数据进行特征提取,构造业务特征树。

具体地,可以采用特征提取算法提取所述现网业务数据和所述模拟业务数据中的关键字段,并解析所述关键字段,确定所述关键字段是否为有效特征,当所述关键字段为有效特征时,将所述关键字段标记为业务特征,以得到包含至少一个业务特征的业务特征树。

在可选的方案中,如图6所示,在步骤103中,对所述现网业务数据和所述模拟业务数据进行特征提取,得到包含至少一个业务特征的业务特征树包括如下步骤:

在步骤1031中,采用特征嗅探算法提取所述现网业务数据和所述模拟业务数据中的关键字段。

其中,可以采用其他算法获取所述现网业务数据和所述模拟业务数据中的关键字段。

在步骤1032中,根据关键字段的加密情况和/或键值对情况,判断所述关键字段是否为有效特征。

其中,有效特征的特点是简洁、规范、无乱码、无加密或取值有限,例如,在url中的某类键值对app=com.fanli.android此类规范值可存留在特征树上,而imsi=460113019286243这种存在无限值的键值对则需淘汰并拉入特征黑名单,此过程中,需要利用现网业务数据和模拟业务数据进行统计分析配合识别。

在可选的实施例中,当关键字段被加密时,将该关键字段剔除,当关键字段未被加密时,继续确定该关键字段的键值对,当键值对取值无限时,将该关键字段剔除,当键值对取值规范时,将该关键字段标记为有效特征。

在另一个可选方案中,采用特征嗅探算法提取所述现网业务数据和所述模拟业务数据中的关键字段,可以采用字符串相似性判断算法,对多个不同的现网业务数据和模拟业务数据进行比对,判断关键字段重复出现的概率,将重复出现概率超过预设阈值的关键字段标记为有效特征。其中,预设阈值可以依据现网业务数据和模拟业务数据的数量以及对应app的种类进行设定。

在步骤1033中,当所述关键字段为有效特征时,将所述关键字段标记为业务特征,以得到包含至少一个业务特征的业务特征树。

经过前述特征筛查处理后,生成包含全网业务的业务特征树,然后通过学习数据集对业务特征树上的各个特征打上app名称,从而生成业务特征库。

在具体应用场景下,当业务特征树上的某一个业务特征与学习数据集中的某条业务数据中包含的特征相匹配时,则对该业务特征打上相应的app名称。

在步骤104中,将所述业务特征树与所述学习数据集进行特征匹配,确定所述业务特征树中的各个业务特征所属的app名称,并将所述业务特征树中的各个业务特征与各自所属的app名称建立映射关系,生成业务特征库具体过程如下:

将所述业务特征树中的各个业务特征分别遍历所述学习数据集,根据所述学习数据集标记并修剪所述业务特征树。

具体地,可以采用特征匹配的方式确定业务特征树上的各个业务特征对应的app名称,例如,当业务特征与所述学习数据集中的业务特征相匹配时,采用相应的app名称标记业务特征,并将所述业务特征树中的各个业务特征与各自所属的app名称建立映射关系,生成业务特征库。

在实际应用场景下,存在某一业务特征对应多个app名称的情况,或者多条相似特征对应同一app名称的情况,因此需要对业务特征库的进一步优化。

当存在一业务特征对应多个app名称时,进一步解析所述业务特征确定所述业务特征所携带的信息,以进行业务特征剔除或归纳为共有特征,例如,某一业务特征为同一发行商或开发者,则将该业务特征归纳为共有特征;如果该业务特征不代表发行商或开发者信息,则剔除该业务特征。在具体应用场景下,可以依据实际的衡量方式保留或剔除共有特征,在此,不做具体限定。

当存在多条相似业务特征对应同一app名称时,将所述多条相似业务特征进行整合,得到一条复合业务特征。按照前述方式对业务特征库进行修剪,得到更精准的业务特征库,以便于确定用户数据的所属的app名称。

在本实施例中,利用现网业务数据具有一定的复杂性,解决了本地抓包的模拟数据的局限性和单一性,可以消除数据盲区,保证了识别率;而且,结合app安装包、现网业务数据和模拟业务数据,可以得到复合特征,进而从多特征维度构造业务特征库,能够有效识别辨识度较低的业务数据,提高了特征识别的精准性,能够有效解决人力。

进一步地,现网业务数据中包含ios业务数据和安卓业务数据,然后通过ua数据和包名关联的方式,将ios业务数据加入到学习数据集,可以做到对双系统业务数据均识别到位,提高了业务特征识别的覆盖范围和适用场景。

实施例2:

在实际应用场景下,依据实施例1的方法产生的模拟业务数据中,会存在模拟器的设备号,由于模拟器的数量有限,因此,模拟业务数据中会存在大量包含相同设备号的数据,在进行特征提取时,会将设备号判定为业务特征,影响后续用户数据的识别。

为了解决前述问题,本实施例对实施例1中的方法进行改进,得到更精准的业务特征库。其中,大部分实现流程与实施例1相同,在此不再赘述,下文仅对存在改进的地方进行阐述。

在本实施例中,所述学习数据集包括第一标签数据集、第二标签数据集和第三标签数据集;其中,第一标签数据集的建立过程与实施例1相同,在此,不再赘述。

与实施例1相同的是,所述模拟业务数据是模拟器在安装所述app安装包后,遍历app功能时所产生的数据,其中,所述模拟业务数据中包含模拟器的设备号,所述现网业务数据是实际网络环境下,用户使用各类app时所产生的数据。

在建立第二标签数据集之前,需要对模拟业务数据进行修正,得到剔除设备号后的模拟业务数据。

具体地,获取所述模拟业务数据中重复率高于第一预设阈值的特征项,将所述特征项遍历所述现网业务数据,其中,所述第一预设阈值可以依据模拟业务数据的数量以及模拟器的数量而定,可以为20%或30%或者其他数值,其中,重复率指的是某一个特征项出现的次数与模拟业务数据数目的比值。

由于现网业务数据来自于庞大的用户群体,所以现网业务数据中设备号的重复率较小,且现网业务数据中的设备号往往与模拟业务数据中的设备号不同,可以用现网业务数据对前述筛选出来的特征项进行过滤,确定所述特征项是否为设备号。

若所述特征项在所述现网业务数据中的出现率不大于第二预设阈值,则将所述特征项标记为模拟器的设备号,并将所述特征项从所述模拟业务数据中剔除,得到修正后的模拟业务数据。其中,所述第二预设阈值依据实际情况而定,可以为0,即所述特征项没有在所述现网业务数据中出现,则将所述特征项标记为模拟器的设备号。

然后,将修正后的模拟业务数据与其所属的app名称建立映射关系,得到第二标签数据集;将所述现网业务数据与其所属的app名称建立映射关系,得到第三标签数据集;分别将所述第二标签数据集和所述第三标签数据集添加到所述学习数据集中。其中,第二标签数据集和第三标签数据集的具体建立过程与实施例1相同,在此不再赘述。

与之相类似的,设备号一般是唯一确定的,可以采用模拟业务数据对现网业务数据进行过滤,以剔除设备号。具体过程与上述类似,下面简要说明一下:

获取所述现网业务数据中重复率高于第三预设阈值的特征项,将所述特征项遍历所述模拟业务数据,其中,所述第三预设阈值可以依据现网业务数据的数量而定,可以为20%或30%或者其他数值,其中,重复率指的是某一个特征项出现的次数与现网业务数据数目的比值。

若所述特征项在所述模拟业务数据中的出现率不大于第四预设阈值,则将所述特征项标记为设备号,并将所述特征项从所述现网业务数据中剔除,得到修正后的现网业务数据。其中,所述第四预设阈值依据实际情况而定,可以为0,即所述特征项没有在所述模拟业务数据中出现,则将所述特征项标记为设备号。

然后,将修正后的现网业务数据与其所属的app名称建立映射关系,得到第三标签数据集。

实施例3:

为了更清楚明了地展示上述实施例1中建立学习数据集的过程和建立业务特征库的过程,结合图7和图8,再一次简要说明上述实施例的理念以及实现过程。

如图7所示,简要明了的展示了学习数据集的建立过程。获取app安装包,并确定app安装包所属的app名称,解析app安装包,得到url数据,为url数据打上app名称,建立第一标签数据集。

模拟器安装app安装包,抓取各个app产生的模拟业务数据,为模拟业务数据打上app名称,建立第二标签数据集。

解析app安装包,得到包名,提取包名中的app标识;获取现网业务数据,解析现网业务数据,得到ua数据,提取ua数据中的app标识。根据包名中的app标识与ua数据中的app标识的关联关系,为现网业务数据打上app名称,建立第三标签数据集。

整合第一标签数据集、第二标签数据集和第三标签数据集得到学习数据集。

其中,图8简要明了的展示了依据前述的现网业务数据、模拟业务数据和学习数据集建立业务特征库的过程。

获取现网业务数据和模拟业务数据,构造业务特征树,根据学习数据集和业务特征树,建立业务特征库。

关于建立学习数据集的过程和建立业务特征库的过程,具体请参阅实施例1和实施例2,在此,不再赘述。

实施例4:

请参阅图9,图9是本发明实施例提供的一种app业务特征库的获取装置的结构示意图。本实施例的app业务特征库的获取装置包括一个或多个处理器41以及存储器42。其中,图9中以一个处理器41为例。

处理器41和存储器42可以通过总线或者其他方式连接,图9中以通过总线连接为例。

存储器42作为一种获取app业务特征库的方法的非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1~实施例3中的获取app业务特征库的方法的方法以及对应的程序指令。处理器41通过运行存储在存储器42中的非易失性软件程序、指令以及模块,从而执行获取app业务特征库的方法的方法的各种功能应用以及数据处理,实现实施例1~实施例3的获取app业务特征库的方法的方法的功能。

其中,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至处理器41。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

关于获取app业务特征库的方法的方法请参照图1~图8及相关的文字描述在此,不再赘述。

值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(readonlymemory,简写为rom)、随机存取存储器(randomaccessmemory,简写为ram)、磁盘或光盘等。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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