四年多未发现开源漏洞

对于其年度八度宇宙状态报告, 的GitHub 已经分析了超过45,000个活动代码目录,以深入了解开源安全性(漏洞)和开发人员’有关漏洞报告,警报和修复的实践。

微软的子公司发现,安全漏洞在被披露之前通常四年以上未被发现。

开源漏洞

其他发现

安全漏洞可以直接或通过其依赖项影响软件。

在检查了通过其收集的一年价值的数据之后 依赖图,该公司发现GitHub上的大多数项目至少具有一个开源依赖项。

对于使用JavaScript(94%),Ruby(90%)和.NET(90%)的用户来说,百分比最高。 JavaScript和Rudy项目的中位数直接依赖项数量也最多(分别为10和9),而JavaScript的中位数可传递依赖项数量最多(即它们的直接依赖项本身具有其他依赖项)。

另一个有趣的发现是,大多数开源软件漏洞是由错误而不是恶意攻击引起的。

“对来自我们六个生态系统的521个建议的随机样本进行的分析发现,其中17%的建议与诸如后门尝试之类的明显恶意行为有关。在这17%中,绝大多数来自npm生态系统,” they 共享.

他们解释说,后门最明显的迹象是攻击者通常是通过帐户劫持来获取对程序包源代码存储库的提交访问权限,而针对这些尝试的最后一道防线是在开发管道中仔细进行同行评审,尤其是对更改的审查来自新提交者。

“许多成熟的项目都进行了认真的同行评审。攻击者已经意识到了这一点,因此他们经常试图在版本控制的发行点之外颠覆该软件,或者通过诱骗人们例如通过对软件包名称进行域名抢注来欺骗人们获取代码的恶意版本。”

并不是说错误引入的漏洞不能像恶意攻击一样具有破坏性–GitHub指出,它们可以做到,而且更有可能影响受欢迎的项目。

此外,发现漏洞通常四年以上都没有被发现,您可以看到问题可能如何发生。

改善情况的最佳做法

“使用软件时,安全始终是关注的重点。我们的分析表明,发现的潜在漏洞随编写的代码行数而扩展,” they noted.

“开源的力量和希望在于社区的力量。通过与数百万开发人员的联手,不仅可以构建软件包,还可以识别和修复漏洞,我们可以更快,更安全地构建软件。”

他们说,关键是利用自动警报和补丁工具。“我们自己的分析发现,自动生成拉取请求以更新到固定版本的存储库在33天之内对其软件进行了补丁,这比未存储的存储库快13天,或者快1.4倍。”

分享这个