开源就意味着运用数据分析和Fuzzing工具(如American Fuzzy Lop)审查安全漏洞变得格外简单。(这就要谈到选择偏见了,安全工作者更倾向于研究开源软件或具有金钱激励的产品)这使得开源软件天生就在安全问题上显得更加透明,因为更改代码通常是有据可查的,而且研究者也没有那么多的法律顾虑。
Bug赏金也扮演着重要角色,不仅是因为这使得研究者有仔细检查产品,挖掘更多漏洞的动机,也是因为通用平台上存在的漏洞往往会与第一个曝出此问题的产品关联起来。
这些因素加起来,使得大众可能对像Android这样一个开源,拥有bug赏金项目的系统产生了极度不靠谱的印象。此外,由于Android开源的本质,有许多手机厂商生产了各种定制程序来支持某些特定硬件或提供某些全新功能。这些程序甚至都不一定包含在安卓官方的开源计划中,但其中的漏洞却仍然被算到CVE Details里Android系统的统计数据中去。
举个例子,三星Galaxy系列智能手机曾被曝出自家代码的一系列漏洞,这些漏洞最终都被归结为Android系统的问题。但事实上它们除了Galaxy手机之外没有影响到任何安卓设备。与此类似,有些Android系统中同样可被利用的Linux内核漏洞(如CVE-2016-7917),也被CVE Details归类到Linux内核问题而不是Android或其他任何Linux问题。
思考作者在文末列举了他认为更值得关注的问题:假设有两个相当复杂的软件包,有没有一种方法能够科学地比较两者哪个安全性更高?有没有一种方法能令人信服地衡量系统的安全程度?
作者认为,这个问题实际上相当复杂,他本人也没有答案——信息安全通常被看做是计算机科学的一个分支,但信息安全在实操中缺少基本的科学论证方法。()