管理员如何在补丁可用之前防止 0day?

信息安全 零日 黑帽 白帽
2021-08-19 02:43:28

我正在写一篇关于安全黑客社区的论文。

当 0day 发布时,管理员如何在 0day 发布和补丁开发之间保护他的应用程序/网站?

此外,大多数情况下,同样的 0day 被黑帽使用了几个月,那么黑帽是否领先于白帽?

4个回答

发现安全问题的人通常会首先将其报告给软件供应商或开发人员。这使软件供应商有时间在发布之前解决问题。然后,在修复后,该错误被公开披露。这个过程称为负责任的披露

有时,有人不会向软件供应商披露零日漏洞,而是使用它来破解其他系统。这样做可以提示安全公司并披露错误,烧毁零日漏洞。

我不认为你的说法“大多数时候,这个相同的 0day 被黑帽使用了几个月”是正确的。对于一些安全问题确实如此,但很多零日漏洞都是白帽黑客首次发现的。我不会说黑帽黑客领先于白帽黑客。他们都发现了安全问题,其中一些重叠。但是进攻比防守容易,进攻只需要找到一个bug,防守需要修复所有的bug。

当 0day 发布时,管理员如何在 0day 发布和补丁开发之间保护他的应用程序/网站?

他们使用临时解决方法,直到补丁推出。

当 0day 的消息传出时,通常会发布各种变通办法,通过消除滥用漏洞的一些先决条件来破坏漏洞利用。有很多可能性:

  • 更改配置设置可以禁用易受攻击的功能。

  • 在可行的情况下关闭易受攻击的服务可以防止被利用。

  • 启用非默认安全措施可能会破坏漏洞利用。

每个错误都是不同的,每个缓解措施都是不同的。如果发布了有关该漏洞的足够详细信息,则对安全性有很好理解的管理员可以自己找出解决方法。但是,大多数管理员会查看软件供应商发布的安全公告。

有时,管理员无需执行任何操作。如果漏洞仅影响非默认配置或未在其系统上设置的配置,则可能会出现这种情况。例如,Linux 的 DRM 视频子系统中的漏洞不必担心拥有 LAMP 堆栈的系统管理员,因为他们的服务器无论如何都不会使用 DRM。另一方面,Apache 中的漏洞可能是他们应该担心的问题。一个好的系统管理员知道什么是风险因素,什么不是风险因素。

此外,大多数情况下,同样的 0day 被黑帽使用了几个月,那么黑帽是否领先于白帽?

白帽更复杂,但黑帽更有效。

黑帽是否领先于白帽是一个非常主观的问题。Blackhats 将使用任何有效的方法。这意味着他们的攻击是有效的,但肮脏的,有时是简单的。例如,虽然可以通过旁道攻击发现浏览器的 ASLR 布局,但这并没有真正在野外使用,因为已经存在无处不在的简单 ASLR 绕过。另一方面,白帽公司需要想出解决办法,并让软件供应商认真对待这份报告。这不会在几乎相同程度上影响黑帽,因为他们通常可以在他们发现的那一刻开始从他们的发现中受益。他们不需要等待第三方。

根据我自己的经验,黑帽通常具有显着优势。这主要是因为当前的白帽文化是猎杀和压制单个虫子。较少强调压缩整个类别的错误,当它出现时,会创建低于标准和过度炒作的缓解措施(如 KASLR)。这意味着黑帽可以比修补它们更快地抽出 0days,因为很少关注攻击表面区域和不断被使用和重用的利用向量。

当发布或发布零日漏洞时,它不仅仅是一个花哨的名称和图标。有关于如何使用零日来利用系统的详细信息。这些细节构成了防御者响应的基础,包括需要如何设计补丁。

例如,在 WannaCry/ EternalBlue中,该漏洞是由 NSA 发现的,并且他们将知识保密(同样的情况也发生在可以在黑市上交易漏洞的犯罪社区)。详细信息被泄露,告知微软如何创建补丁,并告知管理员如何防御它:禁用 SMBv1 或至少阻止 SMB 端口与 Internet 连接。

这就是管理员保护自己的方式。打补丁只是“漏洞管理”的一部分。管理员可以做很多事情来管理漏洞,即使他们不能或不想修补。

在 WannaCry 案例中,NHS 没有打补丁,但他们也没有使用其他可以保护自己的防御措施。

我工作的很大一部分是为由于各种业务原因无法修补的系统设计漏洞缓解措施。一般来说,打补丁是更好的解决方案,但有时在打补丁时是不可能的。

...黑帽领先于白帽吗?

这提出了一个有趣的问题。如果黑帽发现问题并仅与其他黑帽(或情报界的其他成员)分享,这是否意味着黑帽总体上领先于白帽?是的。一旦零日暴露,它就失去了力量(这就是披露它的全部意义)。所以要保守秘密,给它权力。

黑帽比白帽更熟练或使用更好的技术吗?不,但总的来说,共享的秘密赋予了黑帽更多的权力。

当 0day 发布时,白帽如何在 0day 发布和补丁开发之间保护他的应用程序/网站?

有时有一些解决方法可以解决或缓解问题。

  • 有时您可以禁用某些功能或更改软件中的某些设置,从而导致漏洞利用不再起作用。例如,可以通过创建目录来防止感染 1988 年的莫里斯蠕虫/usr/tmp/sh这使蠕虫感到困惑并阻止它工作。
  • 有时,漏洞利用需要某种用户交互。在这种情况下,您可以警告用户不要这样做。(“不要打开主题为 ILOVEYOU 的电子邮件”)。但是因为人类是人类,所以这通常不是一个非常可靠的解决方法。
  • 有时网络上的攻击很容易识别,因此您可以使用一些或多或少复杂的防火墙规则来阻止它。例如,Conficker 病毒针对的是 Windows 远程过程调用服务中的一个漏洞。通常根本没有理由从本地网络外部访问此功能,因此可以通过简单地阻止对端口 445 TCP 的外部请求来保护整个网络。
  • 有时用替代品替换易受攻击的软件是可行的。例如,我们的组织在所有 Windows 客户端上安装了两个不同的 Web 浏览器。当其中一个存在已知漏洞时,管理员可以通过组策略将其停用,并告诉用户在补丁发布之前使用另一个。
  • 作为最后的手段,您可以简单地拔掉易受攻击的系统的插头。系统不可用造成的损害是否比它们在线和对攻击开放的损害更大或更小,这是您必须在每种情况下评估的业务考虑因素。

但有时这些都不是一个可行的选择。在那种情况下,你只能希望很快会有补丁。

此外,大多数情况下,同样的 0day 被黑帽使用了几个月,那么黑帽是否领先于白帽?

开发人员/白帽子在他们的软件中发现可能的安全漏洞并在它被利用之前对其进行修补的情况经常发生。负责任披露的第一步是通知开发人员,以便他们在您发布漏洞之前修复漏洞。

但你通常不会在媒体上听到这件事。当 SomeTool 1.3.9.53 补丁说明的第 59 点显示“在处理格式错误的 foobar 文件时修复了可能的缓冲区溢出”,这通常不是特别有新闻价值。