定义

零日漏洞(Zero-day / 0day):软件中存在、但厂商和公众都不知道(或厂商尚未发布补丁)的安全漏洞。

"零日"的含义:防御者拥有"零天"的时间来准备防御——因为漏洞在被发现时已经被利用了。

生命周期

漏洞被引入代码
      ↓
  (潜伏期,可能数月到数年)
      ↓
  被某人发现
      ↓
 ┌────┴────┐
 ↓         ↓
厂商通报  被用于攻击
(负责任披露)(或被交易、囤积)
 ↓         ↓
补丁发布   在野利用
 ↓         ↓
用户修补   (直到补丁应用前都有效)

关键点:从"漏洞存在"到"有补丁可用"之间,存在一个窗口期。零日攻击就发生在这个窗口内。

谁在寻找零日

一、安全研究者

发现了漏洞后,通常会走负责任披露流程:

  1. 私下通知厂商;
  2. 给予修复期限(通常 90 天,有时会延长);
  3. 期限过后公开细节。

二、厂商内部团队和第三方审计

三、漏洞赏金平台

如 HackerOne、Bugcrowd,以及各厂商自己的赏金计划——用金钱奖励研究者按规则报告漏洞。

四、恶意攻击者

用于实际攻击,或在黑市/灰市交易。

五、某些国家的情报和军事机构

漏洞可以被当作"网络武器"储备——这引发了关于"漏洞 equitable(漏洞公平裁决程序)"的讨论:应该在发现漏洞时优先公开(保护公众)还是保密(用于情报行动)。

攻击链

一个完整的攻击通常不只用一个漏洞:

  • 初始入口:可能是一个零日(如浏览器、邮件客户端、VPN 设备);
  • 权限提升:利用操作系统漏洞获取更高权限;
  • 横向移动:在内网传播;
  • 持久化:保持访问。

APT(高级持续性威胁)组织常常使用零日——因为成本虽高,但能绕过常规防御。

防御的思路

既然无法防御"未知的漏洞",怎么办?

一、纵深防御(Defense in Depth)

不依赖单一防线:

  • 网络分段(限制横向移动);
  • 最小权限(限制单个漏洞的破坏范围);
  • 应用沙箱(如浏览器沙箱、容器隔离);
  • 行为检测和异常检测(不依赖特征库)。

二、快速响应能力

  • 监控补丁公告;
  • 建立资产清单(知道要打哪些补丁);
  • 能快速测试和部署紧急补丁。

三、缓解措施

很多时候,即使没有补丁,也可以:

  • 禁用有问题的功能;
  • 应用配置变更;
  • 部署 WAF/IPS 规则(拦截已知的利用模式)。

四、减少攻击面

  • 关闭不必要的服务和端口;
  • 卸载不用的软件;
  • 限制软件的安装权限。

五、威胁情报

关注本行业、本技术栈的漏洞动态。

一个经济视角

零日漏洞有黑市价格——不同目标(如主流操作系统、移动平台、特定应用)的漏洞价格差异很大。

这形成了一个灰色市场,包括漏洞经纪人(broker)。

争议:当安全公司或政府机构购买零日漏洞用于攻击(而非推动修复)时,公众实际上处于风险之中。这是安全社区长期争论的议题。

常见误区

"零日漏洞很常见。"

实际上,真正的零日(在被利用时厂商完全不知情)相对罕见——因为发现并利用一个零日需要相当高的技术能力和资源。

日常遇到的大多数攻击,使用的是已知漏洞(N-day)——即已经有补丁、但用户尚未安装的漏洞。

这恰恰说明:及时打补丁,能防御绝大多数攻击。

说明:本文为安全领域的知识整理。