银行信息系统开发风险评估方法研究
2013-12-03陆向阳蒋树立熊延忠江南农村商业银行江苏常州213003
陆向阳,蒋树立,孙 亮,熊延忠 (江南农村商业银行,江苏常州213003)
伴随业务的不断扩展和机构规模的扩大,银行信息系统已逐步发展到数量级庞大、功能集成性复杂的阶段,随之而来的管理和技术风险也日趋增多。在发现的安全缺陷中,大约50%源于系统设计阶段,是造成银行信息系统安全问题的主要原因之一。因此,进行主动的软件风险分析与评估能够帮助设计人员尽早识别信息系统面临的威胁,提前评估其安全态势并设计相应的解决方案,从而增强银行信息系统的安全性。下面,笔者对银行信息系统开发威胁建模与风险分析方法进行了研究。
1 银行信息系统开发风险评估基本流程
银行信息系统安全开发周期包括5个阶段,即需求分析阶段、设计阶段、编码阶段、测试评估阶段和上线运行阶段,而风险评估工作需要贯穿始终。在系统设计阶段,根据需求分析阶段的安全需求分析文档,逐步深入展开,对信息系统设计进行详细的风险评估。风险评估工作由需求分析人员、设计人员、信息系统审计人员和安全主管共同参与完成,银行信息系统开发风险评估的主要工作内容如下[1]:①通过现状分析总结系统安全需求和安全目标;②通过对业务路径、重要数据、系统边界的分析,整理威胁列表;③分析现有安全控制措施,识别系统脆弱性,判断威胁的可能性;④进行影响性分析,根据风险大小和紧迫程度进行优先级排序并提出整改措施。
2 基于威胁建模的银行信息系统开发风险评估
2.1 攻击树模型
图1 攻击树模型
攻击树模型是一种描述一个系统内引发可预期的安全事件路径的图形模型[2],其用事件符号、逻辑符号和转移符号描述系统中各种事件和条件之间的因果关系,即将系统攻击表示为一棵树,根节点代表了总目标,各个分支代表实现总目标的各种方法。根据一棵给定的攻击树,可以从树的某个叶子节点开始找到一条能够实现某一攻击目标而进行的一个完整的攻击过程。攻击树的节点分为与(AND)节点和或(OR)节点,AND节点表示只有在所有子节点都实现之后,该节点才能实现,并将任务继续向上传递,而OR节点表示只要其中某一个子节点已经实现,则该节点就可以实现,并将任务向上下级传递[3]。攻击树AND节点和OR节点如图1所示。
2.2 威胁建模
威胁是指某个特定威胁源利用特定系统脆弱性对系统造成损失的潜在能力,其发生的可能性与系统存在的脆弱性、威胁源的强度和系统采取的控制措施有关[4]。为了对银行信息系统进行安全风险评估,设计人员应该对该系统所面临威胁的可能性进行分析。威胁建模是银行信息系统安全开发生命周期中不可或缺的一部分,其开始于设计的早期阶段,是一个不断进行迭代分析的过程,据此设计人员能够确定银行信息系统面临的主要威胁。威胁建模的主要流程包括构建系统概图、资产识别、威胁识别、脆弱性识别和构建攻击树威胁模型,具体内容如下。
1)构建系统概图 通过分析银行信息系统的总体架构和业务流程,准确地划定系统的数据流和安全边界。根据系统功能清单,逐一分析每一功能的业务路径的数据处理流程和相应的安全技术方案并进行归纳分类,由此构建系统概图。
2)资产识别 通过对系统架构、功能和业务路径等进行分析,提取出其中需要重点保护的信息资产 (通常包括:硬件、软件、数据信息、服务、人员等),并根据信息的安全等级划分原则,分别确定其保密性、完整性和可用性等级,对一些特别敏感的数据应该通过技术手段妥善保护。
3)威胁识别 由于银行信息系统自身应用的特点和地理位置不同,其可能面临不同的威胁,主要包括自然威胁、人为威胁和环境威胁,应根据具体情况加以识别。
4)脆弱点识别 在系统开发过程中常见的系统脆弱点包括内存溢出、非加密的数据存储和传输、缺乏必要的访问控制、缺少合适的输入输出合法性检测、没有安全的失败处理等。因此,在银行信息系统设计阶段,对信息系统现有安全控制措施的审查是系统脆弱点的识别重点。
图2 攻击树威胁模型
2.3 构建攻击树威胁模型
根据所识别出的威胁和脆弱性,按照业务路径的数据流来建立攻击树模型。有针对性地分析关键信息资产相关的安全事件,评估各种攻击的发生概率,以更好地制定控制措施。攻击树模型的攻击路径描述了威胁利用资产的脆弱性作用于一个或多个系统单元,最终破坏关键信息资产安全性的过程,这一过程与系统单元的安全性密切相关。利用攻击树描述方法对系统进行风险评估的具体步骤如下[5]:①了解系统总的安全状况,从攻击者的角度考虑攻击者要实现的最终目标;②将总体目标细化分解为各个子目标,构造攻击链;③构建攻击树之后,求每个叶子节点量化后的风险值;④对系统进行风险分析,确定系统总的风险和攻击者最可能采取的攻击序列;根据风险分析的结果并结合成本效益分析,制定相应的控制措施。攻击树威胁模型如图2所示。
2.4 风险评估
1)风险计算 设系统第i个风险域内第k个风险点安全事件发生的可能性为Qk(i),安全事件发生造成的损失为Ck(i),那么该风险点风险值的大小Zk(i)可以用下列公式计算:
设该风险点包含的资产Aik的价值为Lk(i),脆弱性严重程度为Vk(i),攻击发生的频率为Tk(i),则有以下关系:
2)风险等级确定 首先遍历系统第i个风险域内各风险点,即当k=1,2,…,n时,就可以得到风险值向量Z(i)= [Z1(i),Z2(i),…,Zn(i)],然后遍历各个风险域,即当i=1,2,…,p时,确定整个信息系统的风险值分布状况。
根据所采用的风险计算方法和风险值的分布情况,将风险域内各风险点的风险划分一定等级,为每个等级设定风险值范围,每个等级代表相应风险点风险的严重程度。
3 网上银行系统威胁建模实例
网上银行系统由用户系统、网站、网银中心、业务数据中心和银行柜台等组成,该系统安全主要涉及网银服务器安全、网银交易身份安全和网银客户端安全3个部分。采取的主要安全措施是基于RSA的加密机制、数字签名机制、SSL加密传输和口令登陆相结合的方式验证用户身份,同时安装多重防火墙防止Internet的非法攻击和银行系统信息外泄。入侵检测系统安装在网站和网银中心,实时监测网络的攻击行为,从而提供对内部攻击、外部攻击和非法操作的保护。网上银行系统面临主要的威胁有自然力破坏 (因火灾、水灾、雷电、地震等自然灾害的破坏而导致设备故障)、人的行为错误或失败 (由于人的操作失误而导致硬件设备或网银系统故障)、知识产权的破坏 (采用盗版的软件而引起安全隐患)、间谍或入侵行为 (通过系统入侵或其他手段窃取信息机密)、蓄意破坏或损毁行为 (恶意破坏硬件设备或系统文件,导致故障)、软件攻击行为 (黑客利用系统设计漏洞或配置信息错误对网银系统发起攻击)、硬件技术上的故障和错误 (跟网银系统相关的硬件设备存在技术故障)、软件技术上的故障和错误(跟网银相关的软件系统存在设计上的缺陷)、社会工程学 (利用社会工程学窃取网银信息数据)等。
网上银行系统攻击树威胁模型如图4所示。将入侵网银系统并获取用户帐户信息作为最终目标表示为V1;对V1进行分解,获取注册信息表示为V2,破解用户名和密码表示为V3;V2分解为通过社会工程学攻击 (V4)或跨站攻击获取相关注册信息 (V5),V3分解为系统后台突破 (V6)或SQL注入攻击 (V7);V6分解为脚本扫描 (V8)和暴力破解 (V9),V7分解为注入点扫描 (V10)和提交注入代码 (V11)。根据以上分析,攻击者可通过如下几个路径入侵系统,即V4、V5、V8和V9以及V10和V11。根据威胁模型叶节点的评估属性的量化标准,对各个节点的评估属性进行赋值Si,然后进行攻击概率分析,确定攻击发生的可能性。
图3 网上银行系统攻击树威胁模型
4 结 语
为提高银行信息系统的安全性,有必要对其开发风险进行评估。介绍了银行信息系统开发风险评估基本流程,阐述了基于威胁建模的银行信息系统开发风险评估方法,并对网上银行系统威胁建模实例进行了分析。在银行信息系统开发风险评估中,不可避免地会受到主观因素的干预,如何减少主观因素在风险评估中的影响并设计适合金融机构系统开发的威胁建模工具是今后研究的重点。
[1]Michael Howard,Steve Lipner.软件安全开发生命周期 [M].北京:电子工业出版社,2008.
[2]李嵩,孟亚平,孙铁,等 .一种基于模型的信息安全风险评估方法 [J].计算机工程与应用,2005,41(29):159-162.
[3]甘早斌,吴平,路松峰,等 .基于扩展攻击树的信息系统安全风险评估 [J].计算机应用研究,2004,24(11):153-160.
[4]林国恩,李建彬 .信息系统安全 [M].北京:电子工业出版社,2010.
[5]Saini V,Duan Q.Threat Modeling Using Attack Trees [J].Consortium for Computing Sciences in Colleges,2008,45:124-131.