Metasploit创始人认为软件漏洞无尽头

Metasploit的创始人、漏洞专家H.D.Moore指出,虽然安全软件编程人员做得越来越好,所开发的应用程序bug越来越少,但是应用程序数量的持续增加却导致新型软件漏洞的数量有增无减。在2010年RSA会议的采访中,Moore解释了Metasploit怎样帮助人们测试系统、检测新的软件安全漏洞问题,以便在攻击者有机会利用这些漏洞之前搞清楚新漏洞所带来的风险。

您能解释一下Metasploit是如何对软件安全做出贡献的吗?

H.D. Moore:Metasploit是一个寻找漏洞的软件框架,使你可以在渗透测试中利用这些漏洞。它是一个真正由社区主导的开源工具套件。一切始于七年前。每当一个新的漏洞被发现后,我们就会创建一个安全版本来利用它,并把它添加到Metasploit中去,让网络管理员、学生、研究人员以及政府部门都能够对他们的系统进行测试,从而确保他们的产品和系统得到妥善的修补。所以对于我们来说,这相当于一种供应商“相互检测和约束系统”(check and balance system)。如果供应商说,“我已经发布了补丁”,那么你可以用Metasploit来验证你的系统是否安装了这个补丁、补丁是否正常工作等,而不必再去做那些过去必须做的,用来确保补丁正常工作的额外工作。

有人曾担心Metasploit在公开漏洞的整体问题方面不够可靠。您是怎么看的呢?

Moore:可靠的漏洞公开实际上取决于软件供应商。这只涉及到两类人:发现漏洞的人和负责修补漏洞的供应商,而他们双方之间并没有正式的合同。一般的流程是:研究人员发现一个漏洞并指出问题的所在,以及怎样去利用这些漏洞,然后他们会把这个问题告诉供应商和外界,最后供应商修补这个漏洞。Meatsploit其实并没有卷入到这个过程中,我们实际上所做的只是在漏洞披露或者公开之后,让人们能够轻松验证他们的系统是否对这个漏洞免疫,或者让人们知道这个漏洞能够给他们带来的真正影响是什么。

在补丁出现之前,发布漏洞利用程序对软件安全有利吗?

Moore:在真正的漏洞proof-of-concept程序出现之前,人们对“某个漏洞能对系统带来多大影响”的看法只能是猜测而已。有时候你的漏洞表面上看起来非常严重,任何人都好像能在你的电脑上运行代码,但是当你真正坐下来研究这个问题并试图利用它的时候,你会发现这其实有很多的限制。如果你开启了数据执行保护(DEP),那么不管你运行哪种平台、或者使用哪种配置,漏洞都不会带来多大的破坏。所以,如果有一个平台能够测试这些漏洞、并验证这些软件缺点所能造成的影响,那么人们不仅对他们在网络上能做什么更有信心,而且对自己的程序能否正常工作也更有信心。

现在,Metasploit中有多少漏洞利用程序和攻击代码(payload)呢?

Moore:数量每天都会增加几个。我估计我们现在已经有大约530个漏洞利用程序,并且每个漏洞测试都有一个攻击代码。除了这530个利用程序之外,我们还有220个辅助模型(auxiliary module),可以允许你测试配置的错误、进行暴力攻击,并且利用那些不允许代码执行但允许数据访问的漏洞,比如,能够获取某服务器上C盘的内容。我们的Metasploit中除了拥有接近500个不同的CVE(Common Vulnerabilities and Exposures,通用漏洞披露),还有更多的漏洞没有CVE标识。其中,并不是每一个漏洞都进行了分类、或者被标明它是什么以及它意味着什么。

在过去的一年中,很多事情都发生了变化。实际上,你过去常常自己掏钱来支撑Metasploit的开发。在被Rapid7收购之后,这个项目能得到多大的帮助呢?

Moore:Metasploit可以让我们把更多的资源投入到真正需要的地方,比如QA质量评估、后端自动化,以及数据库模式等。可是,没人愿意碰那些没意思的框架部分,这在过去通常是我的差事,发布一个新的版本常常都指望我一个人。我会花费整个周末来进行测试、安装配置、更新网站等。现在我有了一个团队,这样我可以把工作交给他们,并且能够更快的完成。所以,我希望此次收购对于这个项目来说意味着我们能够更快的更新内容、添加更多的功能,从长远来看,我们还会更频繁的发布更多的版本。

社区对于此次收购是怎么看的呢?有人反对吗?

Moore:随着我们继续推出更多的代码、更多的版本以及更多的功能,我认为怀疑的声音会慢慢减少。我们看到许多新的社区贡献者加入了我们,因为Rapid7能够给这个项目带来稳定。以前,人们可能会在内部使用Metasploit,但并没有人真正认为可以在一年或者两年以后继续指望这个项目。现在,我们有了预算,投入了大量的人力物力来确保Metasploit的成功,更多的人愿意对这个项目作出贡献,因为他们相信Metasploit的前景非常光明。

软件安全性现在有所改观了吗?比如说,微软在安全方面已经做了很多努力,但是每个月还是会发布大量的安全公告。

Moore:实际上,软件安全在细节方面已经改善了很多。对于微软这样的供应商而言,他们在安全问题处理方面有大量的预算,其软件开发周期中也包含了安全周期,这个跟5年前或者10年前的情况相比要好得多了。但问题是现在软件供应商太多,而人们每天的日常生活又过于依赖软件的使用,比如说旅游、上网、预定出租车等等,甚至有时候几乎所有的事情都会用到电脑和软件。而在过去十年中,每家曾指望微软为其解决安全漏洞问题的公司,现在都不得不自己重新再开始做一遍相同的工作。我们之所以有这么多的缺点和漏洞,并不是因为某些供应商做得很差,只是因为软件应用程序的数量每天都在持续增加。