第 4 课,共 7 课 · 8 分钟
Rootkit:躲着你的恶意软件
Rootkit 的任务是隐身并长期驻留。了解它如何运作、为什么藏得越深越危险,以及现代 macOS 如何让它举步维艰。
大多数恶意软件都想做点什么:偷窃、加密、监视。Rootkit 则想在这一切发生时不被看见。NIST 将 Rootkit 定义为:攻击者在获取系统 root 级别权限后使用的一套工具,用来隐藏其活动,并以隐蔽的方式保持特权访问。这个名字来自 Unix,root 是拥有无限权限的管理员账户,而“kit”(工具包)就是入侵者留下的一套被篡改的工具,用来悄悄保住这份权力。
两项任务:驻留与隐藏
Rootkit 通常兼具两种能力。驻留意味着在重启和更新后存活,让攻击者不会失去访问权限。隐藏意味着让文件、进程和网络连接从你用来查找它们的工具中消失。MITRE ATT&CK 直接描述了第二个伎俩:Rootkit 通过拦截并修改报告这些信息的操作系统调用,来隐藏程序、文件、网络连接和服务的存在。如果你用来询问“正在运行什么”的那部分系统已被篡改,它完全可以把答案删掉。
藏得越深,越难找到
| 层级 | 驻留位置 | 检测和清除的难度 |
|---|---|---|
| 用户态 | 替换或拦截以你的账户身份运行的普通程序和库 | 难,但以更高权限运行的工具通常能发现篡改 |
| 内核态 | 加载进操作系统内核,可以对所有程序撒谎 | 非常难:系统本身在提供虚假信息 |
| 启动和固件 | 在操作系统之前启动,位于启动过程或硬件固件中 | 最难:甚至可能在完全重装操作系统后存活 |
一般规律是:在更底层、更高权限运行的代码,可以欺骗运行在它之上的代码。这就是 Rootkit 力求钻得越深越好的原因,也是防御者花大力气让电脑最底层难以篡改的原因。
macOS 如何反击
现代 macOS 的设计就是要让 Rootkit 失去过去的藏身之处。Apple 在其平台安全指南中记录了多层防护:
- 系统完整性保护(SIP)阻止包括管理员在内的任何账户修改系统受保护的部分,例如系统文件夹和进程。Apple 建议保持开启。
- 系统宗卷经过封装和签名:启动时 macOS 会验证系统文件与 Apple 发布的完全一致,拒绝使用被修改过的系统。
- Apple 芯片(以及配备 T2 芯片的 Mac)上的安全启动会在运行前验证启动过程的每个阶段,让代码无法在操作系统之前潜入。
- 第三方内核扩展受到限制,需要明确批准;Apple 已把它们过去做的大部分工作迁移到在内核之外运行的系统扩展中。
这些防护层合在一起,使得在默认设置的现代 Mac 上安装传统的内核 Rootkit 困难得多。这也是如今攻击者倾向于停留在用户态、依赖登录项和启动代理等驻留手段的原因,这些手段不需要破坏系统封装。
你可以自己检查的驻留
由于深层 Rootkit 很难安装,如今 Mac 上的大多数驻留手段只要知道去哪里看就能发现。macOS 在系统设置的“通用”>“登录项与扩展”中列出登录项和后台项目,并在添加新的后台项目时通知你。那里任何你不认识的条目都值得仔细看看。也正因如此,MITRE ATT&CK 把启动代理和启动守护进程(launch agents 和 launch daemons)列为 macOS 上常见的驻留技术。
为什么网络不会说谎
Rootkit 可以对本机上的程序撒谎,但它通常仍需要和操作者通信。这些流量必须经过网络。位于操作系统过滤层的按应用防火墙能看到系统处理的连接,而路由器或网络上的另一台设备则从外部看到它们,那里 Rootkit 无能为力。FireAI 的网络过滤器是一个 Apple 系统扩展;它显示每个连接背后是哪个应用,并在新应用联网前询问你。它不是 Rootkit 检测器,也无法看穿已被攻破的内核,但来自一个说不清来历的进程的不明流量,正是有东西在隐藏的经典迹象。
不只是电脑:路由器和其他设备
Rootkit 式的植入并不局限于笔记本电脑。家用路由器、网络存储和其他常开设备都运行着自己的小型操作系统,很少甚至从不更新。攻击者一再盯上它们,因为它们位于每个连接之上,却几乎没人检查。更新路由器固件、修改默认管理员密码、关闭不用的远程管理,就能关上最常见的几扇门。这也说明了从多个位置观察流量的价值:驻留在路由器上的问题,对 Mac 做任何扫描都发现不了。
如果你怀疑有 Rootkit
- 假定系统自带的工具可能不说真话;尽可能从外部检查。
- 确认系统完整性保护已开启(Apple 有文档说明方法),并保持 macOS 更新。
- 检查“登录项与扩展”中是否有不认识的条目。
- 如果怀疑属实,可靠的做法是:备份你的文档(不要备份应用或系统文件),抹掉 Mac,从 Apple 重新安装 macOS,只恢复数据。
- 如果是定向威胁,比如针对记者或活动人士,请寻求专家帮助,并考虑使用锁定模式(Lockdown Mode)。
要点
- Rootkit 的目的是隐藏攻击者的存在并保持特权访问。
- Rootkit 所在层级越低(用户态、内核、启动、固件),越难检测和清除。
- 系统完整性保护、签名的系统宗卷和安全启动,让传统的内核 Rootkit 在现代 Mac 上困难得多。
- Rootkit 可以对电脑撒谎,但它的网络流量从外部依然可见。
自我检测
1. Rootkit 的两项主要任务是什么?
- 加密文件并索要钱财
- 保持特权访问(驻留)并隐藏攻击者的活动(隐藏) — 正确。
- 发送垃圾邮件和挖矿
- 显示广告和修改主页
NIST 将 Rootkit 定义为隐藏攻击者活动、并隐蔽地保持特权访问的工具。
2. 为什么内核级 Rootkit 这么难检测?
- 因为它们的文件很小
- 因为它们在操作系统内核中运行,能让系统向所有程序提供虚假信息 — 正确。
- 因为它们只在夜里运行
- 因为它们每次重启后都会自行删除
权限更高的代码可以欺骗它之上的程序,包括你用来查找它的工具。
3. 哪项 macOS 功能能阻止连管理员都无法修改受保护的系统文件?
- FileVault
- 系统完整性保护(SIP) — 正确。
- 隔空投送
- 时间机器
SIP 保护系统文件夹和进程不被修改,即使是管理员账户也不行,从而封堵了一种经典的 Rootkit 技术。
用 FireAI 动手做
在你自己的 Mac 上练习这节课的内容。
- 规则:应用、网站、域名、IP 或地址段,永久生效或直到重启 — 写一条规则,精确到单个地址,或宽泛到整个域名,任你选择。
- 世界地图 — 直接看到你的数据实际去了哪里,而不是一个还得自己去查的主机名。
- 威胁列表(可选开启) — 用公开的威胁数据比对你的流量,而不必把流量发送到任何地方。
- 调查一条连接 — 凭摆在眼前的事实做决定,而不是一句含糊的警告。
- 安全模式:居家、咖啡店、偏执、遭受攻击 — 轻触一下,就能让 FireAI 的严格程度匹配 Mac 实际所在的场景。
- USB Network Protection: nothing from a USB drive goes online unasked — Plug in a drive someone handed you without letting what’s on it phone home.
来源
- NIST Computer Security Resource Center Glossary: rootkit
- MITRE ATT&CK T1014: Rootkit
- MITRE ATT&CK T1543.001: Create or Modify System Process: Launch Agent
- Apple Support: About System Integrity Protection on your Mac
- Apple Platform Security: System security overview
- Apple Support: About Lockdown Mode
在你的 Mac 上实践
免费试用全部功能 17 天,无需绑定银行卡。