探索中国CIO人才现状 | 第四季调研报告
软件漏洞到底该不该被披露?
2015-10-20  来源:searchsecurity.com.cn

现在有关漏洞披露的辩论非常激烈:一方面企业有权利知道自己正处于危险之中,但另一方面,供应商需要时间来修复漏洞。那么,哪一方面更重要呢?

软件漏洞将一直存在,坏人会设法找到并利用它们,而好人也会尝试寻找漏洞并……。

这句话应该怎样补充完整是安全研究人员和软件供应商目前最为关注的热门话题,而且,自1998年Morris蠕虫病毒成为第一个广泛传播的病毒以来,这一直是大家关注的焦点。

Project Zero是由谷歌内部安全分析师组成的团队,旨在发现零日漏洞利用。最近该团队再次引发了有关研究人员应该何时以及如何披露漏洞的争论。事情经过是这样:该团队在向微软公司报告其产品中零日漏洞的90天后自动披露了这些漏洞,主要因为微软没有及时进行修复。

对潜在危险的软件漏洞进行公开披露背后的理由是:这种漏洞披露会给供应商施加压力以让他们发布补丁,并且客户有权利知道他们的系统是否存在危险,使他们能够决定在补丁发布前如何更好地保护其系统。与之相对的观点是,对软件漏洞保密可以让它们不被攻击者利用。然而,这种方法的问题在于,攻击者自己可以发现漏洞,而软件公司不太可能花时间和金钱去修复未公开的漏洞。

软件行业最初反对独立漏洞研究以及公开披露漏洞的做法。例如,在2005年,思科对安全研究人员Mike Lynn和Black Hat采取了法律行动,因为他们解释了如何运行攻击代码以控制思科路由器。值得庆幸的是,该行业最终认同漏洞披露是有益的,但对于应该如何处理漏洞披露,目前仍然无法达成一致意见。主要问题在于在公开漏洞前应该给企业多长时间来修复漏洞。如果没有时间期限,供应商不可能优先开发补丁的工作。在1999年,黑客网站Nomad Mobile Research Centre表示他们在公布漏洞之前会给供应商一个月的时间。一年后,RFPolicy只给供应商五个工作日来与向他们报告漏洞的人进行沟通。如此这般短的窗口期部分是因为没有得到应有的回馈所导致,在收到软件漏洞的详细信息后,很多供应商都没有响应以及开发补丁。一刀切最后期限并没有什么意义,毕竟补丁开发和测试时间可能有所不同。

软件行业逐渐开始推行负责任的软件漏洞披露模式,即在公开发布漏洞详细信息之前,所涉及的所有人要对漏洞修复时间期限达成一致意见。毕竟,制定标准响应时间只能取得有限的成功,因为供应商和研究团队都是以不同的时间表来运作。ISO/IEC 29147 2014对供应商应该如何接收有关其产品或在线服务潜在漏洞信息以及如何披露它们提供了指导意见,但其中并没有涉及供应商应该在多长时间内修复补丁。另外,微软有其自己的政策—Coordinated Vulnerability Disclosure(协调漏洞披露),该政策主要推动与研究人员的合作,其中鼓励负责任的披露而非完全披露。负责任的披露规定,在供应商发布补丁之前,秘密地将漏洞报告给供应商,而不是其他任何人。这有利于实现与供应商发布更新步调一致的协调公开披露。

当然,对于如何处理软件漏洞的整个话题,大家都有着不同的看法。在2002年黑帽大会上,安全研究人员David litchfield展示了SQL服务器漏洞利用的概念证明代码,随后该研究人员发现该代码被用作Slammer蠕虫病毒的模板,这让他开始质疑公开披露其代码的好处。Anti Security Movement(反安全运动)组织完全反对完整披露有关软件漏洞的信息,因为他们认为这可能会让脚本小子利用它们来攻击系统。而支持美国中情局的非营利性机构In-Q-Tel首席信息安全官Dan Geer则提出了这样的观点,美国政府应该公开垄断全球漏洞市场,并将这些漏洞公开;这不仅会鼓励更多研究人员寻找漏洞,还将会阻止大多数恶意软件编写者和黑客。

可以肯定的是,从长期来看,对漏洞保持隐秘并不可行,但不考虑各种情况的严格信息披露时间表也不利于用户。对于谷歌Project Zero在补丁开发好前披露漏洞以让大多数用户可以采取缓解行为的做法,微软做出了很好的回应:“那些认同全面公开披露漏洞信息的人认为这会迫使用户保护自己,但其实绝大多数用户不会采取任何行动,而在很大程度上依赖软件供应商来发布安全更新。”

自那以后,谷歌的Project Zero在其软件漏洞披露政策中为供应商增加了更多的回旋余地,让供应商可以选择延长两个星期时间以便他们顺利发布补丁,但在给供应商足够时间来管理敏感资源密集型过程的同时,对于供应商做出响应的适当时间期限,业界并没有达成共识。CERT的45天披露政策中称,在公开披露安全漏洞的需要以及供应商需要时间作出响应之间需要进行平衡。雅虎的90天政策指出,“我们越迅速解决风险,攻击造成的伤害就越小”,而TippingPoint的Zero Day计划认为120天政策就足够。

如果漏洞披露政策不考虑各种情况,可能会弊大于利。这个行业需要与善意的安全研究人员携手合作,以负责任的态度不断提高软件的质量,从而推动整个互联网的发展。