威尼斯144777欢迎您(中国)有限公司·百度百科


1. 前言

近期,软件供应链和开源治理成为行业关注的热点,分析其原因,主要有三个方面的因素。一是随着微服务、容器技术等云原生开发技术的应用,带来软件研发模式的转变,开源技术、第三方组件的使用成为软件开发的事实上的标准;第二是最近发生的软件供应链的攻击事件暴露出在SDL和网络防御中的薄弱环节,软件供应链安全风险不断加剧;第三是相关政策方面,开源技术首次写入《“十四五”规划和二零三五年愿景目标纲要》中, 以及最近中国人民银行等五部委联合发布的【2021146号文《关于规范金融业开源技术应用与发展的意见》,对开源技术的使用提出了应遵循的原则、管理要求、开源生态发展等内容。

软件供应链和开源治理是一个复杂的体系,在企业层面,涉及软件开发流程安全、网络攻击防范、供应商全流程管理、应急响应等,同时由涵盖了策略、制度流程、人、工具等内外部利益相关者的协调机制。

本文将从软件供应链的范围、SDLC中的组件安全、第三方管理实践、组件安全验证标准、安全建议等方面的内容进行讨论。

 

 

2. 软件供应链的范围

软件供应链安全是指为软件生产的整个过程中软件设计与开发的各个阶段来自编码过程、编译构建、工具、设备、供应商以及最终交付渠道所共同面临的安全问题。

对于软件行业以外的大部分企业组织来说,软件供应链的关注范围重点在软件安全开发、运营过程中的安全风险,包括来自开源和商业的第三方组件开发工具和构建分发工具、应用软件基础设施运营等要素的威胁,其中应用软件基础设施主要指开源或商业的通用应用软件、操作系统、中间件、云平台软件、IT管理工具软件,例如开源的Apache Tomcat、Nginx、CtenOS、OpenStack等,应用软件运行基础设施依靠传统的安全基线、漏洞与补丁管理、边界防御来提供保证安全保障。

 

 

3. SDLC中的组件安全

如图所示,第三方组件生命周期和软件开发生命周期 (SDLC) 各阶段具有相关性,将第三方组件管理的维护列表、安全评估、减缓风险、持续监控融入SDLC的需求、设计、开发、运营阶段中。           

 

 

                                           1:第三方组件管理与SDLC各阶段的相关性

4. 第三方组件管理实践

如图1所示,整个第三方组件的生命周期管理流程包括四个高级步骤:维护、评估、缓解和监控,在每个步骤执行关键的组件管理实践活动。   

4.1 维护组件列表

建立和维护开发中使用的第三方组件的更新清单,通常称为“物料清单SBOM

采用结构化、机器可读的SBOM格式(SPDX 和 SWID CycloneDX

每个组件具有唯一的标识符,基于整个公司范围内部

组件列表包含了组件的唯一标识符、组件名称、版本、类型、用途、来源、生态系统、风险信息、许可信息、校验值等

维护集中的“受批准”的第三方组件、安全组件列表

4.2 安全评估

评估组件的已知漏洞

评估供应商、开源社区对组件漏洞的管理实践和做法

评估组件供应商的实力、持续性服务能力

4.3 减缓风险

补丁/更新

替换组件

承担技术债务,维护组件代码

接受风险

为社区贡献

4.4 持续监控

监控组件的变化

响应漏洞

依赖传递风险

监视供应商、社区重大变化

4.5 工具使用

  通过技术工具和人工表格相结合的方式对第三方组件进行识别、成分分析、漏洞评估管理,表1列出了目前流行的开源组件依赖跟踪管理工具:

 


5. 组件验证标准(OWASP SCVS

OWASP SCVS提供了一组控件, 该系列控件由软件架构师、开发人员、安全人员、法律和合规人员使用,用它来定义、构建和验证其软件供应链的完整性

SCVS涵盖6个控制方面,每个控制方面包含多个控件,这些控件系列用于软件组件验证以及软件开发过程中相关流程位置的安全验证,6个控制方面如下:

• V1: 清单

• V2: 软件物料清单 (SBOM)

• V3: 构建环境

• V4: 包管理

• V5: 组件分析

• V6: 谱系和来源

软件组件验证级别:

软件组件验证标准定义了三个验证级别, 更高级别包括额外的控制.

• Level 1 级适用于基本的较低保证需要的组件分析.

• Level 2 级适用于需要额外分析或尽职调查的中等敏感度软件.

• Level 3 级适用于由于数据或软件使用的敏感性而产生的高保证要求

OWASP SCVS 软件组件验证的PDF中文版文件,文末提供下载方式,此处不再列出其他详细内容

6. 安全建议

   威尼斯144777欢迎您结合多年在金融、互联网、企业的SDL、合规咨询、网络安全咨询经验,给出软件供应链和第三方组件实施的几点安全建议: 

ü 在软件安全开发流程中融入第三方组件的安全管理、漏洞评估、安全验证;

ü 引入一套DevSecOps的安全实践框架,如NISTSSDF 软件安全开发框架,SSDF详细内容可参考公众号之前的一篇文章《构建良好安全软件的SSDF关键任务实施框架》;

ü 建立和维护一套开源软件、软件供应链的政策、组织架构、职责、制度流程、工具建设和人员培训机制建设;

ü 向软件供应商传递安全开发、组件安全的要求,对供应商进行分类、评估和评价、监控;

ü 在现有网络基础设施中,提升IT基础设施中软件的安全基线,确保边界防御、流量分析、APT攻击等防范措施的有效性;

ü 对于开源软件、第三方组件在软件开发需求分析、安全设计阶段注重合规审核,例如SDK组件的的隐私合规评估,以及数据安全、版权许可评估等。

7. 参考文献

1〕《信息安全技术 ICT供应链风险管理指南》

2〕《软件供应链安全白皮书(2021)https://www.xmirror.cn/

3〕《Managing Security Risks Inherent in the Use of Third-party Components

4〕《OWASP_SCVS-1.0-en

5CycloneDX规范 OWASP CycloneDX Software Bill of Materials (SBOM) Standard

 

关注公众号,恢复“SCVS”,下载由威尼斯144777欢迎您翻译的《OWASP SCVS 软件组件验证标准》的中文版PDF文档。


XML 地图