当我发现可能涉及公共利益的安全漏洞时该怎么办?

信息安全 脆弱性 披露
2021-08-23 07:37:47

假设我在安全系统中发现了一个可能的漏洞。该系统多年来一直被普遍认为是可靠的,如今已在全球范围内使用。

我不是安全专家,但有些事情让我担心:

  • 使用一个相信它是安全的安全系统比不使用更糟糕,因为无论出于何种原因,我都完全依赖它的安全性;
  • 该系统在不同的国家/地区实施,因此透露其不安全的原因可能会危及那些不立即更新系统的人;
  • 我想把我的工作/发现归功于我,但同时这个发现对我来说可能太大了;
  • 由于多年来一直被认为是最好的,没有人花费时间和资源来寻找更好的安全系统,因此目前没有真正的替代品;
  • 揭示问题而不提供解决方案似乎是对科学界说“嘿,你认为安全的一切都不是,快点找到更好的解决方案”。

由于上述所有原因,我想知道在这种笨拙的情况下应该怎么做。

原谅我的含糊不清,但我想你明白其中的原因。

4个回答

这将是一个关于你应该如何进行的意见问题。我们已经有一个问题解释了报告漏洞的不同道德方式。

首先,对于这么大的事情,我个人建议您首先保持匿名,同时留出一条路来证明确实是您发现了该漏洞。创建一个全新的 PGP 密钥(与您的身份无关),用它签署您的消息并匿名发布它们(例如通过 Tor)。如果您后来确信一切都很好,并且没有数百名嗜血的律师追随您,您可以使用该密钥签署一条消息,说是您(用您的全名)。

我推荐负责任的披露方法:您与所述安全系统的开发人员取得联系,并给他们一些时间来部署补丁。

如果您没有得到回应、愚蠢的回应,甚至是成群的愤怒律师对您咆哮,只需使用您的匿名公开,让每个人都知道该公司如何处理安全漏洞。

我不同意这样一个事实,即在不提供替代方案的情况下披露缺陷是一个坏主意。坏人可能已经知道该缺陷,最好让每个人都知道它(并且至少可以知道它不安全),而不是让坏人非常喜欢使用该信息。此外,即使现在没有其他选择,这一发现也可能会激励某人真正做出安全的选择。

最后,虽然我不知道我们在谈论什么样的“安全系统”,但安全应该分层完成,任何依赖该系统作为唯一防御的公司都应该倒下,就像那些不这样做的公司一样一旦修复可用,就麻烦更新。

您将需要验证这是一个实际的漏洞,通常是通过创建概念验证。从那里,您可以:

  • 私下联系软件供应商,解释你的发现和与之相关的问题,附上PoC供他们分析。
  • 向公众发布漏洞,希望额外的关注能够说服供应商发布修复程序。
  • 对此完全保持沉默,希望黑帽不会找到它。

第一个选项可能是最好的。您无需公开您的个人身份即可发布信息。在类似情况下,我使用了几个句柄和一次性帐户进行此类通信。

第二种选择是有风险的。您冒着公众强烈反对的风险(“他们为什么要向滥用它的人公开漏洞?”)并且您将自己和供应商置于不利的境地。虽然有些人可能会为您的努力鼓掌,但其他人会认为这是一个问题。

第三种选择风险更大。如果你有能力创建 PoC,那么有恶意的人也有能力。这里唯一的区别是你尝试过的真正的 Security Through Obscurity也就是一个非常糟糕的时间

你最好的选择是从第一个选项开始,如果你被完全忽略,则退回到第二个选项。我已经看到人们与供应商联系数月,最终向公众发布漏洞,然后看到解决该问题的补丁的故事。在理想情况下,供应商会认真对待这一点,并在您与他们联系后解决问题。除非他们对问题疏忽或发现它不是问题,否则他们将是解决问题的最佳人选。如果他们未能解决这个问题,他们将面临成为下一个JavaFlash的真正风险,即完全不受公众信任。

这通常对企业不利。

你想获得荣誉,但你不想被人知道?那是行不通的。
决定什么更重要:信用,或匿名公开漏洞。

如果让人们知道更重要,我看到你有一个新帐户等,那很好。(如果它真的那么大,我希望你在新设备上有一个新的操作系统,没有浏览器配置文件,还有 Tor。如果没有,现在开始为时已晚。)。
作为下一步,如果您甚至不确定它是否是一个漏洞,只需告诉我们这里的情况就是一个开始。

关于“不说是因为可利用”部分:好吧,如果你担心这一点,以及你的身份,我认为没有办法告诉任何人。在这种情况下……算了?

Thebluefish 没有提到“负责任的披露”,即受信任的第三方在有限的时间内提供托管服务,允许供应商修复故障,同时确保发现者的信用。CERT 赞助了这种方法。

但是根据前面的答案,您需要一个概念证明。可悲的是,“安全”产品带来的漏洞比大多数专业人士预期的要多。