1.3 国内外开发安全的现状
当前银行业信息系统的安全状况,特别是银行系统的互联网化,对信息安全提出更高要求,但信息系统安全保障是一个庞大和复杂的课题,开发安全性的实现与落地并不容易,国内外均投入大量的人力物力进行开发安全的研究与实践。
目前,国内外开发安全的研究既有理论研究,又有通过企业的实践进行分析总结的成功实践,以下将选择部分信息进行介绍。
1.3.1 国外开发安全
国外开发安全发展较早,美国是其中发展较好的国家。
在理论和规范方面,美国的国家标准与技术研究院(National Institute of Standards and Technology,NIST)推出的SP800系列文档,包含开发安全管理的标准,包括初始阶段、获取/开发阶段、执行阶段、操作/维护阶段和部署阶段。每一阶段都包括一组最简化的安全步骤,以指导在开发过程中实现安全与系统融合。
此外,国外的大型企业已经进行了很多的开发安全实践,总结出相应的开发安全管理理念:
(1)微软SDL。SDL的全称是Security Development Lifecycle,即安全开发生命周期。它是由微软最早提出的,在软件工程中实施,是帮助解决软件安全问题的办法。SDL是一个安全保证的过程,起始点是软件开发,它在开发的所有阶段都引入了安全和个人隐私保护的原则,包括开发威胁模型、使用静态分析工具以及代码审核和安全测试。自2004年起,SDL一直都是微软在全公司实施的强制性策略。
SDL中的方法,试图从安全漏洞产生的根源上解决问题,通过对软件工程的控制,保证产品的安全性。SDL主要由以下7部分组成:
●安全培训(training):推广安全编程意识。
●需求分析(requirements):寻找安全嵌入的最优方式。
●系统设计(design):威胁建模设计。
●实现(implementation):安全开发。
●验证(verification):黑/白盒测试。
●发布(release):最后检查确认。
●响应(response):应急响应,漏洞跟踪解决。
通过上面的环节,微软SDL是将设计、代码和文档等与安全相关的漏洞减到最少,在软件开发的生命周期中尽可能早地发现解决相关漏洞建立的流程框架。
(2)CSDL。这是思科定义的安全开发生命周期,思科希望通过实施CSDL来检测、修复设计和编码缺陷,降低、防止设计和编码缺陷带来的危害。CSDL使用多层防御方法。首先,通过基础需求和威胁建模评审,将产品安全纳入整体设计和设计评审流程。其次,执行严格软件开发设计流程来检测、修复和防止软件缺陷。最后,利用渗透测试来验证前面两层的防御,发现和修复缺陷。
(3)BSI模型。BSI模型是Gray McGraw提出的安全开发模型,BSI是Building Security IN的缩写,强调应该使用工程化的方法来实施软件安全,即在整个软件开发生命周期中都要确保将安全作为软件的一个有机组成部分。该模型的三根支柱是风险管理、软件安全的接触点和安全知识。风险管理贯穿整个生命周期,用来追踪和减轻风险;接触点,即进行安全开发的最佳实践;安全知识,即收集、组织和传播对安全教育和接触点实施极为重要的知识,知识类型包括原则(principle)、方针(guideline)、规则(rule)、弱点(vulnerability)、攻击程序(exploit)、攻击模式(attack pattern)和历史风险(historical)。
(4)OWASP的CLASP模型。CLASP为comprehensive lightweight application security process的首字母缩写,即综合轻量应用安全过程,提供一个经验型的架构,以实现对开发安全的支持。CLASP实际上是一组过程的片段,可以集成到任何软件开发过程中。CLASP采用说明性的手段,建议组织采取相关的活动,并且提供一个安全资源,介绍工具用以实现自动过程。
(5)SSE-CMM模型。SSE-CMM(Systems Security Engineering,Capability Maturity Model)是一个过程参考模型。它关注的是信息技术安全(ITS)领域内某个系统或者若干相关系统实现安全的要求。在ITS领域内,SSE-CMM关注的是用来实现ITS的过程,尤其是这些过程的成熟度。SSE-CMM不规定组织使用的具体过程以及具体的方法,而是利用其现有的过程实现信息技术安全。它主要涵盖以下内容:
●SSE-CMM强调的是分布于整个安全工程生命周期中各个环节的安全工程活动,包括概念定义、需求分析、设计、开发、集成、安装、运行、维护及更新。
●SSE-CMM应用于安全产品开发者、安全系统开发者及集成者,还包括提供安全服务与安全工程的组织。
●SSE-CMM适用于各种类型、规模的安全工程组织。
以上开发安全模型的特点如表1-1所示。
表1-1 开发安全模型特点
总体来说,国外的安全开发理论比较发达,实际应用比较广泛,值得有志于学习与实践开发安全的读者们借鉴和学习。
1.3.2 国内开发安全
国内对开发安全工作非常重视,开展时间并不比国外晚多少,但在理论研究深度和实践强度上,对比发达国家还是有一定距离。
在理论和规范方面,中国信息安全测评中心推出国家标准GB/T 18336—2015《信息技术 安全技术 信息技术安全评估准则》,综合考虑产品的预期应用环境,通过对信息安全产品的整个生命周期,包括技术、开发、管理、交付等部分进行全面的要求和对应的安全性评估与测试,验证产品的保密性、完整性和可用性程度,确定产品对其预期应用而言是否足够安全,以及在使用中隐含的安全风险是否可以容忍,产品是否满足相应评估保证级的要求。这是国内比较系统地对开发安全提出明确要求的标准。
国内大量的企业都在开展开发安全活动,但对开发安全工作进行系统性总结的不多。搜狐公司总结的Sohu SDL是其中一个比较公开的例子。本节先对Sohu SDL做一个简单介绍,从中可以看出国内SDL的发展水平,后续2.5.4.1节和2.5.4.2节还会从多角度详细介绍Sohu SDL流程。
搜狐公司Sohu SDL期望解决其信息安全面临的,诸如项目开发周期短、迭代频繁、缺乏安全设计、缺乏安全编程意识、老旧代码难以维护、业务线代码风格多变等问题。