软件公司源代码管理(软件产品源代码)
作者简介
中国工商银行软件开发中心安全团队
一、敏态研发下的软件供应链安全挑战
现代软件研发更加侧重软件交付的速度和可靠性,传统的瀑布式软件研发模式存在维护难、扩展性差和无法满足快速迭代的版本要求等问题,敏态研发模式则利用迭代研发,致力于高效研发出可用的软件,在不断的迭代优化中升级和完善软件,最终交付客户满意的产品。
软件产品和服务关系生产和生活的各个方面,软件供应链安全直接影响经济和社会的稳定运行,根据 ReversingLabs 发布的《The State of Software Supply Chain Securtiy》,2020-2022年供应链攻击呈指数及增长,恶意篡改、后门植入、和供应链劫持等软件供应链攻击频发,供应链安全风险加剧。
敏态研发模式下软件供应链面临新的安全挑战:
软件供应链资产依赖关系复杂、透明度低。在快速且频繁的软件版本更新的情况下,应用程序重用代码、软件包和第三方供应商销售的商业代码包的情况越来越普遍,并且开源组件占软件成分的绝大部分。
组件漏洞、组件后门和恶意篡改等供应链风险突出。软件产品从上游继承的软件漏洞及开源组件漏洞无法避免,同时,攻击者通过污染开发工具、劫持软件交付链路等方式控制上游软件供应链,在组件中植入恶意可执行代码快速传播至中下游用户。
外部法律法规和监管要求不断趋严。《网络安全法》、《关于规范金融业开源技术应用与发展的意见》、《网络安全等级保护基本要求》(GB/T 22239-2019)、《软件供应链安全要求(征求意见稿)》等法律法规和标准对企业供应链安全管控提出了更高的要求。
软件供应链资产依赖关系复杂、透明度低。在快速且频繁的软件版本更新的情况下,应用程序重用代码、软件包和第三方供应商销售的商业代码包的情况越来越普遍,并且开源组件占软件成分的绝大部分。
展开全文
组件漏洞、组件后门和恶意篡改等供应链风险突出。软件产品从上游继承的软件漏洞及开源组件漏洞无法避免,同时,攻击者通过污染开发工具、劫持软件交付链路等方式控制上游软件供应链,在组件中植入恶意可执行代码快速传播至中下游用户。
外部法律法规和监管要求不断趋严。《网络安全法》、《关于规范金融业开源技术应用与发展的意见》、《网络安全等级保护基本要求》(GB/T 22239-2019)、《软件供应链安全要求(征求意见稿)》等法律法规和标准对企业供应链安全管控提出了更高的要求。
在软件供应链安全管理上,企业应依据国家、行业等各类安全合规性要求,结合企业内部管理特点,建立企业内部标准要求,结合实际场景构建企业软件供应链安全治理体系,从统一制度、统一规划、统一工具和统一机制等方面持续提升软件供应链安全管理能力。
1、完善软件供应链安全制度
制定软件供应链安全管理制度,明确供应链安全管理的牵头部门和各方职责,与企业内部现有安全管理流程相整合,确保风险可控制、威胁可处置、治理可衡量。
从软件引入、使用和退出的全流程制定相应的要求,并健全供应链软件管理、外包管理、采购管理和研发管理等标准规范,从管理和实施层面细化和完善企业内部要求,为有序开展供应链安全管理提供指导。
2、建立资产动态管理视图
构建供应链软件管理工具链,实现供应链产品的自动化管理。建设企业级软件产品管理系统,将软件成分分析工具对接研发流水线实现开源组件自动引入与使用登记,通过软件黑白名单机制限制使用未经企业许可的软件和高风险漏洞版本的软件。
同时,借助软件成分分析工具生成 SPDX、CycloneDX 等标准化格式的软件物料清单,提供组成应用的组件的清晰视图,关注组件的漏洞情况和风险程度,快速准确追踪漏洞软件的使用位置和其他依赖项,帮助企业进行资产管理、漏洞管理和应急响应,降低企业软件供应链安全风险。
3、开展软件全生命周期风险识别
通过合同约束、安全审核、监控处置、风险治理等安全管理手段,实现对供应链产品全生命周期的风险控制。
在合同约束方面,通过与供应商签订安全协议、合同等,要求供应商提供产品的物料清单和安全测评报告,明确供应链产品的安全性要求和供应商安全责任。
在安全审核方面,制定安全测评方案和审核指引,通过代码安全检测、已知漏洞检测、防病毒查杀等手段开展供应链产品引入前的安全审核、日常风险评估和治理工作,确保引入源头安全可靠。
在持续监测方面,根据威胁情报共享机制,主动监测外界披露的软件供应链后门和恶意镜像仓库情报,做好威胁情报预警。
在风险治理方面,根据威胁情报,制定基础平台和互联网应用优先治理的差异化策略,分批次有序开展供应链漏洞风险治理,并通过日常红蓝对抗、渗透测试和安全众测等手段,对已部署供应链产品及升级程序、组件和代码进行测评。
在合同约束方面,通过与供应商签订安全协议、合同等,要求供应商提供产品的物料清单和安全测评报告,明确供应链产品的安全性要求和供应商安全责任。
在安全审核方面,制定安全测评方案和审核指引,通过代码安全检测、已知漏洞检测、防病毒查杀等手段开展供应链产品引入前的安全审核、日常风险评估和治理工作,确保引入源头安全可靠。
在持续监测方面,根据威胁情报共享机制,主动监测外界披露的软件供应链后门和恶意镜像仓库情报,做好威胁情报预警。
在风险治理方面,根据威胁情报,制定基础平台和互联网应用优先治理的差异化策略,分批次有序开展供应链漏洞风险治理,并通过日常红蓝对抗、渗透测试和安全众测等手段,对已部署供应链产品及升级程序、组件和代码进行测评。
加强编码测试环节、构建环节和运营环节的管理安全评估,保障敏态研发模式各环节下,软件供应链产品的使用规范和组织管理。
在编码测试阶段,将交互式应用安全测试等工具对接代码仓库和镜像仓库,结合人工渗透提升安全测试的覆盖度和深度,准确识别安全缺陷及漏洞,监测应用程序中依赖的第三方软件的版本信息和公开漏洞。
在构建交付阶段,将源代码安全扫描工具等对接研发构建流水线,扫描研发过程中使用的软件类型和组件版本,生成构建包和容器镜像中应用所依赖的第三方组件风险,暴露软件制品内潜在的安全漏洞。
在运营阶段,结合主机安全扫描等能力实现漏洞与异常行为的及时监测和快速处置,通过运行时应用自我保护技术将防护能力与应用程序融为一体,精准识别应用实际运行中动态加载的第三方组件及依赖,挖掘组件中潜藏的各类安全漏洞及开源协议风险,实时检测和阻断供应链攻击。
在编码测试阶段,将交互式应用安全测试等工具对接代码仓库和镜像仓库,结合人工渗透提升安全测试的覆盖度和深度,准确识别安全缺陷及漏洞,监测应用程序中依赖的第三方软件的版本信息和公开漏洞。
在构建交付阶段,将源代码安全扫描工具等对接研发构建流水线,扫描研发过程中使用的软件类型和组件版本,生成构建包和容器镜像中应用所依赖的第三方组件风险,暴露软件制品内潜在的安全漏洞。
在运营阶段,结合主机安全扫描等能力实现漏洞与异常行为的及时监测和快速处置,通过运行时应用自我保护技术将防护能力与应用程序融为一体,精准识别应用实际运行中动态加载的第三方组件及依赖,挖掘组件中潜藏的各类安全漏洞及开源协议风险,实时检测和阻断供应链攻击。
在当前快速交付、灵活部署的敏态研发模式下,为应对混源开发、代码复用和版本多变带来的软件供应链安全风险,企业可通过建设内部统一的制度,进一步明确软件的引入和使用要求;采用资产自动化识别工具链全面梳理识别应用包含的自研组件、开源软件、外购软件等全量软件资产,形成动态更新的资产管理机制; 利用威胁情报和红蓝测试主动发现供应链漏洞,优先处置高危漏洞及对外暴露应用系统,加强软件供应链安全风险处置能力;结合 DevSecOps 全流程,将软件供应链安全和敏态研发过程相结合,在研发运营的各个环节识别供应链安全风险等方式开展供应链风险管控,在快速迭代的软件版本中最大程度降低企业内部供应链安全风险。
1000+研发团队的 BizDevOps 体系及平台是如何建设的?407GOPS2023深圳站,中国工商银行软件开发中心 DevOps 团队负责人带你亲自了解~
<< 扫码更精彩 >>
频获表彰!中国工商银行“数字员工”在运维领域中的实践,出圈啦!
中国工商银行建设代码扫描中心,助力研发效能提升
拥抱变化 · 积极践行!中国工商银行 DevOps 转型探索与实践
“高效运维”公众号诚邀广大技术人员投稿
投稿邮箱:jiachen@greatops.net,或添加联系人微信:greatops1118。