当前位置: 首页 > 专利查询>清华大学专利>正文

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

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

【技术实现步骤摘要】

本专利技术涉及软件工程领域和程序分析领域,特别涉及一种Android应用商店可信 度评价方法。
技术介绍
当前,随着移动互联网技术的快速发展,以智能手机为主的移动手持设备大大普 及并不断改变和影响着大众的生活。Android系统,作为智能手机的主流操作系统之一,由 Google发布并连续公布了十一个新版本,已经占据了智能手机操作系统一半以上的市场份 额。App是运行在Android系统中的应用程序,随着用户数量的增加,Android应用程序的下 载量已突破百亿。在中国,超过70 %的用户无法获得Google服务,大量的用户依赖于第三 方安卓应用商店来下载安装安卓应用。虽然Android应用的增长速度依然很快,但Google 仍然允许开发者自由发布其开发的Android应用,这些应用是否可信,有待于进一步验证。 由于中国的特殊国情,为了方便大众下载安装Android应用程序,在国内有很多第三方的 Android应用商店可以提供安卓应用的下载。 随着智能手机的快速发展,这些第三方的安卓应用商店也快速发展起来。在缺乏 合理监管以及开发者的逐利心理的影响下,这些第三方的安卓应用商店中的应用程序App 的安全性成为一个疑问。随着应用程序功能的丰富,大众生活与移动应用程序的关系日益 密切,一些涉及到用户隐私泄露和移动支付欺骗等方面的安全事件时有发生,一些带有恶 意行为的应用程序也不断被曝光,这些问题不断引起人们对于安卓应用商店中应用程序 App安全性的怀疑。 为了对An droid应用商店的可信度进行评估,就必须对这些应用商店中的App (应 用程序)进行分析和评估。目前,对于程序的分析方法主要分为静态分析和动态分析两种。 动态分析主要是指在程序的具体执行过程中对程序进行分析,包括动态调试、动态插粧等 等。对于Android应用程序,常用的动态调试分析工具不能很好的应用于Android系统, 移动设备的交互也是一个很大的限制。静态分析主要是指在不执行程序的情况下通过代码 扫描对程序的控制流、数据流、语法等内容进行分析。由于Android应用商店提供apk的下 载,获得二进制文件之后,可用反编译工具对其进行反编译后进行静态分析。 目前,对于Android程序的分析也有一些工具,例如:Drozer、Androguard等。 Drozer是一款针对Android的安全评估框架,它既可以运行在实体设备上也可以运行在虚 拟机中,在无需打开USB调试模式和其他开发者选项的情况下,对Android手机进行扫描, 并发现暴漏出来的潜在安全隐患。Androguard是一款针对Android Apk反解析的工具。它 可以反解析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(package name mismatched due to false-returned):包名错误, E(corrupted apk files):包损坏, 步骤(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转化为可读格本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105068921.html" title="基于App对比分析的Android应用商店可信度的评价方法原文来自X技术">基于App对比分析的Android应用商店可信度的评价方法</a>

【技术保护点】
基于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(lower version):版本低,H(higher version):版本高,N(package name mismatched due to false‑returned):包名错误,E(corrupted apk files):包损坏,步骤(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文件进行类级别class level的比较,类的增加、删减、改变的部分将被分别列出,步骤(5.4.2)对所述dex文件进行函数级别method level的比较,步骤如下:步骤(5.4.2.1)把所述dex文件对应的安装文件apk分别转换为中间代码文件,步骤(5.4.2.2)捕获每个中间代码文件中的包括内部调用在内的所有函数调用,步骤...

【技术特征摘要】

【专利技术属性】
技术研发人员:董渊吴亦颖王耀王生原
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1