大型软件厂商的安全实践对比与微软的领先优势

本文通过安全研究员Cesar Cerrudo的视角,对比了微软与两家匿名大型软件厂商(Vendor A和Vendor B)在安全漏洞处理、修复流程和开发者安全意识方面的差异,突显微软在安全领域的领先地位和改进成果。

大型软件厂商的安全实践

作者:Cesar Cerrudo(Argeniss)

我在思考这篇博客要写什么内容时,决定借此机会认可微软的安全努力,重点介绍微软的改进,并比较其他大型软件厂商目前如何处理安全问题。

虽然我不喜欢微软的一些政策以及他们有时处理安全问题的方式,但微软是目前最关心安全的软件厂商,这可以从他们软件安全性的提升中看出。在过去几年里,微软取得了很大进步。当然,没有人是完美的,微软的软件仍会存在安全漏洞,但他们将继续改进。

我和我的团队在过去6年里向主要厂商发现并报告了数百个漏洞,所以我认为自己在这个主题上有些经验。

让我们谈谈两家最大的软件厂商。我不会提及它们的真实名称,就称它们为厂商A和厂商B吧。

首先来看厂商A。这家厂商说的比做的多。他们总是谈论如何培训开发人员安全知识,多么关心安全,如何使用那些能发现所有安全问题的神奇产品,甚至还能一边煮咖啡,等等。但现实与他们的说法相去甚远。

举个例子:你向他们报告了Y功能中的X漏洞,他们会花时间修复(有时可能需要几年)。而且,他们只修复Y功能中的X漏洞,不会调查Z功能中是否存在相同的漏洞。但这还不是全部,他们只修复你报告的攻击向量,不会寻找其他攻击向量。但等等,还有更糟的——开发人员会制作一个甚至无法防止报告攻击变种的修复,然后直接投入生产。我真的很想知道这家厂商是如何确定修复何时可以投入生产的,因为似乎没有进行足够的测试。

似乎没有人注意到修复很糟糕,然后当修复准备好时,厂商会通知你,他们已经为软件版本1a、2a和2b中的漏洞制作了修复,并将在未来的某个日期发布。修复发布后,你在相应版本中测试修复,然后发现版本1a中根本没有修复,而版本2a和2b中的修复仅在你报告的确切攻击方式下有效。如果你稍微改变攻击方式,修复就不起作用,于是你再次联系他们。

你再次经历相同的过程,然后发布新的修复。在新修复中,你再次发现版本1a中没有修复,版本2a的修复效果良好,但版本2b的修复仍然无法应对攻击变种。相同的过程一次又一次地重复,直到某天经过2、3或4次修复后,漏洞终于在所有受影响的软件版本中得到修复。

难以置信,对吧?嗯,这就是厂商A目前制作安全修复的方式。在安全方面,厂商A明显落后微软多年。

现在谈谈厂商B。这家厂商在软件制作方面有很多经验,和厂商A一样,是大型厂商之一。厂商B似乎为安全漏洞制作了良好的修复,但他们有一个更大的问题。似乎他们的开发人员对安全不太熟悉。

例如,他们最流行的软件包的最新版本仍然存在堆栈溢出漏洞,你可以在5分钟内找到。它还默认开放所有功能,通过更改软件协议数据包中的一个字节,你可以轻松使软件崩溃。

你可以看出一些开发人员并不真正理解安全,而且他们拥有决定何时制作修复的最终权力。如果你报告一个与某些功能相关的漏洞,这些功能默认对所有用户开放,并且可能被滥用以执行恶意操作,他们只会回应说该功能被客户使用,无法被滥用。就这样,开发人员没有意识到他们的竞争对手很久以前就出于安全原因默认限制了相同的功能。厂商B似乎没有安全响应团队,因为大多数时候,报告直接由开发人员或软件经理处理。我可以继续举更多例子,但我想你已经明白了。奇怪的是,厂商B不久前收购了一家重要的安全咨询公司,该公司拥有真正 skilled 的人员。我想知道为什么这些人不帮助改进他们自己的软件安全,而是专注于研究对其他厂商软件的新攻击,并提供外部咨询服务以帮助其他公司。奇怪。

再次,厂商B在安全方面明显落后微软多年。

我多次批评并指出微软的安全问题,并在必要时继续这样做,但我真的认为微软在安全方面领先其他厂商多年。微软正在领导软件行业的安全努力。

我看到微软随着时间的推移取得了巨大改进。微软某些产品的先前版本有数十个漏洞,但现在最新版本几乎没有任何漏洞。我在其他厂商的任何产品中都没有看到这一点,这是一个真正令人惊讶的事情,但似乎没有人注意到。

我认为其他厂商会随着时间的推移改进,微软通过其产生的知识和研究间接帮助他们。通过观察微软,这些其他厂商可以了解如何在安全方面做得更好。

BlueHat是微软开发的另一种创新方式,用于改进安全。如果你有有助于改进其产品安全性的建议,微软会倾听你的意见。

正如我常说的:“厂商A和厂商B非常幸运,因为他们从未遇到过蠕虫病毒。”

  • Cesar
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计