作者:Ben Thompson 翻译:ONES Piece 翻译计划 Platycodon Xu
译者按:WannaCry 病毒爆发后,舆论一方面惊叹其波及范围之广、危害之大,一方面也对谁来承担责任产生了分歧:责备微软修补不力者有之,慨叹用户惰于更新者有之,怪罪美国政府泄漏漏洞者亦有之。本文作者则另辟蹊径,在一一分析上述因素并非本质问题的基础上,指出软件行业根深蒂固的「付费在先」模式才是幕后的罪魁祸首——它不仅使用户误以为安全保障是软件价格中的应有之义,也让厂商缺乏长期维护的经济动机,这才让一些长年潜伏的漏洞迟迟得不到修补,最终导致安全危机集中爆发。在此基础上,作者指出将软件服务化(SaaS)才能给各方提供最大的正向激励,既确保厂商的持续经济来源,又保障用户时刻保持更新,因此是正确的发展道路。抛开文中的个别预测是否在近期具有可操作性,本文这种追根溯源的思路的确具有参考价值。
根据预测,大约有 200000 名用户和管理员的电脑被「WannaCry」病毒感染——随着病毒新变种的出现,这个数字估计还会上升(原始版本被一名安全研究人员无意中拦截了)。对他们来说,本文标题所隐含问题的答案是肯定的。[1]
WannaCry 是一种被称为「勒索软件」的恶意程序:它加密电脑上的文件,然后要求付费解密。勒索软件并不是什么新事物;WannaCry 之所以如此具有破坏性,是因为它以计算机蠕虫病毒为基础。所谓蠕虫病毒,是一种能将在同一个网络中不断自我复制的恶意软件(当然,这里所谓的网络可以包括整个互联网)。
蠕虫病毒从来都是恶意软件中最具破坏力的那一种——也是最臭名昭著的:即便不熟悉技术的读者也可能听过 Conficker(2008 年爆发,预计造成损失 90 亿美元)、爱虫(ILOVEYOU,2000 年爆发,预计造成损失 150 亿美元)、MyDoom(2004 年爆发,预计造成损失 380 亿美元)的大名。其实爆发过的蠕虫病毒远不止这些,但近年来已经没有那么多了:21 世纪头十年是蠕虫的黄金时期,当时数亿台联网的计算机都安装着一个极度不安全的操作系统——Windows XP,而用户们被诱导着点击按钮染上病毒,最后只能把钱交给骗子来摆脱那些吓人的弹窗。
接下来的几年,微软从 Windows XP SP2 开始对安全性重视了许多;网络管理员变得聪明起来,知道把网络与外部隔离;而用户也多少有所长进,知道不要乱点不该点的东西。然而,正如上周的事件所揭示的,蠕虫病毒仍然是一个威胁;而且像往常一样,每个人都在把责任推卸给别人。只不过,这次多了一个冤大头:美国政府。
WannaCry 的来龙去脉
在微软博客上,微软总裁、首席法务官 Brad Smith 直言不讳地说(下文中出现的「WannaCrypt」是「WannaCry」的别名):
恶意软件「WannaCrypt」从英国和西班牙开始爆发,迅速蔓延到全球、劫持用户的数据,用户只有通过比特币缴纳赎金才能取回。WannaCrypt 在攻击中使用的漏洞是从美国国家安全局(NSA)窃取的,那次失窃事件今年早些时候有过公开报道。一个月前的 3 月 14 日,微软为修补漏洞、保护客户安全,已经发布了一个安全更新。尽管该更新保护了运行着较新版本 Windows 系统、打开了 Windows 更新功能以安装最新更新的计算机,全球仍有许多计算机没有安装补丁。结果,医院、企业、政府和许多家用电脑受到感染。
Smith 在文中提及了一系列关键时间点。但因为理清来龙去脉很重要,所以我按照自己的理解重新总结了一遍:
- 2001:上述漏洞随 Windows XP 的推出即已出现,并暴露在之后的每一个新版 Windows 中
- 2001—2015:某天,美国国安局发现了(也可能是 Equation Group 发现的,据传隶属于国安局)漏洞,并开发了一个称作「永恒之蓝」(EternalBlue) 的漏洞程序,但并不清楚他们是否使用过该程序
- 2012—2015:据称一名合同工据称窃取了国安局掌握的 75% 的黑客工具
- 2016 年 8 月:一个名为「ShadowBrokers」的组织发布了一些据称从国安局得来的黑客工具;这些工具似乎就来自 Equation Group
- 2016 年 10 月:上述合同工被控窃取国安局数据
- 2017 年 1 月:ShadowBrokers 挂价 250 比特币(按当时价格约 225000 美元)叫卖若干 Windows 漏洞,其中包括一个 SMB 0day[2] 漏洞——可能就是 WannaCry 使用的「永恒之蓝」
- 2017 年 3 月:微软在没有大张旗鼓宣传的情况下,发布补丁修复了一系列漏洞,但未列明其发现者;「永恒之蓝」也在修复之列,似乎很可能是出于国安局的警告
- 2017 年 4 月:ShadowBrokers 发布了一批新漏洞,其中包括「永恒之蓝」,或许是因为微软已经封堵了这些漏洞(这就极大降低了 0day 漏洞的价值)
- 2017 年 5 月:基于「永恒之蓝」的 WannaCry 病毒发布,波及约 200000 台计算机,直到有人无意中触发了它的自杀开关;但新变种即将开始传播
不消说,该为 WannaCry 的传播负最终责任的是它的作者,我希望他们能被逮捕并被充分依法起诉。
但除此之外,责任界定就很模糊了。
四处扩张的责任
从上述事件发展中首先可以看出的是,正如所有 Windows 漏洞一样,最先应当承担责任的是微软。微软开发了 Windows 系统,却没能为之建立一套强健的网络安全机制。而且尽管微软做了很多修修补补的工作,许多根本性的缺陷依然如故。
但这些缺陷也不都是微软的错:有关个人电脑的一个基本假定,就是应用程序应当对整台电脑有不受限制的访问权;所有限制这种权力的尝试都受到了强烈的抵抗。iOS 倒是开辟了一种新模式——所有的程序都被关在沙盒里,只能访问操作系统中一些谨慎给定的钩子和扩展[3] 。然而,这种模式之所以成为可能,完全是因为 iOS 是一个新生事物。相反,Windows 的市场霸权完全来自于市面上既有的大批软件。这意味着除非微软自废商业模式,就不可能倒行逆施、收回这种不受限制的权力。
此外,一个现实问题是做软件很难:漏洞是不可避免的,特别是对于操作系统这么复杂的软件而言。这就是为什么微软、苹果,以及几乎任何一个勤勉的软件开发商都要定期发布更新和漏洞补丁。亡羊和补牢是密不可分的。
然而,说到这一点,必须指出微软在两个月前就修复了漏洞:任何打了三月份补丁的电脑都对 WannaCry 免疫,而这个补丁按照默认设置是自动安装的。Windows XP 是个例外,但微软早在 2008 年就不再销售这个系统,2014 年就停止了支持(尽管如此,微软还是在周五晚上发布了一个针对 Windows XP 的漏洞补丁)。换句话说,最终用户和管理着电脑的 IT 部门本身也有责任,他们本来只要及时打上关键补丁就能保护自己的安全。
话虽如此,及时更新的成本也是很高的,特别是对于大型机构而言。因为更新会弄坏别的东西。这里的「东西」可能是企业赖以运营的关键软件。它们有的是第三方销售的,有的是外包的,有的是企业自己开发的。这些软件过于依赖特定版本的操作系统本身就是一个问题,所以它们的开发者也应该承担责任。同样的道理也适用于硬件及其驱动程序:英国国民保健署(National Health Service)有报道称,一些核磁共振和 X 光机只能搭配 Windows XP 运行——这是设备厂商的严重疏忽。
简言之,放眼四周,有很多人应当承担责任。然而,有多少责任应该归到事件发展的中间环节——政府的头上呢?
政府的责任
Smith 在博文中写道:
这次攻击事件再一次印证了政府囤积漏洞是个大问题。2017 年,类似事件有抬头之势。之前,我们已经看到中情局(CIA)囤积的漏洞被曝光在 WikiLeaks 上;如今,国安局失窃的漏洞又影响了全世界的用户。政府手上的漏洞一次又一次地泄露到公众领域,导致损失四处波及。如果用常规武器打比方,这就好像美国军队的「战斧」(Tomahawk)导弹失窃一样。
坦白说,这样的类比很滑稽,除非你想夸张地说 WannaCry 可能危害到医院,从而真的导致人员伤亡(即使那样,也比战争武器的伤害小得多)。
首先,制造战斧导弹的是美国政府,而制造漏洞的却是微软(尽管是不经意间制造的);国安局所做的只是发现了漏洞(然后加以利用)。这种差别是很关键的。寻找漏洞是件苦差,需要投入很多财力和人力。因此,一个值得思考的问题是:国安局为什么愿意做这件事?答案就藏在它的名字里面:为了国家安全。而且,正如我们在震网病毒(Stuxnet)这类事件中看到的那样,这些漏洞可以变成强大的武器。
这就是根本问题所在:要求国安局发现漏洞后立即公布,实际上就等于要求它从一开始就不要发现漏洞。毕竟,一个被修补(实际上就等于公布)的漏洞的价值将大大削减。这种价值不仅是指金钱上的(正如 ShadowBrokers 组织发现的那样),也是军事上的,意味着[如果要求公布漏洞],国安局根本就没有理由投入财力和人力去发现漏洞。换句话说,如果上述要求被实现,发生的事情也会不是国安局早几年把 EternalBlue 的事情告诉微软,而是这个隐藏的漏洞被雪藏更多年(或许会被中国、俄国之类的第三方发现,要知道国安局并不是唯一一个寻找漏洞的机构)。
实际上,关于本次事件中政府[的角色],真正需要吸取的教训不是国安局应该担当微软的质量保障团队,而是泄密事故的确会发生。这就是为什么我去年谈论苹果和 FBI 的纠纷时,认为政府不该通过法令来削弱安全机制或者安插后门(而不是寻找既存的漏洞)——这种手段更符合 Smith 所做的战斧导弹的类比。而且考虑到攻击的散布是不分敌我、不可减缓的,哪个国家对攻击者最有利可图(比如美国),哪个国家用这种手段受到的反噬就最大。
商业模式的责任
尽管美国政府的责任并没有 Smith 声称的那么大,与安全危机纠缠近二十年还是表明了系统性失灵的存在。在我看来,这应当归咎于商业模式。除了上文列举的几种技术和战略因素,软件[行业]还有一个致命缺陷,那就是自其诞生的数十年来,无论采取盒装形式还是许可证形式,软件是都按照一个预设的价格出售的。
其结果,[软件行业涉及的各方]都得不到正确的激励,进而都做出了有问题的决策:
- 微软不得不为多个不同的代码库提供支持,这不仅成本高昂、实现困难,而且也没有任何经济上的激励(例如,这就是为什么微软要终止对 Windows XP 的支持)。
- 第三方软件商倾向于把特定版本的操作系统看作是固定不变的:既然 Windows 7 和 Windows XP 是不同的,那也就意味着[厂商]可以点名只支持 Windows XP。第三方软件商缺乏经济动力更新软件则进一步加剧了上述问题:毕竟,用户已经给它们付过钱了。
- 最严重的问题的是对购买者的影响:他们把计算机和相关软件看作资本成本(capital costs)——一次性支付,而后随着购买价值的实现而贬值。在这样的视角下,持续的技术支持和安全保障是与[软件本身]的持续价值相分离的额外成本,为它们付费的唯一理由就是避免未来受到攻击——而无论是攻击的时间还是可能带来的经济危害,都是不可预测的。
但现实是,软件及其带来的安全问题是永不终结的。因此,认为购买软件是一锤子买卖是说不通的。
SaaS
四年前,我借 Adobe 抛弃盒装软件一事写过为什么订阅制对开发者和用户都更有利:
那篇文章的主题是 Adobe 如何将用户获得的价值更好地体现在营收上:在订阅制下,虽然价格门槛降低了,但随着时间推移,Adobe 从用户身上获得的收入却与其提供的价值却更相称。而且正如我当时提到的,「Adobe 有充足的动机通过持续维护来减少用户流失,而用户也得以一直用上最新版本。」
这也正是维护良好的安全性所必须的:销售者应当让软件保持更新(这次事件里的销售者就是微软,它卖的软件就是操作系统),而用户则应当永远使用最新版本。不仅如此,把软件当作服务来定价意味着摆脱了那种「一锤子买卖」的假定,购买软件不再是一种资本成本:相反,它变成了一种持续的开支,其中就隐含了维护[的成本],无论这种成本是由销售者还是用户承担(也可能是双方共同承担)。
当然,我是在说 SaaS(Software-as-a-service,软件即服务)模式。这种模式的兴起,加上云端计算的普遍应用,是对于 WannaCry 事件保持乐观的最大理由——WannaCry 不过是一个糟糕商业模式的苟延残喘罢了(尽管要先花上很长时间收回沉没成本、并摆脱那种完全贬值的资产就「免费」的假定)。
长期来看,普通企业或政府几乎没有理由在本地运行任何软件,或者把任何文件存储在独立的设备上。一切数据、无论文件还是应用,都应该存在云端,通过持续更新的浏览器访问,并以订阅形式付费。这将使所有的激励机制各得其所:用户同时为安全性和功能性付费,而销售者也有动力赚取这些费用。
值得称赞的是,微软很早之前就已经在往这个方向努力了:它不仅集中精力发展 Azure 和 Office 365 服务,而且也早就开始用类似于订阅制的方式销售传统软件。尽管如此,这种以云端为中心的模式意味着用户更少地被限定在特定的设备和服务上,而具有了更多的灵活选择权。现实情况是,上述问题给微软带来的头痛将不亚于安全问题,而这与微软长久以来成其为最赚钱公司的原因是分不开的。
硬件[销售]仍然是留待解决的巨大挑战:对于那些依赖软件发挥其功能的设备来说,商业模式可能仍将是付费在前,这就意味着[销售者]没有提供安全保障的动机。固守这种旧模式的成本将转化为外部性,最终由 Mirai 这样的僵尸网络的攻击目标来承担。发展停滞不前、各方相互指责是意料之中的——这就是系统性瘫痪的特征,而这正是商业模式的不匹配所带来的。
这是 ONES Piece 翻译计划的第 128 篇译文。本文原载于 stratechery.com,作者 Ben Thompson,由 ONES Piece 翻译计划 Platycodon Xu 翻译。ONES Piece 是一个由 ONES Ventures 发起的非营利翻译计划,聚焦科技创新、生活方式和未来商业。如果您希望得到更「湿」的信息,我们也有播客节目「迟早更新」供您收听。