CSO视角:Sigstore如何保障软件供应链安全?
本文作者
Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验。
SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注。许多企业开始让安全团队选型安全工具,以确保第三方软件的安全性。软件的使用无处不在,根据世界经济论坛(WEF)的数据,数字化平台占据了GDP的60%。尽管我们当前使用软件的方式正在改变世界,但目前依旧欠缺方法来保护整个软件供应链的安全。软件供应链通常不使用数字签名,或者使用传统的数字签名,这对于自动化和审计来说是一个挑战。
Sigstore 是什么?
Sigstore 网站:https://www.sigstore.dev/
恰如 Sigstore 的共创者和 Chainguard 的创始人 Dan Lorenc 所说,sigstore 是“一个为软件开发者提供的免费签名服务,通过启用由透明日志(Transparent Log)技术支持的加密软件签名来提高软件供应链的安全性。”
Sigstore 已经被谁采用了?
Kubernetes 宣布它正在对 sigstore 进行标准化,并在 1.24 版本中使用它。此外,Linux 基金会和 OpenSSF 最近发布了“开源软件安全动员计划”,强调数字签名以增强软件供应链的信任,推荐的方法包括使用 sigstore 项目,因为它包含关键组件,例如证书授权、透明日志(Transparent Log)和生态系统专用库。
拆解 Sigstore 项目
Sigstore 的成立是为了帮助解决开源软件(OSS)供应链中的一些现有缺陷,以及我们如何处理安全性、数字签名和验证开源软件组件的真实性。这一点至关重要,因为90%的IT企业都在使用开源软件,并且各个组织都在优先聘用开源人才,而软件供应链攻击事件在近几年层出不穷。
Sigstore 汇集了几个开源软件工具,如 Fulcio、Cosign和Rekor,以协助进行数字签名、验证和代码来源(Code Provenance)检查。Code Provenance 可以监管整条供应链,显示代码的来源和从何处集成。Uber 隐私和安全团队曾发表一篇博客,讨论了他们处理 Code Provenance 的路径,请查阅:
https://medium.com/uber-security-privacy/code-provenance-application-security-77ebfa4b6bc5
接下来,我们开始拆解 Sigstore 的核心组件,首先从 Fulcio 开始。Fulcio 是根证书颁发机构,主要关注代码签名。它是免费的并且颁发与 OpeID Connect (OIDC) 相关的证书,而且经常使用开发人员已经关联的现有标识符。随着云原生架构及容器部署的普及和快速增长,对容器进行签名已经成为重要的安全最佳实践。
密钥管理是一项十分繁琐的工作,通常由云服务提供商(CSP)或第三方提供管理服务。Sigstore 通过支持 Cosign 降低了这种复杂性——通过临时密钥使用“无密钥签名”缓解了密钥管理的挑战。尽管使用的是临时密钥,但你仍然可以通过 Fulcio 的时间戳功能保证签名的有效性。
这就是 Cosign 的用武之地,因为它支持签名选项(signing option),并能无缝支持生成密钥对和容器签名工件,以存储在容器镜像仓库中。这使云原生环境能够根据公钥验证容器,并且确保容器由可信的来源签署。在构建期间对镜像工件进行数字签名并验证这些签名是否可信,这是CNCF在云原生安全白皮书中强调的其中一个安全最佳实践。
接下来是 Rekor,它是作为软件维护和构建活动的一部分而创建的不可变和防篡改的组件。它使得购买或将软件集成到开发流程中的开发人员可以检查元数据,并他们对正在使用的软件和整个生命周期中涉及的活动/行为都已充分了解,进而可以根据所了解的信息、风险做出决定。回到我们之前提到的关于软件来源的观点,开发者可以使用 Rekor 通过透明日志来了解软件来源。
另一个值得关注的是一些最近发布的安全指南,如软件构件的供应链级别(SLSA)和NIST的安全软件开发框架(SSDF)、SLSA 3级强调需要审计软件来源的安全性,Sigstore也支持这一功能。SSDF 中提到的具体做法也表明需要提供来源和验证机制。借助 Sigstore,你可以让你所在的组织与最佳实践保持一致,并降低软件供应链的安全风险。
Sigstore 未来如何发展?
目前,Sigstore 项目仍处于初级阶段,但随着 Kubernetes 等领先开源软件项目及 Linux 基金会和 OpenSSF 的开源软件安全动员计划对它的认可,未来看起来一片光明。
随着开源软件的被越来越多企业采用和业界推动软件供应链的实践,Sigstore 将会在整个生态系统中发挥重要作用,如数字签名、真实性和安全性等关键领域。要控制软件供应链中的安全风险,就需要企业做出明智的决定,而掌握软件产品的来源以及软件创建和分发的细节至关重要,这就是 Sigstore 的优势所在,并且很有可能在不远的将来 Sigstore 会被业界大规模采用。
CSO视角:Sigstore如何保障软件供应链安全?的更多相关文章
- Kubernetes 时代的安全软件供应链
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏 阿里云 ...
- 基于 Docker 的现代软件供应链
[编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...
- OpenSSF安全计划:SBOM将驱动软件供应链安全
在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...
- SLSA 框架与软件供应链安全防护
随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...
- 【阿里聚安全·安全周刊】苹果证实 iOS 源代码泄露|英国黑客赢下官司
本周的七个关键词:iOS 源代码泄露 丨 阿里软件供应链安全大赛 丨 个人数据安全 丨 Android P 丨 黑客赢下官司 丨 备忘录泄露美国安全局机密 丨 机器学习系统 -1 ...
- 一个程序的自我修养「GitHub 热点速览 v.22.19」
一个程序要诞生涉及前后端技术,比如,你可以用可视化网页搭建工具 tmagic-editor 完成前端部分,而后端部分的数据库以及数据处理可能就要用到 jsonhero-web 和 directus.知 ...
- 一文掌握软件安全必备技术 SAST
上一篇文章中,我们讨论了软件供应链的概念并了解到近年来软件供应链安全事件层出不穷.为了保障软件供应链安全,我们需要了解网络安全领域中的一些主要技术.本篇文章将介绍其中一个重要技术--SAST. 当开发 ...
- 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
原文链接:https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-wo ...
- 360安全中心:WannaCry勒索软件威胁形势分析
猫宁!!! 参考链接:http://zt.360.cn/1101061855.php?dtid=1101062360&did=210646167 这不是全文,而是重点摘要部分. 2017年5月 ...
随机推荐
- 关于『进击的Markdown』:第五弹
关于『进击的Markdown』:第五弹 建议缩放90%食用 路漫漫其修远兮,吾将上下而求索. 我们要接受Mermaid的考验了呢 Markdown 语法真香(一如既往地安利) ( 进击吧!Mark ...
- CA证书介绍与格式转换
CA证书介绍与格式转换 概念 PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Sec ...
- java基础题(4)
5.4接口和抽象类 5.4.1实现抽象方法 描述: 已知抽象类Base中定义了calculate方法,该方法的计算过程依赖于sum()和avg(),而后两个方法均为抽象方法.要求定义Base的子类Su ...
- 用STM32玩L298N(正反转、调速)
目录 用STM32玩L298N(正反转.调速) 控制直流电机正反转 使用PWM调速 用STM32玩L298N(正反转.调速) 开发板:STM32F103ZET6(正点原子F103核心板)/STM32F ...
- CSP 2021 总结
CSP 2021 总结 PJ 开题顺序:1342 应该先做 T2 ,导致我 T2 直接看错 T1.T3 T1 :直接推规律即可,考场的想法应该正确 T3 :好家伙直接 map 走起 T2 最崩溃的来了 ...
- AsList()方法详解
AsList()方法详解 在Java中,我们应该如何将一个数组array转换为一个List列表并赋初始值?首先想到的肯定是利用List自带的add()方法,先new一个List对象,再使用add()方 ...
- 在海思芯片上使用GDB远程调试
1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其 ...
- 一、shell编程与变量
目录 命令是什么 命令是如何运行的: 基本语法 解释器 注释 如何执行 输入.输出流 重定向 管道符 | 变量 常见Shell变量的类型包括: 变量命名原则 单引号和双引号 反引号 变量作用范围 查看 ...
- 从零打造一个Web地图引擎
说到地图,大家一定很熟悉,平时应该都使用过百度地图.高德地图.腾讯地图等,如果涉及到地图相关的开发需求,也有很多选择,比如前面的几个地图都会提供一套js API,此外也有一些开源地图框架可以使用,比如 ...
- 超 Nice 的表格响应式布局小技巧
今天,遇到了一个很有意思的问题,一名群友问我,仅仅使用 CSS,能否实现这样一种响应式的布局效果: 简单解析一下效果: 在屏幕视口较为宽时,表现为一个整体 Table 的样式 而当屏幕视口宽度较小时, ...