登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 外文翻译 > 计算机类 > 计算机科学与技术 > 正文

克隆or亲戚? 理解相似安卓应用的根源外文翻译资料

 2022-09-07 14:47:23  

Clone or Relative?:

Understanding the Origins of Similar Android Apps

Yuta Ishii Takuya Watanabe

Waseda University Waseda University

Tokyo, Japan Tokyo, Japan

watanabe@nsl.cs.waseda.ac.jp yuta@nsl.cs.waseda.ac.jp

Mitsuaki Akiyama Tatsuya Mori

NTT Secure Platform Waseda University

Laboratories Tokyo, Japan

Tokyo, Japan mori@nsl.cs.waseda.ac.jp

akiyama.mitsuaki@lab.ntt.co.jp

ABSTRACT

Since it is not hard to repackage an Android app, there are many cloned apps, which we call “clones” in this work. As previous studies have reported, clones are generated for bad purposes by malicious parties, e.g., adding malicious functions, injecting/replacing advertising modules, and piracy. Besides such clones, there are legitimate, similar apps, which we call “relatives” in this work.These relatives are not clones but are similar in nature; i.e., they are generated by the same app-building service or by the same developer using a same template. Given these observations, this paper aims to answer the following two research questions: (RQ1) How can we distinguish between clones and relatives? (RQ2) What is the breakdown of clones and relatives in the official and third-party marketplaces? To answer the first research question, we developed a scalable framework called APPraiser that systematically extracts similar apps and classifies them into clones and relatives. We note that our key algorithms, which leverage sparseness of the data, have the time complexity of O(n) in practice. To answer the second research question, we applied the APPraiser framework to the over 1.3 millions of apps collected from official and third-party market-places. Our analysis revealed the following findings: In the official marketplace, 79% of similar apps were attributed to relatives while,

in the third-party marketplace, 50% of similar apps were attributed to clones. The majority of relatives are apps developed by prolific developers in both marketplaces. We also found that in the third-party market, of the clones that were originally published in the official market, 76% of them are malware. To the best of our

knowledge, this is the first work that clarified the breakdown of “similar” Android apps, and quantified their origins using a huge dataset equivalent to the size of official market.

Keywords

mobile security, Android, repackaging, large-scale data

1. INTRODUCTION

Android is an open-source operating system used for mobile devices such as smart phones. Android is one of the most popular mobile device platforms widely used in the world. Worldwide shipments of Android smart phones exceeded 1 billion units in 2014 [3].The number of Android apps available on Google play has exceeded 1.8 million as of November 2015 [7]. Of the millions of Android apps that can work on a billion smart phones, it is known that a non-negligible number of apps were replicated from the original apps. For instance, through the analysis of 23K apps collected from six different third-party marketplaces, Zhou et al. [22] reported that 5 to 13 % of apps hosted on third-party marketplaces were repackaged. They also reported in Ref. [21] that “piggybacked apps”,which added malicious payloads to legitimate apps, accounted for 0.97 to 2.7% of 85K apps they collected. In this work, we generally call those repackaged apps “clones”. The high number of clones stems from the fact that repackaging an Android is not a hard task. In fact, there are several tools that can systematically repackage apps [1]. As previous studies have revealed [22, 21], many of the clones are created for malicious purposes, e.g., inserting advertising modules that were not present in the original version, replacing accounts used for ad libraries, and/or inserting a malicious code that steals privacy-sensitive information. While these clones add malicious payloads to the original apps, there is another class of clones —pirated apps — that illegally repackage/crack paid apps. The existence of these clones are harmful not only for end-users but also for many other stakeholders such as app developers, copyright holders, and marketplace providers. Besides clones, there are apps that are not clones but are unintentionally similar to each other, i.e., they have mostly similar appearances and behaviors. As we shall present in this paper, such similar apps originate from two categories: apps generated with app building frameworks/services and apps developed by the same developer, possibly with a fixed template. In this work, we generally call those unintentionally similar

apps “relatives”.Both clones and relatives are the apps that are similar to other

apps in nature. However, we need to distinguish between clones and relatives because the former apps are harmful and should be removed from marketplaces. Given these backgrounds in mind, this paper aims to answer the following two research questions through the analysis of Android apps in the wild:

RQ1: How can we distinguish between clones and relatives?

RQ2: What is the breakdown of clones and relatives in the official and third-party marketplaces?

剩余内容已隐藏,支付完成后下载完整资料


克隆or亲戚?

理解相似安卓应用的根源

Yuta Ishii Takuya Watanabe

早稻田大学 早稻田大学

摘要

自从重新包装一个安卓应用已不再是难题,就出现了很多克隆应用,这就是我们这个领域所称之为的“克隆”。正如先前研究所报道的 ,克隆被恶意用户用于不良目的,例如:添加恶意功能,注入或更换广告模块以及盗版。除了这样的克隆之外,也有一些合法的,类似的应用程序,在我们领域称之为“亲戚”。这些亲戚不是克隆,但在本质上是类似的,即,他们是由同一应用构建服务或由相同的开发人员使用相同的模板。鉴于这些观测,本文旨在回答以下两个研究问题:(RQ1)我们如何区分克隆和亲戚?(RQ2)什么是官方和第三方交易市场的克隆和亲戚的崩溃?回答第一个研究问题,我们开发了一个可扩展的框架称之为应用集中器,它能系统地提取相似应用并且将他们分为克隆和亲戚。我们注意到,我们的关键算法,数据的杠杆作用稀疏,在实践中有O(n)的时间复杂度。回答第二个研究问题,我们将集中器框架应用到超过一千三百万来自官方和第三方市场的地收集到的应用程序。我们的分析结果表明:在官方市场,79%相似的应用程序是亲戚,在第三方市场上,50%的类似应用归因于克隆。大多数亲戚应用都是由在两个市场的多产的开发人员所开发。我们还发现,在第三方市场,即最初发表在官方市场的克隆,其中76%是恶意软件。据我们所知,这是澄清“类似的”Android应用程序的崩溃,并利用庞大的数据集等同于官方市场规模的量化它们的起源所做的第一项工作。

关键词

移动安全、安卓、再装配、海量数据

  1. 介绍

安卓是一个用于智能手机等移动设备的开源操作系统。Android是一个最流行在世界各地广泛使用的移动设备平台。全球Android智能手机的出货量在2014年超过10亿部。Android应用在谷歌Play提供的数量在2015年11月已超过180万。数以百万计的Android应用,可以在十亿部智能手机上工作,正如我们所知,一个不可忽略的数量的应用是从原始的应用程序中复制而来。例如,通过对周某等人对来自六个不同的第三方交易市场所收集的23K的应用程序进行分析。报道称,依托于第三方交易市场的应用有5〜13%经过重新包装。他们还报告文献。被称为“捎带应用”,及其中新增的恶意程序被负载为合法的应用程序,占他们收集的85K应用的0.97〜2.7%。在这项工作中,我们通常称重新打包的应用程序为“克隆”。大量克隆的事实表面,重新包装一个Android已不是一个艰巨的任务。事实上,有几个工具可以系统地重新打包的应用程序。正如先前的研究已经表明,许多克隆被用于恶意目的,例如,在原始版本中插入本不存在的广告模块,取代用于广告库帐户,和/或插入窃取隐私敏感信息的恶意代码。虽然这些克隆添加恶意的有效载荷到原来的应用程序,还有另一类克隆--强盗应用程序 -- 非法重新包装/裂缝付费应用。这些克隆的存在不仅是对最终用户有害,也对许多其他利益相关者,如应用程序开发者,版权持有人,和市场供应商有害。除克隆之外,还有些应用程序不是克隆,但又在不经意间彼此相似,即它们大多有相似的外观和行为。正如我们将在本文中介绍的,这种类似的应用程序有两类来源:一、应用建设框架/服务,二、由同一开发商运用固定模板开发的。在这项工作中,我们一般称那些无意相似应用为“亲戚”。克隆和亲戚本质上都类似于其他应用。然而,我们需要区分克隆和亲戚,因为前者应用是有害的,应该远离市场。鉴于这些背景,本文旨在在自然条件下通过对Android应用的分析回答两个研究问题:

(RQ1) 我们如何区分克隆和亲戚?

(RQ2) 什么是官方和第三方交易市场的克隆和亲戚的崩溃?

作为解决第一个问题的方案,我们开发了一种名为应用集中器的轻量级的框架,它能自动提取类似的应用程序,并将其分类成克隆,亲戚和其他类。应用集中器框架的核心思想是采用三级策略;它首先提取使用类似外观的应用进行分析。然后提取使用几种固有的指纹的亲戚,如开发者的身份和应用程序包的名称。

最后,它通过码差分分析和抗病毒检查将克隆区分开来。解决第二个研究问题,我们使用应用集中器框架研究来自官方和第三方市场的超过130万的应用程序。

在两个不同类型的市场分析出版应用,使我们能够对克隆和亲戚进行区域内和跨市场的分析。我们强调的是,虽然我们的方法有一定的局限性,在第七节将会讲到,集中器框架的可扩展性好,使我们能够进行分析数以百万记的应用程序;因此,我们可以理解在外传播克隆的整个画面。

我们广泛的分析显示以下结果:在官方市场上,类似的应用程序,79%归因于亲戚,而在第三方市场上,类似的应用程序,50%归因于克隆。大多数亲戚都在这两个交易市场由多产开发者开发。我们还发现,在第三方市场,最初发表在官方市场的克隆,其中76%是恶意软件。

本文的其余部分安排如下。第2节是对APP集中器框架的概述。第3,4,5节描述的分别是提取类似的应用程序的方法论,亲戚和克隆。第6节介绍我们通过对集中器框架数据集的分析中获得重要发现。第7节讨论了APP集中器框架和未来的研究方向的限制,我们还讨论了对恶意克隆的可能对策。第8总结他们的后期工作。在第9节中总结我们的工作。

2、APP集中器框架的概述

在本节中,我们描述了目标和应用集中器框架的概述。应用集中器的目标是从给定的一组应用程序中提取克隆和亲戚。这里的关键挑战是在一个可伸缩的方式下应对大量的应用。满足这一点,应用集中器采用我们将在下文所描述的三阶段战略。

下面描述了APP集中器框架的高级别概述。在第一阶段中,APP集中器框架使用外观分析提取类似应用,这将在第3节进行说明。提取的类似的应用程序是根据相似性来度量的。对于每个集群,应用集中器框架通过检查应用程序的元数据来标识原点应用,例如:市场上的身份证号码,数量的下载,或发布日期等等。在第二阶段中,鉴定框架提取亲属,其组有成两类:大规模生产;经销商的建造,这是一个多产的开发所产生的应用程序,并分别应用建设框架/服务,所产生的应用程序。提取亲属的区分两个类别细节将在第4节中给出。在第三阶段,集中器框架提取和分类的克隆,由四类构成:恶意软件,广告软件,可疑的应用程序和广告注入的应用程序。为此,我们采用杀毒软件检查器和代码差异分析。提取的亲戚的细节将在第5节给出。我们也讨论剩下的应用程序的崩溃,即其他应用程序。

  1. 相似应用的提取

在本节中,我们描述了集中器框架如何提取类似的应用程序。其核心思想是通过检查他们的外表来衡量两个应用程序之间的差异。我们采用外观的原因来自以下观察测量提取相似。我们采用的外观作为一项措施来提取亲戚的原因来自于以下几个观察。当一个应用程序是故意克隆,它的外观很可能保持不变。例如,由于创建恶意克隆的目的是通过伪装成一个真实的一个吸引最终用户,没有任何理由改变它的外观。对于亲戚,我们实验中发现,大多数的应用程序也有类似的资源,除了表面形貌如应用或应用程序图标的名称。因此,我们可以假设,最类似的应用程序都与原有的类似的外观。事实上,在检测类似的应用程序通过资源文件。我们注意到,虽然这些研究中检测类似的应用程序相同的方法,他们并不认为克隆和亲戚之间的区别。在下文中,我们首先描述我们用来提取Android应用程序文件的信息的方法。接下来,我们提出从大量的应用程序中提取类似的应用程序的外观分析。我们还提出我们如何汇总提取类似的应用程序到集群中。

3.1、处理APK文件

一个Android应用程序都附送了一个APK格式。一个APK文件是由开发人员证书,清单文件,DEX文件和资源/资产的文件档案。开发者证书可用于提取有关应用程序的开发者的信息。清单文件包含有关应用程序的基本信息。例如,它德克拉雷斯的权限来访问资源。通过仔细的清单文件中,我们可以检查哪些权限添加/从原始应用程序中删除。DEX文件包含的Dalvik字节码,其中的Dalvik是执行上的Android OS应用程序的虚拟机。 DEX格式文件可以通过使用工具来拆卸诸如smali [15]。再次,通过仔细分析smali码,我们可以检查其中添加/从原始应用除去API函数。资源文件和资产文件被用来控制一个应用程序的外观。它由定义屏幕的布局的XML文件,图像文件,声音文件等。我们如何使用这些信息将在下面描述的方式。

3.2、集群类似的应用程序并确定在集群产地应用

我们已经提取的应用程序对。现在,我们将汇总到应用集群,使用算法2所示的贪心聚类算法设随机是返回随机选择的元素在集合注意。因此,聚类算法是重量轻和工作快。我们注意到,获得簇并不总是优化。然而,通过使用不同的随机种子的几次试验,我们凭经验证实,所得到的结果是不给我们的关键发现敏感。因为我们的目的是研究在野外类似的应用程序的来历27,我们决定选择更好的扩展性,而不是更好的精度。我们在第七章进一步讨论这一问题,每个集群,我们确定的原始应用下列标准:对于正式上市,我们考虑一个应用程序是原来的,如果它有下载的集群中的应用中的最大数目。对于第三方市场,我们使用的应用程序的ID作为一个启发式的市场:由于规则制定。由于ID是按顺序递增,集团类似的应用程序中,用最少的ID应用程序很可能是一种原始的应用程序。我们注意到,如果实际的原始应用在我们的数据丢失的这些方法可能会失败;即,在一个集群中所有的应用程序可能是所有的亲戚或克隆。我们将在第6章讨论这一问题。

  1. 亲戚的提取

本节介绍了鉴定框架如何提取亲属的应用程序。其核心思想是应用,表明应用是由一个多产的,相同的开发商产生或与应用程序生成框架/服务生成指纹。这是很自然的由同一人开发的应用程序都没有在我们的语境克隆。我们所考虑的克隆是由谁不与原来的应用程序的作者相关的局外人开发的应用程序。在下文中,我们提出每个类别以及如何鉴定框架提取其中的细节。

4.1、大规模生产的应用

据报道,有几个多产的开发者发布大量的应用。我们观察到发布的应用程序开发人员往往是相似的。虽然不是决定性的,我们猜想,这些多产的开发人员需要使用相同的模板,包括公共资源、在一个短的时间发布大量的应用。此外,外包公司开发Android应用程序可能使用相同的模板,甚至自己开发快速应用程序开发框架来生成应用程序。一样使用相同的模板或添加开发框架可能会引入一些相似性应用程序开发。我们称之为大规模生产应用。开发人员可以从两个渠道获得的信息:开发人员证书和开发人员的名字。开发人员证书可以从APK文件中提取。数字证书的格式为X.509 V3。我们从给定的证书提取公钥,并使用它作为一个指纹。我们注意到一个开发人员可以使用不同的成对的秘密/公钥签名证书。应对这种情况下,我们放宽条件;我们从给定的证书提取关键特征的主题。即,我们生成一个元组,组织名称(O)和地点(L),并使用它作为一个指纹。此外,开发人员在软件开发公司等组织可以使用不同的彼此不相关联的证书。应对这种情况下,我们进一步放宽条件;我们使用可以从应用程序中提取的并发布在一个市场开发人员的名字。总之,提取大规模生产应用,我们从应用中获得证书以及开发人员的名字。接下来,如果至少有两个完全相同的公钥,相同主题的证书,或开发人员的名字的应用程序,我们称之为大规模生产应用。我们将在第六节说明大规模生产应用的例子。

4.2、自动生成的应用程序

有几个基于云的应用程序建设服务,如iBuildApp[11]或BIZNESS应用[9]。这些服务提供了一个直观的Web界面,使开发人员能够生成一个多平台的应用程序,而无需编写代码了。在这项工作中,我们称这样的服务自动创建的应用程序开发的应用。据了解,应用建筑服务和内置的应用程序列表往往不必要安装许多权限,并把该权限调用API整合到代码[18]。自动创建的应用程序也倾向于用,即使很多人不使用公共资源发货。因此,资源和自动创建的应用的代码相似彼此即使它们分别由不同的开发者开发的。我们将在第六节说明自动构建应用程序的例子。我们注意到,这种方法显然有局限性;例如,如果一个应用程序构建服务提供任意包名称,这种方法失败。尽管当前流行的方法似乎很好服务得工作,但是我们在未来可能需要解决这种情况。我们设想,应用构建服务应该离开工件某种形式的足迹。

  1. 提取/分类的克隆

我们首先提取两类恶意克隆,恶意软件和广告软件。我们的假设如下。如果应用程序B可能来自于合法的原始应用重新打包和应用程序B被检测为恶意软件/广告软件,我们认为该应用程序B是应用A.在这个假设的基础上的恶意克隆,我们首先检查是否鉴于类似的应用程序是恶意软件或广告软件。我们注意到,我们检测恶意软件/广告软件克隆只有原籍的应用程序是合法的;即起源应用并没有列为恶意软件/广告软件。由于这项工作的目的不是提出新的检测恶意

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[146625],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图