过去三年内,谁家程序员修Bug最强?
Linux。
谷歌如是说。因为在他们最新发布的安全漏洞修复报告中,Linux修一个Bug平均只要15天,所用时间最少:
(甚至比谷歌自家都要快)
上述数据来源于谷歌在2014年开展的零计划(Project Zero)项目,由谷歌内部的顶级安全大佬参与,群专门对全世界的移动操作系统、 Web浏览器和开源库进行漏洞发掘和研究。
在发现漏洞后,谷歌会向各大供应商报告这些漏洞,并定期追踪报告的修复情况。
这次报告的时间从2019年到2021年,整体来看,各大厂程序员在修Bug上是越来越娴熟了:
在3年前,平均三个月才能修完,还会有各种超过最后期限的拖延,到2021年就仅需52天,全年总共只有一个Bug超过了修复期限……
(别急,最后告诉你这个最强拖延症到底是谁)
接下来,我们就来公开处刑一下各大厂商的Bug修复情况。
首先,在过去3年内,谷歌共向全世界供应商们报告了376个问题,其中有93.4%已被修复,3.7%被标记为WontFix(不会修复),还有2.9%的Bug仍未被修复。
再来看看具体赛道。
报告首先祭出了令无数打工人心头一颤的名词,Deadline。
谷歌给出的标准修复期限是90天,宽限期14天,超过104天之后即被视为延迟。
从这一维度来看,大多数都能在104天内完成绝大多数Bug(90%以上)的修复,其中Oracle展现出了非常明显的拖延症,即有超过一半(57%)的Bug都是在deadline之后修的:
不过,人家的Bug数也是最少的,总共只有7个……
Bug的平均修复时间也就是我们开头放出的那张表,整体上大家的Bug都越修越快,Linux新的一年更是平均半个月(15天)就能修复。
不过也有个别厂商速度出现了倒退,比如报告的发布人谷歌,2021年的报告修复天数比2020年多了一倍不止……
Web浏览器上,有一张Chrome、Webkit、Firefox三大浏览器从“漏洞公开”到“补丁发布”所用的时间分布图:
可以看到,大多数情况下,Chrome在40天之内就能修好Bug,而Webkit的周期则拉得更长。
谷歌在报告中解释到,由于Webkit是iOS平台上唯一允许使用的浏览器引擎,其改动会影响到iOS中使用的所有浏览器,所以它的长周期也是可以理解的。
统计过去三年的平均修复天数,Chrome也是YYDS,只有30天左右:
报告里提出,Chrome安全漏洞的快速修复时间或许与其本身的版本更新速度有关。
在移动操作系统中,iOS被报告的Bug数量最多,平均修复时间最短:
不过,苹果会将iMessage、 Facetime和Safari/WebKit 等“应用程序”的安全更新也作为操作系统更新的一部分发布,因此,iOS的整体数量就显得更多。
而由于Android的应用程序是通过Google Play Store进行安全更新的,因此谷歌并没有将这些更新算入报告中。
最后,公布一下谷歌零计划选出的“最强拖延症”——来自Android在2021年9月2日发布的漏洞,至此已有4个多月:
内容描述是vold’s incremental-fs APIs trust paths from system_server for mounting,一个和IncFS系统的信任路径有关的问题……
嗯。
参考链接:
[1]https://googleprojectzero.blogspot.com/2022/02/a-walk-through-project-zero-metrics.html
[2]https://Bugs.chromium.org/p/project-zero/issues/list?colspec=ID%20Status%20Restrict%20Finder%20Reported%20Deadline%20Remaining%20CVE%20Vendor%20Product%20Summary&q=id%3E%3D2137%20Deadline%3DExceeded%20-Deadline-Grace&can=1
“