如何发现并清除Mac上的挖矿程序
安全·9 分钟阅读

如何发现并清除Mac上的挖矿程序

荷兰国家网络安全机构就通过macOS屏幕共享功能发起的攻击发出了警告。入侵者取得了机器的远程控制权,并安装了挖门罗币的软件——也就是说,电费和风扇噪音归受害者,收益归别人。

本文讲清楚发生了什么、Mac上的挖矿程序如何行事、哪些症状值得相信,以及一套能扛过重启的清除顺序。预算大约十五分钟。除了一个可选步骤外,全程都不需要命令行。

屏幕共享出了什么问题

这个功能让你从另一台机器连接到桌面。它默认是关闭的,但被打开是常事——远程服务器上、某人需要从家里连的办公机器上、当作构建机的Mac mini上。

由于一处缺陷,系统在某些情况下会把未经授权的连接当作合法连接接受,且无需有效密码。更改或删除屏幕共享密码并不能解决问题:未打补丁的机器无论如何都是敞开的。

苹果在8月6日为macOS Tahoe 26.6.1、Sequoia 15.7.9和Sonoma 14.8.9发布了补丁。Huntress的研究员Ryan Dowd通过Censys平台扫描互联网,发现有数万台机器可能可被此攻击触及,它们把屏幕共享使用的5900端口暴露在了公网上。

这类软件如何行事

用别人的硬件挖矿叫作cryptojacking,它比勒索软件安静得多:没有锁屏,没有勒索信,没有最后期限。Mac上的挖矿程序只是占住CPU和GPU,把收益发到一个你从没见过的钱包。

经济账奖励耐心,所以这类软件会藏。常见花招包括:把进程名起得像系统服务;在你正在打字时降速;到了夜里再全速运转。有些样本会盯着活动监视器是否启动,只要它开着就进入休眠。

门罗币成为默认选择是有原因的。它是隐私币,收益在公开浏览器上不容易被追踪;而且它被设计成用普通处理器就能有利可图地挖,不需要专用硬件。这个组合让任何一台笔记本都成为可用的赚钱机器。

有两种情形必须分开看。浏览器内挖矿只在打开着被入侵页面的标签页时运行,关掉就消失。完整安装则会把自己写进系统、注册自启动并扛过重启。第二种情形更糟,原因与挖矿无关:能把它放进去的人,权限也足够留下别的东西。

值得相信的症状

第一是噪音。机器闲着的时候风扇转起来,机身发烫,笔记本续航明显下降。

第二是响应速度。界面卡顿,应用启动变慢,视频播放掉帧。

第三是网络流量。挖矿程序会与矿池保持长连接,所以即使什么都没开,出站流量仍在继续。

第四是没有窗口。后台进程没有界面,所以它既不在程序坞里,也不在应用列表里。

第五是重启之后的表现。如果登录后一分钟内负载自己就回来了,说明有东西注册了自启动。单独任何一条都不能证明Mac上有挖矿程序,但这些症状凑在一起,就值得花十五分钟去查。

第1步。在活动监视器里读负载

通过聚焦搜索打开活动监视器,切到CPU标签页,按「% CPU」列排序。

机器闲置时仍稳定占用70%到100%的进程是首要嫌疑对象。记下它的名称和路径——双击会打开详情卡片,上面显示父进程和它以哪个用户身份运行。

先别退出它。在找到文件之前杀掉进程,启动代理只会把它再拉起来。既然已经打开了,就顺便看看「能耗」标签页:过去几个小时的平均能耗影响,能把一个为了躲避你的注意而暂时安静下来的挖矿程序暴露出来。

第2步。检查自启动

持久化住在三个目录里。打开访达,按Shift-Command-G,逐个访问。

目录~/Library/LaunchAgents放的是当前用户的任务,/Library/LaunchAgents放的是所有用户的任务,/Library/LaunchDaemons放的是登录之前就运行的系统服务。里面是扩展名为.plist的文件。

有两点会让一个条目变得可疑:名字模仿系统组件但拼写有细微差别;创建日期正好是你机器开始不对劲的那天。用文本编辑器打开文件,读ProgramArguments键,里面是可执行文件的路径。常见的藏身处是/tmp、你主目录里以点开头的文件夹,以及/Users/Shared。

然后检查「系统设置 - 通用 - 登录项」,把任何不是你有意添加的都删掉。在终端里,launchctl list会打印出所有已加载的任务,如果你想看完整图景的话。

第3步。检查配置描述文件、扩展和账户

配置描述文件是管理层面的落脚点。打开「系统设置 - 隐私与安全性 - 描述文件」。如果你从未加入过企业管理系统,却存在一个描述文件,把它删掉。

在浏览器里,把所有不是你有意安装的扩展都停用。浏览器挖矿就住在那里,而且扩展经常读取页面内容,包括交易所界面。

最后看一眼用户账户列表。出现一个你没创建过的管理员账户,意味着访问权是完整的而不是部分的,应对方式也就从清理升级为按完全失守处理。

第4步。按正确的顺序清除

顺序很重要。先卸载自启动任务,再删plist,然后删二进制文件,最后才退出进程。顺序反过来,你就会眼睁睁看着服务把可执行文件重新拉起来。

用launchctl unload加上plist文件的路径来卸载任务。删掉plist。删掉它引用的二进制文件,然后清空废纸篓。

回到活动监视器,如果进程还活着就退出它。重启,再看一次负载。如果它又回来了,说明还存在第二份拷贝,搜索从第2步重来。

跑一次扫描器做交叉验证——Malwarebytes for Mac有免费的按需扫描模式。内置的XProtect也覆盖已知样本,但它的特征库按苹果的节奏更新,不是即时的,所以第二意见有价值。

如果一个文件看着可疑但你不确定,改名而不是删除,然后重启。恢复一个被改名的文件很简单;恢复一个你真正在用的应用里被删掉的组件就不简单了。

第5步。把门关上

安装系统更新:「系统设置 - 通用 - 软件更新」。正是这些版本堵上了这场行动依赖的屏幕共享缺陷。

关掉你不需要的远程服务:「系统设置 - 通用 - 共享」,然后是「屏幕共享」和「远程管理」开关。如果机器挂在公网地址上,5900端口绝不该朝向互联网——在路由器上或防火墙里把它挡掉。

在「网络」下启用防火墙。更改管理员密码,并确认该账户不会在没有密码的情况下自动登录。

如果那台机器上放过钱包

逻辑是不留情面的:一个权限足以安装挖矿程序的人,权限也足以安装信息窃取程序。把密钥当作已泄露处理。

把资金转到在另一台已知干净的设备上生成的新地址。绝不要在同一台机器上输入旧的助记词——那等于把它第二次交出去。

撤销现有的代币授权,在干净设备上更改交易所密码,并终止活跃会话。浏览器Cookie能扛过密码更改,所以只换密码会让一个被盗的会话继续活着。

保持干净

在发布后一周内安装更新。多数感染都是通过在受害者中招很久之前就已修补的漏洞传播的。

不要运行来源未经核实的安装程序;付费软件的盗版构建,至今仍是挖矿程序进到Mac上最常见的那一条路。

每月一次,没有特别理由地打开活动监视器,看看机器闲置时都在跑什么。知道自己的正常画面,是察觉异常画面最便宜的办法。

常见问题

挖矿程序能在Apple Silicon上运行吗? 能。这套架构对已经在运行的代码不提供任何保护,而ARM的能效比让这些机器成了有吸引力的目标。行为完全一样:核心被占满,机身发烫。

Mac上的挖矿程序会伤到硬件吗? 它不会直接毁掉什么,但持续满载意味着长时间高温、风扇磨损和电池加速老化。在笔记本上,几个月内就能看出效果。

它算病毒吗? 严格说不算——病毒会自我复制,而这个是通过被利用的服务或安装程序进来的。实际差别不大,杀毒引擎无论如何都会把它标记为恶意。

重装macOS就够了吗? 全新安装几乎能清掉所有东西,但恢复数据要有选择:一个包含那些plist文件的备份会把问题原封不动带回来。而且它也不改变上面关于钱包的建议。

我怎么区分挖矿程序和系统进程? 靠路径和签名。系统组件住在/System和/usr/libexec里,由苹果签名,而且不是昨天才创建的。恶意二进制文件通常从临时目录启动,并且没有有效签名。

如果进程拒绝退出怎么办? 进入安全模式,它不会加载第三方自启动任务,文件删起来不会有任何抵抗。Apple Silicon机型在开机时按住电源键;Intel机型按住Shift。

关于作者
加密市场专家兼内容与营销部主管

EIDEX 加密市场专家兼内容与营销部主管。专注于市场结构、交易所基础设施和跨链交易,将链上数据和市场变化转化为面向交易者的清晰、可落地的研究。

分享本文TelegramX