macOS系统中特有特征对于恶意软件检测的作用

admin 2026-08-08 06:07:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文探讨了利用macOS特有特征(如权限配置、证书链状态等)提升恶意软件检测效果的研究。基于四万余个Mach-O样本的实验表明,XGBoost模型结合仅占总数1.3%的系统特有特征,在新型恶意样本上的泛化能力较通用特征提升超15%。研究结论指出,端到端深度学习并非万能,安全专家结合操作系统机制进行领域特征工程,依然是应对新型跨架构恶意软件的最佳实践。 综合评分: 89 文章分类: 恶意软件,二进制安全,AI安全,终端安全,逆向分析


cover_image

macOS 系统中特有特征对于恶意软件检测的作用

原创

Avenger Avenger

威胁棱镜

2026年8月6日 08:30 北京

在小说阅读器读本章

去阅读

工作来源

ASIA CCS 2026

工作背景

近年来,macOS 在企业环境中的普及率显著提升,目前已有 76% 的美国大型企业在使用 macOS。随着 macOS 使用量的增长,安全挑战也如期而至。2023 年共发现了 17 个macOS 零日漏洞,而 2024 年 macOS 平台窃取信息类恶意软件也在急剧增长。并且随着苹果公司自研芯片不断推进,恶意软件开发者也将攻击目标瞄准了 ARM64 架构的苹果电脑,甚至构建包含多种架构的“胖二进制“文件实现跨平台分发。胖二进制文件又称通用二进制文件,其在同一个文件中包含适用于多种 CPU 架构的代码,无需为每种架构准备单独的二进制文件。加载器使用胖头部选择与系统 CPU 匹配的 Mach-O 二进制文件,从而确保跨架构的无缝执行。

有研究人员开始尝试为 macOS 恶意软件检测引入机器学习算法,但已有方式严重依赖于通用静态特征(如字符串、字节 N-gram、节区数量等)。完全忽视了 Mach-O 文件格式的独特性,以及苹果系统的安全机制(如代码签名、沙盒、权限配置等)。这都导致了检测模型的效果未能达到预期。

工作准备

缺乏大型、最新且公开的 macOS 样本数据集严重限制了机器学习方案的发展。研究人员通过多方渠道(如 macOS 系统安装包、Homebrew、GitHub 获取良性样本;通过 Objective-See、MalwareBazaar、VirusShare、VirusTotal 获取恶意样本),构建了一个新数据集。新数据集包含 41129 个 Mach-O 可执行文件,其中包含 11413 个良性软件样本和 29716 个恶意软件样本。

良性样本收集自以下三个来源:

  • macOS安装:在 macOS Sonoma 14.5 安装环境中提取了 1239 个预装的 Mach-O 可执行文件。
  • Homebrew:通过 Homebrew 包管理器提供的 macOS 应用程序中提取了 9843 个可执行文件,过滤掉了状态为已弃用、已禁用或已过时的应用。
  • 开源 macOS 应用:从 GitHub 上提供的几个开源 macOS 应用程序中收集了剩余的 1045 个可执行文件。

恶意样本收集自多种来源:

  • Objective-See数据集:由 Patrick Wardle 维护的经过整理的 macOS 恶意软件样本数据集,其中包含 180 个样本。
  • MalwareBazaar:下载了 MalwareBazaar 上标记有 macho 且被至少 5 个杀毒引擎检测为恶意的样本,共计 90 个样本。
  • Virus Samples Team数据集:从其 GitHub 仓库下载的 103 个样本。
  • VirusShare:VirusShare 中的 2910 个恶意软件样本。
  • VirusTotal:在 2023 年 7 月 1 日至 11 月 13 日期间监测了      VT 订阅源,并保留了打上 mac 或 macho 标签且被至少 5 个杀毒引擎检测到的样本。共计 28380 个额外的 macOS 恶意样本。

该数据集不仅规模庞大,还横跨了三种关键架构:x86-64、arm64 以及 fat。

76% 的样本文件是面向 x86-64 的,9% 是 arm64 的,15% 是 fat 的。大多数良性样本是 fat 的,但恶意样本基本都是面向 x86-64 的。

八大家族覆盖了约 80% 的恶意样本文件,特别是 TOP 3 家族占了恶意样本的七成。

大约 10% 的样本可能加壳了,其中绝大多数都是恶意的。恶意样本中的 14% 是加壳的,良性样本中的 2% 是加壳的。

包含 API 最多的 4 个框架(Kernel、AppKit、CoreFoundation、Security)中 TOP 20 的情况,如上所示。对于 Kernel 和 AppKit 框架,其 API 被良性样本使用的频率高于恶意样本。鉴于它们在标准系统功能和用户界面开发中的作用,这是符合预期的。相反,属于 CoreFoundation 和 Security 框架的 API(分别用于底层系统和加密操作)被恶意样本使用的频率更高。恶意样本倾向于使用底层 API,良性样本倾向于使用高层 API。

TOP 20 的权限中有 17 个与安全有关,并且良性样本的使用频率远高于恶意样本。最常见的 allow-jit 权限被 32.6% 的良性样本使用,仅被 1.8% 的恶意样本使用。在 arm64 架构下,99.13% 的良性样本使用了该权限,只有 0.87% 的恶意样本使用了该权限。这类权限是区分良性样本与恶意样本的重要特征。

约 3% 的样本文件使用持久化技术,良性样本与恶意样本未见重大差异。但恶意样本比起 Login 更喜欢使用 Launch。

83% 的恶意样本不包含证书链,而 65% 的良性样本包含验证通过的证书链。证书链的状态(特别是证书的存在以及是否通过 Apple 验证)是区分良性样本和恶意样本的关键特征。

工作设计

没有选择整个 App bundle,而是聚焦于 Mach-O 可执行文件本身。因为这是恶意样本分发的最常见粒度,且现实中只有约 6% 的恶意 Mach-O 文件会附带父应用的元数据。

如下所示,每个 Mach-O 可执行文件由一个八大类(文件结构、字节、字符串、加壳、API、权限、持久化技术与证书)共 4578 维的特征向量表示。专门针对 macOS 二进制文件的特征,在 4578 个特征中仅占 62 个。

文件结构:常用于二进制文件结构属性的特征,还考虑了 Mach-O 文件中可能存在的 50 个最常见的加载命令,并统计它们各自在二进制文件中的出现次数(Load Commands Histogram)。

字节特征:代表构成二进制文件的字节序列的统计属性。通过分别统计每个字节的出现频率(即字节直方图)以及通过遵循 EMBER 中的方法提取字节 N-gram(实验中 ),并采用哈希函数将其映射到 128 维空间中。

字符串特征:提取了与恶意软件检测更可能相关的五类字符串:网络资源(IP 和 URL)、文件系统路径、base64 编码的字符串、导入的库以及函数名称。对于网络资源、文件系统路径和 base64 编码字符串,我们利用正则表达式进行识别。另一方面,库和函数名称使用 LIEF 库提取。

加壳特征:部分样本(如oRat、IPStorm、ZuRu、Coldroot 和 OceanLotus)使用了通用的加壳工具(如 UPX)。来自 MoonLock Labs 的研究人员发现,2024 年分析的加壳恶意软件样本中有 26% 是用 UPX 加壳的,使其成为 Mach-O 压缩的首选。因此首先检查是否存在名称与 UPX 加壳工具相关的节,例如 XHDR、UPX_DATA 和 upxTEXT,其次检查二进制文件是否包含超过 20% 的高熵数据节段(即熵大于 7)。

API特征:API 在捕获恶意行为方面已被证明非常有效。首先利用 Apple 官方文档确定 macOS 应用程序中最常用的框架,例如 AppKit、CoreFoundation、SystemConfiguration、Kernel,以及与安全和隐私相关的框架(如 Security),总共确定了 35 个框架。接下来,删除了在数据集少于 10 个样本(即样本的 0.02%)中出现的 API,它们不能代表样本的普遍行为,且通常代表使用 LIEF 库提取导入 API 时获得的异常值。对于每个框架,识别出 400 个最常用的 API(如果框架的API 少于 400 个,则包含所有可用 API),该阈值的设定基于在数据集中发现每个框架的平均 API 数量约为 400 个。该处理过程产生了总共 4009 个唯一的 API,每个API 由一个布尔特征表示。

权限特征:利用 Apple 官方文档创建了一个初始列表,以识别所有主要的安全相关 Entitlements,例如与 App Sandbox 和 Hardened Runtime 相关的权限。为了补充上述列表并包含数据集中样本使用的常用权限,选择了在至少 1% 的样本(即 411 个)中出现的权限,并添加了初始列表中尚未包含的权限。最后,一共得到 55 个权限。

持久化特征:用两个布尔特征来捕获 macOS 中使用的两种常见持久化技术:登录项与启动项。

证书特征:二进制文件中包含的证书链的五个状态,证书链存在、证书链过期、证书链自签发、证书链已吊销、证书链验证通过。

工作评估

本文的特征集在所有场景中都优于其他特征集。平均来说,与最先进的检测模型相比,本文的检测模型实现了 16.56% 的相对提升。决策树模型的表现较差,这表明有效的分类需要捕获复杂的特征交互。

值得强调的是,本文的检测模型在 arm64 数据集上表现尤为出色(提升 26.31%),确认了所提取特征对新兴 CPU 架构的有效性。

此外,以可执行文件的原始字节序列作为输入的 MalConv 模型在所有场景中都是表现最差的检测模型,这突显了特征工程在 macOS 恶意软件检测中的重要性。

机器学习模型在所提特征上的 ROC 曲线如上所示,XGBoost 模型取得了最佳性能。

XGBoost 模型在不同特征集上训练的 ROC 曲线,可见本文特征集最优。

每个架构场景下最重要的 TOP 10 特征,如上所示,macOS 独有的特征都十分重要。证书是否验证通过和存在证书链是 multi-arch 和 fat 数据集最重要的特征;x86-64 数据集最重要的特征是allow-unsigned-executable-memory 权限;arm64 数据集最重要的特征是 allow-jit 权限。值得注意的是,一些底层 API(如 fputc 和 system)是数据集中最重要的特征之一。

单独使用时,特定特征的表现优于通用特征。通用特征与特定特征结合使用,效果最好。

创建了一个包含 9000 个样本(4500 个良性样本和 4500 个恶意样本)的最新数据集,这些样本是在 3 个月时间内(2024 年 9 月至 11 月)从 VT 订阅源提取的。

特定特征在新型恶意软件样本上的泛化能力显著优于通用特征,移除特定特征会导致检测性能显著下降。

在 arm64 架构下,虽然在主数据集中 allow-jit 权限的存在可以有效区分良性样本与恶意样本,但在真实世界数据集中不再如此。因此模型无法再依赖此特征,导致检测性能下降。

在证书链未被 Apple 验证的良性样本上评估了性能,获得了 2.4% 的 FPR,表明即使在无法获取签名信息时也表现出扎实的性能。其次,评估了加壳对检测性能的影响,发现检测模型在加壳恶意软件上达到了 97.5% 的准确率。最后,在真实世界数据集中包含的所有已签名恶意软件上评估了检测模型,获得了 96.25% 的检测率,确认了其甚至对已签名恶意软件的有效性。

工作思考

业内曾一度迷信端到端的深度学习模型可以自动提取有效特征,从而彻底终结人工特征工程。但从实验结果来看,字节流无法表征特定的语义信息,而丢失语义会大幅度降低表现。在桌面系统安全领域,安全专家的领域知识体系结合集成树模型,可能依然是对抗攻击者的最佳武器。特征工程也反映出研究人员深厚的逆向功底,将 macOS 的操作系统级安全机制成功转化为机器学习可读的向量,用仅占总数 1.3% 的 62 个特征(62/4578)撬动超过15% 的泛化性能提升。

虽然在主数据集中,移除 macOS 特定特征仅导致检测性能轻微下降(3.23%),但在新样本数据集上,去掉特定特征的性能急剧下降(15.92%)。这是由于通用特征(如 N-gram)构建了类似现有恶意软件的“特征码”,就往往难以泛化到新样本。另一方面,特定于 macOS 的特征在语义上更加丰富,即使在出现新变种的情况下也能保持性能。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:威胁棱镜 Avenger Avenger《macOS 系统中特有特征对于恶意软件检测的作用》

评论:0   参与:  0