开源软件生态在数字化时代扮演着至关重要的角色,但随着其快速发展,安全性问题也日益成为关注的焦点。根据Help Net Security发布的2024年开源安全报告,开源组件的维护不足和安全漏洞频发对组织构成了严重威胁。报告指出,大多数开源组件缺乏有效的维护,这导致了关键漏洞的产生,而这些问题中的95%与开源包依赖关系有关。此外,付费维护者相较于无偿维护者,在实施关键安全和维护实践上更为积极,他们更有可能遵循行业标准,如OpenSSF Scorecard和NIST SSDF,从而提高项目的安全性。
无论地理来源如何,平均中等规模的应用程序都存在几个令人不安的趋势,导致关键漏洞的产生。开源代码贡献量是开发人员编写代码的2到9倍,而95%的安全弱点源自开源包依赖关系。在所有CVE严重性级别中,51%的这些漏洞没有已知的修复方法。
与无偿维护者相比,付费维护者实施关键安全和维护实践的可能性要高 55%,并且将更多时间投入到实施安全实践上,如遵循OpenSSF Scorecard和NIST Secure Software Development Framework (SSDF)等行业标准中包含的安全实践。
要使开源库中的漏洞可被利用,至少需要从应用程序到该库中易受攻击函数的调用路径。报告发现,在探索的七种编程语言(Java、Python、Rust、Go、C#、.NET、Kotlin和Scala)中,所有漏洞中少于9.5%满足这一条件。研究还聚焦于对新出现风险的响应速度。它揭示了近70%的漏洞通告是在相应的安全补丁发布之后才发布的,中位数延迟时间为25天。
据研究人员发现对社区开发的用于增强GitHub Actions功能的Actions的安全状况表示担忧。在市场上的19,113个自定义GitHub Actions中,只有913个是由经过验证的GitHub用户创建的;18%存在易受攻击的依赖关系;762个已被归档且不接收定期更新;平均OSSF安全得分为4.23分(满分10分);且大多数仅由单一开发者维护。
GitHub上的代码存储库数量不断增加,去年增加了5000万个新存储库 (+22%),这增加了意外和故意泄露敏感信息的风险。该研究揭示了一个重要的安全漏洞:在发现暴露的有效敏感信息后,90%的敏感信息至少保持活跃状态5天,即使在通知作者后也是如此。
开源软件依赖的风险趋势表明,尽管只有少数漏洞满足被利用的条件,但漏洞通告的延迟发布仍然是一个普遍问题,这可能导致安全漏洞被利用的风险增加。同时,GitHub Actions等自动化工具的安全性问题也不容忽视,市场上的自定义GitHub Actions存在易受攻击的依赖关系和维护不足的问题。敏感信息泄露的风险随着GitHub上代码存储库数量的增加而增加。研究发现,即使在通知作者后,90%的敏感信息至少保持活跃状态5天,这表明需要更有效的监控和响应机制来保护敏感信息。综上所述,开源软件生态的安全性问题需要组织、开发者和维护者共同努力解决。这包括加强软件安全实践,重视开源组件的维护和更新,以及提高对自动化工具和敏感信息保护的重视。通过这些措施,可以降低安全风险,确保开源软件生态的健康发展。