本文作者

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如何保障软件供应链安全?的更多相关文章

  1. Kubernetes 时代的安全软件供应链

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏  阿里云 ...

  2. 基于 Docker 的现代软件供应链

    [编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...

  3. OpenSSF安全计划:SBOM将驱动软件供应链安全

    在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...

  4. SLSA 框架与软件供应链安全防护

    随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改.新的 Google SLSA 框架(Supply-chain Level ...

  5. 【阿里聚安全·安全周刊】苹果证实 iOS 源代码泄露|英国黑客赢下官司

    本周的七个关键词:iOS 源代码泄露  丨 阿里软件供应链安全大赛  丨  个人数据安全  丨  Android P  丨  黑客赢下官司  丨  备忘录泄露美国安全局机密  丨  机器学习系统 -1 ...

  6. 一个程序的自我修养「GitHub 热点速览 v.22.19」

    一个程序要诞生涉及前后端技术,比如,你可以用可视化网页搭建工具 tmagic-editor 完成前端部分,而后端部分的数据库以及数据处理可能就要用到 jsonhero-web 和 directus.知 ...

  7. 一文掌握软件安全必备技术 SAST

    上一篇文章中,我们讨论了软件供应链的概念并了解到近年来软件供应链安全事件层出不穷.为了保障软件供应链安全,我们需要了解网络安全领域中的一些主要技术.本篇文章将介绍其中一个重要技术--SAST. 当开发 ...

  8. 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性

    原文链接:https://blogs.technet.microsoft.com/mmpc/2017/06/27/new-ransomware-old-techniques-petya-adds-wo ...

  9. 360安全中心:WannaCry勒索软件威胁形势分析

    猫宁!!! 参考链接:http://zt.360.cn/1101061855.php?dtid=1101062360&did=210646167 这不是全文,而是重点摘要部分. 2017年5月 ...

随机推荐

  1. Hadoop入门学习笔记(二)

    Yarn学习 YARN简介 YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度 YARN功能说明 资源管理系统:集群的硬件资源,和程序运行相关,比如内存.CPU等. 调度平 ...

  2. 带你学习MindSpore中算子使用方法

    摘要:本文分享下MindSpore中算子的使用和遇到问题时的解决方法. 本文分享自华为云社区<[MindSpore易点通]算子使用问题与解决方法>,作者:chengxiaoli. 简介 算 ...

  3. 羿网通WT2100网络测试仪端口开关功能应用案例

    端口开关是羿网通WT2100具备的一项全局性的功能,使用客户端软件Packlark连接WT2100后无需进入具体功能即可使用.该功能是通过控制设备上的以太网开关实现快速.便捷地切换网口通断状态的目标, ...

  4. OI中组合数学公式和定理90%歼灭

    组合数学 基础概念 加法和乘法原理 加法原理 同一步下的不同选择,可以通过累加得到方案数. 乘法原理 整个流程的方案数可以由每一步的方案数相乘得到. 有了加法原理和乘法原理,就可以解决一些没有选择导致 ...

  5. DirectX11 With Windows SDK--40 抗锯齿:FXAA

    前言 在默认的情况下渲染,会看到物体的边缘会有强烈的锯齿感,究其原因在于采样不足.但是,尝试提升采样的SSAA会增大渲染的负担:而硬件MSAA与延迟渲染又不能协同工作.为此我们可以考虑使用后处理的方式 ...

  6. C语言- 基础数据结构和算法 - 循环链表

    听黑马程序员教程<基础数据结构和算法 (C版本)>,照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友可 ...

  7. vscode远程调试c++

    0.背景 最近在学习linux webserver开发,需要在linux下调试自己的C/C++代码,但是linux下不像在windows下,直接Visio Studio或者其它集成开发环境那么方便,现 ...

  8. Vue关于echats的使用(浅显易懂)

    安装 npm install echarts --save 引入 (全局) main.js import * as echarts from 'echarts'; Vue.prototype.$ech ...

  9. Maven-打包jar指定main函数所在类的一个例子

    问题描述:maven打包jar时,由于带main方法的类没有被加入manifest中,导致执行java -jar mvn-jar-1.0-SNAPSHOT.jar时,会提示没有主清单属性. 解决办法: ...

  10. nginx 出现An error occurred错误

    原因是我nginx中conf文件的配置里面 location中的 这一块内容是 #注释的那两行 所以报错出现这个错误. 后来将这两行注释掉,改成这两个就好了. root html; index ind ...