浅析商业银行信息系统研发的风险管理

2013 年 10 月 20 日4530

  陈典友 曹玉磊 孙玮

  现状概述

  随着商业银行业务的快速发展,信息系统在促进商业银行提高工作效率、提升服务水平、拓展业务范围等方面的作用越来越明显。信息系统在带来便利的同时,也带来了一定的风险。信息系统安全问题日渐成为商业银行内、外部监管的重点。研发风险是在信息系统研发阶段可能引入的,导致信息系统出现安全性问题的风险。研发风险管理工作是从安全和风险角度对信息系统安全设计、实施情况进行统筹管理的一项工作,旨在保障和提高新研发信息系统的安全性。

  研发风险管理工作特点

  商业银行信息系统所承载的业务服务和数据都很重要,一旦受到破坏将对商业银行及其客户的利益造成严重损害。因此商业银行对信息系统的安全性、稳定性要求很高。但随着业务的快速发展,商业银行信息系统的种类和数量也在快速增加。这些信息系统需要采用不同的语言、平台和架构来实现,其关联关系和技术复杂度越来越高。同时,随着IT技术的发展和互联网开放程度的加深,新的攻击手段不断出现,安全攻防技术不断演变,且有愈演愈烈之势。因此商业银行研发风险管理工作具有管理要求高,管理难度大的特点。

  为加强对商业银行的风险管理,人民银行、银监会等监管机构发布了一系列指引,其中包括了信息系统研发相关的合规性要求。这些要求也是监管机构进行检查的重点,如果未能在研发阶段落实,信息系统上线后仍需进行整改,将增加不必要的成本和变更风险。因此,研发风险管理工作不但应落实信息系统的安全性要求,还应将合规性要求纳入考虑范围之内。

  研发风险的分类

  《巴塞尔新资本协议》已将操作风险纳入资本监管,并将信息科技风险划归操作风险范畴。研发风险属于信息科技风险的组成部分,具体细分,又可以分为管理风险和技术风险。

  管理类风险是指由于未做好研发风险管理相关工作,间接对信息系统安全性造成影响的风险,主要有合规性风险、管理环节缺失、管理力度不足等。合规性风险是指未落实监管部门关于研发风险的监管要求而形成的风险,例如未落实《银监会非现场监管报表》对“项目代码安全检查完成率”、“代码安全检查方法”的要求等。

  技术类风险是指因各种技术原因引入的,影响信息系统安全性的风险,主要包括安全设计问题、代码漏洞。安全设计问题是指信息系统安全设计不到位,例如用户口令复杂度不足、敏感数据未加密存储等;代码漏洞是指由于开发人员疏忽或者编程语言的局限性,导致程序存在可以被黑客利用的逻辑错误,例如SQL注入、跨站脚本、缓冲区溢出等。

  我国商业银行研发风险管理工作现状

  我国商业银行虽然在规模、业务特性与管理模式上存在差异,但由于同处于我国经济大环境下,其信息系统研发风险管理工作面临相似的环境和挑战。目前我国银行的系统研发模式有自主研发、合作开发、外包和外购等几种。大型国有商业银行一般以自主研发为主,大中型股份制商业银行一般采用合作开发方式为主,大多数小型和地方性金融机构则主要采用外包或外购的方式。

  随着我国商业银行信息化建设的不断深入,目前大多数商业银行都加强了信息科技风险管理,建立了包括组织、制度、技术等方面的信息科技风险管理体系,涵盖了基础架构、研发、测试、运维、外包、应急等各方面。在研发风险管理方面,采用了必要的管理和技术手段,加强了系统安全设计,在一定程度上满足了业务连续性需求。但是由于起步较晚和重视程度不够,研发风险管理水平整体滞后于信息科技管理水平,因安全设计不充分所引发的安全事件或整改仍不时出现,危害着商业银行的安全。因此,我国商业银行信息系统研发风险管理水平还有待进一步提高。

  存在的问题和不足

  研发风险管理组织不完善、流程机制不健全。研发风险管理工作的开展需要相关的组织和角色作为支撑。目前,各商业银行的整体信息科技风险管理组织较为完善,但很少能够深入到研发风险管理环节,主要表现在缺少研发风险管理的统筹部门,缺少对研发风险管理进行决策的组织机构,项目组中缺少研发风险管理角色等方面。我国商业银行信息系统研发工作大多以项目的形式进行,普遍拥有完整的项目管理流程,但流程中涉及安全和风险的内容较少,对系统安全设计、实现的审核机制不健全,难以保证在研发阶段提高信息系统安全性。

  研发风险管理依据多、信息系统安全设计不规范。当前商业银行的信息系统面临着多方面的监管要求,既有行内的,也有行外的;既有监管机构的,也有业界的;既有管理要求,也有技术要求。这些要求的来源不同,侧重点不同,粗细颗粒度不同,甚至有的相互冲突,给研发人员造成一定困扰,亟待统筹规范。现有信息系统一般都有身份鉴别、访问控制等设计,能够满足基本的安全需要。但由于缺乏整体规范指导,信息系统研发过程中难以避免安全需求不完整,安全设计水平良莠不齐,安全编码不规范等问题,导致信息系统仍然可能存在安全漏洞。

  安全技术不能重复利用、安全技术支持服务不足。商业银行信息系统具有一些共性的安全设计,例如身份认证、数据加密、日志审计等。在现有模式下,各个项目组缺少沟通协调,往往自行开发,造成重复开发和资源浪费,也不利于企业安全架构整合与管理。研发出安全的信息系统,必须以相应的技术手段作为支撑,但现有商业银行研发团队往往缺少这方面的支持和服务,影响了信息系统安全研发水平。

  此外, 为了应对业务的发展变化,商业银行必须不断提高信息系统研发速度。在业务需求紧急和工作量的压力下,研发团队往往会不自觉地重效率轻安全,形成了安全工作人员的数量不足,开发人员的安全意识和安全技能不足等问题。

  研发风险管理目标及主要依据

  研发风险管理工作是从安全和风险角度对信息系统安全设计、实施情况进行统筹管理的一项工作,主要目标是提升信息系统的安全性,避免安全事件发生,保证商业银行业务连续性。同时,也应关注信息系统合规性,避免系统上线后因各类检查发现问题而进行整改,减少不必要的变更。商业银行开展研发风险管理工作的最理想状态,是实现对所有信息系统研发风险的统筹管理和良性循环,实现外部监管要求、信息安全技术发展变化与信息系统研发之间的有效衔接,做到对最新安全要求的快速响应、准确解读、全程跟踪、有效落地。

  为做好研发风险管理工作,有效提升信息系统的安全性、合规性,商业银行在信息系统研发过程中需遵从多方面的要求。这些要求一方面是对研发风险管理工作的指导和规范,另一方面也是开展研发风险管理工作的依据。从大的方面来说,我国关于商业银行信息安全、保密等方面的法律法规均属于研发风险管理依据范围,这些法律法规的层次较高,不适合指导具体工作开展。从执行角度来看,研发风险管理工作的依据主要有监管要求和信息安全标准,同时还应参考业界最佳实践。

  监管要求。《巴塞尔新资本协议》将信息科技风险划归操作风险,而研发风险属于信息科技风险范畴。因此,当前我国商业银行遵从的信息科技风险监管要求,包括:《商业银行信息科技风险管理指引》、《商业银行内部控制指引》、《中国银行业信息科技“十二五”发展规划监管指导意见》等,通常涵盖研发风险管理相关内容,是开展研发风险管理工作的有力依据。人民银行、银监会等监管机构对商业银行开展的信息科技检查,以及商业银行接受的其他内外部科技审计、风险评估发现的问题,是从各个角度对现有监管要求的细化和解读,属于未来新建信息系统应规避的问题,也应纳入研发风险管理工作依据范围。

  信息安全标准。信息系统安全问题是整个IT行业普遍关注的问题,经过业界多年探索和经验积累形成的信息安全标准,是商业银行开展信息系统研发风险管理工作的另一重要依据。目前国内外信息安全标准种类、数量较多,比较有代表性和有指导意义的包括:信息系统安全等级保护标准、ISO27001标准、CC标准、Cobit标准等。此外,我国国家密码管理部门、人民银行等部委针对各专业技术领域颁布的标准,例如《网上银行系统信息安全通用规范》、《银行卡联网联合安全规范》、国产加密算法标准等,可作为各专业领域信息系统研发风险管理的工作依据。

  业界最佳实践。随着IT行业对信息系统安全问题的越来越重视,各大公司和机构纷纷进行了广泛而积极的探索,积累了许多最佳实践和解决方案,对商业银行信息系统研发风险管理工作具有一定的启发和借鉴意义。其中,微软的SDL方法关于全生命周期安全管理的理念,值得研发风险管理工作借鉴;OWASP的CLASP方法将安全融入现有项目开发流程的理念,与商业银行在现有条件下推动研发风险管理工作开展的需求相吻合;McGraw的TouchPoints方法在关键点切入安全管理的理念,对研发风险管理工作具有借鉴意义。

  研发风险管理策略分析

  构建研发风险管理体系、全生命周期防范研发风险。针对商业银行研发过程风险管理工作特点和现状,要想从根本上解决当前存在的问题,应统筹考虑,博采众长,从体系化的角度进行整体规划,构建符合商业银行自身实际情况的研发风险管理体系。在具体操作上,建议从组织、管理、技术三个方面入手。其中,组织方面应由专职部门牵头,设置项目安全员、安全专家等角色,分别履行评审、督导、执行等工作职责;管理方面做好管理制度、安全开发标准的制定维护,以及培训考核等整体推动工作;技术方面要采取多种手段,为项目组提供安全公共组件、安全技术平台、安全工具等技术支持和服务。信息系统安全问题是整个系统级的问题,包括物理、网络、系统、应用等很多方面。同时,安全问题也是一个连续不断地出现的问题,在信息系统研发生命周期的每一个阶段都有可能引入风险,无论是选择的工具、实现技术还是编码的质量。因此,研发风险防控工作应贯穿信息系统建设全生命周期,在信息系统研发过程中同步做好安全需求分析、安全设计、安全编码、安全测试、安全审核等工作,使研发风险管理活动与项目管理流程紧密结合,避免引入风险隐患。

  做好关键阶段的安全审核、坚持定制化和个性化原则。商业银行信息系统种类多、数量多,从安全和合规的角度来看,每个信息系统均应落实研发风险管理要求,但商业银行的投入和能力毕竟有限,必须结合信息系统研发工作特点,准确把握工作重点。在信息系统研发生命周期中,需求分析阶段处于初始阶段,且与业务联系紧密,并为后续工作量估算、系统设计等工作奠定基础。做好需求分析阶段的安全评审,能够保证安全要求在后续工作中得到贯彻执行,具有特别的重要性。同时,在信息系统测试阶段,应对信息系统整体安全情况进行审核,以验证安全需求实现情况,及时修复发现的问题。通过一头一尾两个关键阶段的安全审核,有效保证新研发信息系统的安全性。

  虽然研发风险管理工作的管理依据多,可参考标准多,但是现代商业银行发展迅速,信息科技发展也是日新月异,任何一个标准或指引均不能保证普遍适用,永不过时。商业银行在开展研发过程风险管理工作中,应准确把握和灵活运用各类工作依据和标准,坚持定制化和个性化原则,结合自身工作特点,制定符合自身实际情况的管理办法和技术标准。对于各类安全工具或服务,也应根据工作需要做出选择,并在实际工作中进行个性化改进,尤其是对安全工具的个性化配置维护,将成为研发风险管理工作的主要内容之一。

  安全与效率兼顾、管理和技术相结合。商业银行的业务扩张和发展速度很快。为抢占市场先机,商业银行信息科技服务的变化速度也很快,且时效性要求很高。这就使得商业银行必须提高信息系统研发效率。研发风险管理工作属于提升信息系统安全性的强化工作,主要表现在增加信息系统的非功能性需求,增加研发工作量,因此可能会影响研发效率。商业银行在开展研发过程风险管理工作时,要紧紧围绕信息系统研发这个核心工作任务,坚持服务研发、防控风险的原则,妥善处理安全和效率之间的关系,找到安全和效率之间的最佳结合点,争取以最小的投入产生最大的安全效益。

  研发风险管理工作的主要落脚点是加强信息系统研发全生命周期的风险管理,做好需求、设计、编码、测试等阶段风险管理工作,落实安全技术措施。因此,与传统的项目风险管理不同,研发风险管理不但重视风险管理,还重视安全技术设计和实现。这就要求在开展研发风险管理工作过程中,必须将管理和技术相结合,在提出研发风险管理要求的同时,必须为项目组提供安全技术支持和服务,指导和协助项目组解决技术难题,使研发风险管理要求得到切实贯彻执行。

  持续优化改进。研发风险管理并非一成不变,随着商业银行业务方向,以及信息科技的发展变化,研发风险管理要求也在不断变化。要想保证研发风险管理工作的持续性和有效性,必须对研发风险管理体系进行持续优化改进。可以采用征求意见或召开专家会议的方式,定期梳理研发风险管理变更需求,进而确定体系优化改进的方向。对于管理类优化改进,需要通过修订研发风险管理制度和流程实现;对于安全技术发展变化,需要在安全设计、编码规范,以及安全技术支持服务中予以改进。通过持续改进优化,实现研发风险管理体系的与时俱进和良性循环。

  (作者单位:中国农业银行)

0 0