0Day漏洞

什么是0Day漏洞

0day 漏洞是指负责应用程序的程序员或供应商所未知的软件缺陷。因为该漏洞未知,所以没有可用的补丁程序。

换句话说,该漏洞是由不直接参与项目的人员发现的。术语 “0day” 是指从发现漏洞到对其进行首次攻击之间的天数。0day 漏洞公开后,便称为 nday 漏洞。

0day漏洞原理

0day 漏洞的工作原理如下:

  1. 一个人或一个公司创建了一个软件,其中包含一个漏洞,但涉及编程或发行的人员却不知道。
  2. 在开发人员有机会定位或解决问题之前,有人(除负责软件的人员之外)发现了漏洞。
  3. 发现该漏洞的人会创建恶意代码来利用该漏洞。
  4. 该漏洞被释放。
  5. 负责人员将被告知漏洞利用并打补丁。
  6. 该漏洞不再被视为 0day。
  7. 补丁发布。

大多数情况下,针对 0day 漏洞的攻击很少立即被发现。发现这些缺陷通常可能需要几天或几个月的时间,这才使这类漏洞如此危险。

如何处理0day漏洞

作为管理员或用户,可能无能为力。最好的情况是永远不要使用未打补丁版本的软件。这在 Linux 社区中通常很常见,在 Linux 社区中,许多用户不会安装 .0 发行版。相反,他们将等待 .1 版本(例如 Ubuntu 19.10.1)。

通过避免最初发布的版本,可能会免受第一批产品中至少任何未发现的 0day 漏洞的影响。这并不意味着 .1 版本将修补所有的 0day 漏洞。如果有的话,甚至在下一个主要版本之前,它们都可能未被发现。经常在新闻中看到存在一段时间的软件中发现的新漏洞。

作为开发人员,最好的办法是招募尽可能多的版本测试人员。这是开源软件比专有软件更具优势的地方。在源代码公开的情况下,任何人都可以审查和测试代码。而且,Beta 开源软件通常面向公众发布,因此任何人都可以进行测试。另一方面,付费软件通常不会向公众发布 Beta(当然,也有例外)。当应用程序的 beta 测试人员数量有限时,发现的 bug 较少,从而导致 0day 漏洞的可能性更高。

因此,最终用户应该推迟采用全新的发行版本,而开发人员需要先进行测试、测试和测试,然后再发布给公众。

最后,你可以做的一件事就是确保将错误报告提交给开发人员和公司。错误报告是程序员解决软件问题的一种有效方法。而且,你永远都不会知道,你提交的 BUG 很可能导致 0day 漏洞的发现和后续修补。

0Day漏洞总结

0day 漏洞是指负责应用程序的程序员或供应商所未知的软件缺陷。因为该漏洞未知,所以没有可用的补丁程序。