深度拆解:连苹果Gatekeeper都敢骗?这波MacSync恶意软件“有点东西”

admin 2025-12-30 01:27:24 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Jamf发现MacSync恶意软件利用合法签名绕过Gatekeeper,伪装成聊天软件攻击。其采用反沙箱延迟、魔改Curl命令及文件填充技术规避检测,释放Go语言木马。此行为挑战macOS信任链,建议部署MDM与行为分析EDR,警惕异常安装提示。 综合评分: 99 文章分类: 恶意软件,威胁情报,终端安全,免杀,逆向分析


cover_image

深度拆解:连苹果 Gatekeeper 都敢骗?这波 MacSync 恶意软件“有点东西”

原创

Kit Chung

安全圈动向

2025年12月29日 07:52 广东

大家好,长期以来,Mac 用户圈里流传着一个“神话”:Mac 系统天生安全,不会中毒。大家之所以这么自信,很大程度上归功于苹果引以为傲的守门员——Gatekeeper。只要软件没有签名,或者未经过苹果公证(Notarization),系统就会无情拦截。

但是,如果小偷手里拿着官方颁发的“良民证”,这门禁还拦得住吗?

最近,安全研究机构 Jamf 发现了一款名为 MacSync 的 macOS 信息窃取恶意软件的新变种。这货不仅狡猾,而且技术手段相当“骚气”,它直接搞到了合法的开发者签名和苹果公证,绕过了 Gatekeeper。

今天,我们就从技术角度钻进去,扒一扒这个 MacSync 到底是怎么实现的。


01 伪装大师:Swift 编写与“合法”身份

以往我们见到的 Mac 恶意软件,很多是靠诱导用户输入终端命令(drag-to-terminal)或者利用 ClickFix 之类的社会工程学手段。但这次的 MacSync 变种,走的是“精品应用”路线。

攻击者发布了一个名为 zk-call-messenger-installer-3.9.2-lts.dmg 的磁盘镜像文件,伪装成一个聊天软件的安装包。

核心技术点: 这个安装器实际上是一个用 Swift 语言编写的应用程序。最可怕的是,它经过了数字签名(Digitally Signed)并且通过了苹果的公证(Notarized)

这意味着什么?意味着在 macOS 看来,这并不是恶意软件,而是一个“受信任的开发者”开发的合法应用。Gatekeeper 和 XProtect(苹果内置的反病毒工具)在默认情况下完全不会拦截它

吐槽点:

虽然它已经有了签名,但攻击者为了保险起见(或者仅仅是出于习惯),依然在界面上提示用户“右键点击并选择打开”。这其实是绕过安全检查的常规操作,但在已经拥有签名的情况下,这一步显得有点“多此一举”,但也侧面反映了黑客在这个环节上的双重保险策略。 注:目前苹果已吊销了该证书,但这种攻击思路非常值得警惕。

02 侦查与反侦查:Dropper 的精细化逻辑

当用户运行这个 Swift 安装器(实际上是 Dropper,即释放器)时,它并没有急吼吼地释放病毒,而是先进行了一系列环境检测。这里展现了作者扎实的编程功底和反侦查意识:

  • 网络连通性检查:

    确保能连上 C2 服务器,不打无准备之仗。

  • 强制执行间隔(Rate Limit):

    这是一个很有趣的细节。代码中设定了大约 3600秒(1小时) 的最小执行间隔。 技术解读:这种设计通常是为了对抗沙箱(Sandbox)的自动化分析。很多自动化沙箱只会运行样本几分钟,如果恶意软件在前几分钟“装死”,就能骗过沙箱的检测。

  • 移除 Quarantine 属性:

    它是系统给从互联网下载的文件打上的“隔离”标签。Dropper 会主动移除这个属性,防止系统弹窗警告。

03 细节控:魔改 Curl 命令

Dropper 的最终目的是下载并执行一个编码过的脚本。通常,脚本小子们喜欢用 curl -fsSL 这种标准组合拳来下载 Payload。

但 Jamf 的研究员 Thijs Xhaflaire 发现,MacSync 的作者对 curl 命令进行了微调:

curl -fL -sS –noproxy …

这说明了什么?

作者非常了解网络环境的复杂性。引入 --noproxy 选项可以防止下载请求被系统配置的代理服务器拦截或分析(很多企业的安全网关就是通过代理抓包的)。

此外,将标志拆分并引入动态变量,说明攻击者在刻意改变 Payload 的获取方式,既为了提高下载成功率,也为了逃避基于特征码的检测

04 隐写术:25.5 MB 的“虚胖”文件

还有一个值得玩味的技术细节:这个 DMG 文件的大小被故意“注水”到了 25.5 MB

攻击者在里面嵌入了大量无关的 PDF 文档。为什么要这么做?

  1. 伪装性:

    太小的文件(几百KB)看起来不像是一个功能完整的 Messenger 应用,20多MB更让人信服。

  2. 对抗扫描:

    某些安全网关或杀毒引擎为了性能,会跳过扫描超过一定体积的文件。或者在解压分析时,由于垃圾数据过多导致超时。

05 核心 Payload:Go 语言的跨平台野心

一旦 Dropper 成功运行,它会解析出一个 Base64 编码的 Payload。这才是真正的 MacSync——一个基于 Go (Golang) 语言编写的代理程序。

这实际上是 2024 年 4 月出现的 Mac.c 恶意软件的“换皮”版本。

为什么现在的黑客都爱用 Go?

  • 静态编译:

    所有的依赖库都打包在一起,不用担心目标机器环境缺胳膊少腿。

  • 跨平台:

    一套代码,稍微改改就能编译出 Windows、Linux 和 macOS 版本。

  • 逆向难度:

    Go 编译出的二进制文件结构庞大且特殊,给安全分析人员的逆向工程增加了不少工作量。

结语:供应链攻击的警示

从伪造 Google Meet 的 Odyssey,到这次伪装成聊天软件的 MacSync,我们看到一个明显的趋势:黑客正在不遗余力地让恶意软件“看起来像正版”

他们不再满足于通过未签名的野路子传播,而是开始利用(或者盗用/购买)合法的开发者证书。这直接挑战了 macOS 安全体系的核心信任链。

给各位 IT 兄弟的建议:

  • MDM 是安全基线:

    对于企业环境,必须使用 Jamf 等 MDM 方案,不能依赖员工的自觉。

  • 关注行为,而非签名:

    签名可以买,但恶意行为(如奇怪的 curl 参数、异常的持久化操作)是掩盖不住的。部署基于行为分析的 EDR 才是王道。

  • 警惕“右键打开”:

    如果一个软件号称正版,却让你去绕过安全提示,大概率是有鬼。

技术在进步,黑客也在进化。作为技术人,我们要时刻保持对底层原理的好奇与警惕。

你在工作中遇到过类似的“伪装”攻击吗? 欢迎在评论区分享你的踩坑经历!


免责声明:

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

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

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

本文转载自:安全圈动向 Kit Chung《深度拆解:连苹果 Gatekeeper 都敢骗?这波 MacSync 恶意软件“有点东西”》

评论:0   参与:  0