对于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,比如只运行特定的检查,或者与同行业的特定安全要求保持一致。

OpenSSF的开源软件风险评估工具:Scorecards的更多相关文章

  1. oschina图形和图像工具开源软件

    图形和图像工具开源软件 http://www.oschina.net/project/tag/181/imagetools?sort=view&lang=21&os=0

  2. spring boot 实战:我们的第一款开源软件

    在信息爆炸时代,如何避免持续性信息过剩,使自己变得专注而不是被纷繁的信息所累?每天会看到各种各样的新闻,各种新潮的技术层出不穷,如何筛选出自己所关心的? 各位看官会想,我们是来看开源软件的,你给我扯什 ...

  3. Google软件构建工具Bazel原理及使用方法介绍

    近期,Google开源了强大的自动化构建工具Bazel. 正好博主近期在使用china版的Bazel--腾讯自主开发的Blade,所以准备跟大家分享一下Google Bazel这个分布式构建系统的原理 ...

  4. Google软件构建工具Bazel FAQ

    Google软件构建工具Bazel FAQ 本文是我的翻译,原文在这里.欢迎转载,转载请注名本文作者和原始链接 注:如果想了解Bazel的原理,可以看看我之前翻译的Google Blaze原理及使用方 ...

  5. 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  6. 2014 年最热门的国人开发开源软件TOP 100

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外认可.中国是开 ...

  7. 2014年国人开发的最热门的开源软件TOP 100

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  8. GIS开源软件大全

    3 - F 3map:行星地球项目由3map驱动,这是一个自由软件,由Telstra宽带基金会创建并支持,提供客户端与服务器的能力以在线再现虚拟地球. Amein!:其界面介于ArcMap和UMN M ...

  9. 2016国产开源软件TOP100(Q1)

    随着互联网的发展.开放标准的普及和虚拟化技术的应用等诸多IT新领域的创新及拓展,开源技术凭借其开放性.低成本.稳定性.灵活性.安全性和技术创新性等特点迅速走向成熟,逐步发展成为一种主流模式,日益改变着 ...

  10. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

随机推荐

  1. 类中的两大类(string类、math类)的应用

    类是我们在学习C#的过程中很关键也是特别容易让人蒙逼得地方,类的应用直接可以调用它的属性和方法来进行判断和验证 string类(也叫字符串类) C#中的String类很有用,下面是一些它的常用方法的总 ...

  2. javaweb:推断当前请求是否为移动设备訪问

    这段时间都是在做pc端的业务.结果经理找到我说,可能要做移动端的应用,后台逻辑还是用我写的逻辑.可是须要修改一些,看看怎么处理. 因为移动端和pc端还是略微有些差别的,我认为最好是在一个地儿统一推断, ...

  3. vue的data的数据进行指定赋值,用于筛选条件的清空,或者管理系统添加成功后给部分数据赋值为空

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Java并发编程(三)Thread类的使用

    一.线程的状态 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以下这几个状态:创建(new).就绪(runnable).运行(running).阻塞(blocked).time wait ...

  5. NET的堆和栈04,对托管和非托管资源的垃圾回收以及内存分配

    在" .NET的堆和栈01,基本概念.值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配.我们知道:当执行一个方法的时 ...

  6. clear(), evict(), flush()三种方法的用法实例

    先贴代码: @Before public void init() { System.out.println("Test开始之前执行"); Configuration configu ...

  7. devexpress v14.2.3 发布

    补丁而已. New Major Features in 14.2 What's New in VCL Products 14.2 Breaking Changes To learn about bre ...

  8. HDU 4238 You Are the One

    You Are the One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...

  9. linux下实时查看log

    1.先切换到:cd usr/local/tomcat5/logs2.tail -f catalina.out3.这样运行时就可以实时查看运行日志了 Ctrl+c 是退出tail命令. 顺便讲一下lin ...

  10. ubuntu通过apt-get方式搭建lnmp环境以及php扩展安装

    v 一直是在用的lnmp的集成安装包搭建lnmp环境,因为工作需要需要安装ldap扩展,在网上怎么都找不到源码安装包,只能卸载掉原来的lnmp环境,用ubuntu的php5-ldap扩展, 在安装中遇 ...