在安全和高效的生产需求下,DevSecOps 应运而生,将安全意识嵌入研发流程,有效提升安全检测自动化能力,让构建、测试、发布软件更加地快捷可靠,适用于企业打造安全稳定的技术支撑体系。
DevSecOps 在众多团队、机构的探索研究下,逐步从理论建设走向生产落地,凭借“上线周期更短、频率更快”的优势,其研发模式在金融行业也已经被广泛接受,为工商银行智慧银行信息系统(ECOS)转型工程构建起强有力的信息安全保障。
截至今天,以手机银行为代表的团队,已经能够把安全活动及安全工具融入研发过程,并在实际的漏洞控制、早期风险缓解及持续合规领域,取得了一定成绩。
打造 DevSecOps 安全技术支撑体系
在安全体系建设工作中,工商银行软件开发中心提出了“一个提升,二个降低”为核心指标的软件安全开发体系建设目标。
基于以上整体目标,结合对工商银行现有安全开发工作中的流程、安全活动资源消耗,人才依赖度及安全控制节点有效性的分析,开发中心在软件安全开发体系建设的工作主要集中在意识融入、工具内建、度量回溯、管理提效方面。
1、安全意识融入研发全生命周期
软件安全开发管理工作一方面与研发过程管理密不可分,另一方面也需要安全人员具备丰富的专业知识。通过建设安全开发支撑平台,实现对现有研发管理平台、研发技术栈、安全工具的整合,沉淀研发过程资产形成专家知识库,最大程度降低了对人员资源消耗及技能依赖,并为软件生命周期安全左移提供有效支撑。
软件开发人员以现有研发管理平台为中心,安全管理及安全技术人员以安全支撑平台为中心,在各司其职的前提下,协同开展安全活动,并保持流程联动、信息互动。工商银行软件安全开发支撑系统的平台架构见下图。
2、安全工具链全流程覆盖、多技术路线异构
DevSecOps 工具可以将安全保证措施无缝集成到开发的持续集成(CI)和持续交付(CD)的工具链中,通过扫描开发代码和第三方插件模拟攻击行为,从而帮助开发团队发现开发过程中潜在的信息安全漏洞。基于目前工商银行的安全工具链建设现状,关注应用持续集成和持续交付阶段的安全工具链实施。
持续集成阶段的安全工具通过白盒扫描源码的方式,用于辅助检查识别从源代码提交到合并至版本仓库的过程中,源代码由于不规范的编码引入的安全缺陷、敏感数据泄露等安全问题。持续集成阶段的安全工具主要包含 IDE 插件工具、敏感数据检查类工具、静态应用安全测试工具等。
持续交付阶段的安全工具在应用构建及部署到测试环境后,通过软件组成分析、黑盒测试、灰盒测试等技术手段,辅助检查识别应用自身的安全漏洞,以及第三方软件漏洞和容器基础环境的安全漏洞。通过安全开发支撑系统对检测工具进行能力抽象、能力组合、关联分析等操作,实现工具链中各个安全检测工具能力与安全需求的关联映射,形成安全管理闭环。
3、安全考核维度多样化、指标数字化、管理闭环化
在很长一段时间内,业内对于软件安全开发能力评价指标主要集中在对单点漏洞缺陷的评价,或是对一个企业的整体评价。而在软件安全开发管理中,往往需要的是对某个应用系统开发项目的安全能力、安全成果的评价,无论是以 CVSS 为代表的单点基于漏洞缺陷的评价,还是业内广泛采用的 SAMM 整体体系的成熟度量化都不太适合。
基于过去多年的实践经验及安全开发支撑平台提供的多维度数据,工商银行建立了针对软件开发项目的有效安全成熟度度量评价体系。安全管理人员及技术人员可以对项目的安全开发能力做多维度评价及提出持续性改进建议,并通过安全发支撑平台持续评价、反馈、追踪, 完成对安全问题的闭环管理。
4、提升安全管理效率,降低人员依赖
通过安全流程固化,将属于个人的安全技能,以业务场景安全模板、应用安全画像、安全基线、安全组件、安全知识库的形式沉淀为标准化、条目化、服务化的安全资产,提升人员安全技能的可复用性。分析研发过程各安全活动数据,形成属于行业的安全大数据资产,服务于后续的数据分析,指标量化及安全评价工作。
软件安全体系规划进入新阶段
在金融业务快速变化的新形势下,随着工商银行在科技层面向云计算和分布式架构的转型工作的深入,工商银行面向云原生的安全演进方向,将聚焦于使用安全研发技术赋能云原生体系,构建云原生的安全能力。
在研发模式上,基于 DevSecOps 推进交付流程的安全质量内建;在应用安全风控上,基于 API 全链路管理保障业务安全,最终保障工商银行智慧银行生态体系的快速发展。
近期好文: