后门是"一条不需要走正门的通道",而 rootkit 是"让这条通道连门缝都找不到"——两者的共同点是:攻击者要的不是这一次进来,而是下次还能进来。
上一节(无辜的人变成犯罪者)讲的是"你的设备被当成工具用"。这一节更进一步:攻击者不只用一下,还要留一条长期入口。
它回应了第一章的两个词——责任可追溯性(有后门就意味着有人可以不经过认证做任何事,日志还可能是假的)和 权限只交给合适的人 里的"默认关闭"。后门的本质就是一条不走认证的旁路。
一、后门与 rootkit,是两个不同的东西
教材把这两个词放在一起,但它们是两种角色:
| 名称 | 它是什么 | 解决的问题 |
|---|---|---|
| 后门 | 一条不需要正常认证就能进入或控制系统的通道 | 攻击者怎么下次再进来 |
| rootkit | 一套让恶意程序藏起来不被人发现的工具集 | 攻击者怎么不被发现 |
一句话对照:后门解决"进得来",rootkit 解决"看不见"。 实践中常常是组合使用——留一个后门,再用 rootkit 把它藏起来。
一个常被说错的点:rootkit 本身通常不是"用来攻击的武器",而是"用来隐藏的伪装"。 它可能包含替换过的命令(让你查进程时看不到它)、被修改的内核模块、被改写的启动流程等等。它不制造破坏,它负责让破坏看不见。
二、藏在哪一层,决定了能不能清掉
这是本节最核心的一张表。后门/rootkit 的层次越往下,清除的难度越高、检测的手段越少:
- 用户态——普通程序、计划任务、启动项。用常规的排查手段(看任务计划、看启动项、看服务)就能找出来,删掉即可。
- 内核态——内核模块、驱动程序。它能拦截和篡改系统调用,所以"用系统自身的工具去查系统"这件事本身就不可信了。重装系统可以解决。
- 虚拟化层——运行在操作系统之下的那一层。极端情况下,它所呈现给你的"系统状态"是它可以决定让你看到的样子。
- 固件层——主板固件、网卡/硬盘/外设固件。代码在操作系统启动之前就已经运行了,而且存在芯片的闪存里。重装系统无效——系统是干净的,但下次开机又被植回来。
这就带出本节最重要的一条结论:
"重装系统"这个万能动作,在足够深的层次上是失效的。
三、三类常见的后门来源
- 被攻击后自己装的——攻破之后顺手留一个入口(一个额外账号、一个定时任务、一段监听代码)。这是最传统的一类。
- 产品自带的——厂商为了方便维护预留的通道(有时叫"调试接口""维护账号")。这类后门的危险在于它通常是合法的、有签名的、还写在文档里的,所以谁也不会去查它。"默认口令"本质上就属于这一类。
- 藏在更新包里的——这一类在近几年成了最大的一类。攻击者不碰你的机器,他去污染你信任的那个软件包。你按流程正常更新,更新本身就在装后门。
三类里第三类最难防——因为前两类你至少可以在自己的机器上找,第三类的入口在你的供应链上。
四、动手 Demo:藏在哪一层,决定了清除代价
layers = [
("用户态", "普通程序、计划任务、启动项", "能", "计划任务/启动项/服务核查", "低"),
("内核态", "内核模块、驱动程序", "能(重装即清)", "内核完整性校验/终端检测响应", "中"),
("虚拟化层", "虚拟机监视器(Hypervisor)", "很难", "从外部做度量与比对", "高"),
("固件层", "主板 UEFI、网卡/硬盘/外设固件", "不能(在闪存芯片里)", "硬件级度量/远程证明", "极高,可能要报废设备"),
]
实跑输出:
层次 藏身之处 重装系统能清吗 靠什么发现 清除代价
------------------------------------------------------------------------------------------------------------
用户态 普通程序、计划任务、启动项 能 计划任务 / 启动项 / 服务核查 低
内核态 内核模块、驱动程序 能(重装即清) 内核完整性校验 / 终端检测响应 中
虚拟化层 虚拟机监视器(Hypervisor) 很难 从外部做度量与比对 高
固件层 主板 UEFI、网卡 / 硬盘 / 外设固件 不能(在闪存芯片里) 硬件级度量 / 可信平台模块远程证明 极高,可能要报废设备
① 分层的意义:越往下走,清除的代价越高,检测的手段越少。
到了固件层,【重装系统】这个万能动作彻底失效——
系统是干净的,但下一次开机又被植回来。
② 固件后门是真事:2026 年公开过一起通过主板厂商固件更新渠道投毒的
UEFI 后门,目标是企业笔记本,能在系统之下长期驻留。
权威攻击知识库把这类手法编为 T1542 启动前技术,含 5 个子技术。
③ 另一类后门根本不需要碰你的机器——藏在【你信得过的更新包里】。
2026 年 npm 生态连续爆发自复制蠕虫:一次维护者账号被劫持,
就把该账号能发布的所有包一次性投毒,还能继续感染下游。
全新变化是:这些包带着【有效的签名与构建来源证明】,验签全过。
④ 于是对后门的正确期望是:不指望全清,而是【早发现 + 限制它的作用】。
读这个输出:注意"探测手段"这一列的走向——越往下,手段越依赖"从外部看"。原因在第二节说过:到了内核态以下,用系统自己的工具去查系统已经不可信了(因为工具本身可能被改过)。所以到固件那一层,正确的做法是从设备外部去度量它,而不是问它"你有没有被改过"。
五、检测后门的思路
前面说了预防要靠分层,那怎么发现?几条实用的思路:
- 比对基线——固件版本、启动项、内核模块、服务列表,都留一份基线,定期比。收到"某台机器重装了三次、同样的怪现象回来了"这种反馈时,这是一个极强的信号(因为这已经不是软件层的问题了)。
- 看间接信号——固件后门很少留下"直接证据",但会留下异常:开机变慢、启动过程偶尔重启一次、固件更新工具莫名其妙失败、网卡行为与系统配置不符、外设反复重新枚举。
- 从外部度量——用可信平台模块这类硬件机制,把启动过程的度量值送到设备之外的收集器去比对。关键在"存在设备之外的"——存在被感染的机器本地,等于自己给自己打分。
- 别做的事——在可疑系统内部扫描固件,然后相信扫描结果。这是最典型的自我欺骗。
六、⚠️ 2026 现状
- 固件后门已经从"极少数国家级工具"走向"有实例的产业手法"。 2026 年公开的一起案例是:攻击者利用主板厂商固件更新渠道的薄弱环节,用被污染的固件版本替换合法更新,从而在企业笔记本上部署 UEFI 后门。它的特点是在操作系统之下长期驻留——磁盘格式化、重装系统都清不掉,因为它住在主板的闪存芯片里。业内评论把这类"操作系统之下的攻击"列为需要重点关注的威胁类型。
- 公开的攻击知识库已经把这类手法体系化。 相关条目(启动前技术)包含 5 个子技术:系统固件、组件固件、启动套件、路由器引导程序、网络引导。也给了一组可操作的检测方向:启动记录或引导分区被非更新途径修改、固件更新工具从不寻常的父进程启动、有进程直接往裸盘扇区写入、随后出现未签名驱动加载。这几条可以直接拿去对照自己的环境。
- 供应链方向才是 2026 年真正的规模所在。 这一年后门事件的主体不是"有人黑进你的电脑装东西",而是"你信任的软件包本身就带着东西":
- 2026 年 3 月,一个威胁组织在五天内发动连续行动,把某个被广泛使用的安全扫描工具的77 个版本标签中的 76 个全部重定向到恶意代码——因为版本标签是可变的,所以任何引用了这个工具的工作流,下一次运行就会自动拉到恶意版本。
- 2026 年 8 月出现的自复制蠕虫变种,一次感染了400 多个包,这些包累计下载量超过 20 亿次。它的传播方式是:在安装完成之前就自动执行(利用安装前置钩子),然后收集环境里的凭据,用这些凭据去感染这个账号能发布的所有其他包,继续往外扩散。
- 两个此前不成立的结论,这一年在安全圈成了常识:
- "验签名通过"不再等于安全。 被污染的版本是通过正常的构建流水线发布的,带着有效的构建来源证明。证书是真的、日志是真的、校验全过——包是恶意的。
- "删掉恶意包"不等于清干净。 因为是自复制传播,任何装过被污染包的开发机或构建环境,都应当视为已经失陷——要换凭据、要重建环境,不是卸载就完事。
- 一个反直觉的数字:有统计盘点了近两年 59 个供应链投放活动、657 个恶意包样本,其中没有任何一个被分配 CVE 编号。原因很清楚——这些攻击利用的不是代码缺陷,而是信任假设。所以"打补丁"这条路在这里是走不通的,能做的事只有三件:锁定依赖的确切版本(而不是用范围)、保留依赖清单、及时轮换所有凭据。
30 秒实验
做两件事,都是在手机上就能做:
- 看你的手机是不是自动更新的:设置里搜"软件更新",看有没有"自动下载并安装"这类开关。开着的意义是:一个已知漏洞从公开到被利用的时间,往往比"你什么时候想起来去更新"短。
- 数一下你信任了多少个"第三方":你的浏览器装了几个扩展?你常用的软件里有几个是"从别处下载的"?——每一个都是供应链上的一个入口,而它们全都运行在你完全信任的前提下。这就是为什么这一节的结论是"不指望全清,而是早发现+限制它的作用"。
这一节要带走的一句是:后门的目标不是这一次的成功,而是下一次的方便——所以它一定藏在最难清掉的那一层。
常见误区
-
错误:重装系统是最彻底的办法,出问题就重装。——纠正:在足够深的层次上,重装是无效的。 如果植入物在固件里(主板、网卡、硬盘的闪存芯片),重装只是把操作系统换了,植入物还在,下次开机又回来。这也是为什么"重装了还是老毛病"是一条非常值得重视的线索。
-
错误:我有终端防护软件,它能查到这些东西。——纠正:常规的终端防护运行在操作系统之内,而内核态以上的植入物可以拦截并过滤它的查询请求(你查进程列表,它就先把恶意进程从结果里去掉)。"用系统自己的工具去查系统"在这一层已经不可信了,需要从设备外部做度量。
-
错误:这个软件包有签名、有构建来源证明,所以是安全的。——纠正:这是 2026 年最重要的认知更新。被污染的包是通过正常的构建流水线发布的,带着有效的签名与来源证明。 密码学能证明"这个包确实由这个身份发布",不能证明"这个身份没有被盗用"。所以判断一个包是否可信,不能只看签名。
-
错误:发现恶意包,卸载掉、重新装个干净版本就恢复了。——纠正:自复制类的恶意包在安装完成之前就已经执行,并且收集了环境里的全部凭据。所以正确的处置是:把装过它的开发机和构建环境都当作已失陷——卸载只是第一步,接下来必须轮换所有相关凭据、重建环境、审计这段时间内的所有提交与访问记录。
自测三问(点开对答案)
1. "后门"和"rootkit"分别解决什么问题?为什么常被一起使用? —— **后门解决"怎么再进来"**(一条绕过正常认证的通道),**rootkit 解决"怎么不被发现"**(一套隐藏自己的工具集)。二者常常组合:留一个后门保证能进来,再加一层隐藏保证不被清掉。**注意 rootkit 本身通常不制造破坏,它是伪装层。** 2. 为什么在"固件层"植入的后门,重装系统清不掉?应对思路是什么? —— 因为固件**存放在设备的非易失性存储(闪存芯片)里**,**在操作系统启动之前就已经运行**。重装系统只换掉了硬盘上的操作系统,**芯片里的东西没动**,下次开机它照样先跑起来。应对思路不是"清",而是**从设备外部做度量**:用硬件信任根(可信平台模块)把启动过程的度量值送到**设备之外的收集器**去比对。对高风险设备,有时唯一可靠的做法是**报废或按厂商的恢复流程重新初始化**。 3. 为什么"包有有效签名"不能证明它是安全的? —— 因为签名证明的是**"这个包由某个身份发布过"**,而不是**"那个身份没有被盗用"**。2026 年多起供应链事件里,攻击者是通过盗用维护者账号、走**正常的构建流水线**发布的——**证书是真的、构建日志是真的、来源证明是真的,包本身是恶意的**。所以除了签名,还需要:**锁定依赖的确切版本、保留依赖清单、监控异常的发布行为、及时轮换凭据。**- ☐ 下一节(2-7 增加负载的攻击类型)
相关笔记
- 无辜的人变成犯罪者 —— 上一篇:设备被借用之后,往往会被留下后门
- 增加负载的攻击类型 —— 下一篇:有了机器以后,怎么把它们组织起来发力
- 外部入侵的检测和防御 —— 后面会讲:怎么从行为上发现"里面有东西"
- 三要素以外的特性 —— 后门直接破坏责任可追溯性
- 🛡️ 网络与信息安全 · 索引 —— 全课路线图