0day就是零日漏洞或零时差漏洞(英文:zero-day、0day)通常是指还没有补丁的安全漏洞,零日漏洞得名于开发人员发现漏洞时补丁存在的天数:零天。

0day的出生和消亡是这样一个过程:由个人或公司创建的软件中包含一个漏洞,但涉及编程或发行的人员都不知道。在开发人员有机会定位或解决问题之前,有项目人员之外的人发现了漏洞。此时这个漏洞没有任何补丁,外界对它还处于未知的状态,即被视为0day。后来发现漏洞的人创建恶意代码来利用该漏洞,该漏洞被释放。负责人员得知漏洞被利用并打补丁,该漏洞将不再视为0day。

当“零日攻击”被发现并公开后,没有补丁的一段时间内(时间会很短,通常在一天内),根据习惯这个漏洞会被称为1day漏洞。例如2020年,互联网上出现大量利用WebLogic远程代码执行漏洞(CVE-2020-14882)的在野攻击,这是一个典型的利用1day漏洞进行大规模网络攻击的事件,在Weblogic完成补丁更新的情况下,未经授权的攻击者仍可绕过WebLogic后台登录等限制,并控制服务器。

当厂商提供了修复补丁,但是漏洞仍然在被利用时,我们一般会称呼这个漏洞为 Nday漏洞。例如永恒之蓝漏洞,虽然微软在WannaCry爆发之前就已经对其发布了补丁,但从爆发至今,还一直持续的被黑客所利用。

如果把可以利用漏洞进行攻击的时间设为Texp,漏洞被发现时间点、漏洞信息公布时间点、漏洞被修补时间点分别设为T0、T1、T2,那么:

0day漏洞:Texp < T1,漏洞已经被黑客发现,公众未知,官方还未推出漏洞的补丁,攻击有效性高。

1day漏洞:T1 < Texp < T2,漏洞信息已被发布,相关负责人采取临时修补手段,但大部分受影响系统因官方补丁的缺失导致其脆弱性依然广泛存在,攻击有效性仍较高。

Nday漏洞:Texp > T2,官方补丁已推出,此时利用该漏洞进行攻击,攻击有效性幅相对降低。

因此,根据0day漏洞、1day漏洞、Nday漏洞的特性,通常0day漏洞的严重级别较高,0day漏洞是开发者和使用者往往都未意识到、已经被攻击者所掌握的漏洞,所以攻击具有很大的突发性和破坏性。

目前还没有能够完全防范零日攻击的措施,但是科学完善的防御体系能够有效地减少被零日攻击的机率,以及降低零日攻击造成的损失。

以下是抵御零日攻击的具体措施:

1.实时更新补丁、修复漏洞:尽量缩短零日漏洞在系统和应用软件中的存在时间,定期对系统漏洞进行扫描修补,降低风险;

2.实时监测、主动防护:建设实时入侵检测和入侵防护系统,及时发现和阻挡一部分的零日攻击行为;

3.加固终端系统:计算机终端通常是整个网络环节中最薄弱的环节,对系统进行安全加固是减少系统被零日攻击的有效方法;

4.加强网络基础设施的安全:加强网络基础设施的安全,能降低网络被零日攻击后造成影响的范围和严重程度;

5.建立一个完善的应对零日攻击的应急响应方案:无论采取何种安全措施,都不能完全排除零日攻击威胁。完善的应急响应方案有助于快速处理阻止攻击,将损失减少到最小;

6.提高防范意识:提高网络安全防范意识,关注国内外网络安全发展动态,实时跟进学习网络安全防护技能。