对智能手机端安卓程序重打包的检测技术外文翻译资料

 2022-12-16 11:56:46

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


对智能手机端安卓程序重打包的检测技术

作者:Sajal Rastogia, Kriti Bhushana, B. B. Guptaa

刊载:Dept. of Computer Engg., National Institute of Technology Kurukshetra, Kurukshetra, 136119, India

摘要

智能手机的恶意软件影响问题已被世界各地的研究者们广泛关注,大多数恶意软件的目标是Android操作系统。研究发现,大部分的Android恶意软件隐藏在重新打包的应用程序中来进入用户设备。重新打包的应用程序通常是流行的应用程序被感染的版本。下载一个流行的android应用,获取代码使用反编译后,加入自己的代码(通常是恶意的)并重新包装和释放应用程序。一些技术和一些商业杀毒产品将重心放在了检测恶意软件上。这是传统的方法,需要一个签名数据库。瞬间攻击往往无法被发现。有许多技术,重点是检测重新打包的应用程序。重新打包程序大多数是被感染的Android应用程序,他们可以节省用户使用到Android恶意软件的百分比。检测和预防重新打包也有利于原开发商/发行商的收入或名誉不受损害。

本文sbquo;我们详细研究一下包装检测技术。主要有2种技术——离线与在线。他们为目的不同的服务。离线技术不能被一个在线技术所代替,反之亦然。离线技术是直接使用的应用程序的市场拥有者,而在线技术是直接使用的安卓用户。我们进行了离线和在线技术的研究。这些技术使用不同的功能和指标来检测应用程序的相似性和他们是他们的技术类别的代表。

1. 简介

安卓是最有针对性的智能手机操作系统。据F-Secure的统计,新的移动恶意软件家族中,97%都以android为目标。这是令人难以置信的。仅在2014年的第一季度,275个新的安卓威胁软件被f-secure确定。与此相比,其他的智能手机操作系统的威胁数量要低很多。本文作出了一个非常有用的观察,86%的Android恶意软件sbquo;以及73%的恶意软件集成sbquo;使用重新打包的应用程序作为传播介质和安装。重新包装一个应用程序的恶意软件是非常容易的,而原本应用程序的普及,有助于恶意软件迅速传染各种设备。许多重新打包的应用程序的广告收入由原来的出版商重定向至攻击者。

现有能够检测应用程序重新包装的技术可以分为离线和在线两种。离线技术可以用于审核应用程序市场。离线检测技术从一个或多个市场的数以百万计的应用程序中检测重新打包的应用程序。相比精确性,可扩展性成为这些技术更重要的特点。在线技术是在用户设备上执行工作的重要部分。他们通常检测是否有应用程序在安装时间进行打包。可能有一些修改,应用程序需要去通过在安装前进行在线技术的有效性。我们将在文章中同时讨论这两种技术。

本文由以下几个部分组成。第二部分介绍了Android安全sbquo;APPsbquo;和包装检测包装技术。第三部分sbquo;我们透露了一些关于Android操作系统的应用程序和应用程序sbquo;sbquo;包装包装检测。第四节讨论了各种技术要求来检测包装突出独特的功能。第五部分给出了关键点的第四部分。最后,第六部分总结全文并讨论了未来的工作范围。

2.Android应用程序打包

在程序重新打包的过程中,可以通过攻击者来修改应用程序。这些所做的修改可能是以下的一种或多种:用攻击者的库替换原有的API 库;如果应用程序中使用了一些广告的话,重定向程序的广告收入;加入一些广告程序;在现有的方法中引入恶意代码;添加方法/类专门用于引入恶意代码。经过必要的修改sbquo;攻击者可以重新打包(APK文件)。攻击者用她的私钥以及在META-INF目录中对应该私钥的公钥来对应用程序进行加密。这应用程序在一些将用户当做猎物的非官方市场上发布。一些包装检测/威慑方案假设攻击者想要使原本的应用程序得到普及,以迅速感染大量的用户。因此sbquo;他们在假设的元数据工作重新打包的应用程序是原来的应用程序非常相似。另一方面sbquo;一些解决方案假设攻击者是重新包装现有的应用程序,因为她想节省创建HOST的时间/精力。在这种情况下sbquo;攻击者可以显着她重新包装版本的元数据的变化。唯一的方式在这样的情况下,以检测相似性是比较每个和每一个应用程序的功能/代码。第三可能的情况下,即使功能改变不能被称为重新包装。

3.Android应用程序重新包装检测技术

这部分介绍了研究者们用于检测重新打包应用程序的更好的技术。不过需要了解的是,这些技术并不完美。如果一个技术迫使攻击者进行更多地修改sbquo;并且使得重新打包的成本变高,从而让攻击者无法获得利润sbquo;则那么这项技术将会令人满意。

3.1.andarwin

名为andarwin的离线工具由库赛尔的文章提及,可扩展性是任何离线工具的先决条件。事实上sbquo;andarwin创作者的主要焦点都放在了可扩展性上。利用局部敏感哈希(LSH)和minwise哈希算法(MinHash),andarwin实现了次二次时间复杂度。这些哈希技术使得有无需实际比较每一个应用程序,即可检测到类似的程序成为可能。从方法的应用sbquo;andarwin源代码构建程序依赖图(PDGS)使用只有在代码中的数据依赖关系。相比控制依赖,数据依赖的混淆是非常困难的(昂贵的)。在建设PDG对应每个连接组件的每个PDGsbquo;一个语义向量的构造,捕捉信息,如不同的编程类型和频率构建现状。然后sbquo;LSH使用散列函数获取语义向量,nearneighbors集群。因此,andarwin后期的任务就是找到类似的应用程序所在在集群sbquo;即不需要比较属于不同的集群的不同应用程序。

3.2.appink

周的文章中提到了appink在Android应用程序中嵌入水印,如果应用程序不带水印或水印不真实的话,即可认为它是一个重新打包的应用程序。不过在java代码中嵌入水印并不容易sbquo;一个Android应用程序可以有多个切入点。如果发者理解语义和句法结构的话,便可以选择合适的地方插入水印。appink不会直接将水印值插入应用程序的源头。它被设计成将水印的值(字符串转换sbquo;数sbquo;等)转换成一个不同的数据结构(图形),然后再转化成java水印代码。执行此代码生成对应于水印值的数据结构的实例。作者指出,水印方案的识别部分应该是自动的。识别部分appink延伸的Dalvik虚拟机(DVM)使所有对象引用关系可以扫描(和当登录)审查应用程序运行sbquo;清单App提供输入事件。记录文件搜索参考关系模式,可以获取水印图,然后解码获得相应的值,并且可以验证它是否与开发者的水印相同。

3.3.apklancet

杨的文章中提出,apklancet依靠droidmoss识别应用程序的恶意有效载荷。apklancet并不会维持签名数据库sbquo;也不识别恶意的有效载荷。它使用androguard来完成这些任务。识别、删除恶意的有效载荷后,apklancet会做出假设,那就是恶意的有效载荷在APK中是相对独立的。作者认为sbquo;程序执行时sbquo;载荷运行在一个单独的工作流程中。他们还认为,整合的恶意软件和应用程序代码是可逆的。它没有指定如何确定一个广告或插件是由原开发商还是攻击者者插入。apklancet的功能是净化和重新包装,并不会指定获得开发商的私人密钥。如果使用一个新的密钥,则apklancet应用程序的开发者/发行商不能够更新应用程序(任何同一开发者的APP资源共享都将失败)。

3.4.appintegrity

VIDAS等人研究数千款Android应用程序后发现,Android恶意软件使用重新打包作为传播介质。他们使用不同的策略,并使用virustotal10研究和扫描收集的程序。为确保应用程序从非官方市场下载的多样性sbquo;他们使用的一些策略是:根据市场在搜索引擎上的搜索热度来选择市场;用不同的语言在搜索引擎上搜索APP;下载通过解压缩后才能成为APK文件的非APK文件。在官方市场sbquo;他们模仿有效的市场以自动获取assetID;使用不同的参数值以用于请求sbquo;滤波sbquo;网络载体sbquo;地理区域sbquo;装置硬件等。用的退避机制进行自动下载因,为官方市场不允许在一个给定的时间和给定的请求进行过多次数的下载。市场请求会强制从官方市场下载应用程序。作者反编译了智能手机上的官方市场客户端(播放商店),以获得请求参数、用户名、密码、设备标识符和SDK版本。再将参数使用在模拟请求之中,以让官方市场不能区分它是否是一个合法的请求。这些请求中获取的assetID,可以独立用于下载应用程序。

作者还提出了一种检测方法,用于检测一个应用程序是否重新打包。但是这一技术面对这如何让应用程序的私有密钥与原始公钥相对应。他们建议在网络上使用它对应于应用程序包名称的地址。这一机制将失败,因为攻击者可以简单更改包的名称,并在相应的网址上提供她自己的公钥。

3.5.基于质心检测

陈认为没有同时具备可扩展性以及精准性的用于检测应用程序是否重新打包的方法。可扩展性以及精准性都是离线技术审核应用程序市场所必须的性能。作者提出了质心的概念sbquo;同时声称能够同时达到上文所提的两种性能。对于可扩展性,这里使用了一种过滤技术,基于比较控制流图(CFG)质心的方法。质心是CFG的几何性质。由于CFG没有物理现实sbquo;他们需要将其投影到三维空间之中,使得质心的概念可以得到应用。获得根据在CFG的大小获得投影的时间复杂度是线性的。三维分配给了CFG的每个节点以得到质心。第一维(序列号)以节点的执行顺序为基础进行分配。对于条件语句相同的节点sbquo;指令可能因执行的不同而不同。一个静态的质心sbquo;如这些节点的相对数或二进制值语句。这些静态的标准可以很容易由于攻击者的攻击而造成混乱。第二个维度是节点向外输出的边数sbquo;第三个维度是节点包含的对象数。

这一方法的最大缺点是假设如果攻击者使用了混淆法sbquo;重新打包的应用程序将会得到认真或是与原程序十分相似。相比起混淆代码的数据依赖性,混淆控制依赖性对于攻击者而言更为容易。

3.6.dnadroid

dnadroid的第一步是将搜索引擎结果中出现的应用程序聚集起来,dnadroid运用solr13搜索工具来实现这一步。以应用程序的元信息(姓名sbquo;市场名称sbquo;出版商sbquo;描述等)进行搜索,并返回拥有相似的元信息的应用程序。类似的应用程序被放置在一簇。如果在搜索引擎的结果中没有出现类似的应用程序,则可以在第一步中出现假阴性。这将不被视为dnadroid的缺点,因为重打包是一个社会工程攻击,很明显的是攻击者并不会进行主动的攻击。如果重打包程序没有与原来的应用程序一同出现在搜索引擎的结果中,则无论如何都不会被用户下载到。

第二步sbquo;重编译工具用来获取程序的jar文件,返回一个对应于应用程序的每个方法的PDG(JAR文件)。属于同一集群的应用程序作为潜在的打包组sbquo;因此sbquo;只需要比较他们的PDGS。一个集群中被比较的组数目是该集群中应用程序PDGS总数的二次方。在比较PDGS之前sbquo;dnadroid使用一组过滤器来剔除与重打包组高度不相似的组。要重新对不大可能的过滤器。具体地讲,一个过滤器去除那些不足以描述任何应用的功能并可能导致假阳性的PDGS。其他过滤器去除对每种类型的PDG节点在类型和频率有所不同的组。这些过滤器可以帮助攻击者逃避dnadroid的检测。需要做的将重包装应用程序的方法分成许多小的方法,这将改变新的sbquo;较小的PDGS节点类型的频率。

第三步,PDGS的相似性使用基于子图同构的VF2运算法则决定。A与B的相似性可以得出B中有多少与A相似的代码。B与A的相似性可以得出A中有多少与B相似的代码。相似性的衡量标准是不对称的,并且具备明显的优势。如果攻击者在重打包程序中加入了许多自己的代码,那么重打包程序与原程序的相似度将会变得非常小。但是,原程序与重打包程序的匹配度却会变大。

3.7.droidmarking

仁提出了一种称为droidmarking的技术,它提供了一种方法来插入不稳定的水印而且能够阻止重新打包的攻击。这一技术需要对运行时的应用程序代码进行解密,他们提供一个本地library来做完成这一任务。作者强调,最大的缺点是隐形水印的局限性,这一限制使得水印识别不能被公开,这一限制也将制约应用程序市场和其他授权方。他们的技术不稳定的原因(有可能被公开),是将程序正常执行过程中生成的值作为加密水印代码的密钥。加密确保水印识别没有存储“未公开地点”的水印代码段是隐藏的,因为没有任何秘密。事实上sbquo;开始和结束的加密段是明确标识容易解密和确保这些段的完整性。

加密增加了应用程序运行的一次性开销。执行消耗是因为每个加密段sbquo;都有着伴随着水印代码的源代码sbquo;在用户设备上的第一次执行过程中需要被解密。并且不会被再次加密。加密也需要一个小调整,Dalvik虚拟机(DVM)。DVM应该运行在非优化模式,所以加密的程序段不能修改在字节码优化。droidmarking也需要确保本机库它需要的解密不应该本身受到损害。它执行完整性检查,也应在完全加密段的开始时保证调用正确的解密功能。

3.8.droidmoss

周提出droidmoss这一技术,他们扫描了近23sbquo;000应用程序。他现5%到13%的应用程序是经过重新打包的。对打包攻击的花费进行估计是该研究的主要目的。他们的研究还着重于寻找原因,重新打包的使用主要是用来重定位广告收入。他们说,市场需要一个审查过程。droidmos

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


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

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。