delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

28 Jan 2007

【译文】有关「全面披露」(Full disclosure)的争论

作者 Bruce Schneier
原文 Debating Full Disclosure

作者授权 blog.delphij.net 发表此翻译版本。未经许可请勿转载

全面披露 —— 将安全漏洞的细节公之于众 —— 是一种很好的做法。公开并让更多的人检查是改善安全唯一可靠的途径,而遮遮掩掩则只会让我们的安全受到损害。

不幸的是,掩盖问题 听起来 很像是一个好主意。有人争辩说,对软件的漏洞进行保密,能够让入侵者无法得到这些信息 (参见 The Vulnerability Disclosure Game: Are We More Secure?)。按照这样的观点,公布漏洞本身倒还在其次,更严重的问题是关于漏洞的一些细节描述被公开了。

然而,这一观点的前提是,攻击者自己无法发现漏洞,以及软件公司会花费时间和金钱去修正那些被保密的安全问题。不幸的是,这两项假设均不成立。历史的经验一再地证明,骇客们在发掘秘而不宣的漏洞方面具有无与伦比的天赋,而全面披露问题,则是软件供应商把为它们的系统发布补丁列为一项例行公事的唯一原因。

要理解为什么第二个假设无法成立,我们需要首先了解隐藏在其后的经济因素。对于一家软件公司来说,漏洞在很大程度上是一类外部事务。也就是说,存在漏洞这一事实对您——用户——的影响,要远远超过对软件公司本身的影响。聪明的软件制造商会将存在安全漏洞这类事情更多的视为公关危机,而或多或少地并不将其视为软件本身的问题。因此如果我们,软件的用户团体,希望软件制造商修补漏洞,就必须让这种公关危机变得更加尖锐棘手了。

而全面披露正是达到这一目标的有效方式。在全面披露成为一种规范之前,研究人员通常将他们在软件中发现的漏洞细节发给软件公司——这些软件公司则会忽略这些报告,而相信秘而不宣会保障安全。更有甚者,他们会威胁研究人员,如果他们泄漏了漏洞,将采取法律行动。

后来,研究人员开始公布漏洞的存在,但并不公布其细节。这时软件公司声称这些漏洞「只是在理论意义上存在」,而拒不承认自己的问题。当然,他们仍然会忽视这些问题,偶尔还会继续威胁研究人员将会对他们采取法律行动。其后,当然,会有一些骇客利用这些漏洞撰写攻击程序——接着,这些公司将迅速发布修补程序,对外道歉,接着将问题完全推给邪恶的、人品恶劣的骇客。

在研究人员发表关于漏洞的完整细节之前,软件公司根本不会开始修正安全问题。

当然,软件公司会痛恨这种做法。每次当有漏洞被公之于众时,他们的公关人员都会陷于困境,而恢复良好公众形象的唯一办法就是赶快发布一个补丁。对于类似微软这样的公司来说,这样做的代价是相当高昂的。

因此一些软件公司和安全研究人员,联合起来并发明了「负责任地披露」这样一个概念 (参阅 The Chilling Effect)。基本的思想是,威胁将要把一个漏洞公之于众,与实际这样做的效果几乎是相同的。负责任的研究人员,将先给软件制造商一些时间来修复问题,然后才把漏洞公之于众。

这曾经是个不错的主意——而且也是目前的规范流程——但这是因为全面披露曾经是通行的做法。而且,这本身也只有在全面披露是一项严肃的威胁的时候才可行。

这样的是非观并不只限于软件;事实上这是相当普遍的。接受公众的检查,是改善安全的有效方式,无论我们谈论的是软件还是民用航空的安全,抑或是政府的反恐问题。是的,这样做需要有所取舍。全面披露意味着坏人能够与其它人同时了解漏洞——除非他们在这之前就已经知道——但多数时候,这是瑕不掩瑜的。

将问题秘而不宣,会阻止人们正确地对自己面临的风险进行评估。秘而不宣,会使关于安全的争论无法进行,并阻止能够为安全带来改进的各类培训。秘而不宣不会改善安全,相反它会扼杀安全。

我非常希望在做出与安全有关的决定之前,尽可能多地获得信息,以便做出理性的决定,无论是在购买软件产品,还是从两个政党之间选取一个。我也非常希望能够拥有对厂商施加压力,令其改善安全的信息。

我不希望生存在一个软件厂商能够卖给我一些他们已经知道存在千疮百孔的安全漏洞的软件,或是一个政府能够在毫无义务的情况下实施安全措施的世界。我更愿意生活再一个我拥有能够评估和保障自己安全的信息的世界。

这篇文章最初发表于CSOOnline,是关于这一话题的系列专题的一部分。Marcus Ranum 撰文反对公布漏洞的做法,而 Microsoft 的 Mark Miller 则撰文回应 表示更希望看到负责任的披露。这些是 CSO 杂志 上一篇很有意思的关于让在基于 Web 的软件中更难研究和发现漏洞的 文章, 《The Chilling Effect》 线上侧边栏中的文字:

「法律明文规定,在没有获得许可的前提下不能操作计算机,」 她 [Jennifer Granick 律师] 解释道,「而关于网站的授权则是一种暗示。至少,我们依赖这一点。如果在每次访问什么之前都要得到许可,那么 Internet 就无法工作了。但如果你正以网站所有者不希望的方式使用网站呢?这个问题就取决于法律是否禁止人们探索网站的各种用法,」这也包括漏洞。

本文中提到的所有链接都值得一读。