开源之所以在软件开发中大量使用的原因是它提供了经过良好测试的构建块,可以加速复杂应用程序和服务的创建。但是第三方软件组件以及包和容器的便利性同时也带来了风险——软件供应链攻击。

软件供应链攻击日益普遍,Gartner 将其列为2022 年的第二大威胁。Gartner 预测,到 2025 年,全球 45% 的组织将遭受一次或多次软件供应链攻击,在参与调研的 CIO 中有82%认为他们所在的企业将容易受到攻击。其中包括通过广泛使用的软件组件(如 Log4j)中的漏洞进行的攻击、针对构建流水线的攻击(如 SolarWinds、Kaseya 和 Codecov hacks),或者黑客入侵软件包存储库本身。

攻击者逐渐发现软件供应链是最薄弱的环节,将攻击优先级从生产环境转移到软件供应链,这也就是为什么软件供应链攻击数量激增的原因。对使用开源代码库的研究表明,漏洞和过时或废弃的组件很常见:81% 的代码库至少有一个漏洞,50% 的代码库有多个高风险漏洞,88% 使用的组件不是最新版本或两年内没有新开发。

关于“影子代码”的思考

CIO 们在制定软件供应链安全防护策略时,可以假设他们的开发人员的开发环境和使用的工具都已经收到损害,借鉴此类场景来制定策略和政策,来最大限度减少攻击对企业软件供应链的影响和损害。

建议 CIO 们像对待影子 IT 一样去思考“影子代码”的影响与威胁。因此这不仅是一个安全问题,而是真正深入到如何获取软件的问题,不论这个软件是开源的还是商业的。如何将开源软件带入开发和生产环境,如何更新,如何控制以及怎样控制,这些都是值得思考的问题。

SBOM——提高可见性的关键

物理供应链已经使用标签、成分清单、安全数据表和材料清单,因此监管机构和消费者知道产品的最终结果。新举措旨在将类似的方法应用于软件,帮助组织了解依赖关系网络及其软件开发过程的攻击面。美国政府关于软件供应链安全的行政令要求向联邦政府提供软件的软件供应商提供软件物料清单 (SBOM),并使用 SLSA 安全检查表的供应链级别来防止篡改。也正因为如此,越来越多企业开始认真对待他们的软件供应链。

Linux 基金会最近的一项调查发现,企业对 SBOM 的需求意识开始提高,目前47% 的 IT 供应商、服务提供商和受监管的行业使用 SBOM,88% 的人预计将在 2023 年使用 SBOM。SBOM 对已经对软件组件和 API 进行资产管理的企业最为有用,如今拥有强大软件开发流程的企业发现可以生成软件材料清单的工具更容易使用。SBOM 可以由构建系统创建,也可以由软件组成分析工具在事后生成。许多工具可以集成到 CI/CD 流水线中并作为构建的一部分运行,甚至可以在下载库时运行。

为了让 SBOM 更好地发挥作用,企业需要明确开发团队获取开源软件的相关政策,开发人员需要清楚地知道公司的安全策略和政策是什么,为了保障开发软件安全,开发人员必须明确他们正在获取的开源软件是没有被篡改的。因此,CIO 们应该首先向他们的开发团队教育和灌输一些基本步骤,即使用新兴的行业标准方法,一是锁定构建系统,二是创建一种可重复的方法来验证软件工件的可信度,然后再将它们带入开发和生产环境。

保护流水线安全

保护企业的软件交付流水线也很重要。NIST 的安全软件开发框架 (SSDF) 和 SLSA 是很好的起点:它们涵盖了各种成熟度级别的最佳实践,从简单的构建系统开始,然后使用日志和元数据进行审计和事件响应。BitBucket、GitHub、GitLab 等版本控制系统都包括安全和访问保护功能(包括越来越精细的访问策略控制、分支保护、代码签名、要求所有贡献者进行 MFA 以及扫描机密和凭据),但需要在使用的时候明确启用。此外可以通过在单个堆栈中实施 SLSA 来保护构建流水线,例如用于可重复安全创建工件 ( FRSCA ) 的项目,虽然目前尚未具备投入生产的能力,但在未来 CIO 可以期望在构建系统时包含更多此类实践。

不过 CIO 们需要留意 SBOM 只是保护流水线安全的解决方案中的一部分,且 SBOM 创建和使用 SBOM 的工具也仍在完善,请求和使用的过程也需要优化。因此在要求供应商提供 SBOM 时,还需要明确 SBOM 的更新频率,是否包含漏洞报告和通知等。企业还需要工具来阅读 SBOM,并制定流程以对这些工具的发现采取行动。

CIO 们应当明确 SBOM 是一种推动力,可以帮助企业应对可能发生的事件,但它不是解决软件供应链安全的万能灵药。同时目前行业响应的速度以及围绕 SBOM 标准和代码证明仍有待提高和加强。不过随着对 SBOM 的需求上升,我们对此可以保持乐观态度。

SEAL 能够如何帮助您

Seal 软件供应链防火墙旨在为企业提供代码安全、构建安全、依赖项安全及运行环境安全等4大防护,通过全链路扫描、问题关联及风险阻止的方式保护企业软件供应链安全,降低企业安全漏洞修复成本。

CIO们开始将软件供应链升级为安全优先级top的更多相关文章

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

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

  2. Seal 0.4 发布:软件供应链安全洞察更上一层楼!

    今天,我们很高兴宣布 Seal 0.4 已正式发布!在上一个版本中,Seal 完成了从单一产品到全链路平台的转变,通过全局视图帮助用户掌握软件开发生命周期各个环节的安全状况. 在 Seal 0.4 中 ...

  3. 在C#中实现软件自动升级

    在C#中实现软件自动升级 winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的 ...

  4. 禁被ping 软件漏洞升级

    禁被ping:echo “net.ipv4.icmp_echo_ignore_all=1”  /etc/sysctl.conf 软件漏洞升级:yum install openssh bash -y

  5. HTML5进阶(三)HBuilder实现软件自动升级(优化篇)

    HBuilder实现软件自动升级(优化篇) 前言 受前篇博客<HTML5进阶(二)HBuilder实现软件自动升级>(点击查看详情)的影响,测试过程中发现APP自动更新还是存在问题,第一次 ...

  6. HTML5进阶(二)HBuilder实现软件自动升级

    HBuilder实现软件自动升级 前言 移动APP开发好后需要实现软件自动升级功能,经过一番搜索,发现HBuilder具有"App资源在线升级更新"的功能,遂研究之. 经过一番测试 ...

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

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

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

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

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

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

  10. CSO视角:Sigstore如何保障软件供应链安全?

    本文作者 Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验. SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注 ...

随机推荐

  1. 20.3 OpenSSL 对称AES加解密算法

    AES算法是一种对称加密算法,全称为高级加密标准(Advanced Encryption Standard).它是一种分组密码,以128比特为一个分组进行加密,其密钥长度可以是128比特.192比特或 ...

  2. ChatGPT提示词迭代

    openAI CEO 除了上一篇讲的:限定,排除,示例,生成,扩展了其他方法,包括:关键词.调教和其他使用方法 关键词 像应用搜索引擎一样,在描述的句子开头给一些关键词,比如: 问题 代码 解释 分析 ...

  3. vue3.0父级组件调用子组件方法

    vue3.0父级组件调用子组件方法 场景:在页面开发过程中,我经常涉及到不同组件之间的元素和方法的调用.就此记录在vue3.0项目,也是我开发的开源项目中的实现方式. 父级组件调用子级 1.应用场景 ...

  4. L2-030 冰岛人

    需要注意的地方: 我们只记录维京人的祖先,除了维京人的其他人不能记录它的祖先 #include <bits/stdc++.h> using namespace std; struct pe ...

  5. Codeforces Round #699 (Div. 2) A~C题解

    写在前边 链接:Codeforces Round #699 (Div. 2) 好自闭哈哈,\(B\)题暴力fst了,第二天改了一个字母就A了,第3题写了一个小时,然后又调了三四个小时,看不到样例,最终 ...

  6. C/C++ 常用加密与解密算法

    计算机安全和数据隐私是现代应用程序设计中至关重要的方面.为了确保数据的机密性和完整性,常常需要使用加密和解密算法.C++是一种广泛使用的编程语言,提供了许多加密和解密算法的实现.本文将介绍一些在C++ ...

  7. Unity学习笔记--数据持久化XML文件(2)

    IXmlSerializable接口: 使用该接口可以帮助处理不能被序列化和反序列化的特殊类得到处理, 使特殊类继承IXmlSerializable接口 ,实现其中的读写方法,检测到读写方法被重写之后 ...

  8. AntDesignBlazor示例——创建列表页

    本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考. 示例代码仓库:https://gitee.com/known/AntDesignDemo 1. 学习目标 使用 ...

  9. Quartz核心原理之架构及基本元素介绍

    1 什么是Quartz Quartz是一个作业调度框架,它可以与J2EE和J2SE应用相结合,也可以单独使用.它能够创建多个甚至数万个jobs这样复杂的程序,jobs可以做成标准的java组件或EJB ...

  10. idea常用快捷键使用

    idea常用快捷键使用:1.shift+u 大小写2.alt+shift+u 驼峰命名(插件:CamelCase)3.ctrl+alt 点击跳转实现类4.ctrl 点击跳转接口类5.Alt+F7 查看 ...