什么是软件供应链安全?

2022-12-05  本文已影响0人  花江呀

一、什么是软件供应链?

“供应链”这一术语通常用于传统制造业,是指供应商品所需要的一连串过程,包含从最初的概念到最终交付产品的每一个环节,这些环节的参与者有原材料供应商、制造商、分销商和零售商。

而软件供应链与供应链的流程类似:一个软件是由多个组件组成,涉及到软件供应商、软件开发人员、团队和其他公司的内部与外部系统。软件供应链指在软件开发中所涉及到的组件、开发流程、投入生产和最终软件产品分发的过程。

二、软件供应链现状

目前软件供应链由于开源和云原生时代的到来越来越趋于复杂化和多样化,软件供应链安全风险不断加剧。软件供应链已是网络空间攻防对抗的焦点,对关键基础设施和重要信息系统安全有着直接的影响。

目前国内软件供应链发展迅速,开源占比逐年增多,但问题也随之而来,其中包括开源软件使用不规范、软件交付渠道不可控等。引入开源软件虽然为敏捷开发带来极大便利,如众多的代码克隆可以极大提升软件开发速度;但是从另一方面来看,开源项目引用过程中缺乏对漏洞、恶意代码的检测、修复,代码复用产生的漏洞成为软件供应链的重大安全威胁。

针对软件供应链薄弱环节的网络攻击呈现指数级增加,全球针对软件供应链的安全事件频发、影响巨大。2021年12月,Log4j2的漏洞爆发引发了一场供应链安全危机。这是一起典型的由开源软件所导致的供应链安全事件,其影响范围极为广泛,受 Log4Shell 漏洞波及的企业组织数量众多,据网络安全解决方案供应商 Check Point 大致估算,全球超过 40% 的企业网络都遭遇了漏洞利用攻击。

Log4j2事件并不是一个孤立事件,这只是冰山一角,下表是近年来发生的供应链安全事件:

近年来的供应链安全事件

三、解决方案分析

软件供应链安全可以定义为软件生产的整个过程中如编码过程、工具、设备、供应商以及最终交付渠道等所共同面临的安全问题。软件供应链过程中主要有三个风险面:供应链引入环节、软件生产环节、软件应用环节。这也是软件供应链安全治理中真正需要关注的部分。

软件供应链过程中的三个风险面

四、主流核心支撑工具介绍

1、核心支撑工具①——DAST(动态分析测试)

DAST作为目前应用最广泛、使用最简单的一种Web应用安全测试方法,是一种黑盒测试技术。DAST从外到内查看应用,检查其运行状态,并观察其对工具模拟攻击的响应。观察应用对这些模拟的响应有助于确定应用是否易受攻击,且是否易受真正的恶意攻击。DAST代表性工具有AMVS、AppScan。

2、核心支撑工具②——SAST(静态分析测试)

SAST是一种白盒测试技术,是一种在开发阶段对源代码进行安全测试并发现安全漏洞的测试方案。SAST通过在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。

3、核心支撑工具③——IAST(交互式应用安全测试)

IAST(Interactive Application Security Testing)属于灰盒测试技术,在整个开发生命周期中,IAST能够不间断地从内部监控应用中的漏洞,通过在开发和测试过程中使用工具,实时提供报警。

4、核心支撑工具④——SCA(软件成分分析)

SCA(Software Composition Analysis)是一种对二进制软件的组成部分进行识别、分析和追踪的技术。SCA通过分析开发人员使用的各种源码、模块、框架和库,来识别和清点开源软件(OSS)的组件及其构成和依赖关系,也可识别已知的安全漏洞或者潜在的许可证授权问题。SCA将这些风险控制在应用系统上线前,显著降低了开源软件带来的风险,同时也适用于应用系统运行中,能结合漏洞库对应用系统及时做出诊断。

SCA基本原理:SCA通过对比软件汇编代码指令、代码结构、控制流图、函数调用关系中的特征值,分析出二进制代码成分以及代码之间的相似性。SCA分析的对象是第三方基础组件/可执行程序/源代码等类型的以二进制形式存储的文件,包括但不限于源代码片段或 Package、基础 lib、tar/tgz 压缩文件、可执行的二进制组件/程序、广义的软件构建过程、镜像/镜像层等。

SBOM清单图(展示部分SPDX标准字段)

五、结语

“软件正在吞噬世界,而开源在吞噬软件”。如今,软件供应链攻击已经成为突破业务防线的新路径之一,企业的软件供应链安全专项治理迫在眉睫。

来源:【鹏信科技】微信公众号

上一篇下一篇

猜你喜欢

热点阅读