国际企业开源合规标准 OpenChain 介绍

本文整理自 OSCS 软件供应链安全技术论坛- 谭中意老师分享的《OpenChain-企业软件开源合规国际标准介绍》完整内容。

谭中意,第四范式架构师,开源专家,OpenChain 中国工作组联合创始人,在 Sun、Baidu、腾讯等有超过 20 年开源研发、治理、运营相关经验。

大家好我是谭中意,现在是第四范式公司架构师,也是企业智能化转型开源社区—星策社区发起人,开放原子基金会 TOC 副主席,国际开源合规项目 OpenChain 中国工作组联合创始人。今天我将围绕以下几点进行分享:

  1. 什么是开源软件供应链,为什么重要;
  2. 常见的风险和挑战;
  3. 国际标准 OpenChain;
  4. 如何评估和构建安全的供应链。

什么是开源软件供应链,为什么重要

Software Supply Chain(软件供应链)即一个企业所依赖的软件,包括研发,运营,销售等各项活动所依赖的软件,包括引入和输出的软件。我们面临的核心问题是如何信任企业内部的开源软件供应链是高效、安全、合规的。

国际企业开源合规标准 OpenChain 介绍

首先要看一个问题,企业能否不用开源软件?答案是否定的,可能十多年前还有一家公司可以说我不用开源软件还能活下去,但是现在世界上已经没有一家公司能离开开源软件活下去。Linux 基金会统计,日常工程师使用的 90% 的代码都是开源软件,如果哪个企业说他有一半的软件都是自研的,你就可以嘲笑他一下。

开源软件供应链全景图

国际企业开源合规标准 OpenChain 介绍

开源软件的对企业来说,它的供应链全景图是什么东西?首先它从上游社区拿到了开源软件 abc 进入到企业之后,经过 devops 的一系列的开发和运营,最后对外输出的形式包括以 online service、软件、硬件,这个链条我们称之为开源软件供应链全景图。

常见的风险和挑战

常见的风险和挑战有以下几种:

  1. 合规风险
  2. 安全漏洞风险
  3. Bugs 风险

开源软件供给是什么状态?

海量供给、海量需求、还在递增。一份来自 Sonatype 的统计报告——《2021 State of the Software Supply Chain》以 Java 为例显示出,在 Maven 中心仓有 430 个软件项目,730 个版本,平均每个工程师每年下载 3万+个软件包,总下载数从 2020 年的 267 Billion 到 2021 年的 457 Bilion,增长 71%。

以 JavaScript 为例在 npmjs 中心仓库统计有 1800 万软件包,2100 万个版本,平均每个工程师下载 10 万+个软件包,总下载数从 2021 年的 1 trillion 到 2021 年的 1.5 trillion,增长50%。

从我的评估来看,国内只要是超过 1000 人的团队、只要是用过用 Java 的,那么它使用开源软件的数量级就在 1 万以上,如果是使用 JavaScript 的那就是至少在 10 万级别。如果哪个公司告诉你,他们内部使用开软件只在千级别,大家就可以想象,他根本不清楚业内现状。

国际开源合规标准 Openchain

政策/流程/培训是相似的

这个标准的产生是在 2014 到 15 年,很多企业在 Linux 基金会的里面聊我们怎么能做到开源的合规管理?开源软件的 License 虽然多,但是常见的也就那么几种,每个公司要做到合规,都有大量相似的工作:

  • 使用开源软件的政策;
  • 确保合规的流程;
  • 让工程师理解的培训材料等…

OpenChain 应运而生

所以大家就聚在一起讨论,形成了开源软件管理社区,制定了一系列的规范,最后把它变成了国际标准。

国际标准它首先是一个规范,即 Spec。其次是一个 Linux 基金会下的子基金会:

  • 理事会;
  • Working groups;
  • 相关服务:认证,培训等…

OpenChain Spec:国际标准ISO/IEC 5230

国际企业开源合规标准 OpenChain 介绍

上图就是他们的全景图 Openchain 的一个全景图。2020 年 12 月 16 日的时候,Linux 基金会、Joint Development 和 OpenChain 项目宣布 ISO/IEC 5230 已被核准成为国际标准。

OpenChain Spec 相关内容简介

OpenChain Spec 重点描述企业的开源合规计划应该“做什么”以及“为什么要做”,而不是“如何做”、“何时做”。

具体内容:

  • 企业需要有一份开源政策,而且需要让员工都知晓;
  • 企业需要指定参与合规工作的人员,并确保他们具备能力;
  • 企业需要有流程来审核许可证,确保符合权利和义务;
  • 企业需要有流程来为交付软件创建软件组件清单,包括许可证信息等;

一份中文标准的说明书(https://github.com/OpenChain-Project/Specification/blob/master/Community/zh-Hans/2.0/OpenChainSpec-2.0-zh-Hans.pdf)供大家下载参考。

SPDX:ISO/IEC 5962:2021

SPDX 简单说就是 License 的精确、简单、统一、语言无关的表示,例如:

  • // SPDX-License-Identifier: MIT
  • // SPDX-License-Identifier: GPL-2.0+

OpenChain 同时也是一个社区

OpenChain 有它的理事会:Microsoft,Google, ARM, CISCO, Toyota, Oppo,Huawei,Hornor 。也分有各种邮件的组:toolchain,spec,自动驾驶、教育…还会有一些 Partner:包含各种法律咨询,合规工具厂商。

国际企业开源合规标准 OpenChain 介绍

OpenChain workgroup

社区内也有各种各样的 working group 包括:

国际企业开源合规标准 OpenChain 介绍

OpenChain 培训

OpenChain 会提供一些培训材料 :

  • 针对工程师的开源合规培训材料;
  • 针对 OSPO 的开源管理政策模版;
  • 更多案例。

OpenChain 包含合规认证

OpenChain 提供一些认证,比如针对规范制定的一系列问题,答复都是 Yes, 即符合要求。

例如针对软件发布的过程相关有如下几个问题:

  • 是否有明文规定的流程,用于识别、记录和存档软件中的开源组件信息;
  • 是否有明文规定的流程,保证随软件发布按照许可证要求而提供合适的文档。

例如针对公司员工对外开源进行贡献相关有三个问题:

  • 是否有对外开源贡献的政策;
  • 是否有对外开源贡献的流程;
  • 是否有流程让工程师都了解对外开源贡献的政策和流程。

OpenChain第三方认证商

国际企业开源合规标准 OpenChain 介绍

如何评估和如何构建

如何构建企业开源软件供应链?

构建其实很简单,就是政策流程加工具。

国际企业开源合规标准 OpenChain 介绍

评估企业开源软件供应链治理(从结果)

当一个常用开源软件发现高危 CVE bug 和 fix 之后,多长时间内能在该企业内部定位和修复?现在开源软件的 bug 在开源社区的修复大概是以周为单位,更快的有的甚至当天就能出新版本就能把它修掉。当该企业对外输出软件时候,是否快速输出高质量的 SBOM(软件组件清单)和 Notes,满足合规要求?一般两个都需要。

SBOM(软件组件清单)

SBOM(Software Bill of Materials)类似食品的配料清单,对于每个软件组件需要提供如下信息:

  • 软件名称,软件版本
  • 软件许可证
  • 对软件做的修改
  • 许可证文本和著作权申明(对于部分开源软件)

Notes文件

Notes 文件包含所使用开源组件的 Copyright 和 License,开源 License 要求随软件包发布的 notes 文件中包含:

  • MIT 要求 include License,Copyrihgt
  • Apache V2要求 include License,copyright,changes
  • BSD 3 要求include License,Copyright

评估企业开源软件供应链治理(从过程)

刚才说了,从结果来说就衡量,接下来说下是否建立起完善的开源组件管理机制,包括:

  • 人员组织
  • 政策和流程
  • 培训和工具

通过OpenChain的认证是一个不错的验证方式。

企业理想的开源软件供应链状态

当引入开源软件的时候,我们需要确保工程师:

  1. 使用高质量和有限的组件,并从可信的提供商哪里获得
  2. Keep a record when consuming them
  3. 了解使用该组件的法律合规需求

当对外输出软件或服务的时候,我们需要确保工程师:

  1. 发布时同时有一份软件组件清单和 Notes 文件
  2. 满足这些开源组件的合规要求
  3. 及时修复安全/SRE/法务提出的各种问题

基本原则

国际企业开源合规标准 OpenChain 介绍

这张图其实是来自于一个著名质量大师德明在丰田做供应链管理时候的一个图。这个图和供应链管理的图原则上一模一样,以我本人经验,其实就是组建跨部门多功能小团队,包括法务,安全,工具团队,然后制定相关政策和流程并落实,使用工具尽可能的自动化并且进行大规模和多层次的培训和宣导。结果对于同样 fastjson 的一个高危 CVE bug 来看:

  • 之前:安全部门向全员发出修复通知,半年内修复状态未知
  • 之后:30 分钟内定位受影响代码仓库并精确发出修复通知,3天内全部修复

以上为我的完整分享,感谢大家的观看。

发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/solution/4540.html

(0)
上一篇 2023年1月9日 15:15
下一篇 2023年1月9日 15:17

相关推荐

  • 墨菲安全应邀参与小米IoT安全峰会|智能汽车行业软件供应链安全解决方案

    墨菲安全在小米IoT安全峰会分享智能汽车安全解决方案 2022年6月30日,墨菲安全受邀参与小米IoT安全峰会,本次由墨菲安全联合创始人、墨菲安全实验室负责人、软件供应链安全开源项目murphysecurity主要贡献者欧阳强斌带来分享,智能汽车行业的软件供应链安全威胁与解决方案。 智能汽车涉及的三类供应链风险的场景 一、开源软件服务的风险 过去有数据统计,…

    2023年1月5日
  • 快手安全 X 墨菲安全|软件供应链安全解决方案完整分享

    本次分享由墨菲安全联合创始人&研发负责人宇佰超于 9 月 26 日快手安全沙龙中分享,本次主题《软件供应链安全体系、方法与落地》,文末附本次分享视频链接,欢迎大家查阅分享,如有任何欢迎联系我们一起交流讨论~ 随着国家 IT 及信息化的推广与普及、IT 行业的快速发展,软件供应链体系愈发的成熟。企业软件开发与信息化建设过程中,涉及与使用到的供应链比重越…

    2023年1月9日
  • 技术驱动——打造最实用的软件供应链安全工具

    本文整理自 OSCS 软件供应链安全技术论坛- 欧阳强斌老师的分享《技术驱动——打造最实用的软件供应链安全工具》完整内容。 欧阳强斌 墨菲安全联合创始人、墨菲安全实验室负责人, 大家好,我是欧阳强斌,来自墨菲安全专注在软件供应链安全领域的一家创新公司。很高兴能够在这里分享我们对软件供应链安全的理解,以及我们以技术驱动的产品实践。 软件供应链安全并不新鲜 19…

    2023年1月9日
  • 墨菲安全受邀与腾讯安全共话软件供应链安全治理

    墨菲安全是一家专注于软件供应链安全管理的科技公司,能力包括代码安全检测、开源组件许可证合规管理、云原生容器安全检测、软件成分分析(SCA)等,丰富的安全工具助您打造完备的软件开发安全能力(DevSecOps)。公司核心团队来自百度、华为等企业,拥有超过十年的企业安全建设、安全产品研发及安全攻防经验。 一、墨菲安全受邀参加腾讯安全云鼎实验室公开课分享 2022…

    2023年1月4日
  • 蚂蚁供应链安全建设实践

    本文整理自 OSCS 软件供应链安全技术论坛- 边立忠(京蛰)老师的分享《蚂蚁供应链安全建设实践》完整内容。 边立忠,蚂蚁集团高级安全专家,蚂蚁集团应用安全产品中台负责人,主要负责蚂蚁 SCA、IAST、SAST、镜像安全扫描等供应链安全相关产品的建设和技术研究。 大家好,我是边立忠,很高兴今天有机会给大家做一个软件供应链安全相关的分享。 我在蚂蚁主要负责 …

    2023年1月9日

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

400-180-9568

邮件:hi@murphysec.com

工作时间:周一至周五,10:00-19:00,节假日休息

关注公众号

20230105-100741