收藏 分销(赏)

基于软件分析的Android应用重打包检测与防御研究.pdf

上传人:自信****多点 文档编号:639454 上传时间:2024-01-22 格式:PDF 页数:7 大小:879.58KB
下载 相关 举报
基于软件分析的Android应用重打包检测与防御研究.pdf_第1页
第1页 / 共7页
基于软件分析的Android应用重打包检测与防御研究.pdf_第2页
第2页 / 共7页
基于软件分析的Android应用重打包检测与防御研究.pdf_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 卷第 期计算机应用与软件 年 月 基于软件分析的 应用重打包检测与防御研究刘天一周延森崔见泉(国际关系学院信息科技学院北京 )收稿日期:。国际关系学院国家安全高精尖学科建设科研专项()。刘天一,硕士生,主研领域:网络安全,模式识别。周延森,副教授。崔见泉,硕士生。摘要基于 操作系统智能手机应用程序的重打包由于其低成本、高收益等特性而成为了攻击者的首选。从软件分析的角度构造出特定的重打包行为作为数据样本,对目前流行的基于相似度和代码特性等开发的重打包检测系统进行分析与性能测试,并基于测试结果结合自解密代码和软件水印等技术设计一个改进的重打包防御框架。该框架不需要额外的数据集或原应用作比对,兼

2、顾了针对重打包行为的自动防御以及软件开发者的版权所有权声明,增加了重打包攻击的难度,从而减少潜在重打包行为的发生。关键词 应用程序重打包检测软件分析混淆中图分类号 文献标志码 :(,),引言 作为智能手机主流操作系统,其恶意软件数量在移动恶意软件中所占比重超过 且快速上升。攻击者将重新打包的应用程序作为其恶意行为的传播媒介,降低了其本应自行开发的成本与难度,同时也利用了原合法软件的受欢迎度和可信度。文献 表明 应用市场中 的应用是被重新打包过的。国内外针对 应用重打包的研究目前多集中在相似度比对上。等 提出的 工具使用最长公共子序列()算法来测量两个应用程序之间的相似性;等 提出了一种基于 结

3、构相似性的克隆程序检测方法;等 提出的 方法基于多维相似性,包括整个应用程序相似度、资源相似度、代码相似度、联合策略进行相似度计算;汪润等 提出了一种基于深度学习的 重打包应用检测方法,并利用 网络学习程序的语义特征表示,实现重打包应用的检测;沈月东 提出的 重打包行为分析技术,通过进行非第三方库代码部分的 调用的统计和聚类,以应用对的形式检计算机应用与软件 年测出重打包和被重打包的应用;熊鹰 提出的基于用户角度的重打包检查方法,通过用户端特征提取以及服务端相似应用匹配实现重打包检测。基于相似度的重打包检测方式面临的最大问题是需要有足够的数据集来对比分析,如未能与原合法应用程序匹配则难以判定,

4、且基于相似度的软件水印、软件胎记多数只能作为知识产权侵权行为被发现后的追责依据,并不能从根本上解决剽窃、重打包攻击等问题。同时,随着软件分析技术的发展,仅依靠相似度的重打包检测为攻击者绕过或欺骗检测所设定的门槛与难度也在随之降低。相关研究工作 重打包原理)逆向。应用程序通常由 语言开发编写,编译成 文件,转换为一个可以在 平台的 虚拟机上运行的 文件,最后将字节码 文件、描述权限信息等内容的 文 件、资 源 文 件 打 包 在 一个 文件中。作为解释型语言,高度抽象的特性也意味着其易被反编译,随之衍生出的逆向工具也在很大程度上降低了 应用重打包行为的工作量。其逆向流程如图 所示,其中,是被最广

5、泛使用的开源 逆向工程软件,可以将 字节码反编译成 代码,然后再生成 的重打包版本;或商用软件 可以对 代码进行直接处理与调试,并能展示出与源代码几乎相同的 代码;可以借助 等反汇编方式生成 文件进而解压得到 代码。图 文件逆向)重打包。应用程序的开发周期普遍较长,原软件开发者付出了大量成本。然而,重打包 的成本普遍较低,难度也较小,图 展示了 应用程序重打包的基本流程。图 应用程序重打包流程应用程序开发者发布 ,用户通过 或第三方应用市场下载软件到移动设备,由于“下载”行为不存在身份鉴别,攻击者同样能够以合法用户身份从应用市场下载 文件到本地。通过自动化反编译或人工分析,从 文件中能够获取到

6、可读性较强的 代码、文件与资源文件等,并经由逆向工具进一步获得接近于原程序的 代码。基于以上文件,攻击者通过修改 代码、库或向其他资源文件添加恶意代码片段或针对广告进行增添或替换,将修改后的文件再通过 等工具重新打包成 文件,使用官方的 开源项目私钥将重打包软件签名合法化,上传到应用市场,诱导用户下载使用。重打包后的应用会保留一些特性,如与原 有一定程度上的代码相似性、与原 有着不同的开发者签名。应用市场多以此为依据,结合恶意行为分析和短时间段内的模拟运行,判别一个 是否安全和能否被发布。目前重打包的防御措施多集中于提升攻击者的攻击难度以及重打包行为发生后的判定上。自解密代码自解密代码 ()是

7、在程序特定分支中依赖于分支内常量通过加密或 等方式对代码块进行处理,保障语义等价的前提下重写原分支,替换后仅可以通过动态运行实现自动解密恢复,第 期刘天一,等:基于软件分析的 应用重打包检测与防御研究文献 论证了其可靠性的基础理论依据。在借鉴文献 的基础上,本文所设计的 结构如图 所示。首先对条件分支中表达式的常量(记为 )使用不可逆的处理(如单向 )得到一个新常量,以此实现对原常量 的隐藏。之后将常量 与实时计算生成的校验码 一同作为密钥对分支中全部代码和划分后的部分水印信息进行加密操作,并用加密得到的乱码形式代码替换源代码。图 结构当运行到该分支时,程序会实时计算校验码并执行解密操作从而完

8、成自动解密,还原源代码和这部分的水印信息。其中变量 是程序运行到这一分支时变量中所存储的值,理论上应与 相等,因而用同样随机串对变量 的值进行同样处理,会得到一个与 相等的值,以上做到了对含有常量 的原表达式的等价转换。由于原常量 已经通过 的替换实现了不可逆的隐藏,且由原常量 生成 的过程存在着一个无法预测的随机值,再加上 算法的单向性,从而提高了从 到 的还原难度,作为密钥组成部分的 就成为了只有原开发者知道的信息。因此,预测常量 的方法一种是根据程序上下文语义结合数据流分析等方式合理推断,但由于通过 算法转换程序最后的呈现大部分是无实际意义的乱码,难以完成单纯的静态分析;另一种是在动态运

9、行过程中从变量 进行突破。软件水印软件水印是将特定数据 作为水印嵌入程序 中,得到一个其水印难以被轻易检测和移除的新程序。水印的目的不是阻止应用程序被非法使用,而是证明其所使用的软件和算法的所有权,从而辅助知识产权权益保护、打击盗版。水印分为静态和动态、明显可见和隐藏不可见,文献 利用 构造的水印即属于无须加以隐藏的动态软件水印。基于软件分析的 重打包检测研究本文针对 应用重打包检测在软件分析领域所面临的挑战,分析其检测方式在目前可预计的规避策略,从而设计开发出更为可靠的重打包防御方案。实验设计由于多数 重打包检测研究并未公开代码和数据集,本文首先使用合法应用程序集借助混淆、自解密代码等技术构

10、造特定数据样本,并简要实现了基于代码相似度的检测算法,复现了 、等开源重打包检测工具的检测过程。实验具体流程如图 所示。针对不同类型的重打包防御方式,论文相应地设计了不同的绕过检测或妨碍防御的策略,以此来对重打包检测算法进行有针对性的测试及分析。图 实验设计 自解密代码的实现及数据集构造本实验数据集分为合法 、简单处理的重打包 、利用混淆等处理意图绕过检测的重打包 三部分。其中,本文默认从 官方应用市场下载得到的应用均为合法应用(实际上可能会存在约 的重打包应用),对其进行简单的逆向、修改和重打包后即构成了第二部分数据集,而构造第三部分数据样本时的处理如下:)混淆相关处理。本文首先对重打包程序

11、进行基础混淆操作,包括:名字改编,即将域名、方法名、类名、包名等有实际意义的标志符替换成无意义的相 计算机应用与软件 年对较短的字符串。在不影响程序语义的前提下修改修饰符。加入无效代码对方法的实现结构进行调整。方法参数转换。常量计算替换。)自解密代码构造。本文通过自解密代码技术为意图绕过重打包检测的数据集构造提供进一步的辅助。作为一种有效的重打包防御方式,但本文认为其主要思想同样也可以成为攻击者对抗重打包检测的技术之一。本文在 代码层面,借助第二节中 的自加密 自解密框架和信息不对称理论,实现了一个简易版本的自解密代码转换器,其中,利用的单向函数为 ,对称加解密算法为 ,随机串的添加在本文所编

12、写的 方法中实现。以程序 为例,其在 代码层面经过混淆、自解密代码转换等处理后得到的等价代码如程序 所示,可以看出二者直观结构呈现不同,但二者功能上并不存在差异,编译运行后得到同样的运行结果。程序 原始代码 ()()();程序 经过混淆、自解密代码转换等处理后的代码 ;(;)()“”:(,),);(,),);(,),);:;(,),);:;另一方面,对于较为复杂的程序,本实验利用开源的混淆工具,从编译器层面而非直观的代码层面进行混淆等处理。实验及结果分析检测算法的主要思想是在开发者签名不同的前提下对于一个从非官方渠道获取的未知来源的 ,通过在已知是合法、非重打包的众多数据集中逐一两两进行相似性

13、比对,计算其相似度。相似度越高(即越接近 )则说明这个未知来源的 是重打包的可能性更大,相似度最高值所对应的合法 被认定为其重打包的对象。本文利用前文所构造的数据样本对基于相似度的重打包检测算法进行对抗测试,具体步骤为:)从可靠性较高的应用市场随机选取 文件(记作 )下载到本地。)借助 工具对 文件进行解包与反编译,如图 所示。图 对 文件进行反编译与重打包)使用逆向工具得到 代码。)添加或修改代码片段得到文件 。)对 采用前文所述混淆等方法进行转换,用于妨碍重打包检测,得到 。)使用 分别对 、重打包生成 文件 、。)将生成的两个 文件分别放入重打包检测系统中检测,分别记录各系统关于是否为重

14、打包应用所做出的判定。)通过 平台模拟器验证应用程序本身功能完整性是否被破坏。)对检测算法的表现进行评估与分析。上述相似度重打包检测步骤如图 所示。图 相似度重打包检测流程第 期刘天一,等:基于软件分析的 应用重打包检测与防御研究 实验主机为:和 的 。由于一个完整的 应用规模较大,包含上万个文件,尽管本文复现算法时已尽可能简化了检测过程,基于相似度的检测算法仍需数小时的判定时间。基于此我们仅在小规模测试集中实验,针对实验的分析主要基于代码层面。图 展示了重打包文件与原 文件的相似度得分(即 ),若作者签名不同而相似度很高则可以判定其是重打包应用。图 计算两个 文件的相似度本实验默认 为合法应

15、用,将其作为基准分别计算 和 与该应用的相似度,从而对二者是否为重打包程序进行判断。通过对比针对同一 的两个不同重打包版本 与 在检测中表现出来的差异,以及进一步统计检测系统在不同情况下的漏报率,可以推测出本文在构造特定重打包行为时所采取的混淆、自解密代码转换等技术对重打包检测算法所造成的影响。实验结果如表 所示,本文构造数据样本时混淆等处理降低了重打包应用与原应用的相似度,使其低于重打包攻击行为的判定阈值,从而在一定程度上欺骗了检测系统。本文所复现的检测算法没有针对代码以外的信息进行处理,将两个包括作者签名在内完全相同的 文件(其相似度高达 )判定为重打包,而 可以对 文件的签名做出识别,将

16、其正确判定为作者相同,即“非重打包”,如图 所示。但现实中 应用市场在正式发布应用前都至少会对其签名进行最基本的验证与校对,验证时即可获知作者信息,因此对持有相同作者信息的 重打包判定可暂不作考虑。表 检测性能对比比较对象基于代码相似度基于控制流相似度 原 与原 判定为重打包 判定为重打包 判定为作者相同重打包 与原 判定为重打包 判定为重打包相似度数值均极高混淆等处理后的重打包 与原 的程序被判定为重打包 的程序被判定为重打包相似度数值较之前均有所降低针对于仅完成了重打包的 文件,基于相似度的检测算法均能以很高的准确率检测出其重打包行为(本实验在重打包过程中仅采取较为简单的人工修改或添加,且

17、判定阈值设置较低,真实情况不一定会达到如表 所示百分之百正确率和零漏报率)。针对本实验处理后的重打包测试样本,其与原文件的相似度数值呈明显降低。实验结果显示混淆、自解密代码转换等方法使得多数重打包 与原 文件的相似度降至基于代码相似度算法的判定阈值之下,从而存在很大概率可成功绕过此类型的重打包检测。重打包攻击防御的改进 系统框架上文分析了软件分析技术为目前被广泛应用的三种重打包检测方法所带来的影响,基于此,本文综合了以 等技术为依据的检测或防御算法,在此基础上提出一种改进的重打包防御框架,如图 所示。图 重打包攻击防御系统框架 应用开发者在编写完程序代码后:)将源代码进行自动化程序分析,其环境

18、与软件 计算机应用与软件 年测试保持一致即可,在这个过程中:对程序结构进行一定的转换与优化,使之便于后续的水印嵌入和 生成,同时也起到混淆的作用,从而降低程序的可读性;对可利用的分支语句进行标记,如程序规模较小则利用不透明谓词添加可利用的分支。)构造水印信息并进行切分和压缩等处理。)结合自解密与自防御算法,将水印嵌入程序,同时对代码进行加密处理,生成自解密代码。)将代码与资源等文件打包、签名和上传到应用市场待审核。随后,权威 应用市场会对 进行初步检测,在模拟环境下进行运行测试。在测试过程中运行到 时,正常情况下程序会自动进行解密还原,若无法进行解密则显然会因为乱码从而导致程序运行崩溃,此时权

19、威应用市场即可根据程序运行错误的提示判定该 有缺陷或有被重打包的可能,拒绝发布该应用。而通过了初步检测以及模拟运行测试的 会被发布到 应用商店供用户下载。用户从应用商店等多种渠道下载 到智能移动设备上,若该应用为合法应用,程序会逐步自动解密还原,用户可以在没有额外附加感受的前提下正常使用;若该应用是被重打包过的,程序存在很大的概率会在运行到某处时由于自解密失败而崩溃。此时该程序便无法继续运行,在一定程度上阻止了该重打包应用继续危害用户设备的可能,程序的崩溃也为移动设备使用者发出了该应用可能存在问题的警示,用户可以采取卸载程序以及举报该程序等行为。应用市场收到用户的反馈后会对该可疑应用进行进一步

20、筛查和更细致的审计。若该 仅为运行错误则提示更新修复,若该 确实存在恶意行为则下架该应用并对发布者进行一系列惩罚。如果该应用为恶意的且已经对移动设备使用者造成了损失,则需要进一步借助水印中所携带的信息来判定该应用是否为重打包以及责任归属问题。改进分析由于自防御代码 意图以程序崩溃作为重打包的代价从而阻止重打包攻击,而自解密代码则是借助 嵌入软件水印 ,我们希望可以通过优化水印的构造方式来降低嵌入的成本,从而将二者结合,既可以实现让重打包 自动暴露以达到防御效果,又可以在重打包攻击发生后通过水印所携带的作者信息、发布信息等进行版权保护或恶意行为的责任判定。同时在此基础上结合其他重打包检测与防御系

21、统的优势设计出一个更为可靠的防御框架。经过处理后的 既可以在水印与载体代码之间建立内在依赖,将二者加密为一个 段,从而更好地将软件水印融合到程序之中,并提升攻击者移除或篡改水印的成本;又可以利用程序完整性校验码等构造密钥以实现重打包应用的自动化防御;在此基础上引入的加密算法,作为一种重要的混淆技术,也在一定程度上提升了程序的复杂性,使得攻击者阅读代码和重构代码更加困难。随着软件分析领域的发展,程序综合等技术使得条件分支语句也就是初始 的各个“入口”是可以以自动化分析的形式找到并基于概率求解的,这使得攻击者以低于重开发的成本重打包一个被 保护的 应用成为了可能。因此,我们的框架在 生成前加入一个

22、步骤,先对源程序进行程序分析以及类似于混淆技术的代码转换处理,以此来增加攻击者自动化求解的难度。本框架的优势之一是让 应用程序开发者、移动设备使用者、应用市场三方全都参与到重打包的防御中来。开发者可以以自身的操作对代码加以保护从而从根本上阻碍他人的剽窃行为,而不是将版权保护寄托于检测能力参差不齐的第三方应用市场、在他人重打包攻击行为发生后才进行耗时耗力的追责;用户也可以通过程序的运行崩溃感知重打包行为,从而阻止恶意应用继续存在于移动设备之上。结语软件分析技术的发展既使攻击者绕过检测、对抗防御、降低攻击成本成为了可能,同时也为重打包防御提供了提升的空间。本文分析了目前常见的重打包检测算法,构造了

23、特定数据样本及绕过检测的策略进行测试,并基于此设计一个综合的重打包防御框架。本文的不足之处在于,没有对提出的方案进行完整的实现与测试评估,仅通过第二节中实验所得出的结论来辅助验证改进设计的合理性,且仅在代码层面而非编译器层面实现了 。参考文献田振洲,刘烃,郑庆华,等 软件抄袭检测研究综述 信息安全学报,():,:,():(下转第 页)第 期张昱:需求一致性的软件工程方法 关联条目,提示或通知用户。()管理变更。工具能够在不同角色之间定义流程和表单,实现完整的需求变更申请、审批和通知流程。某些工具还具有基线管理功能,能够对比基线差异。()状态统计。工具能够跟踪和统计需求的状态(例如:已提出、已接

24、受、已批准、已实现、已验证、已删除、已否决等),生成统计图表,便于管理人员从需求实现的角度掌握项目进展。在商业竞争和开源社区的推动下,需求管理工具推陈出新。一些需求管理工具是项目管理套件的一部分,另一些工具支持扩展,能够与其他管理软件协同实现需求到任务计划、需求到测试、需求到缺陷的跟踪管理功能。一些工具向云端应用和移动端应用延伸。一些工具是 工具链的组成部分。很多工具采用 架构从而支持异地多团队协作开发。企业和组织可以根据自身需要,选择合适的需求管理工具。结语需求管理人员要有足够广阔的视角,面向软件研制全生命周期的工作产品和主要活动,实施基于用户需求的一致性管理。在用户需求规模不断增长的同时,

25、对需求管理的要求也越来越精细和精准,恰当选择和有效使用工具,能够对需求管理工作有所助益。参考文献 ,软件需求(第 版)李忠利,李淳,霍金健,等译 北京:清华大学出版社,刘姝,程胜 航天软件需求工程 北京:中国宇航出版社,任甲林 术以载道 软件过程改进实践指南 北京:人民邮电出版社,中国人民解放军总装备部 军用软件研制能力成熟度模型:北京:中国人民解放军总装备部,:(),:,:,:,(),:,:,:,(),:,:,:,():,(),:(上接第 页),:,:,:,():汪润,唐奔宵,王丽娜 :基于 网络的 重打包应用检测方法 通信学报,():沈月东 重打包应用行为分析系统设计与实现 北京:北京邮电大学,熊鹰 基于用户角度的安卓重打包应用检测系统的研究与应用 北京:北京邮电大学,周旷 基于代码水印的 应用重打包自检测技术研究 成都:电子科技大学,():,:,:

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服