文  |  中国工商银行数据中心(北京)安全部 姜城

软件安全开发生命周期是一个专注于软件开发安全保障的流程,致力于降低软件中的漏洞数量和严重性。工商银行通过积极探索,逐步建立适用于自身的软件安全开发生命周期体系,有力保障了互联网金融业务的快速发展。

一、商业银行软件安全面临的挑战

随着互联网金融的飞速发展,商业银行的产品和服务得到不断创新,在互联网上为个人和企业客户提供了丰富、便捷的金融服务。与此同时,互联网金融应用系统面临的安全风险也不容忽视。

1.外部安全威胁形势严峻

近年来,信息泄露事件频发,大量企业商业信息和个人敏感信息由于安全漏洞造成泄漏并在黑产圈、暗网传播;金融行业客户资金通过线上业务被盗事件也时有发生。从攻击技术、实施犯罪诈骗到洗钱销赃的完整黑色产业链已基本形成,“黑产”作案出现了技术难度高、境内外配合等新特征;另外,匿名者等国际黑客组织也持续对我国主要商业银行实施攻击。外部安全威胁整体上呈上升趋势。

2.监管力度不断加强

2017年6月1日正式实施的《网络安全法》对网络运营者、网络产品或服务提供者提出了严格的安全要求,各方需要采取必要措施保障信息安全,若违规将面临暂停业务、停业整顿、关闭网站甚至吊销营业执照等严厉处罚。2018年5月实施的欧盟GDPR法案强制要求软件在整个开发和运行阶段能够保护个人数据隐私,避免个人数据被篡改、丢失、未授权披露或被恶意攻击,违规的罚款上限是2000万欧元和企业上一财年全球年度营业额的4%(以较高者为准)。可以预见,未来我国以及世界主要国家对信息及信息系统的安全要求会越来越严格,违背监管要求面临的处罚也会越来越严厉。

3.新业务、新技术快速上线使软件安全质量难以得到保障

为实现业务的快速上线,提早布局、抢占市场,互联网金融应用的研发迭代周期不断被压缩,安全容易被忽视,开展安全活动的时间不断减少,有些安全活动甚至直接取消。另外,很多互联网金融应用使用了生物识别、区块链等尚未成熟的新技术,其安全性并未得到全面有效的验证,安全检测、安全评估方法也在完善当中,容易引发安全漏洞。这些都使得软件安全质量难以得到有效的保障,增加了软件的安全风险。

二、商业银行引入软件安全开发生命周期的意义

1.软件安全开发生命周期诞生的背景

本世纪初期,由于软件复杂度大幅提升、工作量增大以及缺乏安全设计和安全开发能力等因素,软件漏洞数量和严重程度不断增加,从而影响软件系统的稳定运行以及信息的机密性、可用性和完整性。包括微软在内的多家大型软件公司的产品发生了遭受黑客攻击、系统瘫痪、信息泄露等事件,影响了用户的正常使用,有些甚至影响到了用户的生命财产安全。

为了有效应对安全挑战,业界提出了软件安全生命周期的概念,希望通过一些列安全活动降低软件的安全风险。经过十几年的实践和不断优化,业界形成了SDL(Security Development Lifecycle)、BSIMM(Building Security In Maturity Model)、SAMM(Software Assurance Maturity Model)等软件安全模型和方法论,在软件、通信、金融等多个行业得到了实施并起到了效果。

2.引入软件安全开发生命周期的意义

软件安全开发生命周期从方法论上保证了软件的安全质量,从整体上提升了软件的安全水平,从而保障业务安全、平稳、合规地开展。

(1)软件更加安全

软件安全开发生命周期最根本的目的是降低软件漏洞的数量和严重程度。Windows XP曾因安全问题受到诟病,微软实施SDL后,产品安全形势得到巨大改观。工商银行通过引入软件安全开发生命周期,使得全员的安全意识得到增强,各部门共同参与安全活动,安全团队则通过技术研究、漏洞挖掘、工具研发进行安全赋能,安全成熟度得以提升。商业银行是市场经济的重要主体,银行业务系统的安全运行关系到万千个人和企业客户能否正常开展金融活动,出现安全问题除了会造成经济损失,还可能造成更加恶劣的社会影响,所以商业银行更加需要提升业务系统的安全水平。

(2)满足合规要求

随着外部监管和内部管理不断完善,软件开发中的安全合规要求越来越多也越来越重要,合规要求包括国家法律法规、行业标准、企业规章制度、技术规范等。为了有效控制安全风险,人民银行、银保监会、公安部等国家机关、监管部门频繁发布新标准、规范,旧标准、规范也不断修订,落实要求的难度在增加。软件安全开发生命周期关注安全合规要求,通过全流程的活动有利于合规要求的高效落地。工商银行密切关注各项合规要求,第一时间解读新要求并将其融入到安全需求和安全验收标准中,在中间各环节进行落地,实现端到端的有效管理。

(3)降低整体开发成本

IBM统计的数据显示,越早发现安全问题其整改成本越低,相比在设计阶段解决安全问题,开发阶段为6.5倍,测试阶段为15倍,产品发布后的整改成本高达100倍,美国国家标准与技术研究所的数据也与此相符。系统上线后被外界发现的漏洞还会严重影响到企业的信息安全,可能造成经济损失和用户流失。软件安全开发生命周期从软件的全流程视角出发,强调尽早解决安全问题,可以帮助降低整体开发成本,同时在修复手段的选择上也具有最大的灵活性。

三、商业银行建设软件安全开发生命周期的思考与实践

工商银行结合主流软件安全开发生命周期理论、实践做了分析研究,并针对商业银行技术、业务和管理特点作了积极尝试,安全漏洞数量和严重性得以降低,发现时间点逐步提前,安全把控能力得以提升,主要有以下三个方面。

1.增强研发人员安全意识

统计显示,新上线的应用漏洞数明显高于老应用系统,一是因为新应用系统的安全框架设计不完善;二是开发人员在编码时没有考虑到软件安全性。这两点的根源是安全意识不足。老应用系统已经修复了安全测试发现的问题,完善了安全框架,研发人员对安全开发也有了一定的认识,漏洞数明显减少。因此,通过培训、考试、宣传增强研发人员安全意识非常有必要。工商银行采取了宣讲安全规范、组织全员考试、评选安全标兵、分享典型案例、举办信息安全宣传周等多种手段有针对性地提升全员安全意识,起到了较好效果。安全意识提升后,研发人员能够在软件的设计、编码时主动考虑安全风险,并寻找解决办法,也更加配合安全人员的工作,安全活动开展得更加顺利。

2.建设软件安全开发生命周期体系

在未实施安全开发生命周期的情况下,随着软件复杂性提升、迭代周期缩短以及开发人员变动频繁,交付到测试的软件安全质量难以得到保障,表现为安全测试部门发现的漏洞数量和严重性有所增加,重复问题发生率较高。建设软件安全开发生命周期体系,在各个阶段开展安全活动,是从根本上解决安全质量问题的好办法。

工商银行逐步构建适合自身特点的软件安全开发生命周期体系并持续完善,取得了阶段性成果,软件安全质量得到了有效保证。软件安全开发生命周期体系以覆盖需求、设计、编码、测试、发布及应急响应全流程的安全工具链为主体,以应用安全技术规范和安全知识库为指导,将安全活动融入到现有研发、质控、生产运维管理系统中,实现了软件安全开发的标准化、自动化和一体化(如图1所示)。

图1 工商银行软件安全开发生命周期体系

其中,应用安全技术规范是基于对法律法规、行业规范、典型事件梳理形成的针对不同安全等级及技术特性的差异化安全要求;知识库为各阶段落实安全技术规范提供具体操作指南,能够覆盖不同业务及技术特性;安全工具链由自研工具及本地化改造后的第三方工具构成,支持具体安全活动的开展,以工具链条的方式提升工作效率;支撑平台将知识库、工具链进行集成、串联,与相关管理系统通过接口交互,实现安全开发流程的有效管理。

3.通过自动化实现DevSecOps

由于开发人员一般并不具备安全专业知识,并且代码扫描、模糊测试等安全活动工作量较大,安全活动实现自动化非常有必要。实施软件安全开发生命周期需要注重提升安全活动的自动化水平,DevSecOps的理念是将安全融入DevOps之中,通过一系列自动化工具在实现快速交付的同时保障软件安全质量。由于不了解商业银行的具体技术框架和业务流程,导致第三方提供的通用安全工具应用到商业银行的效果有限甚至无法使用,所以支持DevSecOps的自动化工具主要为自研或对第三方工具进行深度定制开发,并与内部项目管理、代码管理、缺陷管理等系统进行集成,实现全流程自动化,达到快速交付的目的。

互联网金融的发展和金融科技的创新不能忽视安全,工商银行将不断探索实践,完善软件安全开发生命周期体系建设,助力工商银行互联网金融业务快速发展。

(注:本文刊登于《中国金融电脑》杂志2019年第4期)

声明:本文来自中国金融电脑,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。