参与奖项:最佳金融科技安全奖
评委票数:
热度 (转发微信朋友圈或群可以帮助增加热度)
方案概述
平安银行在保障软件开发安全实践过程中,形成了一套行之有效的安全开发生命周期(S-SDLC)流程体系并推广落地,通过制度、流程、工具和平台全过程管理,使银行应用安全开发质量显著提升。本项目案例属率先引进吸收国际先进经验并结合银行情况落地的项目,是银行行业内首批完整落地S-SDLC的企业,对金融业内企业的应用安全建设思路可以起到一定的启发和借鉴作用。
方案背景
平安银行处于零售转型高速发展时期,业务量持续扩大,在高速发展的情况下,各业务条线开放需求与日俱增,银行开发模式也再向敏捷开发进行转变。传统安全管控流程低效,无法满足快速迭代下的安全要求,急需通过体系化的方案保证业务系统的整体安全性。
方案目标
为进一步降低应用开发过程中各环节安全风险,实现银行软件开发安全质量的提升。借鉴微软、思科、谷歌等世界一流企业的安全开发体系,结合平安银行特有的开发质量管理流程,逐步探索出一套切实有效的安全开发流程体系(称之为S-SDLC)。在落地SDLC流程之前,银行面临了以下3个核心难点:
(1)应用安全质量强依赖于安全工程师在渗透测试环节的投入,未覆盖研发流程,没有形成有效的闭环;
(2)安全投入的重点在渗透测试环节挖掘漏洞,在整个研发流程中安全切入时间节点晚,造成了部分需求在开发过程中自身安全控制不足等问题;
(3)停留在以漏洞驱动的传统安全防护思想,一直处于相对被动防御的状态。
方案特点
- 全生命周期的安全开发流程及其实践
- 敏捷开发流程及其实践
- 安全设计与安全开发
- 第三方软件安全管理
- 常见Web安全漏洞的解决方案
- 黑盒、灰盒自动化安全检测工具的设计与实现
方案业务流程图
银行实践出了“安全开发生命周期(S-SDLC)+需求研发管理工具+安全运营平台”的组合控制安全开发流程,基于整个安全开发流程(安全培训、安全评审、安全设计、安全编码、安全测试、发布及安全应急响应),设置了流程中各角色及分工(研发负责人、开发人员、安全工程师),基于纵深防御的思想在各环节控制把关,提升整体应用安全质量。主要方式为:
(1)研发团队也成为应用安全质量控制工作的实施主体,由研发负责人及开发人员在代码安全设计、安全编码等环节进行相应的安全需求识别、安全设计、安全设计评审,由被动变主动,参与整个安全开发生命周期(S-SDLC),提升代码安全质量;
(2)安全工作的重点向开发过程转移,安全防线前移,并形成防御纵深;
(3)主动的安全风险控制驱动安全工作,实现主动防御;
(4)配合需求研发管理工具,将整套的安全开发生命周期(S-SDLC)嵌套进原有开发流程,将复杂的流程简单化,减少研发团队及安全团队在流程中的成本投入,提升工作效率。并且对接安全运营平台,将过程中的各类数据指标可视化展示,便于追踪和管控S-SDLC流程进度及质量。
实现功能展示
方案案例及效果
主要实践效果如下:
(1)提供安全设计指引,帮助研发团队更轻松的写出更安全的代码,提升研发团队代码安全质量;
(2)有效的减少了常见低级漏洞的数量及类型;
(3)产品的安全状态可以在整个开发过程得到更精准的反馈,有助于产品的安全进度管理。
目前效果:
- 全行互联网应用系统100%执行S-SDLC
- 全年(19年)需求安全评审16000+
- 全年人工测试需求6200+
- 全年系统上线前发现漏洞1200+
方案未来展望
平安银行将基于目前S-SDLC的执行经验,结合银行实际情况对全流程进一步优化,往自动化、精细化方向发展。通过优化全流程各控制点的现有工具,在减少人力成本的情况下,提升S-SDLC流程的质量及效率,并开放基础安全能力,赋能研发、测试等角色,更有效的降低研发过程产生的风险,进一步提升银行系统的安全性。