Mozilla发布了多份动作后报告,分析了5月份的主要混乱情况,这些报道削弱了大多数Firefox附加组件。报告还提出了防止今后类似事件的建议。
5月3日星期五东部时间晚上8点后开始惨败,当时用于数字签名Firefox扩展的证书已过期。由于Mozilla忽略了更新证书,因此Firefox认为附加组件无法被信任 – 它们可能是恶意的 – 并且已禁用已安装的任何附加组件。出于同样的原因,无法将加载项添加到浏览器中。
Mozilla通过其研究系统,通常负责将测试代码推送到小组或收集有关赞助内容的反应数据的基础设施,对浏览器进行了一次临时修复。由于研究方法没有达到每个人,在5月5日和5月7日,Mozilla发布了两个Firefox更新–66.0.4和66.0.5–解决了证书问题。
每个人都提出的第一个问题是,”你是怎么让这种情况发生的?’“Firefox的首席技术官Eric Rescorla在公司博客的一篇文章中写道。”在高层次上,故事似乎很简单:我们让证书过期。这似乎是一个简单的计划失败。“
然而,Rescorla对这种特征提出了异议。他说,情况“比这更复杂”,他说负责团队知道证书即将到期但是假设浏览器会忽略到期日期,因为在之前的事件中,证书检查已被禁用。“这导致了对中间证书检查状态的混淆。此外,Firefox QA计划没有包含证书过期测试,因此没有检测到问题。这似乎是我们测试计划中的一个基本疏忽。”
其他人则在不同的角度分别报道危机,包括事故报告和技术报告。
后者分别由主要软件工程师兼高级工程师Peter Saint-Andre和Matthew Miller撰写,得出了类似的结论。“这一事件不是任何个人或团队的错,而是由于所有相关团队都没有很好地理解一套互锁的复杂系统,”两人写道。
Saint-Andre和Miller报告中的细节包括Mozilla将其QA(质量保证)测试外包给Cognizant Softvision,Cognizant Softvision是一家跨国公司,办事处分散在和乌克兰,罗马尼亚和“内部缺乏”或者随叫随到的质量保证资源导致在各种平台上测试提议修复的延迟,因为Softvision的外部团队无法通过正常渠道立即获得,“圣安德烈和米勒说。“事实上,与个人Softvision团队成员合作可能会引入法律上的复杂情况和数据泄漏的可能性。”
虽然Rescorla 在附加中断后不久在一篇博客文章中详细说明了Mozilla的一些失败,但他已经承诺了一份推荐的更改列表,以便后来发布。他7月12日的帖子以及圣安德烈和米勒7月2日的报道都很好地履行了这一承诺。
建议之一:快速响应修补程序交付机制,可以推动Firefox用户的紧急更新。
5月,Mozilla迅速为桌面版Firefox创建了一个临时修复程序,并使用Studies系统将修补程序推送到浏览器。Mozilla转向研究尽快部署修补程序,而不是让用户等待完整的浏览器更新。然而有些人报告说他们没有收到修补程序,或者没有启用Firefox的附加组件。如果用户已经禁用了研究,可能出于隐私原因(默认情况下启用该机制),例如,他们就不会获得补丁。
“这里的教训是,我们需要一种机制,允许快速更新,而不是遥测和研究,”Rescorla说。“我们想要的属性是能够为任何启用了自动更新的用户快速部署更新。这是我们的工程师已经在开发的工作。”
圣安德烈和米勒呼应Rescorla,但也详细讨论了Firefox附加组件的加密签名。
“从根本上说,完整的Firefox团队对Firefox附加组件的加密签名的角色,功能和操作没有共同的理解,”他们写道。“尽管有几个很好的理由来签署附加组件(监控未在AMO上托管的附加组件,阻止恶意加载项,通过将附加组件链接到Mozilla根目录来提供加密保证),但对于基础知识没有共识这样做的理由。此外,维护完整的公钥基础设施(PKI)是一项复杂的任务,我们不一定能够牢牢掌握所涉及的工程和业务权衡。“
他们建议生成更完整的文档,以便每个人都知道附加组件的签名是如何工作的,并且假设Mozilla致力于当前的附加签名方法,那么“我们的证书管理流程,特别是我们的密钥翻转策略”将得到改进。