软件供应链安全视角下的安全开发研究和应用
在信息时代,软件已经成为社会运作的基本组成部分,其地位和重要性不断提高。特别是随着建设数字中国的提出,软件的地位进一步加强,软件产业迅速发展,并通过软件定义融入生活的方方面面。伴随而来的软件供应链安全问题也变得更加复杂和多样,软件供应链的安全已经成为一个全球性问题。我们从软件生产商的角度研究了软件供应链安全体系,并提出了通过安全开发实践来确保软件开发过程中软件供应链的安全的开发方法。通过为软件提供出生前的安全保障,我们的目标是尽可能消除软件安全缺陷,并确保向下游交付安全软件,以保护软件供应链免受攻击。
《“十四五”软件和信息技术服务业发展规划》指出,软件是新一代信息技术的灵魂,是数字经济发展的基础,是建设制造强国、网络强国、数字中国的关键支撑。随着现代软件开发流程的不断演变和新技术平台,特别是开源开发方法的出现,软件供应链变得越来越复杂,使越来越多的攻击区域暴露在攻击者面前,攻击事件频繁发生,对用户隐私、财产甚至国家安全构成重大威胁。
虽然软件已经成为支持社会正常运作的基本组成部分,但软件安全问题也被认为是根本性的。保障软件供应链安全已成为业界关注的焦点,也是公众对企业的需求。Gartner的分析表明,“到2025年,全球组织中45%的软件供应链将受到攻击,比2021年增加了三倍。
基于当前突出的软件供应链安全问题,本文围绕大型国有企事业单位场景,结合DevSecOps系统实践,探索了一套融入企业现有研发体系的安全开发方法,通过对行业软件供应链安全相关体系标准的研究和借鉴。这可以为国有大中型企事业单位的实际实施提供参考。这种安全开发方法通过在开发过程中持续关注和集成安全性,确保了软件诞生前的安全性。
一
背景
2021年,安全垂直媒体“安全牛”发布了第八版《中国网络安全行业全景图》,软件供应链安全成为网络安全行业重要的一级分类。根据数说安全发布的“2022中国网络安全十大创新方向”,软件供应链安全与开发安全入围。数说安全发布的《2022中国网络安全市场年报》显示,发展安全在2021年安全行业融资同比增速中排名第一。近年来,各国相继出台了围绕软件供应链安全的相关法律法规和框架体系,逐步规范和完善了行业软件供应链的良好生态系统。
国际上对软件供应链管理已经达成共识,特别是随着美国于2015年发布供应链风险管理标准,以及美国总统拜登于2021年签署第14017号美国供应链行政命令。随着网络安全形势的不断发展变化,我国网络安全领域的重要法规频频出台,领先的互联网公司和安全厂商也纷纷投入到软件供应链的安全建设中,不断构建满足各类企业需求的安全防护体系。
在中国,针对关键基础设施的软件提供商主要集中在大中型国有企业和机构。由于它们的历史演变和发展需求,这些企业都具有自身产品系统数量多、技术系统覆盖范围广、业务应用和环境复杂、安全要求高等特点。如何不断提高研发效率
2.
行业软件供应链安全体系
本文主要从美国国家标准与技术研究院(NIST)发布的安全软件开发框架(SSDF)、,互联网安全中心(CIS)发布的《软件供应链安全指南》、微软发布的《安全供应链消费框架》(S2C2F)和中国信息通信技术研究院发布的《供应链安全标准体系》。
2022年,NIST发布了SSDF1.1版本,旨在减少已发布软件中的漏洞数量,减少未发现或未解决的漏洞被利用的潜在影响,并从源头上解决漏洞问题,防止其再次发生。
2022年,CIS发布了《软件供应链安全指南》1.0版,主要完善了从源代码到交付的整个生命周期中的100多项管理和安全建议,包括源代码、构建管道、依赖项、工件和部署的主要环节。
微软发布的S2C2F主要关注开发者和集成商使用开源软件的安全性。
中国信息通信技术研究院的软件供应链安全标准体系建立了五个重要模块,包括安全成熟度可信评估模型(TSM)、软件供应链的安全保障要求、开源治理体系、软件物料清单建设总体框架和DevSecOps工具链,围绕软件引进、生产、应用三大环节,构成了整个软件供应链的安全管理标准。
目前,软件供应链安全系统在业界有自己的偏好。中国通信技术研究院的软件供应链安全体系比较全面,每个体系只能作为能力建设的参考。在企业的实际应用过程中,也需要结合企业自身的实际情况进行探索。
3.
软件供应链安全解决方案
3.1企业解决方案
软件供应链安全是解决软件开发和生产的整个过程所面临的安全问题,包括设计、编码、工具、设备、环境、供应商和最终交付。本文提出的软件供应链安全解决方案框架如图1所示。该解决方案主要侧重于在整个开发生命周期中集成安全,并围绕开源安全、开发过程安全和开发环境安全三个方面进行安全设计和实践。
图 1 软件供应链安全解决方案框架
3.2 安全开发流程
围绕解决方案,本文提出了开发全流程融入安全工具和质量门禁后的安全开发全流程,如图 2 所示。
图 2 安全开发全流程
安全开发的整个过程主要依赖于企业在实践中的原始研发流程,集成了关键环节的安全工具和阈值要求。通过安全集成,从安全需求分析、安全设计、安全编码、安全开发管道、安全测试、安全交付到整个过程的持续反馈,进行安全活动,并实现反馈循环。
在需求分析阶段,围绕公司业务的独特性质,除了考虑产品本身的一系列国家和行业标准外,还需要结合开放Web应用程序安全项目(OWASP)等组织发布的应用程序安全验证标准,对潜在的安全需求进行详细分析,确保安全需求分析在各个层面进行,从需求的源头确保业务应用程序的安全。
在安全设计阶段,依托公司战略规划,构建了一系列内置安全基因的基础软硬件平台。每个产品都可以在基础平台上快速开发,使产品团队能够专注于业务功能,并显著提高产品开发效率、质量和安全性。
在安全编码阶段,建立各种开发语言的安全编码标准,并使用统一、安全的开发环境、工具和资源,通过自动化的流程和工具来控制阈值。例如,在集成开发环境(IDE)中配置安全编码规范规则,通过在提交代码之前进行自动检查和阻塞来控制源代码的质量和安全性。
在安全开发流水线阶段,一方面,建立基于DevSecOps黄金流水线的全流程安全自动化检测工具;另一方面,基于企业复杂的产品系统,建立了多样化的标准编译环境,可以通过流水线配置自动分配,增强产品编译环境的安全控制能力。
在安全测试阶段,每个产品版本都必须经过专门的安全测试,包括但不限于主机安全、通信安全、客户端安全、数据安全、网络安全、业务安全合规性、云安全、评估机构要求以及其他特定于业务的安全测试。通过全面的测试,可以进一步保证产品的安全性。
在安全交付阶段,一方面,对于私网用户,在执行用户环境部署和上线之前,由工程售后人员验证部署的交付物的完整性,以确保交付物的可靠和安全来源;另一方面,在公司内部网上建立了产品验证测试场,将传输安全、边界安全、安全管理、身份安全和安全应用相关的产品应用于公司的生产环境。产品定型归档后,通过自动化流水线自动发布到公司环境中,进行快速试用和问题检测,进一步提高了产品的安全性和可靠性。
在产品交付后的反馈阶段,建立多个产品反馈渠道,允许用户和公司营销人员、工程实施人员、售后人员通过移动产品反馈门户快速反馈产品问题,并连接移动和研发管理工具平台的自动转移和反馈处理,实现产品反馈问题的快速闭环。
在整个安全开发过程中严格执行安全和质量阈值检查点。例如,在需求分析和安全设计阶段,必须进行组织级需求和设计评审。评审人员应包括安全技术专家和业务安全专家,共同检查产品安全要求和设计的合理性。在开发阶段,代码必须通过IDE质量访问控制和手动代码审查才能提交。在安全开发管道中,通过各种访问控制点控制产品安全和质量,控制风险软件发布,在自动归档过程中再次对产品包进行病毒扫描,通过关键的安全访问控制不断提高产品交付的安全性和可靠性。
图 3 开源组件全生命周期管理流程
同时,建立基于管理标准的支持工具平台,支持标准的实施。为了减少人力投资和运营、维护和标准化控制方面的潜在问题,建议企业逐步将开源组件扫描、审查和管理工具集成到DevSecOps工具平台中。通过CI/CD管道功能连接各种工具系统,有必要将管理要求和相关的质量访问控制工具和自动化持续实施到日常开发过程中。
4.2.1严格控制开源组件的引入
企业应逐步控制和聚合开源组件的引入,并通过开发框架和平台的标准化,形成自己的开源组件白名单。结合开发框架和项目脚手架工程,应在基础开发平台中预先设置基础框架白名单组件,以便于类似产品直接重用框架和白名单组件。同时,基于尽量减少引入的原则,建立严格的非白名单组件引入审查机制。一方面,通过方便的自动化工具,可以及时避免因协议不合规而导致的安全漏洞和知识产权问题;另一方面,基于引入技术和业务评估组件的必要性,通过严格的引入审查来评估漏洞的可利用性、漏洞影响范围和漏洞组件的可替代性。对于不可替换的问题组件,在结合产品业务分析,分析漏洞利用可以避免的措施和触发条件后,需要进行严格审查。
在管理方面,确保导入的开源组件由专业团队从可信来源下载,并基于导入的组件列表导入到企业统一的安全合规组件库中,从而形成组织级的安全合规范组件资产列表。
4.2.2在产品建设和归档过程中严格控制零部件来源的安全性和合规性
在产品集成和归档过程中不断加强开源组件的安全性和法规遵从性。企业需要将软件组成分析(SCA)检测工具和组件源代码检查工具添加到现有的DevSecOps管道中。一方面,他们需要持续评估产品参考组件的脆弱性风险;另一方面,通过检查组件的来源,确保所有交付到外部市场的第三方组件都来源于组织级的安全和合规组件资产库,进一步确保了交付给外部市场的开源组件的安全性和合规性。
4.2.3通过SBOM提高软件透明度
在软件组件方面,各企业应根据企业的实际情况,逐步定义并形成适合自己企业标准的软件物料清单(SBOM),并通过全过程的开发,逐步实现SBOM在整个软件生命周期中的生成、更新和归档标识,通过实施SBOM的程序化和工具化管理,我们可以可持续地支持0day漏洞组件的快速本地化和应急响应。
SBOM管理在行业中有一些标准和工具,在实践中,它需要持续依赖CI/CD管道。通过在管道中集成合适的工具,可以自动、连续地生成和更新软件SBOM列表。例如,在开发阶段,通过管道自动化生成SBOM列表,并识别新引入的组件和存在的问题;在提交的测试管道中自动生成SBOM,并使用安全合规组件库验证源;在归档过程中自动生成SBOM,并将其包含在配置库中。同时,将SBOM导入组织级组件管理系统,便于在未来发现0天漏洞时,基于组件管理系统进行快速的影响面分析,提高应急响应的执行效率。
除了逐步建立上述开源组件的全生命周期管理系统外,每个企业还需要专注于推动发明
五
特色做法
在实施安全开发的整个过程中,更加强调过程控制的工具自动化能力、更严格的入站控制和更精细的出口控制。
5.1开发过程各阶段控制措施工具化
安全控制在开发过程各个阶段的工具化主要体现在以下三个方面。
(1) 开发环境是模板化的、精简的和工具自助服务的。通过将企业对各种复杂产品类型所依赖的开发环境组织成模板,并依靠业务流程系统实现按需应用,实现了自助生成和使用,确保了各种环境的安全性和可靠性。
(2) 我们开发了一系列工具来实现开源和商用组件的工具化和自动化控制,并基于SBOM实现了组件从引入、使用、应急响应、归档到离线关闭的全流程管理。
(3) 在复杂的产品开发系统下,各种类型的产品从源代码提交开始触发自动化的管道建设和部署,并集成了一个包括病毒、静态代码扫描、组件漏洞扫描、组件源代码合规、动态应用程序扫描、容器安全扫描等环节的安全工具链。通过多环节、多工具的安全扫描和审查自动化,及早发现并解决安全问题。
5.2加强对开源和第三方软件和组件仓储的控制
严格控制开发过程中使用的开源和第三方软件和组件的引入。一方面,通过组织形成各种标准开发工具、开发组件、部署组件白名单,采用工具化、手工评审等多种方式,确保白名单软件和组件在开发过程中的使用;另一方面,对于引入的软件或组件,遵循尽量减少引入、安全合规性和可控性以及业务必要性的原则,在引入之前必须进行严格的审查,以确保各种产品开发过程工具和组件的安全性、可信度和可控性。
5.3实施精细化出口管制
我们开发并实现了一种用于产品包检查的工具,以应对开发过程中引入的各种可能的开源组件和代码,并将其集成到归档管道中。通过对产品包进行逐层分解,对每个组件进行特征码提取和识别,从安全合规仓库严格跟踪产品包中引入的开源和第三方组件的来源,来源检查点确保了产品组件交付到用户环境的安全性和可靠性。
六
实际效果
在上述实践的基础上,为企业建立了一套实用、可实施的安全开发流程和软件供应链安全体系。通过安全开发管道,对安全阈值进行强有力的控制,将安全问题推进到开发阶段进行解决,大大降低了交付给用户后发生安全事件的频率,在一定程度上提高了产品质量和安全性。目前,该系统已通过中国信息通信研究院TSM可信研发作战安全能力成熟度模型的增强级评估。
七
结论
软件供应链安全涉及软件开发的整个生命周期,开发安全是其核心。在软件开发过程中,除了确保环境安全,引入开源组件用于使用安全,并通过工具链将安全问题的发现推进到开发阶段外,企业还应围绕业务加强整个开发过程的安全集成,通过创新技术和方法增强安全能力,真正实现软件内生安全。
随着GB/T 39204-2022《信息安全技术——关键信息基础设施安全保护要求》等标准的发布和实施,对软件制造商的产品安全要求将更加严格。作为软件供应链安全的上游厂商,应积极加强软件供应链相关标准体系的研究和安全开发标准体系的建设,确保向下游交付安全性良好的软件,并采取行动
天河软件作为安全可信的工业软件及云应用提供商,深耕工业软件已近三十年,自主研发的工业软件产品和云服务覆盖CAD、CAPP、PLM、数字孪生工厂领域,拥有三大系列百余项自主知识产权产品。经过多年的发展,天河软件涵盖从设计到工艺,从工艺到研发管理,从研发管理到生产制造,再到质量管理的全系列数字化精益生产解决方案,已在航天航空、兵器军工、高铁机车、船舶制造、电站能源设备等高端装备制造领域拥有大量的标杆用户。
本文来源于互联网,天河软件本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供,并已尽力标明作者与出处,如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。联系方式:thsoft@thsoft.com.cn