首页> 中国专利> 基于App对比分析的Android应用商店可信度评价方法

基于App对比分析的Android应用商店可信度评价方法

摘要

基于App对比分析的安卓应用商店可信度的评价方法,涉及软件工程领域和程序分析领域,所述方法适用于安卓应用程序,通过对安卓应用商店中的应用程序进行采样和对比分析,找出不同类型的差异,根据不同的重要程度给定不同的权值,应用评价算法,对应用商店进行综合评价,并给出评价结果和相对排序。方法的主要步骤如下:选择应用商店,选择应用程序App样本集;搭建虚拟机环境,采集应用程序App样本;应用程序App安装文件推送和基本信息获取;各应用商店应用程序App与官方应用程序App的对比分析和结果保存;各应用商店评分计算;最终结果统计。本发明具有应用范围广、评价合理、自动化程度高、使用方面、结果展示直观等特点。

著录项

  • 公开/公告号CN105068921A

    专利类型发明专利

  • 公开/公告日2015-11-18

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201510436106.0

  • 发明设计人 董渊;吴亦颖;王耀;王生原;

    申请日2015-07-23

  • 分类号G06F11/36(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人楼艮基

  • 地址 100084 北京市海淀区清华园1号

  • 入库时间 2023-12-18 12:16:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-10

    授权

    授权

  • 2015-12-16

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20150723

    实质审查的生效

  • 2015-11-18

    公开

    公开

说明书

技术领域

本发明涉及软件工程领域和程序分析领域,特别涉及一种Android应用商店可信度评价方法。

背景技术

当前,随着移动互联网技术的快速发展,以智能手机为主的移动手持设备大大普及并不断改变和影响着大众的生活。Android系统,作为智能手机的主流操作系统之一,由Google发布并连续公布了十一个新版本,已经占据了智能手机操作系统一半以上的市场份额。App是运行在Android系统中的应用程序,随着用户数量的增加,Android应用程序的下载量已突破百亿。在中国,超过70%的用户无法获得Google服务,大量的用户依赖于第三方安卓应用商店来下载安装安卓应用。虽然Android应用的增长速度依然很快,但Google仍然允许开发者自由发布其开发的Android应用,这些应用是否可信,有待于进一步验证。由于中国的特殊国情,为了方便大众下载安装Android应用程序,在国内有很多第三方的Android应用商店可以提供安卓应用的下载。

随着智能手机的快速发展,这些第三方的安卓应用商店也快速发展起来。在缺乏合理监管以及开发者的逐利心理的影响下,这些第三方的安卓应用商店中的应用程序App的安全性成为一个疑问。随着应用程序功能的丰富,大众生活与移动应用程序的关系日益密切,一些涉及到用户隐私泄露和移动支付欺骗等方面的安全事件时有发生,一些带有恶意行为的应用程序也不断被曝光,这些问题不断引起人们对于安卓应用商店中应用程序App安全性的怀疑。

为了对Android应用商店的可信度进行评估,就必须对这些应用商店中的App(应用程序)进行分析和评估。目前,对于程序的分析方法主要分为静态分析和动态分析两种。动态分析主要是指在程序的具体执行过程中对程序进行分析,包括动态调试、动态插桩等等。对于Android应用程序,常用的动态调试分析工具不能很好的应用于Android系统,移动设备的交互也是一个很大的限制。静态分析主要是指在不执行程序的情况下通过代码扫描对程序的控制流、数据流、语法等内容进行分析。由于Android应用商店提供apk的下载,获得二进制文件之后,可用反编译工具对其进行反编译后进行静态分析。

目前,对于Android程序的分析也有一些工具,例如:Drozer、Androguard等。Drozer是一款针对Android的安全评估框架,它既可以运行在实体设备上也可以运行在虚拟机中,在无需打开USB调试模式和其他开发者选项的情况下,对Android手机进行扫描,并发现暴漏出来的潜在安全隐患。Androguard是一款针对AndroidApk反解析的工具。它可以反解析apk内部的xml文件,获取apk资源目录结构,获取权限列表。

然而,这些工具都有其各自的局限性,没有哪一款工具能够对Android应用程序进行全面的分析,目前也没有相关的组织或个人对于Android应用商店的可信度这一问题发表相关研究报告。

针对这一问题,本发明系统地提出了一套针对Android应用商店可信度的评价方法,并通过软件的方法实现了该评估系统。该系统通过建立模拟环境,采集应用程序样本,通过一系列的工具对不同应用商店的应用程序进行对比分析,将各阶段的分析结果给出对应的量化评分,通过数学建模的方式将各阶段的评分进行计算,得出最终评分和相对排名,并将结果展示出来。

发明内容

本发明的目的在于提供一种基于App对比分析的Android应用商店可信度的评价方法。

本发明的特征在于,是一种基于对比分析的App文件评价方法,是在评价用虚拟机中依次完成以下步骤实现的:

步骤(1)按下述条件离线选择Android应用商店,简称应用商店,下同:

所述Android应用商店至少包括:预安装的、手机生产厂商的、搜索引擎公司的、电商的以及移动运营商的应用商店在内的各类专门的应用商店,

所述条件是指:只要在注册用户数量,日均用户访问量、月累计下载量或日累计下载量、商店可供下载的应用数量这四个条件中有任何一条满足预设的下限阈值就认为符合条件;

步骤(2)应用程序App的种类和应用程序样本集大小的选择:

按当前智能手机用户安装的应用程序的种类和平均应用程序App的数量而定,App样本集大小的取值为25;

步骤(3)应用程序App样本的采集:

用步骤(1)中的每一个所述应用商店的ID命名一台对应的Android虚拟机,在其中安装对应的所述应用商店的客户端,并从所述应用商店中下载并安装应用程序App,构成样本集,再从每个应用程序App所对应的官方网站下载所述App样本集需要的应用程序App并安装在命名为official的虚拟机中,所有应用程序App数据的采集必须保证在同一天完成并更新到当日的最新版本;

步骤(4)完成应用程序App的安装文件简称apk文件的推送和所有应用程序App基本信息的录入:

在安装虚拟机的实验机器中建立一个文件夹作为保存安装文件的共享目录,把每个装有应用商店客户端的虚拟机和所述的official虚拟机中的apk文件推送到所述共享目录下的相应文件夹中,并把安装的所有应用程序App的基本信息以及所述apk文件在共享目录中的文件路径、版本信息都保存到便于检索的文件或软件中;

步骤(5)按以下步骤对从各所述应用商店下载并安装的应用程序App与官方网站下载并安装的应用程序App进行对比分析,并保存结果:

步骤(5.1)所述官方应用程序App与应用商店应用程序App的一致性检测,其中至少包括包名、版本号、SHA256校验和在内的涉及整体异同方面的比较,比较结果分为:

I(identical):一致,

M(SHA256-mismatched):校验错,

L(lowerversion):版本低,

H(higherversion):版本高,

N(packagenamemismatchedduetofalse-returned):包名错误,

E(corruptedapkfiles):包损坏,

步骤(5.2)所述官方应用程序App与应用商店应用程序App的安装文件apk的内容差异比较,得到下述六类结果:

首先对apk文件中的数字签名进行比较;然后再根据manifest文件中所列出的每个文件进行逐个比较,比较的结果被分为以下6类:

S:数字签名改变,

C:关键文件内容改变,至少包括权限文件AndroidManifest.xml,以下简称manifest、Java可执行文件.dex、本地可执行的库文件.so在内的直接影响所述应用程序的运行的那些关键文件,

R:资源相关文件的改变,至少包括资源文件目录res和assets下的图片、声音、视屏在内的文件的改变,

F:无法定位manifest中程序清单中的文件,

D:有文件被删除,

X:有新增加的文件,

在比较时首先对安装文件apk中的数字签名进行比较,然后再根据所述manifest文件中的所列出的每个文件进行逐个比较;

步骤(5.3)按以下步骤对步骤(5.2)中得到的有差异的权限文件进行进一步的详细分析:

首先将存在差异的所述权限文件AndroidManifest.xml转化为可读格式,之后对转化后的上述权限文件中的XML元素进行对比,并保存所有的差异,以所述差异是否涉及用户的权限修改为准则,把比较结果分为以下四种:

AX0表示XML树完全相同,

AX1表示所述差异不影响用户界面及所述应用商店的应用程序App的正常运行,与所述官方应用程序App在使用效果上无显著差别,

AX2表示所述差异不影响所述应用商店的应用程序App的正常运行,但至少在用户的感官效果、对用户设备的适应性上与所述官方应用程序App相比,存在明显缺陷,

AX3表示所述差异可能造成用户隐私数据泄露、产生安全隐患和用户软硬件设备的损坏;

步骤(5.4)运行于Android系统的Dalvik虚拟机中的java可执行代码dex文件的对比分析:

步骤(5.4.1)对所述dex文件进行类级别classlevel的比较,类的增加、删减、改变的部分将被分别列出,

步骤(5.4.2)对所述dex文件进行函数级别methodlevel的比较,步骤如下:

步骤(5.4.2.1)把所述dex文件对应的安装文件apk分别转换为中间代码文件,

步骤(5.4.2.2)捕获每个中间代码文件中的包括内部调用在内的所有函数调用,

步骤(5.4.2.3)对其中SHA256校验和不一致的两个中间代码文件中的所有函数调用做逐个比较,确定:新增加的函数、删除的函数以及函数内部新增加的以及删减的函数调用,

步骤(5.4.2.4)对步骤(5.4.2.3)的结果按下述方式处理:

DC0:凡是对比结果一致的,表示没有修改,标记为0,

DC2:凡是有不一致的都标记为2;

步骤(5.5)本地可执行的库文件.so,简称.so文件的分析,其差异包括删除、增加或修改了.so文件中的内容,其中被修改的.so文件,将通过导出符号表的不同来体现,结果分为如下两类:

SC0:两者完全一致被标记为0,

SC2:导出信息不同,增加或删除某些.so文件,标记为2;

步骤(6)用safe、warning、critical三种等级描述步骤(5)得到的分析结果:

a.Safe:安全

Identical(I):所述应用商店的应用程序App与官方的应用程序App完全一致,

Higherversion(H):所述应用商店的应用程序App的版本高于官方应用程序App的版本,

Zero-modification(ZM):表示零修改,虽然SHA256检验和不一致,但经过各模块的分析后一致,

Zero-impactmodification(ZI):表示零影响修改,有些修改对于用户界面和程序执行流程没有影响;

b.Warning:警告

Corruptedapkfiles(E):所述应用商店的应用程序的安装文件apk是损坏的,Modificationsonresource-relatedfiles(R):被修改的文件只是与资源相关的至少包括音频、视频在内的文件,

LowerVersion(L):所述应用商店中的应用程序App的版本比官方应用程序App版本低,可能存在漏洞或bug,

False-returned(N):用户实际下载到的应用程序App并不是真正想要下载的应用程序App;

c.Critical:危险

Modificationsoncriticalfiles(C):所述权限文件、.dex文件、.so文件被修改,Signaturechanged(S):所述应用程序App的数字签名被修改;

步骤(7)通过计算应用商店的应用程序App样本集的评分对应用商店进行总体评价:

步骤(7.1)规定:

Safe等级中的选项产生正得分,Warning和Critical等级中的选项产生负得分,步骤(7.2)所述应用商店中应用程序App的正得分总和P(s),通过各选项对应的应用程序App的个数和相应的权重系数计算,公式如下:

P(s)=I(s)*e+H(s)*f+Z(s)*gT(s)

I(s)表示被标记为identical(I)的应用程序App个数,

H(s)表示被标记为高版本higherversion(H)的应用程序App的个数,

Z(s)表示被标记为无修改或无影响的修改的应用程序App的个数,

T(s)表示从所述应用商店下载的应用程序App的总数,

其中权重系数e=100,f=100,g=90;

步骤(7.3)所述应用商店中应用程序App的负得分总和N(s),由Warning部分的负得分Wa(s)和Critical部分的负得分Cr(s)求和得到,公式如下:

Ne(s)=Wa(s)+Cr(s)

其中,Wa(s)表示应用程序App含有Warning中选项所产生的对应负得分:

Wa(s)=E(s)*j+R(s)*k+(L(s)+N(s))*1T(s),

E(s)表示被有损坏的应用程序App的个数,

R(s)表示资源文件被修改的应用程序App的个数,

L(s)表示版本低于官方版本的应用程序App的个数,

N(s)表示包名不匹配的应用程序App的个数,

其中权重系数j=10,k=20,l=30;

Cr(s)表示应用程序App含有Critical中选项所产生的对应负得分:

Cr(s)=A(s)*m+C(s)*n+B(s)*q+S(s)*rT(s)

A(s)表示权限文件被修改的应用程序App的个数,

C(s)表示Java可执行代码文件被修改的应用程序App的个数,

B(s)表示本地可执行库文件被修改的应用程序App的个数,

S(s)表示数字签名被修改的应用程序App的个数,

其中权重系数m=60,n=80,q=80,r=100;

步骤(7.4)所述应用商店总得分TR(s)通过正负得分求和得到,计算公式

如下:

TR(s)=P(s)-Ne(s);

步骤(8)结果显示。

本发明的优点在于:应用范围广,能够对任何一个Android应用商店进行可信性评价;评价方法合理,该系统较为全面的考虑了Android应用商店中app异同的各个方面,并进行了细粒度的分析对比,整个系统对于各类异同的安全隐患进行充分评估,并赋予不同的影响权值,在样本数据的选择方面也充分贴近用户的实际使用习惯;自动化程度较高;使用方便、直观。

附图说明

图1,示出评价方法的设计思路。

图2,示出评价系统流程图。

图3,示出评价系统前端功能示图。

图4,示出App对比过程示意图。

图5,示出20家安卓应用商店的App可信度评分分布。

具体实施方式

本发明所述设计思路如图1所示,具体方法通过软件系统的方式实现,基本流程如图2所示,在该系统中具体采取以下步骤进行:

步骤(1):根据调研分析结果确定要评估的应用商店的数量N,下载安装虚拟机,使用该软件新建N+1个Android虚拟机,并将其中N个虚拟机的名称改为对应的商店名在数据库中的ID,剩余的一个改为official。

步骤(2):在N个Android虚拟机中安装相应的应用商店客户端,并分别使用各自的客户端下载安装要分析的app样本集中的App。在名称为official的虚拟机中安装App样本集中所有App的官方版本,所有工作必须在同一天完成,并及时更新,保证采样数据在时间上的一致性。

步骤(3):在数据库中建立设计好的相应数据表,在N+1个Android虚拟机中安装评估系统的前端XTrasApp,分别运行每个虚拟机中的XTrasApp程序,该程序会将所有App的基本信息写入数据库,并将所有的apk文件推送到设置好的共享目录下的相应文件夹中,其功能示意图如图3所示。

步骤(4):运行评价系统的主要分析程序,其程序执行过程如图4所示。

步骤(4.1):在对比分析之前,先将共享目录下每个apk文件的路径推送到数据库中。完成推送之后检查数据库,由于某些文件的包名存在异常,需要手动将实际存在而没有录入的apk文件的路径补齐。

步骤(4.2):运行主体对比分析程序,完成图4中所示的各对比分析过程,并将结果存入数据库中。

步骤(5):通过浏览器发出页面请求,后台将评分计算结果返回,并以图的方式显示出来,实例评分结果展示如图5所示。

以上实施方式仅用于说明本发明,而非对本发明的限制,相关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

本发明具有如下优点:

1.应用范围广:通过上述描述可以看出本发明的应用范围比较广,可以对任意数量的Android应用商店进行可信性评估。评价方法不受限于具体的应用商店、时间范围、App数据集的选择;使用资源限制小,在个人PC上也可以完成整个评估过程。

2.评价方法合理:本发明的方法能够较为全面的考虑Android应用商店中App异同的各个方面,并进行了细粒度的分析对比;在分析过程的各个阶段中影响权值的设定方面,通过对各类异同的安全隐患进行充分评估,赋予不同的影响权值;在样本数据的选择和采集方面也充分贴近用户的实际使用习惯。

3.具有一定的创新性:本发明为了对Android应用商店进行较为合理的可信度评价,整合了一些传统的对比方法,提出了新的评估算法,考虑了各个方面的影响因素,综合评估。

4.自动化程度高:根据本发明编写的工具,只需做很小的修改就可用于不同的Android应用商店的可信度评价,大多数操作都可完全自动完成。

5.使用方便、结果直观:使用本发明的方法对Android应用商店进行可信度评价时,除去某些模拟用户行为的操作之外,整个过程手动介入少,使用方便,结果的展示直观、明了。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号