毛卫东
文 | 中国工商银行 数据中心(北京)总经理 毛卫东
近年来,我国密集发布了一系列金融规范和标准,信息系统安全等级保护也即将跨入2.0时代,特别是互联网金融已成为风险防控的重点关注领域。由于互联网金融应用的技术平台及业务特性与传统金融应用存在较大差异,无法通过统一的信息系统安全等级保护防护体系进行防控。在互联网金融应用软件生命周期管理中,应用安全测试是投产前最有效的风险控制措施,可以有效发现业务需求、版本研发过程中存在的安全漏洞和风险。本文基于信息系统安全等级保护的框架,对互联网金融应用安全测试的组织和实施进行了积极探索,力求构建一个可以推广的互联网金融应用安全测试体系。
一、应用安全测试面临的挑战
在传统金融应用测试中,应用安全测试工作往往和业务测试融合在一起,业务、开发、测试团队更多关注产品是否满足业务需求,业务逻辑是否完全得到实现,IT安全没有得到充分的重视,业内也缺少细化的规范和标准,如下五类问题普遍存在。
(1)目前业界安全要求及规范主要集中在对代码及安全组件的安全质量要求,互联网金融业务的安全性要求及规范涉及较少。
(2)业界缺少适用于互联网业务的风险定级方法,缺少各方能达成一致的风险定级标准指标。
(3)应用安全测试方法技术门槛较高,掌握在少数专业安全人员手中,应用安全测试人员培训成本高、周期长。
(4)用于应用安全测试的技术工具不足,应用安全测试覆盖面不够。
(5)安全问题的风险应对措施、修复方案缺乏统一标准,无法评价整改效果,研发人员整体安全意识不足,安全问题重复发生率较高,验证过程反复。
二、信息系统安全等级保护中的应用安全测试要求
在信息系统安全等级保护测评中,应用安全测评是重要的测评内容,但应用安全测评涉及的测评范围较广,不仅仅包含应用平台,还涉及系统等其他层面;不仅涉及安全配置的检查,还涉及安全功能的验证。因此,在信息系统安全等级保护系统建设管理、应用安全和安全管理机构中均有应用安全测试相关的要求(见表1)。
表1 信息系统安全等级保护中的应用安全测试要求
三、基于等级保护的互联网金融应用安全测试体系框架
结合信息系统安全等级保护中应用安全测试要求,针对应用安全测试领域的常见问题,在流程合规、标准合规的基础上,对应用安全测试的三个方面进行了设计——应用安全测试定义与框架、应用安全测试方法设计,以及应用安全测试生命周期管理。
1.应用安全测试定义与框架
根据对信息系统安全等级保护要求及工商银行应用研发和测试工作进行分析,对应用安全测试定义如下:应用安全测试是在银行软件产品的生命周期中,特别是从产品开发基本完成到发布阶段,对产品进行检验以验证产品符合银行业务安全需求定义和产品安全标准的过程。应用安全测试的开展贯穿在“V”模型(如图1所示)的需求分析、开发、验收测试的所有环节中。
图1 应用安全测试“V”模型
根据银行业务产品特点,应用安全测试可以分为技术安全测试和业务安全测试。技术安全测试又分为代码安全测试和安全组件测试。代码安全测试是指对代码安全质量标准进行的验证,如SQL注入、跨站脚本、任意文件上传漏洞等。安全组件测试是指对安全组件的安全需求进行的验证,如U盾测试、密码键盘测试等。而业务安全测试是指对金融交易安全需求进行的验证,如登陆交易测试、转账交易验签测试。
对两种不同类型的应用安全测试,从测试内容、测试手段、执行阶段、执行人四个维度,构建了应用安全测试框架(如图2所示)。代码安全测试主要通过白盒代码安全检查及黑盒扫描方式开展,在开发阶段由开发人员完成,安全人员负责对问题验证及修复方案进行技术支持。安全组件测试需要在设计阶段对方案进行安全评估,具体方法包括威胁建模、攻击面分析。在测试阶段由安全人员对组建进行逆向分析及黑盒测试;业务功能安全测试需要在设计阶段开展业务功能的风险分析,同时在测试阶段由业务测试人员对安全需求进行验证测试。
图2 应用安全测试框架
2.应用安全测试方法设计
应用安全测试是对安全要求进行验证的过程,安全要求包括产品安全标准及安全需求定义两部分(如图3所示)。围绕信息系统安全等级保护应用安全的要求,通过分析行业规范、最佳实践以及多年对安全事件的积累,建立了较为通用的产品安全标准;通过对互联网应用业务进行针对性的风险分析,不断积累风险点形成了适用于互联网金融应用的、较为通用的安全需求。针对安全要求,通过研究这些安全要求对应的应用安全测试方法,形成了适合于银行业务特点和安全性要求的通用案例指引。
图3 银行应用安全测试理论方法
目前工商银行一共形成了30大类应用安全测试通用案例指引,其中技术227条,业务96条,每一条均包含了测试要点、网络接入、用户类型、环境类型、测试方法、测试结果等要素。部分应用安全测试通用案例指引示例如图4所示。
图4 应用安全测试通用案例指引示例
这些案例完全涵盖了信息系统安全等级保护的具体条款,每一条指引都细化了具体的应用安全测试方法。等级保护中身份鉴别条款见表2。
表2 等级保护中身份鉴别条款
通过逐条对等级保护条款进行分析,形成通用测试指引(见表3)。
表3 通用测试指引
此外,还分别针对POS、ATM、USBKEY、动态密码器等设备的身份鉴别安全测试进行了细化,以确保自助终端、专用设备及客户端的访问控制安全。
随着外部攻击手法的不断变化以及互联网金融业务的不断发展,应用安全测试通用案例指引在不断的更新、优化中。目前业界安全公司提供的安全评估一般是考虑行业通用的安全标准和漏洞,对互联网金融业务特有的高、中风险关注不够。这也是应用安全测试方法研究过程中需要重点关注和研究的部分。
3.应用安全测试生命周期管理
针对互联网金融业务灵活、更新速度快的特点,需要在应用开发生命周期的重点阶段嵌入安全测试相关工作。与传统测试最后把关的做法相比,应用安全测试可以做到从需求阶段开始介入,实现风险的早发现早修复,以有效降低研发成本,提高风险整改效率。通过在实践过程中的不断优化,形成了“阶梯嵌入”式应用安全测试组织形式(如图5所示),明确应用研发生命周期各阶段各职能部门的分工和职责,避免由于职责不清造成的测试不到位及资源重复投入。
图5 “阶梯嵌入”式组织形式
针对应用安全测试发现的问题,要采用应用安全测试闭环管理(如图6所示),覆盖问题发现及评级、问题确认及评审、问题整改及验证阶段,确保问题闭环。
图6 应用安全测试问题处理流程
应用安全测试闭环管理需要关注以下三方面。
第一,建立应用安全测试问题风险评级方法,以实际影响为导向,确保客观评价、无争议。通过建立应用安全测试问题风险评级模型,参考CVSS漏洞定级方法及OWASP漏洞定级方法,结合互联网金融应用特性,引入风险评估方法,重点关注风险危害程度,将问题按照不同的严重程度分为严重、高、中、低、提示五个问题风险等级。
第二,建立应用安全测试问题风险评审机制,得到最优的修复方案。通过建立问题评审机制,使内控、业务、科技、开发、测试等项目组相干系人加入到评审过程中,有效平衡业务功能、修复成本、易用性及安全性。
第三,建立应用安全测试问题整改标准,降低问题重复发生的可能性,建立修复标准和整改时效。实践中,可直接使用问题评级结果,严重、高、中风险问题要求在版本投产前完成整改,确保问题整改效率,避免发生重大安全风险。
四、应用成果
1.确保互联网金融应用安全质量可控,满足等级保护外部测评要求
通过系统的理论和方法支撑,通过应用安全测试有效识别和处理安全风险,推动问题闭环。在外部安全威胁形势日益严峻的情况下,工商银行因互联网金融应用风险带来的客户资金损失、信息泄露事件处于行业较低水平,外部披露漏洞数为0。工商银行信息系统等级保护外部测评符合率平均达到90%以上,很好地满足了监管的要求。
2.建立了适应应用安全测试工作要求的机构组织体系
在软件研发各阶段的部门中设置与应用安全测试相关的岗位角色(如图7所示),从需求分析开始介入,到投产后的漏洞管理,各阶段均有相应的应用安全测试工作,避免了由于职责不清造成的测试不到位、资源重复投入、问题得不到关闭等情况。
图7 应用安全测试机构组织体系
3.形成互联网金融应用安全测试知识资产
基于工商银行的发展需要,借鉴业界理论成果,立足金融行业特点,研究并总结归纳了应用安全测试理论方法体系,形成一系列知识文档、规范文档,并纳入了全行制度体系进行发布管理(如图8所示)。
图8 应用安全测试知识资产
4.建立了支持软件全生命周期的安全工具体系
建立了支持软件全生命周期的安全工具体系(如图9所示),包括各阶段应用安全测试辅助工具,应用安全测试问题、缺陷的流程管理系统等,有效支撑了应用安全测试工作开展。
图9 应用安全测试工具体系
在等级保护1.0时代,等级保护工作主要围绕定级、备案、建设整改、等级测评以及监督检查五个规定动作展开,网络安全的工作目标和重点在于通过等级测评。等级保护2.0框架下,原有相对静态的要求中加入了安全检测、应急处置、通报预警、灾难恢复等环节,对被保护对象在各阶段、各种场景下的安全工作都提出了要求。应用安全测试,在国家及监管机构各项规范及标准的不断完善下,将作为全生命周期、全流程安全管理的重要环节,占有越来越重要的席位。
声明:本文来自中国金融电脑,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。