专题 | 加强技术创新,提升软件供应链的安全性

360影视 国产动漫 2025-05-13 09:26 1

摘要:软件供应链涉及软件开发、交付和运维过程中的各个环节和参与方,包括外包软件开发公司、第三方组件提供商、第三方组件和开源组件。随着开源技术的广泛应用,以及向研发运维一体化(DevOps)方向演进,软件更新迭代的速度提升,软件供应链更易引入风险。这需要证券公司建立一

软件供应链涉及软件开发、交付和运维过程中的各个环节和参与方,包括外包软件开发公司、第三方组件提供商、第三方组件和开源组件。随着开源技术的广泛应用,以及向研发运维一体化(DevOps)方向演进,软件更新迭代的速度提升,软件供应链更易引入风险。这需要证券公司建立一套包括管理、检测和响应的软件供应链安全体系,在引入商业软件、开源组件时,在代码来源、代码质量、知识产权合规、软件物料清单方面做到安全可控;在软件开发的全生命周期,进行自动化和持续的安全检测。

中信建投证券股份有限公司信息技术部总监 张建军

软件供应链的安全风险可能导致公司的数据泄露、业务中断等严重后果,给公司带来巨大的风险和损失,主要有以下几个方面。一是断供风险。软件开发会涉及众多供应商,包括第三方软件开发公司、第三方组件提供商、开源社区等。供应商“断供”会直接影响公司的业务连续性和稳定性。二是第三方组件漏洞风险。公司使用的软件中使用了大量第三方组件,如开源库、框架等。第三方组件可能存在已知或未知的安全漏洞,需要及时对漏洞进行检测和修复。三是知识产权风险。知识产权风险涉及对软件的版权、专利和商标等知识产权的保护和合规,主要包括软件侵权风险、开源软件合规风险、代码的商业秘密泄露风险、专利侵权风险。

软件供应链安全治理体系建设包括制度、组织架构、流程、平台、工具等方面。一是完善公司软件供应链安全管理制度。根据《网络安全法》《关键信息基础设施安全保护条例》《金融业开源软件使用指南》等要求,从开源软件和商业软件使用角度出发,标准化流程步骤,规范软件维护方法,减少供应链中引入的信息安全风险。二是健全组织架构。组织架构要包括决策团队和管理团队。决策团队负责决策和发布开源软件应用管理规章制度、管理流程和管理策略。管理团队负责对各类开源软件开展技术评估与运行维护工作,包括技术人员、安全人员、法务合规人员。三是规范组件的使用流程。建立三方开源软件引入流程,对引入的开源软件进行全面记录;在引入评估时应充分考虑各类开源软件的差异性。明确开源软件使用规则,建立开源软件应用台账,保证开源软件使用有迹可循。四是统一的安全管理平台。ASOC(安全开发管理平台)是对整个软件供应链体系的安全管理和评估分析能力的落地。平台可按照软件供应链上游、生产链、下游相关风险进行统一管理,统一管理软件资产风险情况,并及时同步SBOM(软件物料清单)最新信息和供应链安全事件整改情况。五是快速有效的安全工具。有效的工具可以快速、自动检测和跟踪软件供应链中的风险。比较关键的安全工具有软件成分分析、漏洞检测工具、自动化编排工具等。

在软件生命周期融入安全性已成为信息安全行业的共识。软件开发生命周期主要包括引入、需求与设计、编码、构建、测试和发布六个阶段。软件供应链安全活动融入以上阶段中,通过自动化和持续集成实践,及时发现和修复安全漏洞。

1. 引入环节。对于商采的项目和第三方组件,为防止交付的应用内存在有风险的开源组件,需在软件交付前做源代码安全审查或二进制安全审查。公司提供统一的SCA(软件成分分析)工具进行组件的安全审查。

对于自研项目,研发人员获取开源组件时须使用公司统一的私有可信源。私有可信源提供研发测试及运维过程中涉及的不同类型的制品,包括二进制文件、镜像、Maven、PyPI、NPM、RPM等多种类型的文件和组件。

SCA工具对私有可信源上的制品进行扫描,检测其中的安全漏洞以及开源的协议证书信息,可对制品的正向依赖及反向依赖进行扫描。SCA工具同时接入DevOps流程,从引入源头、开发过程、运行监控、管理闭环等多维度,对开源组件漏洞风险、许可证风险以及安全态势进行分析和管理。

2. 需求阶段。在软件开发过程中,如何在早期阶段识别潜在的安全威胁,成为业界关注的焦点。需求阶段作为软件开发的关键阶段,对后续开发具有重大影响。为了促使安全开发能力在整个软件开发生命周期左置前移,提高应用层的威胁发现能力,公司建立了ASOC(安全开发管理平台)作为公司级的安全开发管理工具。ASOC不仅可以作为公司的轻量级威胁建模工具,还可以管理DevSecOps中的所有安全工具,解决当下软件应用漏洞管理中普遍存在的漏洞发现能力孤立、漏洞管理难闭环、开发流程难管控等核心痛点问题。

3. 编码阶段。为使开发人员能够编写符合安全要求的代码,以降低代码安全漏洞,减少代码被利用的可能性,SAST源代码漏洞检测工具,可以从代码安全、代码质量、代码性能、代码规范等多个方面对软件源代码进行统一的检测和分析。为了方便在DevOps流水线中构建自动化的源代码漏洞检测任务,SAST与公司的DevOps流水线进行了集成,能够灵活设定阻断流水线任务的漏洞限定条件。

4. 构建阶段。在构建阶段,需要持续构建SBOM(软件物料清单),以分析软件中包含的第三方代码,识别已知风险。该阶段,通过SCA工具检测引入的组件已知风险,并同步梳理SBOM或组件清单。容器安全工具对新构建的镜像进行扫描,可以快速发现镜像中存在的漏洞、病毒木马、WebShell等镜像风险,并针对每个镜像提供修复建议,实现镜像构建的安全控制。

5. 测试阶段。该阶段,主要使用IAST(交互式安全测试工具)和SCA工具。IAST是通过动态污点追踪的运行时应用插桩技术,在应用程序运行过程中对污点数据进行跟踪监控,确定污点数据能否从污点源传播到污点汇聚点,从而发现应用潜在的安全漏洞;运行时SCA工具通过运行时监控技术,检测应用运行时加载的第三方组件。通过IAST和SCA的配合使用,可以更有效地管理和降低软件的安全风险。

6. 发布阶段。该阶段,为进一步降低系统的安全风险,公司安排专业的安全测试人员对应用系统进行渗透测试,进而全面评估系统的安全防护能力。渗透测试不仅关注单点的漏洞,更注重从整体上检验系统的防御机制是否健全,包括防火墙策略、访问控制、数据加密等方面。通过渗透测试,公司能够准确掌握系统的风险等级,明确改进方向,减少带病上线的风险。

1. 建立统一的物料清单。完成开源软件存量、增量检测,梳理并形成公司的SBOM,可快速清点软件内引入的开源组件资产,便于在以下环节进行管控。

安全评估:需求设计、安全评审阶段,对选用的第三方组件进行风险评估。

应用安全测试:在应用上线、发布过程中,对应用系统进行应用安全测试,发现存在的应用漏洞威胁。

漏洞修复&跟踪:将发现的风险接入供应链安全管理平台,修复缺陷并更新SBOM中的漏洞风险。

产品制品发布:发布产品制品时,对软件和SBOM安全测试,产生安全检测报告的同时生成SBOM。

2. 软件供应链漏洞情报处理机制。建立了有效的供应链安全情报采集、分发和响应机制。安全团队收集和处理多家安全厂商的威胁情报,将情报加工形成部门级通知,下发到各业务组系统管理员。

针对重点关注的漏洞,安全团队通过开发安全管理平台进行登记和跟踪,由各业务系统负责人进行修复。修复完成后,安全团队使用漏洞扫描系统对关注的漏洞进行扫描,验证各业务系统的修复情况。

3. 快速响应的安全团队。安全团队针对软件供应链中的重大安全漏洞等突发情况,制定应急处置预案,处置流程如下。

紧急响应:当出现紧急重大安全漏洞时,安全团队立即展开排查工作。

漏洞分析:安全团队对漏洞进行详细的分析,以确定漏洞的严重程度、影响范围和利用方式。

漏洞排查:安全团队进行漏洞排查,以确定漏洞的位置和原因。

漏洞修复:开发团队立即开始修复工作,提供修复方案或推动相关人员进行修复,以尽快解决漏洞。

加固措施:在漏洞修复完成后,安全团队在安全防护工具配置加固措施,防止类似漏洞再次出现。

公司在供应链安全领域的体系建设与实践已取得一定进展,但仍面临诸多未知的风险和挑战。未来,需要不断完善制度和流程,加强技术创新与应用,持续提升软件供应链的安全性。

来源:金融电子化

相关推荐