SLSA 框架与软件供应链安全防护
随着软件供应链攻击浪潮愈演愈烈,Google 发布了一系列指南来确保软件包的完整性,旨在防止影响软件供应链的未经授权的代码修改。新的 Google SLSA 框架(Supply-chain Levels for Software Artifacts 软件构件的供应链级别)通过识别 CI/CD 流水线中的问题并减小影响,为企业实现更安全的软件开发和部署流程提供建议。
Google 的 SLSA 框架
SLSA 是一个端到端框架,旨在确保软件开发和部署过程的安全性,专注于缓解由于篡改源代码、构建平台或构件仓库而产生的威胁。这些要求源于 Google 的 BAB (Binary Authorization for Borg),该授权已经使用了8年多,并且对于 Google 的所有生产工作负载都是强制性的。
SLSA 侧重于以下两个主要原则,即所有软件工件都应当:
非单边: 未经至少一个其他“受信任的人”的明确审查和批准,任何人都无法修改软件供应链中任何地方的软件工件。目的是预防或尽早发现风险。
可审计: 软件构件足够安全透明,来源与依赖项可溯源。主要目的是自动分析来源和依赖关系以及一些特定调查。
虽然无法做到万无一失,但这两个原则可以帮助企业有效避免和缓解各种篡改和其他供应链攻击带来的风险和影响。
CI/CD 流水线流程

软件供应链是创建和发布软件构件的一系列步骤。上图展示了源代码、构建、依赖项和包的流程关系。而每个源代码、构建和软件包都可以托管在一个平台上,例如源代码管理 (Source Code Management) 或持续集成/持续部署 (CI/CD)。

SLSA 框架下的4个安全级别
安全级别越高,实施的安全控制越强,攻击者越难破坏代码:
- SLSA 1: 要求构建过程完全脚本化/自动化并生成出处
- SLSA 2: 要求使用版本控制和托管生成服务来生成身份验证的出处
- SLSA 3: 要求源和构建平台符合特定标准,以保证源的可审计性和来源的完整性
- SLSA 4: 要求对所有更改进行两人审查,并采用封闭的、可重现的构建过程
将供应链保护提升到新的水平
Google 的 SLSA 框架是朝着提高认识和建立标准的正确方向迈出的一步,这些标准将帮助企业控制供应链风险。根据 CI/CD 流程(上图)和 SLSA 建议,我们可以将风险定义为以下三个阶段:
代码阶段风险:
提交恶意代码 – 将易受攻击的代码上传到公司的源代码管理系统,其中可能包含漏洞或受损的代码包。
攻陷源代码管理系统 – 源代码管理系统中的错误配置或漏洞,可能导致代码、机密和用户信息泄露和被盗。
使用恶意依赖项 - 可能允许未经授权访问管道或导致暴露/泄漏代码。
构建阶段风险:
使用恶意代码 – 注入错误代码,并在设定流水线流程之外,未经适当的审查和批准而出发的构建过程。
攻陷构建平台 – 利用漏洞或错误的配置来获得对构建服务器的访问权,并操纵构建过程及其输出。
已泄露的依赖项 – 利用已泄露或易受攻击的依赖项来获取访问权限或操作构建服务器。
分发阶段风险:
绕过 CI/CD – 将恶意构件上传到 Artifactory,绕过 CI/CD 流程,使客户暴露于恶意软件包内。
使用恶意包 – 改变系统流程,获得对构件的访问权,以便上传、替换或窃取构件。
保护软件供应链
保护软件开发等复杂和动态的过程免受供应链攻击,需要全面的安全解决策略,该策略需要考虑到在工具,源代码和流程,构建和分发阶段中面临的各种风险。正如 SLSA 指南所强调,实施强大的安全防护策略可强化流水线安全状况,使攻击者难以破坏基础架构、流程或代码。
在过去,我们看到了各类 DevOps 环境中的源代码泄漏,资产受损和漏洞,这是 CI/CD 流水线上薄弱的安全措施导致的直接结果。微软、Rapid7、Monday.com、Codecov、SolarWinds 等知名企业成为针对软件供应链攻击的受害者,在业内和社会引起高度关注。
随着恶意攻击者发现开发环境可以作为一种简单且高度可利用的攻击媒介,企业必须对其开发环境给予更严格的安全防护措施,来阻止恶意的软件供应链攻击。在 SLSA 框架下采用全面的安全策略,提供对 CI/CD 流水线的端到端可见性和控制,并将此作为流水线的一部分进行集成,来实现全方位安全保护。
参考链接:
Supply-chain Levels for Software Artifacts
SLSA 框架与软件供应链安全防护的更多相关文章
- Kubernetes 时代的安全软件供应链
点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 汤志敏 阿里云 ...
- CSO视角:Sigstore如何保障软件供应链安全?
本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...
- 关于web软件信息安全问题防护资料的整理(二)
想要做好软件的安全防护,首先就得了解web系统的安全威胁,那么web系统都存在哪些威胁呢? 应用层攻击.网络层攻击和混合攻击. 传统被动.单点以及彼此孤立的防护手段已不能应对越来越严峻的安全威胁. 改 ...
- 基于 Docker 的现代软件供应链
[编者按]本文作者为 Marc Holmes,主要介绍一项关于现代软件供应链的调查结果.本文系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文. 3 月初,为了了解软件供应链的现状以及 D ...
- OpenSSF安全计划:SBOM将驱动软件供应链安全
在 软件成分分析(SCA)一文中,我们简单提到软件物料清单(SBOM)在安全实践中的价值. 本期文章将带你深入了解 "SBOM 无处不在"计划是什么,以及 SBOM 对未来软件供应 ...
- 云锁Linux服务器安全软件安装及防护webshell、CC、XSS跨站攻击设置
无论我们在使用电脑,还是使用VPS/服务器的时候,最为担心的就是服务器是否有安全问题,尤其是网站服务器再遭受攻击的时候如何得到防护.对于大 部分站长用户来说,我们可能只会使用基础的环境,如果真遇到问题 ...
- 一系列令人敬畏的.NET核心库,工具,框架和软件
内容 一般 框架,库和工具 API 应用框架 应用模板 身份验证和授权 Blockchain 博特 构建自动化 捆绑和缩小 高速缓存 CMS 代码分析和指标 压缩 编译器,管道工和语言 加密 数据库 ...
- 关于web软件信息安全问题防护资料的整理 (一)
之前意识到了安全问题的重要性,于是就在网上找了一下安全问题的解决办法(主要是web应用以及政府网站方面的),问了一下同学的公司是怎么保证安全的,跟我说用的是shiro安全机制这个貌似好多公司都在用,网 ...
- 关于web软件信息安全问题防护资料的整理(三)
了解了web系统的安全威胁,那么我们应该怎样防范这些安全威胁呢? 1.时刻准备应战 Web应用系统所面临的威胁是非常严峻的.不管攻击的一方是采用单一形式的攻击,还是采用混合多种手段的混合攻击,作为防护 ...
随机推荐
- golang bufio解析
golang bufio 当进行频繁地对少量数据读写时会占用IO,造成性能问题.golang的bufio库使用缓存来一次性进行大块数据的读写,以此降低IO系统调用,提升性能. 在Transport中可 ...
- Python学习笔记: 用pprint更漂亮的打印数据
pprint是一个标准库,它提供了pprint()函数 ,用来打印复杂数据时更漂亮 >>> from pprint import pprint >>> data = ...
- 清除安装的Rancher、K8s
#清除主机的所有容器.挂载.镜像(慎用) docker stop $(docker ps -aq) docker system prune -f docker volume rm $(docker v ...
- Day 002:PAT练习--1021 个位数统计 (15 分)
话不多说,看题目: 显而易见,这道题用map实现非常的方便,(才不是,其实还有更简单的办法,但是我觉得写那种代码实在没什么意义,再加上正好借此练习一下map)我的代码如下: #include& ...
- STS快捷键
在类或者方法上方加注释:shift+alt+J
- 初次接触Java感受
认真开始研究了idea后端开发环境 感触很深,突然觉得自己不能再一天的颓废下去,认真找点事情做一做,毕竟自己还是一张白纸,趁着自己年纪轻轻 经过一周的摸索自己努力了还不够,心里多么渴望自己身边的人能够 ...
- 再见 FTP/SFTP!是时候拥抱下一代文件传输利器了!
关注「开源Linux」,选择"设为星标" 回复「学习」,有我为您特别筛选的学习资料~ 两台电脑之间该如何传送档案,其实方法有超多种的,像是 FTP 或透过 SSH 方式来传送档案, ...
- 通过Go实现AES加密和解密工具
本文包含如下两个内容: AES加密介绍及实现原理 Go实现AES加密和解密工具 AES加密介绍及实现原理 AES( advanced encryption standard)使用相同密钥进行加密和解密 ...
- 最新管家婆财贸ERP C9 V22.0的应用网页版的财务软件1000用户补丁免狗授权注册机网络版软件下载
管家婆财贸ERPC9应用价值: 1.多组织独立核算 多种组织形态核算,出具独立的三大财务报表及业务报表,发挥经营管理的积极性,便于专业化运营. 2.兼顾统筹与分权 满足多种集团统管与分权管控模式需求, ...
- 随笔总结:8086CPU的栈顶超界问题
我们学习编程都知道栈的超界限问题是非常严重的问题,他可能会覆盖掉其他数据,并且我们不知道这个数据是我们自己保存的用于其他用途的数据还是系统的数据,这样常常容易引发一连串的问题. 在学习汇编的时候,我们 ...