微软宣布 S2C2F 已被 OpenSSF 采用
开源供应链安全对大多数 IT 领导者来说是个日益严峻的挑战,围绕确保开发人员在构建软件时如何使用和管理开源软件 (OSS) 依赖项的稳健策略至关重要。Microsoft 发布安全供应链消费框架 (S2C2F) 是一个以消费为中心的框架,它使用基于威胁的风险降低方法来缓解开源软件 (OSS) 中的安全威胁。近日,S2C2F 已经被 OpenSSF 采用。S2C2F 与以供应商为中心和以工件为中心的框架相结合(例如 SLSA),为软件生产者和消费者提供了安全创建和使用软件的能力。
S2C2F 基本概念
S2C2F 是一个安全保证和降低风险的流程,专注于保护开发人员使用开源软件的方式。自2019年以来,作为微软范围内的一项计划,S2C2F在整个开发人员内部循环和外循环流程中提供安全指导和工具,这些流程在 Microsoft 中使用开源软件来防御和防止供应链攻击方面发挥了关键作用。
使用基于威胁的风险降低方法,S2C2F 的目标是:
- 提供强大的 OSS 治理计划
- 缩短平均修复时间(MTTR)以解决 OSS 中的已知漏洞
- 防止使用已泄露和恶意的 OSS 软件包
S2C2F 三大核心概念
S2C2F 基于三个核心概念来建立模型,即控制所有工件输入、持续过程改进和规模。
控制所有工件输入
开发人员今天有无数种方式使用 OSS:gitclone,wget,复制粘贴源代码,将二进制文件签入存储库,直接从公共包管理器,将 OSS 重新打包为.zip,curl,apt-get,git 子模块等。如果开发团队不遵循使用 OSS 的统一流程,那么想要保障开源软件供应链安全几乎是不可能完成的任务。实施有效的安全开源软件供应链策略需要在整个组织的各个开发人员团队中标准化企业的 OSS 使用流程。
持续流程改进
为了帮助指导组织进行持续流程改进,将 S2C2F 组织为成熟度模型。这有助于企业确定应首先实施哪些要求的优先级。由于安全风险是动态的,新威胁随时可能出现,因此S2C2F 非常重视了解 OSS 供应链面临的新威胁,并要求定期评估 S2C2F 控制措施并引入变化以应对新技术进步或新威胁。
规模
S2C2F 框架工具在设计时考虑了规模。某些组织可能会尝试通过企业中央内部镜像仓库来保护其 OSS 提取过程。但是如果开发人员选择直接从 pypi.org 或 npmjs.com 中提取该如何阻止?企业中央内部镜像仓库还存在需要团队管理流程和工作流的问题。因此,开发 S2C2F 工具是为了保护如今大规模使用 OSS 的工作方式。

图片来源:Microsoft
S2C2F 八大实践
S2C2F自 2019 年以来一直在Microsoft内部使用和完善。它被构建为一个以消费为中心的框架,使用基于威胁的风险降低方法来减轻现实世界的威胁。该框架列举了现实世界供应链对 OSS 的威胁列表,并解释了框架的要求如何减轻这些威胁。该框架还包括分为 8 个不同的实践领域:

图片来源:Microsoft
由于所有 8 个实践无法同时合理实施,因此以下成熟度模型将 8 个实践中每个实践的需求组织成 4 个不同的级别。它允许组织从其现有的安全功能集逐步发展到更安全的防御态势。此外,成熟度模型在每个成熟度级别考虑不同的威胁和主题。
S2C2F 成熟级别
根据项目及其条件,企业可以跨项目实现多个框架级别。此外,与风险/回报相比,成熟度模型的第 4 级具有较高的估计实施成本,因此应被视为企业最理想的模式。虽然很难在整个组织中大规模实施 Level 4,但在最关键项目的最关键依赖项上实施级别 4 是可行的。
Level 1 – 改级别代表许多企业已经应用的一组基本治理实践,使用包管理器、执行 OSS 清单以及扫描和更新 OSS 依赖项。
Level 2 – 此级别在第一级的基础上构建,侧重于通过提高引入配置安全性、减少平均修复时间以修补 OSS 漏洞以及响应事件来进一步实现“安全左移”。2020 年的 SaltStack 漏洞就很好地证明,攻击者能够在宣布 CVE-2020-11651 后的 3 天内开始利用它。即使有补丁可用,企业也无法足够快地修补他们的系统。因此,此级别的一个关键组件利用自动化来帮助开发人员保持其 OSS 安全和更新。理想的目标是让企业能够比攻击者更快地进行修补。
Level 3 – 该级别侧重于主动安全分析与预防性控制相结合,主动对企业最常用的 OSS 组件执行安全分析并降低使用恶意包的风险。在下载软件包之前扫描 OSS 中的恶意软件是防止泄露的关键。然后,要对 OSS 进行主动安全审查,企业可以将源代码克隆到内部位置。主动安全审查可帮助企业查找尚未发现的漏洞,以及识别其他威胁类别,例如检测后门。
Level 4 – 此级别代表可减轻最复杂攻击但难以大规模实施的控制措施。在受信任的构建基础设施上重建 OSS是确保OSS在构建时不会受到威胁的防御步骤,这种成熟级别是防御最复杂的攻击时所需要的。此外,重建 OSS 还有许多刁钻的技术挑战,例如如何命名包以防止与上游发生冲突?如何确保所有开发人员都使用内部包而不是外部包?

图片来源:Microsoft
使用 S2C2F,团队和组织能够根据成熟度模型更有效地确定他们工作的优先级。在框架内针对特定级别的合规性的能力意味着团队可以在降低供应链风险方面取得有意和渐进的进展。S2C2F 包括评估组织成熟度的指南,以及推荐来自整个行业的工具以帮助满足企业的框架要求的实施指南。
微软宣布 S2C2F 已被 OpenSSF 采用的更多相关文章
- 解决Linux c语言运行时候“段错误 (核心已转储)”问题-采用gdb 解决
编译没有警告,没有错误,运行就打印 段错误 (核心已转储) 网上找了一下,都是各种问题,都推荐用gdb 调试解决,咱也来趁机学习gdb一下. gcc+gdb)输入命令行 运行 sudo apt-g ...
- 微软发布了开发社区采用.NET Standard的最新信息
最近,微软发布了开发社区当前采用.NET Standard的最新信息..NET Standard是API的正式规范,现有.NET实现在不同平台的是通用的(从而允许跨平台开发).当前规范(版本2.0)在 ...
- 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持
在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...
- 那些年黑了你的微软BUG
本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 前言 炎炎夏日,朗朗乾坤,30℃ 的北京,你还在 Coding 吗? 整个 7 月都在忙项目,还加了 ...
- 纳德拉再造微软:市值如何重回第一阵营(思维确实变了,不再是以windows为中心,拥抱其它各种平台,敢在主战场之外找到适合自己的新战场)
有人说,现在的美国硅谷充满了“咖喱味”.也有人说,硅谷已经变成“印度谷”.原因就在于,以微软CEO萨提亚·纳德拉.谷歌CEO桑达尔·皮查伊为代表的印度人,近年以来掌控了全世界最令人望而生畏的科技巨头. ...
- CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
- FlasActionScript3随学随机
1.跳转页面代码.下载代码(new URLRequest(下载地址)): var request1:URLRequest=new URLRequest("http://www.baidu.c ...
- COM思想的背后
最近看公司的一些新产品和框架 , 发现清一色的“COM思想架构 ”, 这里说的“COM思想架构”是指不完全是标准COM组件的方式,而是指在设计上用到了COM思想. COM组件技术大概在1993年产生, ...
- 快速入门系列--WCF--01基础概念
转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...
随机推荐
- 安装Alertmanager,nginx配置二级路径代理访问
安装配置 Alertmanager wget https://github.com/prometheus/alertmanager/releases/download/v0.20.0/alertman ...
- Ceph分布式存储详述
存储发展史 企业中使用存储按照其功能,使用场景,一直在持续发展和迭代,大体上可以分为四个阶段: DAS:Direct Attached Storage,即直连存储,第一代存储系统,通过SCSI总线扩展 ...
- Beats:运用 Logstash 来加工 Metricbeat 数据
文章转载自:https://elasticstack.blog.csdn.net/article/details/116496272
- CentOS6/7开机启动配置
最近在配置Linux系统的ntp校时,涉及到开机启动问题,总结一下 两个环境: CentOS release 6.5 (Final) CentOS Linux release 7.9.2009 (Co ...
- iptables基本使用举例
一.链的基本操作 1.清除所有的规则. 1)清除预设表filter中所有规则链中的规则. # iptables -F 2)清除预设表filter中使用者自定链中的规则. #iptables -X #i ...
- Java中的名称命名规范
包名:多单词组成时所有字母都小写:xxxyyyzzz 类名.接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名.方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首 ...
- centos7搭建安装loki、promtail、Grafana日志系统
loki.promtail.Grafana安装包 链接:https://pan.baidu.com/s/1vkSa_KYrXM0UEI8i42KdaA 提取码:4d4q 如果安装失败或者下载速度慢可以 ...
- 任务清单小功能的实现(任务的增、删、改、查、存储)使用Vue实现
文章目录 1.实现的效果(视频演示) 2.重点讲解(编辑的实现) 2.1 提示(官网介绍nextTick的用法) 3.编辑功能的核心代码 4.完整的代码 5.以往练习 任务清单案例(纯Vue) 实现的 ...
- Vue中、参数传递以及重定向
1.参数传递 关键部分代码 1.参数传递 <router-link :to="{name:'information',params:{id:1}}">用户信息</ ...
- 2022年最新最详细在IDEA中配置Tomcat(含有详细图解过程)、建立使用IEDA建立一个Web项目的案例
1.首先已经成功安装过tomcat 如果没有成功安装,参考这篇tomcat安装教程(安装成功可忽略):https://blog.csdn.net/weixin_43304253/article/det ...