楠木轩

macOS的最新恶意软件,有点像瘟疫公司的“猥琐流”

由 乌雅建义 发布于 科技

今年2月初,安全机构 Red Canary 在苹果电脑操作系统 macOS 上发现了一种全新的恶意软件。

当然,在号称更加安全的 macOS 上出现病毒/恶意软件,算不上骇人听闻。不过,安全工程师们对这款恶意软件抱有很大的兴趣,主要在于它有三个特别突出的特性:

1)M1 处理器原生支持;2)使用 JavaScript 执行;3)该恶意软件目前缺乏负载 (payload),也即实际对用户的系统造成负面影响的内容。

Red Canary 将其命名为 Silver Sparrow(银雀)。

虽然按照前述第三条来看,该恶意软件目前没有什么值得称道的危害性,不过根据安全公司 Malwarebytes 追踪,Silver Sparrow目前已经在全球范围感染过接近4万台电脑(主要集中于美国)——这只是该机构能够追踪到的终端,追踪不到的已感染电脑可能更多。

更重要的是,该恶意软件包含了对苹果 M1 ARM64 架构的原生支持,而考虑到苹果正式推出 M1 处理器电脑产品也只是几个月前的事情——Silver Sparrow 潜在的危害程度不容小觑。

Red Canary 认为,M1 兼容性、全球感染范围、高感染率,以及技术成熟程度,足以让该恶意软件成为一个“相当严重的威胁”。

目前,Silver Sparrow 已经存在两个版本,均伪装成 macOS 软件安装包 (.pkg) 的样子。其中第二个版本 update.pkg 加入了对 ARM64 架构的支持。

正如前面提到,M1 兼容性让这款恶意软件非常引人注目,因为 M1 仍然是苹果电脑产品中非常新的一个平台,而针对该平台的安全威胁目前少之又少。

让我们继续来看这个奇异的恶意软件。它的两个版本安装包,采用的都是 JavaScript 代码,并且利用了macOS 安装器的 JavaSciprt API。Red Canary 在一篇博客文章中指出,正是这一点让 Silver Sparrow 在已知常见的 macOS 病毒/恶意软件当中独树一帜。

在 macOS 上,用户不小心点击恶意广告后可能会下载到病毒或恶意软件,体现为 .pkg 或 .dmg 安装包格式,通常会伪装成 Flash Player 的安装器或升级包。这些恶意软件的工作方式是使用 preinstall 或 postinstall(安装前/安装后)脚本来执行命令。

而在 Silver Sparrow 上,这个全新的恶意软件直接用 JavaScript 函数来执行命令,这样的行为是在苹果 macOS 安装器原生的 JavaScript API 支持下才得以实现。这也是安全人士首次发现采用这一方式完成安装的 macOS 恶意软件。

正是因此,恶意软件内含的 JavaScript 代码可以在用户点开安装器并确认安装(见下图)之后就立即执行。这意味着,如果你没有走完安装流程,关掉了安装器,也没有用,恶意代码已经被执行了,你的电脑已经被 Silver Sparrow 感染了……

在感染成功之后,用户的应用列表里会出现一个应用,按照恶意软件版本的不同,这个应用的名字可能叫 tasker 或者 updater。跟进 Silver Sparrow 的安全机构都认为,这个应用没有任何内容也没有什么特殊功能,看起来像是占位用的。

前面提到,这个恶意软件目前不含任何负载,也即会对用户系统造成负面影响的代码之类的东西。这令安全人员感觉非常奇怪……让我们来进一步看看这到底是怎么一回事:

感染之后,恶意软件每个小时都会跟一个 AWS S3 服务器联系,而服务器会返回一些数据。这些返回数据中包含一个下载链接 "downloadUrl",但截至目前,安全机构在所有已感染电脑上看到的下载链接都是空的:

在安装完成后,Silver Sparrow 会回调一个域名并且汇报两组数据,其中包括了原始安装包下载的链接。这在恶意软件领域比较常见,意味着其开发者希望追踪软件的分发渠道。

不仅如此,这个恶意软件回调的域名利用了 Akamai 的 CDN 服务。Red Canary 就此指出,这可能意味着恶意软件的开发者对云服务的理解甚高,因为 AWS 和 Akamai 是世界顶级的云服务提供商,大部分机构通常不会对 它们的域名进行访问封锁。“这一发现进一步证明,我们面对的是一个技术非常成熟的对手,”Red Canary 写道。

安全工程师 Erika Noerenberg 对 Silver Sparrow 进行拆解,发现它的第一个版本(只有 x86 支持)分发的只是一句占位内容。这句话想必大家也已经很熟悉了:

而第二个版本加入了 M1 ARM64 架构支持,分发的同样是一句占位内容,看起来同样人畜无害:

除了上述这些占位内容之外,Silver Sparrow 完全没有任何其它已知的,会对用户系统造成任何损害的代码。

更蹊跷的是,安全工程师发现,Silver Sparrow 会定期进行本地文件检查,如果在某个路径下找到某个文件,就会完全删除其在用户电脑上的所有存在。

macOS 在 Library 路径下默认不存在这个文件,Red Canary 也不清楚在什么样的情况下这个文件会出现。这个文件有可能是 Silver Sparrow 的开发者想要避免的东西,也有可能是该软件生命周期的一部分,在完成任务之后清除痕迹的机制。

“这一(自我清除)机制的存在也是个谜,”Red Canary 在文章中写道。

Malwarebytes 追踪显示,在已知全世界数万台已经感染 Silver Sparrow 的电脑上,截至目前没有任何一台电脑下载了任何可能造成实质危害的负载。

“这款恶意软件的终极目标是个谜。我们没有办法可以确切了解它究竟要分发什么样的负载。”Red Canary 写道。

这不禁令人想起了著名游戏《瘟疫公司》(Plague Inc.) 的一种经典流派:猥琐流。

《瘟疫公司》让玩家扮演病毒,最终目标是感染全世界,可以在感染的过程中不断获得升级点数,升级自己的传播力、抗药性和致死性。

而猥琐流的基本思路就是尽量先升满传播“猥琐发育”,让病毒悄无声息地感染全世界,然后把攒下的点数全部扔到致死能力有关的天赋树上,一瞬间爆发杀死所有人。

从目前已知的情况来看,Silver Sparrow 和《瘟疫公司》的猥琐流玩法(至少跟前期“猥琐发育”的部分)十分相似。它的技术成熟,感染数量已经较高,而且已经展现出了开发者对于 macOS 系统以及依靠云服务的分发机制有较高的了解。

虽然今天的 Silver Sparrow 人畜无害,但谁也无法保证它在未来不会突然爆发,造成严重的后果。

目前安全人员不清楚 Silver Sparrow 的真实开发者是谁。不过苹果公司在收到报告之后,已经关闭了其安装包的证书拥有者 Saotia Seay 和 Julie Willey 的开发者账户。

如果你是 macOS 用户,接下来可能会想要知道:我如何确定自己是否有被 Silver Sparrow 感染过呢?

答案很简单。如果你能在以下路径内找到对应的文件,说明你的电脑已经被感染(过)了:

如果这些文件存在的话,你需要在电脑上找到所有已知和 Silver Sparrow 有关的文件,并且在 Terminal 里用 rm 命令完全删除它们。

至于具体需要删除哪些文件,你可以到 Red Canary 的网站上查看(点开链接后,移步到 "Indicators of Compromise" 小节,可以找到所有文件及其路径)。如果你对 macOS 文件系统和 Terminal 命令不熟悉的话,建议找专业人士代你操作。

删除完相关文件之后,重启电脑就好啦。

你的电脑被 Silver Sparrow 感染了吗?欢迎在留言中和我们分享。