对于IT从业者来说,MarcAndreessen十年前提出软件吞噬世界的观点早已耳熟能详。无论是私人生活还是公共领域,软件为现代社会的方方面面提供动力,对现代经济和国家安全至关重要。 开源已经吞噬软件世界也是近几年非常流行的观点。Linux基金会曾预测自由开源软件(FOSS)占现代软件的7090。不仅仅是现代软件由大量的开源组件构成,而且IT行业的从业人员也更愿意与给开源社区做贡献的供应商合作。 由于开源软件灵活、低成本、通过社区项目推动创新的特性,它们被广泛使用,而由于多人协作参与从而项目可以获得更好的安全性,对于大型开源项目而言更是如此。尽管如此,开源软件也有其自身的问题,包括受影响代码的常见漏洞和暴露(CVE)。 CVE是MITRE的一个项目,致力于识别、定义和分类公开披露的网络安全漏洞。然而,CNCF在其软件供应链最佳实践白皮书中指出,CVE是事后指标,即它们所列举的漏洞都已经被公开披露。它们也只是与软件相关的风险的一种类型。 出于这一原因,组织应该使用其他方法来评估他们所使用的开源项目的安全状态。最著名的项目之一是开源安全基金会(OpenSSF)的Scorecards项目。 项目地址:https:github。comossfscorecard 什么是OpenSSFScorecards? Scorecards旨在为开源项目自动生成安全指数来帮助项目的使用者和组织做出风险知情的决策。企业正在大量使用开源依赖项,但确定这些依赖项风险仍是一项手动工作。Scorecards项目旨在采用自动启发式(automatedheuristics)和安全检查来减轻负担,最终在0到10的评分表上生成安全指数。它在评估开源软件项目的安全问题时,与安全领导者倡导的最佳实践(如签名或SAST)保持一致。 OpenSSFScorecards对风险严重程度采用分层计分 Scorecards可以基于直接依赖项扫描100万个最关键的开源项目,并定期将结果发布到公共数据集上。除了利用公开的数据集外,企业还可以使用GitHubAction对自己的GitHub项目运行Scorecards,当Repo有变化时,GitHubAction就会运行,并向这些项目的维护者提供告警。 Scorecards项目使用【关键】【高】【中】【低】的评分标准,这也是大多数安全从业者所熟悉的标准。它还使用一个标准的检查列表,针对你的目标项目进行检查,无论是公开的项目还是原生使用的私有项目。 你还可以深入了解其中一些检查,包括基础的安全实践,如使用分支保护、加密签名发布以及存在未修复的漏洞。Scorecards项目采用OSV漏洞数据库(osv。dev)来检测未修复漏洞的存在。这是一个为开源项目设计的分布式漏洞数据库,它采用OpenSSFOSV格式。OSV的核心是聚合使用OSV模式的其他漏洞数据库,如GitHubSecurityAdvisories和全球安全数据库等。OSC还支持API和命令行界面(CLI)工具,用于扫描CycloneDX或SPDX格式的SBOMs。 Scorecards项目有双周会和Slackchannel。它由来自谷歌、Datto和思科等公司的工程师主导,自成立以来已经有近3000颗star,还有用户将其添加至收藏夹。随着企业继续推动其开源软件采用治理实践的成熟,该项目将不可避免地越来越受到青睐。 企业如何使用OpenSSFScorecards? 当前,企业对开源软件的治理和风险管理能力仍处于初级阶段。而近年来频发的软件供应链攻击事件将是一个巨大的推动力,促进企业加强软件供应链的安全实践。目前我们有OpenSSF安全动员计划、SLSA、《安全软件开发框架》(SSDF)以及其他最佳实践指南。所有这些都涉及到企业对开源软件使用的管理,并确保这种使用与企业对风险的容忍度一致。 尽管听起来很简单,但要在整个强大的开源项目和组件的生态中做到这一点是十分具有挑战性的。OpenSSF的Scorecards项目提供了一种自动化的方式来获得对超过100万个OSS项目的安全和风险洞察力,并将该项目直接用于他们自己的软件和内部的项目。 企业可以通过CLI对不属于他们的项目使用Scorecards,也可以对npm、Pypi或RubyGems等项目使用软件包管理器。Scorecards也可以作为Docker容器使用。 企业和个人开发者都可以参与该项目,包括提交需求检查,以便进行评分评估。组织也可以自定义使用Scorecards,比如只运行特定的检查,或者与同行业的特定安全要求保持一致。