Android 恶意软件中一种新型基于工具的反静态分析技术及其有效对策
《Information and Software Technology》:A new tool-based Anti-Static Analysis Technique in Android malware and effective countermeasures
【字体:
大
中
小
】
时间:2026年09月02日
来源:Information and Software Technology 4.6
编辑推荐:
摘要背景:Android 的广泛采用导致了恶意软件的激增,促使人们做出广泛努力来分析、检测和缓解此类威胁。恶意软件分析通常采用静态、动态或混合方法,但对手通常会部署反静态分析技术(ASATs)和反动态分析技术(ADATs)以阻碍逆向工程和行为分析。对抗恶意软件的一个关键因素是
摘要背景:Android 的广泛采用导致了恶意软件的激增,促使人们做出广泛努力来分析、检测和缓解此类威胁。恶意软件分析通常采用静态、动态或混合方法,但对手通常会部署反静态分析技术(ASATs)和反动态分析技术(ADATs)以阻碍逆向工程和行为分析。对抗恶意软件的一个关键因素是确保分析工具能够有效绕过这些技术。
目标:本工作揭露了 Java 库 java.util.zip.ZipFile 中存在的一个漏洞,该漏洞影响了 Apktool 和 Jadx 等广泛使用的静态分析工具。利用这一缺陷,某些恶意软件采用了一种此前未记录在案的 ASAT——Malture,以防止工具分析其代码。
方法:为了验证发现的漏洞并评估其普遍性,我们最初分析了 Android 恶意软件数据集(AMD)。为了进一步评估所发现漏洞的泛化能力,我们将分析范围扩展到了更新且更全面的 AndroZoo 数据集。
结果:我们发现 AMD 中 19,239 个恶意软件样本中有 13 个积极利用了 Malture。而在包含 157,268 个随机选择的应用程序(恶意软件、弱恶意软件、良性软件和未知软件)的 AndroZoo 数据集情况下,我们识别出 6661 个包含 Malture 的应用程序。进一步的评估表明,这种 ASAT 可以轻松集成到任何恶意的 Android 应用程序中。我们提出了有效的对策来修补漏洞并中和 Malture,从而实现强大的静态分析并恢复工具功能。我们的解决方案显著增强了分析工具对此类 ASAT 的韧性。此外,我们引入了面向冲突的恶意软件反分析检测(COMAAD)方法,用于在未来系统地发现已知和未知的恶意软件反分析技术。
结论:我们的研究揭示了 Malture 作为一种新型 ASAT,它利用了 Android 分析工具中的一个关键漏洞。通过提供对策并提出 COMAAD 框架,我们加强了静态分析的韧性,并为系统地揭示未来的恶意软件反分析策略奠定了基础。
引言
今天,Android 是智能设备的主导操作系统,Android 应用程序的数量正在迅速增加。这一趋势一方面促使恶意软件的出现和增长,另一方面则需要付出巨大努力来识别、分析和理解这些恶意软件的行为以对抗它们。可以通过静态、动态和混合方法来进行恶意软件分析并理解其行为机制。在静态分析中,可以基于对二进制文件或源代码的分析,在不执行程序的情况下发现潜在行为;而在动态分析中,可以通过执行并检查执行跟踪来理解程序的实际行为。混合分析受益于静态分析和动态分析两者的优势。
由于其恶意性质,恶意软件会采用反分析技术来防止分析。能够将静态/动态分析转化为具有挑战性和困难的过程,降低其成功率,或使其变得漫长的技术称为反静态分析技术(ASAT)/反动态分析技术(ADAT)[1]。值得注意的是,ASAT 和 ADAT 技术除了被恶意软件利用外,在软件开发中也有积极的应用。软件开发者为了确保软件的安全,既为了保护知识产权,也为了防止恶意代码注入程序,会开发和使用 ASAT/ADAT 技术[2]。
在静态分析中,分析员旨在不执行程序的情况下提取程序行为。程序行为可以使用各种工具获得,提取敏感数据和方法调用等。然而,如前所述,静态分析可能会受到众多 ASAT 的挑战,如代码混淆、重新打包、包重命名、标识符重命名、数据加密、字节码加密、主体加密、代码重排、间接调用、死代码插入、函数内联和外提、反射、动态代码加载、原生代码使用以及自定义虚拟机使用[3]。虽然这些技术可能会阻碍分析,但最近的研究表明,其中一些可以被有效缓解。例如,ValDroid [4] 可以精确解析反射并解密如加密字符串等数据,而 DroidRA [5] 提供了在许多情况下解析反射的静态方法。
理解恶意软件的恶意性质并分析其运行机制,是对其采取防御措施的必要条件 [6]。因此,分析工具的成功率对对策的成功具有重大影响,而它们在对抗恶意软件反分析时的失败可能会带来不良后果。这突显了发现和解决恶意软件反分析技术(无论是静态还是动态)的必要性,即使存在部分解决方案。
许多 ASAT 和 ADAT 已被先前识别,解决它们的方法或多或少是已知的。大多数现有的反分析技术都基于使用恶意代码来挑战静态或动态分析过程(基于代码的反分析技术)。还有一些其他恶意软件试图利用分析工具中的漏洞来采用新的反分析技术,挑战并降低分析工具的有效性(基于工具的反分析技术)。这需要持续检查分析工具并识别潜在漏洞及由此产生的反分析技术。然而,据我们所知,很少有工作考虑到这类反分析技术。
在我们对 Android 恶意软件分析的研究过程中,我们注意到 Apktool 和 Jadx 静态分析工具在尝试使用 Java 库 java.util.zip.ZipFile 解压某些 APK 文件时存在一个问题。这个 Java 库在处理某些具有特定文件名称格式的文件进行逆向工程时,会引发“无效的 CEN 头(错误的条目名称)”错误消息,导致整个解压过程及后续过程失败。然而,该 APK 文件可以轻松安装并在 Android 操作系统以及 Android 模拟器上执行,没有任何问题。这个问题显示了静态分析工具(尝试处理文件但未能成功)与 Android 操作系统(能够毫无问题地安装和执行 APK 文件)之间的一种冲突。我们的见解是,这是一个 Android 恶意软件可以利用来挑战静态分析的漏洞。为了确保这一点,通过检查 AMD 仓库 [7], [8] 中 1999 年至 2016 年期间的 19,239 个恶意软件样本,我们发现该集合中有 13 个恶意软件样本利用了上述漏洞。由于包含此问题的恶意软件可以轻松安装在 Android 模拟器环境中执行,这表明恶意软件开发者在意识到上述漏洞后,已经利用它来挑战静态分析。我们将这种由畸形文件名称结构引起的新型基于工具的 ASAT 命名为 Malture。
为了进一步验证我们的发现在 AMD 仓库之外的泛化性,我们将分析扩展到了 AndroZoo 数据集 [9]——这是向研究社区提供的最大、最全面的 Android 应用程序集合之一,包含从包括官方 Google Play 商店在内的多个来源聚合的超过 2700 万个 APK。从 AndroZoo 中,我们随机选择了 157,268 个应用程序,涵盖四个不同的类别:恶意软件、弱恶意软件、良性软件和未知软件,时间跨度为 2017 年至 2026 年。我们的系统分析显示,6661 个应用程序(4.23%)包含 Malture ASAT。详细的市场分布分析进一步显示,这些感染中有 4702 个(70.6%)源自 Google Play,其中 3885 个(82.6%)被 VirusTotal 标记为良性。这种在官方应用商店中的压倒性存在证实,Malture 主要是一种系统性打包伪影,而不是刻意 engineered 的恶意软件技术——可能源于资源名称中的非标准字符编码或构建自动化伪影等合法开发实践。值得注意的是,规避 VirusTotal 检测(63.4% 的 Malture 感染应用程序被归类为良性)突显了当前恶意软件检测系统中的关键差距。为了对抗这一威胁,我们提出并定量评估了一种使用 3 参数 ZipFile 构造函数的实用修复方法,在所有 6661 个受感染样本上实现了 100% 的成功率,且开销可忽略不计(时间<2%,内存<5%)。这些结果大大增强了我们发现的有效性和泛化性,表明所发现的漏洞对多样应用程序群体中的静态分析工具构成了广泛挑战。
此外,为了更深入地检查发现的漏洞及相应的 ASAT,我们配备了 dex 文件,这些文件通过 dex2jar 工具转换为 jar 文件用于恶意软件分析,并展示了部分解压 APK 文件的 dex2jar 工具也受到所发现漏洞的影响,并对 Malture ASAT 失败。我们还展示并评估了一种修复所发现漏洞的方法。三个广泛使用的 Android 恶意软件静态分析工具(即 Apktool、Jadx 和 dex2jar)对 Malture 的失败显示了这种 ASAT 类型的重要性以及应对它的必要性,这在本研究中得到了很好的解决,并提供了必要的解决方案。此外,我们通过引入面向冲突的恶意软件反分析检测(COMAAD)方法,提出了泛化本研究所采取路径的想法,以便在未来发现更多的恶意软件反分析技术。图 1 总结了我们的研究路线图。
论文的其余部分组织如下:第 2 节解释了相关工作,第 3 节描述了发现的漏洞。在第 4 节中,我们展示了该漏洞如何被利用以在实际中采用 Malture ASAT,并报告了所进行实验的结果。在第 5 节中,展示了如何修复该漏洞,第 6 节致力于讨论与所提出技术相关的一些问题,包括其对静态、动态和混合分析的影响,以及将本研究中取得的结果与类似工作进行比较。在第 7 节中,我们尝试基于当前结果解释我们的泛化想法,即 COMAAD 方法,最后第 8 节总结论文。
章节片段
相关工作
逃避静态分析的方法旨在隐藏恶意软件的恶意行为,使得有效的恶意软件检测和分析对分析员来说变得具有挑战性,有时甚至是不可能的。要对 Android 恶意软件进行静态分析,需要进行几个步骤,包括获取相关的 APK 文件并识别它(对于先前检测到的恶意软件),解压 APK,分析 AndroidManifest.xml,分析 Smali 代码,将 DEX 转换为 JAR,分析 Java 代码等。
发现的漏洞
在我们的恶意软件分析实验室中,我们使用 Apktool 和 Jadx 等工具对 Android 恶意软件进行静态分析。在分析各种恶意软件样本时,我们遇到了一些恶意软件实例,其中静态分析工具在解压过程中失败并遇到错误。这发生在这些样本可以在 Android 操作系统和模拟器上毫无问题地安装和执行的同时。这一观察引起了我们的兴趣,并使我们怀疑...
利用漏洞的实验
在本节中,我们报告了所进行实验的结果,以展示攻击者如何利用 Malture 漏洞在其恶意软件中植入 Malture ASAT,以及这种技术在多大程度上正在以及潜在地适用于现实世界中的恶意软件。最后,我们展示了如何击败并从恶意软件中移除 Malture ASAT,使其静态分析成为可能。
为了系统评估 Malture ASAT 的普遍性和影响,我们在两个...上进行了实验。
修复漏洞
为了修复这个漏洞,我们建议修改 ZipFile 库的易受攻击代码,并修改静态分析工具以使用替代类构造函数,下面将进行解释。
对静态、动态和混合分析的影响
Malture 漏洞根据其架构原理对分析范式的不同影响。
泛化:面向冲突的恶意软件反分析检测
作为概念上的泛化,我们可以认为 Malture 以及大多数其他 ASAT 的根本原因在于,在恶意软件分析生命周期的不同阶段,可用的恶意软件行为证据之间存在某种冲突。恶意软件分析生命周期包括提取恶意软件执行的初始证据、恶意软件安装和配置、在模拟器或真实操作系统环境中执行和分析恶意软件等阶段...
结论
在这项研究中,识别出了 java.util.zip.ZipFile 库中的一个重大漏洞。在这个漏洞中,通过忽略文件命名中的控制位,APK 文件的解压失败。通过利用这个漏洞,恶意软件将能够配备一种使静态分析工具无效的 ASAT。我们将这种新的基于工具的 ASAT 命名为 Malture(畸形结构)。
调查结果显示,在 AMD...中存在一些恶意软件样本。
CRediT 作者贡献声明
Abolfazl Shams: 数据整理,软件,验证,写作 – 初稿。Athareh Fatemian: 调查,方法论,可视化,写作 – 审阅与编辑。
Behrouz Tork Ladani:撰写 – 审核与编辑,验证,监督,资源,项目管理,方法论,调查,概念化。竞争性利益声明:作者声明,他们不存在任何可能影响本论文报道工作的已知竞争性经济利益或个人关系。Abolfazl Shams|Athareh Fatemian|Behrouz Tork Ladani 软件工程系,伊斯法罕大学,伊斯法罕,伊朗
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号