当前位置:网站首页>OpenSSF的开源软件风险评估工具:Scorecards
OpenSSF的开源软件风险评估工具:Scorecards
2022-08-10 00:45:00 【SEAL安全】
对于IT从业者来说,Marc Andreessen 十年前提出“软件吞噬世界”的观点早已耳熟能详。无论是私人生活还是公共领域,软件为现代社会的方方面面提供动力,对现代经济和国家安全至关重要。
开源已经吞噬软件世界也是近几年非常流行的观点。Linux 基金会曾预测自由开源软件(FOSS)占现代软件的70%~90%。不仅仅是现代软件由大量的开源组件构成,而且 IT 行业的从业人员也更愿意与给开源社区做贡献的供应商合作。
由于开源软件灵活、低成本、通过社区项目推动创新的特性,它们被广泛使用,而由于多人协作参与从而项目可以获得更好的安全性,对于大型开源项目而言更是如此。尽管如此,开源软件也有其自身的问题,包括受影响代码的常见漏洞和暴露(CVE)。
CVE是 MITRE 的一个项目,致力于 “识别、定义和分类公开披露的网络安全漏洞”。然而,CNCF 在其软件供应链最佳实践白皮书中指出,CVE 是“事后指标”,即它们所列举的漏洞都已经被公开披露。它们也只是与软件相关的风险的一种类型。
出于这一原因,组织应该使用其他方法来评估他们所使用的开源项目的安全状态。最著名的项目之一是开源安全基金会(OpenSSF)的 Scorecards 项目。
项目地址:https://github.com/ossf/scorecard
什么是 OpenSSF Scorecards?
Scorecards 旨在为开源项目自动生成安全指数来帮助项目的使用者和组织做出风险知情的决策。企业正在大量使用开源依赖项,但确定这些依赖项风险仍是一项手动工作。Scorecards 项目旨在采用自动启发式(automated heuristics)和安全检查来减轻负担,最终在0到10的评分表上生成安全指数。它在评估开源软件项目的安全问题时,与安全领导者倡导的最佳实践(如签名或SAST)保持一致。
OpenSSF Scorecards对风险严重程度采用分层计分
Scorecards 可以基于直接依赖项扫描100万个最关键的开源项目,并定期将结果发布到公共数据集上。除了利用公开的数据集外,企业还可以使用 GitHub Action 对自己的 GitHub 项目运行 Scorecards,当 Repo 有变化时,GitHub Action 就会运行,并向这些项目的维护者提供告警。
Scorecards 项目使用【关键】【高】【中】【低】的评分标准,这也是大多数安全从业者所熟悉的标准。它还使用一个标准的检查列表,针对你的目标项目进行检查,无论是公开的项目还是原生使用的私有项目。
你还可以深入了解其中一些检查,包括基础的安全实践,如使用分支保护、加密签名发布以及存在未修复的漏洞。Scorecards 项目采用 OSV 漏洞数据库(osv.dev)来检测未修复漏洞的存在。这是一个为开源项目设计的分布式漏洞数据库,它采用OpenSSF OSV 格式。OSV的核心是聚合使用OSV模式的其他漏洞数据库,如 GitHub Security Advisories 和全球安全数据库等。OSC还支持API和命令行界面(CLI)工具,用于扫描 CycloneDX 或 SPDX 格式的 SBOMs。
Scorecards 项目有双周会和 Slack channel。它由来自谷歌、Datto和思科等公司的工程师主导,自成立以来已经有近3000颗star,还有用户将其添加至收藏夹。随着企业继续推动其开源软件采用治理实践的成熟,该项目将不可避免地越来越受到青睐。
企业如何使用 OpenSSF Scorecards?
当前,企业对开源软件的治理和风险管理能力仍处于初级阶段。而近年来频发的软件供应链攻击事件将是一个巨大的推动力,促进企业加强软件供应链的安全实践。目前我们有 OpenSSF 安全动员计划、SLSA、《安全软件开发框架》(SSDF)以及其他最佳实践指南。所有这些都涉及到企业对开源软件使用的管理,并确保这种使用与企业对风险的容忍度一致。
尽管听起来很简单,但要在整个强大的开源项目和组件的生态中做到这一点是十分具有挑战性的。OpenSSF的Scorecards项目提供了一种自动化的方式来获得对超过100万个OSS项目的安全和风险洞察力,并将该项目直接用于他们自己的软件和内部的项目。
企业可以通过CLI对不属于他们的项目使用 Scorecards,也可以对 npm、Pypi 或 RubyGems 等项目使用软件包管理器。Scorecards 也可以作为 Docker 容器使用。
企业和个人开发者都可以参与该项目,包括提交需求检查,以便进行评分评估。组织也可以自定义使用 Scorecards,比如只运行特定的检查,或者与同行业的特定安全要求保持一致。
边栏推荐
- 【Swoole系列3.5】进程池与进程管理器
- 【ROS2原理10】Interface数据的规定
- mstsc/Mstsc (Microsoft terminal services client)远程桌面连接
- GBJ1510-ASEMI机器人电源整流桥GBJ1510
- 你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
- Summary of basic operations of c language files
- MySQL最大连接数限制如何修改
- 【kali-密码攻击】(5.1.2)密码在线破解:Medusa
- 【LeetCode】求根节点到叶节点数字之和
- 解决sed替换文本,里面含有“/“、“#”等特殊字符的问题
猜你喜欢

分析 20 个 veToken 生态系统协议 这种代币模型为何受欢迎?

Problems and solutions related to Chinese character set in file operations in ABAP

【无标题】

小程序中计算距离信息

unity 报错 Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe‘ code“ in Pla

Docker interview question 2--get the number of database connections and docker-compose

Shader Graph学习各种特效案例

不是吧,连公司里的卷王写代码都复制粘贴,这合理?

Win7怎么把控制面板添加到右键菜单

CVPR22 Oral|通过多尺度token聚合分流自注意力,代码已开源
随机推荐
Not, even the volume of the king to write code in the company are copying and pasting it reasonable?
【软考软件评测师】软件测试基础知识
el-input保留一位小数点
【CAS:41994-02-9 |Biotinyl tyramide】生物素基酪氨酰胺价格
egg.js中Class constructor BaseContextClass cannot be invoked without ‘new‘解决方法
[LeetCode] Find the sum of the numbers from the root node to the leaf node
彩色袜子题
【LeetCode】求根节点到叶节点数字之和
SonarQube升级记录:7.8->7.9->8.9
不是吧,连公司里的卷王写代码都复制粘贴,这合理?
DHCP——动态主机配置协议
使用 GoogleTest 框架对 C 代码进行单元测试
宽带由20M换为100M
-Vector Dot Product-
Web性能测试模型小结
改变社交与工作状态的即时通讯是什么呢?
02| operator
Pagoda measurement - building LightPicture open source map bed system
y92.第六章 微服务、服务网格及Envoy实战 -- Envoy基础(三)
JDBC数据库连接池练习题