🛡️ 第二章 针对网络的攻击
📄 一句话概括

后门是"一条不需要走正门的通道",而 rootkit 是"让这条通道连门缝都找不到"——两者的共同点是:攻击者要的不是这一次进来,而是下次还能进来。

📝 本节和前面几节的关系

上一节(无辜的人变成犯罪者)讲的是"你的设备被当成工具用"。这一节更进一步:攻击者不只用一下,还要留一条长期入口。

它回应了第一章的两个词——责任可追溯性(有后门就意味着有人可以不经过认证做任何事,日志还可能是假的)和 权限只交给合适的人 里的"默认关闭"。后门的本质就是一条不走认证的旁路。

一、后门与 rootkit,是两个不同的东西

教材把这两个词放在一起,但它们是两种角色:

名称 它是什么 解决的问题
后门 一条不需要正常认证就能进入或控制系统的通道 攻击者怎么下次再进来
rootkit 一套让恶意程序藏起来不被人发现的工具集 攻击者怎么不被发现

一句话对照:后门解决"进得来",rootkit 解决"看不见"。 实践中常常是组合使用——留一个后门,再用 rootkit 把它藏起来。

一个常被说错的点:rootkit 本身通常不是"用来攻击的武器",而是"用来隐藏的伪装"。 它可能包含替换过的命令(让你查进程时看不到它)、被修改的内核模块、被改写的启动流程等等。它不制造破坏,它负责让破坏看不见。

二、藏在哪一层,决定了能不能清掉

这是本节最核心的一张表。后门/rootkit 的层次越往下,清除的难度越高、检测的手段越少:

  1. 用户态——普通程序、计划任务、启动项。用常规的排查手段(看任务计划、看启动项、看服务)就能找出来,删掉即可。
  2. 内核态——内核模块、驱动程序。它能拦截和篡改系统调用,所以"用系统自身的工具去查系统"这件事本身就不可信了。重装系统可以解决。
  3. 虚拟化层——运行在操作系统之下的那一层。极端情况下,它所呈现给你的"系统状态"是它可以决定让你看到的样子。
  4. 固件层——主板固件、网卡/硬盘/外设固件。代码在操作系统启动之前就已经运行了,而且存在芯片的闪存里。重装系统无效——系统是干净的,但下次开机又被植回来。

这就带出本节最重要的一条结论:

"重装系统"这个万能动作,在足够深的层次上是失效的。

三、三类常见的后门来源

  1. 被攻击后自己装的——攻破之后顺手留一个入口(一个额外账号、一个定时任务、一段监听代码)。这是最传统的一类。
  2. 产品自带的——厂商为了方便维护预留的通道(有时叫"调试接口""维护账号")。这类后门的危险在于它通常是合法的、有签名的、还写在文档里的,所以谁也不会去查它。"默认口令"本质上就属于这一类。
  3. 藏在更新包里的——这一类在近几年成了最大的一类。攻击者不碰你的机器,他去污染你信任的那个软件包。你按流程正常更新,更新本身就在装后门。

三类里第三类最难防——因为前两类你至少可以在自己的机器上找,第三类的入口在你的供应链上。

四、动手 Demo:藏在哪一层,决定了清除代价

layers = [
    ("用户态", "普通程序、计划任务、启动项", "能", "计划任务/启动项/服务核查", "低"),
    ("内核态", "内核模块、驱动程序", "能(重装即清)", "内核完整性校验/终端检测响应", "中"),
    ("虚拟化层", "虚拟机监视器(Hypervisor)", "很难", "从外部做度量与比对", "高"),
    ("固件层", "主板 UEFI、网卡/硬盘/外设固件", "不能(在闪存芯片里)", "硬件级度量/远程证明", "极高,可能要报废设备"),
]

实跑输出:

  层次        藏身之处                            重装系统能清吗         靠什么发现                         清除代价
  ------------------------------------------------------------------------------------------------------------
  用户态         普通程序、计划任务、启动项                     能                 计划任务 / 启动项 / 服务核查               低
  内核态         内核模块、驱动程序                         能(重装即清)           内核完整性校验 / 终端检测响应                中
  虚拟化层        虚拟机监视器(Hypervisor)                很难                从外部做度量与比对                       高
  固件层         主板 UEFI、网卡 / 硬盘 / 外设固件            不能(在闪存芯片里)        硬件级度量 / 可信平台模块远程证明              极高,可能要报废设备

  ① 分层的意义:越往下走,清除的代价越高,检测的手段越少。
     到了固件层,【重装系统】这个万能动作彻底失效——
     系统是干净的,但下一次开机又被植回来。
  ② 固件后门是真事:2026 年公开过一起通过主板厂商固件更新渠道投毒的
     UEFI 后门,目标是企业笔记本,能在系统之下长期驻留。
     权威攻击知识库把这类手法编为 T1542 启动前技术,含 5 个子技术。
  ③ 另一类后门根本不需要碰你的机器——藏在【你信得过的更新包里】。
     2026 年 npm 生态连续爆发自复制蠕虫:一次维护者账号被劫持,
     就把该账号能发布的所有包一次性投毒,还能继续感染下游。
     全新变化是:这些包带着【有效的签名与构建来源证明】,验签全过。
  ④ 于是对后门的正确期望是:不指望全清,而是【早发现 + 限制它的作用】。

读这个输出:注意"探测手段"这一列的走向——越往下,手段越依赖"从外部看"。原因在第二节说过:到了内核态以下,用系统自己的工具去查系统已经不可信了(因为工具本身可能被改过)。所以到固件那一层,正确的做法是从设备外部去度量它,而不是问它"你有没有被改过"。

五、检测后门的思路

前面说了预防要靠分层,那怎么发现?几条实用的思路:

  1. 比对基线——固件版本、启动项、内核模块、服务列表,都留一份基线,定期比。收到"某台机器重装了三次、同样的怪现象回来了"这种反馈时,这是一个极强的信号(因为这已经不是软件层的问题了)。
  2. 看间接信号——固件后门很少留下"直接证据",但会留下异常:开机变慢、启动过程偶尔重启一次、固件更新工具莫名其妙失败、网卡行为与系统配置不符、外设反复重新枚举。
  3. 从外部度量——用可信平台模块这类硬件机制,把启动过程的度量值送到设备之外的收集器去比对。关键在"存在设备之外的"——存在被感染的机器本地,等于自己给自己打分。
  4. 别做的事——在可疑系统内部扫描固件,然后相信扫描结果。这是最典型的自我欺骗。

六、⚠️ 2026 现状

30 秒实验

做两件事,都是在手机上就能做:

  1. 看你的手机是不是自动更新的:设置里搜"软件更新",看有没有"自动下载并安装"这类开关。开着的意义是:一个已知漏洞从公开到被利用的时间,往往比"你什么时候想起来去更新"短。
  2. 数一下你信任了多少个"第三方":你的浏览器装了几个扩展?你常用的软件里有几个是"从别处下载的"?——每一个都是供应链上的一个入口,而它们全都运行在你完全信任的前提下。这就是为什么这一节的结论是"不指望全清,而是早发现+限制它的作用"。

这一节要带走的一句是:后门的目标不是这一次的成功,而是下一次的方便——所以它一定藏在最难清掉的那一层。

常见误区

  1. 错误:重装系统是最彻底的办法,出问题就重装。——纠正:在足够深的层次上,重装是无效的。 如果植入物在固件里(主板、网卡、硬盘的闪存芯片),重装只是把操作系统换了,植入物还在,下次开机又回来。这也是为什么"重装了还是老毛病"是一条非常值得重视的线索。

  2. 错误:我有终端防护软件,它能查到这些东西。——纠正:常规的终端防护运行在操作系统之内,而内核态以上的植入物可以拦截并过滤它的查询请求(你查进程列表,它就先把恶意进程从结果里去掉)。"用系统自己的工具去查系统"在这一层已经不可信了,需要从设备外部做度量。

  3. 错误:这个软件包有签名、有构建来源证明,所以是安全的。——纠正:这是 2026 年最重要的认知更新。被污染的包是通过正常的构建流水线发布的,带着有效的签名与来源证明。 密码学能证明"这个包确实由这个身份发布",不能证明"这个身份没有被盗用"。所以判断一个包是否可信,不能只看签名。

  4. 错误:发现恶意包,卸载掉、重新装个干净版本就恢复了。——纠正:自复制类的恶意包在安装完成之前就已经执行,并且收集了环境里的全部凭据。所以正确的处置是:把装过它的开发机和构建环境都当作已失陷——卸载只是第一步,接下来必须轮换所有相关凭据、重建环境、审计这段时间内的所有提交与访问记录。

自测三问(点开对答案) 1. "后门"和"rootkit"分别解决什么问题?为什么常被一起使用? —— **后门解决"怎么再进来"**(一条绕过正常认证的通道),**rootkit 解决"怎么不被发现"**(一套隐藏自己的工具集)。二者常常组合:留一个后门保证能进来,再加一层隐藏保证不被清掉。**注意 rootkit 本身通常不制造破坏,它是伪装层。** 2. 为什么在"固件层"植入的后门,重装系统清不掉?应对思路是什么? —— 因为固件**存放在设备的非易失性存储(闪存芯片)里**,**在操作系统启动之前就已经运行**。重装系统只换掉了硬盘上的操作系统,**芯片里的东西没动**,下次开机它照样先跑起来。应对思路不是"清",而是**从设备外部做度量**:用硬件信任根(可信平台模块)把启动过程的度量值送到**设备之外的收集器**去比对。对高风险设备,有时唯一可靠的做法是**报废或按厂商的恢复流程重新初始化**。 3. 为什么"包有有效签名"不能证明它是安全的? —— 因为签名证明的是**"这个包由某个身份发布过"**,而不是**"那个身份没有被盗用"**。2026 年多起供应链事件里,攻击者是通过盗用维护者账号、走**正常的构建流水线**发布的——**证书是真的、构建日志是真的、来源证明是真的,包本身是恶意的**。所以除了签名,还需要:**锁定依赖的确切版本、保留依赖清单、监控异常的发布行为、及时轮换凭据。**

相关笔记