零日攻击(零日漏洞)确实"没有补丁可打",但"没有补丁"不等于"没办法"——它改变的是防守的手段,而不是防守的成败。真正值得担心的不是零日,而是那些"补丁早就有了、却没人打"的 n-day:2026 年被利用漏洞的增量里,约六成来自这一边。
4-1 讲了漏洞怎么分类,4-2 讲了有补丁时该怎么抢时间。这一节问的是那个边界情况:如果补丁还没出呢?
它也是 3-8 的延续:那一节讲的"针对型攻击"打的是"你这个特定目标",这一节讲的零日打的是"这个漏洞的补丁还没出"——两者常常同时出现,但它们是两把不同的尺子:一个按"目标是特定的还是随机的"分,一个按"补丁有没有出"分。
一、零日和 n-day,只差一件事
教材把"零日攻击"单独列一条,是因为它和前面讲的所有攻击有一个根本区别。这个区别只有一件事:补丁出了没有。
| 类型 | 补丁状态 | 防守方的处境 |
|---|---|---|
| 零日(0-day) | 还没有 | 无补丁可打,只能靠架构与检测 |
| n-day | 已经有了 | 有补丁可打,差的是有没有打、打多快 |
"零日"这个名字本身就说明了它的含义:从漏洞被发现,到厂商做出补丁并公开,中间的这段"零天",防守方是没有任何官方修复手段的。
但请注意一个容易搞混的地方:零日说的是"补丁还没出",不是"没人知道"。一个漏洞可以在被人利用了很久之后才被发现、才变成"已知"——对防守方来说它一直是零日,对攻击方来说它是一只随时能用的钥匙。
二、"没有补丁"的时候,还能做什么
零日不是"无解",而是"换一套解法"。有补丁的时候,你的主要动作是"打补丁";没有补丁的时候,你要靠的是下面这几件事:
- 架构上的隔离:把一个能被打穿的组件放在"打穿了也走不远"的位置。这是零日面前最有效的一招——你无法阻止它进来,但你可以决定它进来之后能碰到什么。
- 行为检测:没有特征可以匹配,那就去匹配"行为不正常"。补丁缺失意味着"按漏洞形状找"这条路断了,只剩"看它干了什么"。
- 最小权限与分段:让攻击者即使得手,也拿不到顺手的工具(这也是 2-8 讲的"纵深防御"在漏洞场景下的具体用法)。
- 临时缓解措施:关掉用不上的功能、把服务收到内网、加一条过滤规则——这些都是"减弱"而不是"修复"(4-10 讲的虚拟补丁就是这一类)。
所以教材这一节的标题"存在无法防范的攻击吗",答案不是"有"或"没有",而是:存在无法【打补丁】的攻击,但不存在只能【什么都不做】的攻击。
三、动手 Demo:2026 年的增量,到底来自哪一边
下面这段脚本把 2025 年和 2026 年被利用漏洞的数量摆在一起,再拆开看增量来自零日还是 n-day:
# 数据口径:GTIG(谷歌威胁情报团队)2026 年 1~8 月统计
rows = [
("被利用的零日", "90 个", "月均 11 个(8 月单月 22 个)"),
("被利用漏洞月均", "10.5 个", "18 个"),
(" 其中零日", "8 个/月", "11 个/月"),
(" 其中 n-day", "2.5 个/月", "7 个/月"),
]
# 增量 7.5 个/月里,n-day 贡献 4.5 个
print(4.5 / 7.5) # 0.6 → 六成
实跑输出:
一、零日与 n-day 的区别(只看一件事:补丁出了没有)
类型 补丁状态 防守方的处境
----------------------------------------------------------------------------------------------
零日(0-day) 还没有 无补丁可打,只能靠架构与检测
n-day 已经有了 有补丁可打,差的是有没有打、打多快
二、2025 与 2026 的对比(GTIG 口径)
指标 2025 2026(1~8 月)
----------------------------------------------------------------------------------------------
被利用的零日 90 个 月均 11 个(8 月单月 22 个)
被利用漏洞(月均) 10.5 个 18 个
其中零日 8 个/月 11 个/月
其中非零日(n-day) 2.5 个/月 7 个/月
→ 增量 7.5 个/月里,非零日贡献 4.5 个:
也就是【60% 的增长,来自补丁已经出了但没人打】。
三、KEV(已确认被利用漏洞)目录的进货速度
时间窗 新增条目 备注
----------------------------------------------------------------------------------------------
2025 全年 245 条 —
2026-01-01 ~ 10-01 247 条 九个月就超过去年全年
四、披露到利用的间隔(这条线已经完全塌了)
2018 年 63 天
2024 年 越过 0
2025 年 −7 天
→ 负号的含义:利用平均发生在补丁发布【之前】。
2026 年已有【首个确认由 AI 生成的零日利用】被记录在案。
读这个输出:
- 第一张表给的是判断依据:看到一条漏洞告警,先问"补丁出了没有"。出了补丁的,是执行问题(打没打、打多快);没出补丁的,是架构和检测问题——两类问题的解法完全不同,混在一起处理只会两头落空。
- 第二张表是这一节最该记住的一句话:被利用漏洞的增长里,60% 来自 n-day。换句话说:每年新出现的那些"无法防范的零日"只占少数,其余大部分其实是"有补丁、没打"。 对防守方来说这其实是好消息——因为这部分你本来就能修。
- 第三张表的对照很有说服力:KEV 目录 2025 年全年新增 245 条,而 2026 年只用了九个月就加了 247 条。这就是"入册速度"在加速的直接证据。
- 第四部分是整张表里最刺眼的一条:2018 年从披露到被利用平均还有 63 天的缓冲,2025 年这个数已经变成 −7 天。 负号的含义是"利用平均发生在补丁发布之前"——这也解释了为什么 4-2 里"抢时间"这件事变得越来越紧迫。
四、⚠️ 2026 现状
- 【零日的数量在抬头,但幅度有限】。 2025 年全年被利用的零日有 90 个(其中企业级产品占 48%,创下纪录);2026 年 1~8 月月均 11 个(2025 年是 8 个),8 月单月出现 22 个。"单月 22 个"这个数字说明零日的出现不是均匀的——它会在某个窗口集中爆发,通常和某个被广泛使用的组件的漏洞集中披露有关。
- 【真正在涨的是 n-day,不是零日】。 2026 年被利用漏洞的月均数量从 10.5 涨到 18 个,其中零日从 8 涨到 11(多了 3 个),n-day 从 2.5 涨到 7(多了 4.5 个)。也就是说,新增威胁里更大的那一块,是"早就发了补丁、但还没打上去"的漏洞。 这件事对防守方的意义是正面的:可防的那部分在变大。
- 【"披露到利用"的间隔已经塌了】。 2018 年这个数字是 63 天,2024 年越过 0,2025 年是 −7 天(平均而言,利用发生在补丁发布之前,也就是典型的零日式利用)。"等一等、看看情况"这种老办法,在时间轴上已经没有立足之地了。
- 【出现了第一个"由 AI 生成的零日利用"】。 2026 年记录到的这个案例的特点是:它绕过了双因子认证,而且意图是"大规模利用"(最终被阻断)。这件事的分量在于它改写了"谁能写出零日利用"这个前提——过去能做零日利用的是少数高手,现在这个门槛在下降(这也和 3-8 讲的"高级攻击在平民化"是同一个趋势)。
- 【防零日的现实重心,已经落在"假定被攻破"上】。 既然零日必然有一部分防不住,那么资源应该投向"被攻破之后":分段隔离、最小权限、日志留存、异常行为告警。这也解释了为什么各国近年的指南都在强调"入侵证据"和"日志默认开启"(4-11 会讲到这一条)。
30 秒实验
今天做两个动作,各 15 秒:
- 想一件"如果你现在被打进去,你能发现吗"的事。挑一个你天天用、且暴露在外的服务(路由器、云端服务器、公司对外网站),问自己:"假设它今天被利用了一个没有补丁的漏洞,我多久会发现?靠什么发现?" 如果你答不上来"靠什么发现",那说明你防的不是零日,而是"零日之后没人知道"——这才是更危险的部分。
- 做一次"如果只能减少一件事"的取舍。在"多装一个检测工具"和"把一台不必要暴露的机器收进内网"之间,今天先做后者。理由是:减少暴露面是不需要任何前提条件就有效的(对任何漏洞都成立),而检测工具只对"它认识的行为"有效——零日面前,前者的性价比明显更高。
这一节要带走的一句是:零日之所以可怕,不是因为它攻不进去,而是因为它让"打补丁"这条最有效的路暂时消失——所以当这条路消失时,你要能立刻换上另一套(隔离、检测、最小权限),而不是干等补丁。
常见误区
- 错误:零日攻击防不了,所以讨论它没有意义。——纠正:"防不了"说的是"防不住它的进入",不是"防不住它的危害"。零日一定能在某种程度上防——防的是"它进来之后能干成什么"。 现实中最常见的失守不是"被零日打进来了",而是"被零日打进来之后,攻击者一路畅通无阻":用同一个账号横穿所有系统、拿到的凭据可以访问全部数据、没有任何日志被留下来。 所以对付零日的功夫,大部分下在"进去之后"——分段、最小权限、日志、异常告警,这四件事对零日和 n-day 同时有效。
- 错误:公开的漏洞(n-day)没什么好怕的,反正补丁早就有了。——纠正:"有补丁"和"打了补丁"是两件事,而攻击者走的是后一件事。 2026 年被利用漏洞的增量里约 60% 属于 n-day,而且有一组更直接的数字:在公开披露之后,全网的自动扫描平均 15 分钟内就开始(4-2)。"补丁早就有"这个事实对攻击者毫无阻碍——他只要找那些没打的。所以看待一个漏洞的正确姿势是:不问"这个漏洞严重吗",而问"我这台机器打了没有"。
- 错误:"零日"意味着"这个漏洞是新出现的"。——纠正:"零日"说的是"厂商还没有补丁",不是"刚刚才出现"。一个漏洞可以存在很多年、被少数人利用很多年,直到被发现才进入公众视野——在被发现之前的那整段时间,它都算零日。反过来,一个刚公开的漏洞如果厂商当天就发了补丁,那它从公开那一刻起就已经不是零日了。 判断依据只有一个:补丁的状态,不是时间的新旧。
- 错误:负的"披露到利用间隔"意味着这些数字算错了。——纠正:负号是有意义的,它表示"利用平均发生在补丁发布之前"——也就是典型的零日式利用。 2018 年这个间隔是 63 天,2024 年越过 0,2025 年是 −7 天(4-2 里讲的"补丁窗口在收缩")。这个趋势的含义很实际:你不能把"等补丁"当作第一预案,因为越来越多的攻击根本不给你等的时间。
自测三问(点开对答案)
1. 判断一个漏洞是不是零日,唯一要看的是什么? —— **看补丁的状态:厂商有没有发布可用的修复**。**有补丁就是 n-day,没有补丁就是零日**。**不要用"发布时间新不新""被报道得多不多""CVSS 分高不高"来判断**——**这些都不影响它是不是零日**。**这个判断很重要,因为它直接决定你的动作**:**零日 → 靠隔离、检测、最小权限顶住,同时盯住厂商的缓解措施;n-day → 立刻查自己打了没有,能打就当天打**。**两者混为一谈的后果是:对着 n-day 讲"防不住",或者对着零日讲"赶紧打补丁"。** 2. 为什么说"被利用漏洞的增长里约六成来自 n-day"对防守方是好消息? —— **因为这部分是"你有能力修"的**。**2026 年被利用漏洞的月均数量从 10.5 涨到 18 个,其中零日多了 3 个、n-day 多了 4.5 个**。**零日那部分你只能靠架构和检测去顶(成本高、效果不确定);n-day 那部分你只要把补丁打上去就能直接消除(成本低、效果确定)**。**所以这条数字的正确读法是:威胁确实变多了,但变多的那部分里,大多数是可以靠既有手段解决的**——**真正的瓶颈不是技术,而是"发现自己在用哪些版本、并把这些版本升上去"的执行能力**(4-9 讲的盘点就是为这个服务的)。 3. 2026 年出现"第一个由 AI 生成的零日利用",为什么值得单独记一笔? —— **因为它动摇了"零日利用只能由少数高手做出"这个前提**。**过去能做零日利用的人很少,这本身就构成了一道天然的门槛(攻击的供给量受限)**。**如果 AI 能把这件事的门槛降下来,那么零日利用会从"稀有的手工艺品"变成"可以批量产出的东西"**——**直接后果就是:零日的数量会上升,而且"从漏洞公开到有人能利用"的间隔会进一步缩短**。**对应的防守思路是:不要再指望"利用门槛高"来保护你**(这正是 4-11 里"从源头消除整类漏洞"越来越被强调的原因)。- ☐ 下一节(4-4 数据库的非法访问)
相关笔记
- 修正系统软件漏洞 —— 上一篇:有补丁的时候怎么抢时间
- 数据库的非法访问 —— 下一篇:SQL 注入攻击
- 难以防范的针对型攻击 —— 另一种"难防":目标是特定的
- 防范针对 Web 应用的典型攻击手段 —— 没有补丁时的临时办法
- 🛡️ 网络与信息安全 · 索引 —— 全课路线图