首先,仅仅发布代码并不意味着人们会自动检查代码是否存在安全漏洞。安全研究人员是善变而忙碌的人。他们没有时间检查发布的每个源代码。因此,尽管开放源代码是一件好事,但这并不能保证安全。我可以说一打没有人听说过,也没有人评估过的开源安全性库。另一方面,许多优秀的安全工程师都在研究Linux中的安全代码。
我们有来自GitHub的一些新研究证明了这一点。平均而言,其库中的漏洞在被发现之前要经过四年。从ZDNet文章:
GitHub深入研究了开源安全性,比较了从组织的依赖安全性功能和平台上支持的六个软件包生态系统收集的信息,这些信息在2019年10月1日至2020年9月30日以及2018年10月1日进行,至2019年9月30日。
仅包含活动的存储库,不包括fork或“ spam”项目。分析的软件包生态系统包括Composer,Maven,npm,NuGet,PyPi和RubyGems。
与2019年相比,GitHub发现现在94%的项目依赖开源组件,平均接近700个依赖项。最常见的情况是,在JavaScript中找到开源依赖项的比例为94%,在Ruby和.NET中分别为90%。
平均而言,在公开项目之前的四年中,这些漏洞在开放源代码项目中可能未被发现。然后通常会在一个多月内获得一个修复程序,GitHub表示“这表明改善漏洞检测的明显机会。”
开源意味着该代码可用于安全评估,而不一定是任何人都已对其进行评估。这是一个重要的区别。