信息安全深入分析比较八个信息安全模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深入分析比较八个信息安全模型
信息安全体系结构的设计并没有严格统一的标准,不同领域不同时期,人们
对信息安全的认识都不尽相同,对解决信息安全问题的侧重也有所差别。
早期人们对信息安全体系的关注焦点,即以防护技术为主的静态的信息安全体系。
随着人们对信息安全认识的深入,其动态性和过程性的发展要求愈显重要。
国际标准化组织(ISO)于1989年对OSI开放系统互联环境的安全性进行了深入研究,在此基础上提出了OSI 安全体系结构:ISO 7498-2:1989,该标准被我国等同采用,即《信息处理系统-开放系统互连-基本参考模型-第二部分:安全体系结构GB/T 9387.2-1995》。
ISO 7498-2安全体系结构由5类安全服务(认证、访问控制、数据保密性、数据完整性和抗抵赖性)及用来支持安全服务的8 种安全机制(加密机制、数字签名、访问控制机制、数据完整性机制、认证交换、业务流填充、路由控制和公证)构成。
ISO 7498-2 安全体系结构针对的是基于OSI 参考模型的网络通信系统,它所定义的安全服务也只是解决网络通信安全性的技术措施,其他信息安全相关领域,包括系统安全、物理安全、人员安全等方面都没有涉及。
此外,ISO 7498-2 体系关注的是静态的防护技术,它并没有考虑到信息安全动态性和生命周期性的发展特点,缺乏检测、响应和恢复这些重要的环节,因而无法满足更复杂更全面的信息保障的要求。
P2DR模型源自美国国际互联网安全系统公司(ISS)提出的自适应网络安全模型ANSM(Adaptive NetworkSe cur ity Mode l)。
P2DR 代表的分别是Polic y (策略)、Protection (防护)、Detection (检测)和Response(响应)的首字母。
按照P2DR 的观点,一个良好的完整的动态安全体系,不仅需要恰当的防护(比如操作系统访问控制、防火墙、加密等),而且需要动态的检测机制(比如入侵检测、漏洞扫描等),在发现问题时还需要及时做出响应,这样的一个体系需要在统一的安全策略指导下进行实施,由此形成一个完备的、闭环的动态自适应安全体系。
P2DR 模型是建立在基于时间的安全理论基础之上的。
该理论的基本思想是:信息安全相关的所有活动,无论是攻击行为、防护行为、检测行为还是响应行为,都要消耗时间,因而可以用时间尺度来衡量一个体系的能力和安全性。
PDRR模型,或者叫PPDRR (或者P2DR2),与P2DR非常相似,唯一的
区别就在于把恢复环节提到了和防护、检测、响应等环节同等的高度。
在PDRR 模型
中,安全策略、防护、检测、响应和恢复共同构成了完整的安全体系,利用这样的模型,任何信息安全问题都能得以描述和解释。
当信息安全发展到信息保障阶段之后,人们越发认为,构建信息安全保障体系必须从安全的各个方面进行综合考虑,只有将技术、管理、策略、工程过程等方面紧密结合,安全保障体系才能真正成为指导安全方案设计和建设的有力依据。
信息保障技术框架(Information Assuranee Technical Framework, IATF) 就是在这种背景下诞生的。
IATF 是由美国国家安全局组织专家编写的一个全面描述信息安全保障体系的框架,它提出了信息保障时代信息基础设施的全套安全需求。
IATF 创造性的地方在于,它首次提出了信息保障依赖于人、操作和技术来共同实现组织职能/业务运作的思想,对技术/信息基础设施的管理也离不开这3个要素。
IATF 认为,稳健的信息保障状态意味着信息保障的策略、过程、技术和机制在整个组织的信息基础设施的所有层面上都能得以实施。
尽管IATF 提出了以人为核心的思想,但整个体系的阐述还是以技术为侧重的,对于安全管理的内容则很少涉及。
所以,与其说IATF 为我们提供了全面的信息安全体系模型,如说为我们指出了设计、构建和实施信息安全解决方案的一个技术框架信息安全体系建设与服务过程(ISMG-002),它为我们概括了信息安全应该关注的领域和范围、途径和方法、可选的技术性措施,但并没有指出信息安全最终的表现形态,这和P2DR、PDRR 等模型有很大区别。
BS 7799 是英国标准协会 ( British Standards Institute,BS I )制定的关于信息安全管理方面的标准,它包含两个部分:第一部分是被采纳为ISO/IEC 17799:2000 标准的信息安全管理实施细则( Code of Practice for Information Security Managemen),它在10个标题框架下列举定义127项作为安全控制的惯例,供信息安全实践者选择使用;BS 7799 的第二部分是建立信息安全管理体系
(ISMS) 的一套规范 (Specif ication for Information Security Management Systems,其中详细说明了建立、实施和维护信息安全管理体系的要求,指出实施机构应该遵循的风险评估标准。
作为一套管理标准,BS7799-2 指导相关人员怎样去应用ISO/IEC 17799,其最终目的还在于建立适合企业需要的信息安全管理体系
( ISMS)。
单从安全体系作为信息安全建设指导蓝图和目标的作用来看,之前的几种体系
或模型都或多或少存在一些不足,ISO 7498-2 就不多说,即使是目前较为流行的
P2DR 和PDRR 模型,侧重的也只是安全体系的技术环节,并没有阐述构成信息安全的几个关键要素。
至于IATF,虽然明确指出信息安全的构成要素,
但它只是提供了一个用来选择技术措施的框架并没有勾画出一个安全体系的目标形态。
同样的,BS 7799标准虽然完全侧重于信息安全管理,但它所要求的信息安全管理体系(ISMS)也没有明确的目标形态。
这里,我们提出了一种新的安全体系模型,即P2OTPDR2 模型。
实际上这是一个将IATF 核心思想与PDRR 基本形态结合在一起的安全体系模型,符合我们对信息安全体系设计的基本要求。
P2OTPDR2,即Policy (策略)、People (人)、Operation (操作)、Tech no logy
(技术)、Protection (保护)、Detection (检测)、Response(响应)和Recovery
(恢复)的首字母缩写。
P2OTPDR2分为3个层次,最核心的部分是安全策略,安全策略在整个安全体系的设计、实施、维护和改进过程中都起着重要的指导作用,是一切信息安全实践活动的方针和指南。
模型的中间层次体现了信息安全的3个基本要素:人员、技术和操作,这构成了整个安全体系的骨架,从本质上讲,安全策略的全部内容就是对这 3 个要素的阐述,当然,3 个要素中,人是唯一具有能动性的,是第一位的。
在模型的外围,是构成信息安全完整功能的PDRR 模型的 4 个环节,信息安全 3 要素在这 4 个环节中都有渗透,并最终表现出信息
安全完整的目标形态。
概括来说,在策略核心的指导下,3个要素(人、技术、操作)紧密结合协同作用,最终实现信息安全的 4 项功能(防护、检测、响应、
恢复),构成完整的信息安全体系。
P2OTPDR2 模型的核心思想在于:通过人员组织、安全技术以及运行操作 3 个支撑体系的综合作用,构成一个完整的信息安全管理体系。
虽然只是简单的演绎归纳,但新的安全体系模型能够较好地体现信息安全的各个特点,因而具有更强的目标指导作用。
从全面性来看,P2OTPDR2 模型对安全本质和功能的阐述是完整的、全面的;模型的层次关系也很清晰;外围的PDRR 模型的4 个环节本身就是对动态性很好的诠释;无论是人员管理、技术管理还是操作管理,都体现了信息安全可管理性的特点。
就防护来说,ISO 7498-2所定义的传统的安全技术可以建立起信息安全的第一道防线,包括物理安全措施、操作
系统安全、身份认证、访问控制、数据加密、完整性保护等技术;
在检测环节,病毒检测、漏洞扫描、入侵检测、安全审计都是典型的技术和操作手段;在响应环节,包括突发事件处理、应急响应、犯罪辨析等技术和操作;而在恢复环节,备份和恢复则是最重要的内容。
当然,在这4个环节中,无论是采
用怎样的措施,都能够通过人、操作和技术三者的结合来共同体现安全策略的思想,最终实现信息安全的目标和要求。
下面简单给出八种安全模型的比较:(1)状态机模型:
无论处于什么样的状态,系统始终是安全的,一旦有不安全的事件发生,系统应该会保护自己,而不是是自己变得容易受到攻击。
多级安全策略的算术模型,用于定于安全状态机的概念、访问模式以及访问规则。
主要用于防止未经授权的方式访问到保密信息。
系统中的用户具有不同的访问级(clearance>,而且系统处理的数据也有不同的类别(classification)。
信息分类决定了应该使用的处理步骤。
这些分类合起来构成格(lattice)o BLP是一种状态机模型,模型中用到主体、客体、访问操作(读、写和读/写)以及安全等级。
也是一种信息流安全模型,BLP的规则,Simplesecurityrule, 一个位于给定安全等级内的主体不能读取位于较高安全等级内的数据。
(-propertyrule )为不能往下写。
Stro ngstarpropertyrule, —个主体只能在同一安全登记内读写。
图1-1 Bell-Lapodupa安全模型解析图
基本安全定理,如果一个系统初始处于一个安全状态,而且所有的状态转换都是安全的,那么不管输入是什么,每个后续状态都是安全的。
不足之处:只能处理机密性问题,不能解决访问控制的管理问题,因为没有修改访问权限的机制;这个模型不能防止或者解决隐蔽通道问题;不能解决文件共享问题。
状态机模型,使用规则为,不能向上写:一个主体不能把数据写入位于较高完整性级别的客体。
不能向下读:一个主体不能从较低的完整性级别读取数据。
主要用于商业活动中的信息完整性问题。
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持
图1-2 Biba安全模型解析图
(4)Clark-Wilson 模型:
主要用于防止授权用户不会在商业应用内对数据进行未经授权的修改,欺骗和错误来保护信息的完整性。
在该模型中,用户不能直接访问和操纵客体,而是必须通过一个代理程序来访问客体。
从而保护了客体的完整性。
使用职责分割来避免授权用户对数据执行未经授权的修改,再次保护数据的完整性。
在这个模型中还需要使用审计功能来跟踪系统外部进入系统的信息。
完整性的目标,防止未
授权的用户进行修改,防止授权用户进行不正确的修改,维护内部和外部的一致性。
Biba只能够确认第一个目标。
(5)信息流模型:
Bell-LaPadula模型所关注的是能够从高安全级别流到低安全级别的信息。
Biba 模型关注的是从高完整性级别流到低完整性级别的信息。
都使用了信息流模型,信息流模型能够处理任何类型的信息流,而不仅是流的方向。
(6)非干涉模型:
模型自身不关注数据流,而是关注主体对系统的状态有什么样的了解,以避免较高安全等级内的一个实体所引发的一种活动,被低等级的实体感觉到。
(7)Brewer 和Nash 模型:
是一个访问控制模型,这个模型可以根据用户以往的动作而动态地改变。
模型的主要功能就是防止用户访问被认为是利益冲突的数据。
创建允许主体在客体上操作的相关权限;
Harrison-Ruzzo-Ullman模型:允许修改访问权以及如何创建和删除主体和客体。
软件安全性的10原则和相互作用
原则1 :保护最薄弱的环节
安全性社区中最常见的比喻之一是:安全性是根链条;系统的安全程度只与最脆弱的环节一样。
结论是系统最薄弱部分就是最易受攻击影响的部分。
攻击者往往设法攻击最易攻击的环节,这对于您来说可能并不奇怪。
如果他们无论因为什么原因将您的系统作为攻击目标,那么他们将沿阻力最小的路线采取行动。
这意味着他们将试图攻击系统中看起来最薄弱的部分,而不是看起来坚
固的部分。
即便他们在您系统各部分上花费相同的精力,他们也更可能在系统最需要改进的部分中发现问题。
这一直觉是广泛适用的。
银行里的钱通常比便利店里的钱多,但是它们哪一个更易遭到抢劫呢?当然是便利店。
为什么?因为银行往往有更强大的安全性防范措施;便利店则是一个容易得多的目标。
让我们假定您拥有一家普通的银行和一家普通的便利店。
是为保险库添加额外的门并将安全人员的数目翻倍,还是为便利店花费同样数目的钱雇佣安全官员更划算呢?银行可能已经将出纳员置于防弹玻璃之后,并安装了摄像机、配备了安全保卫、装备了上锁的保险库以及具有电子密码的门。
相比之下,便利店可能装备了没那么复杂的摄像机系统以及很少的其它设备。
如果您将对您的金融帝国的任何一部分进行安全性投资,那么便利店将是最佳选择,因为它的风险要大得多。
这一原则显然也适用于软件世界,但大多数人并没有给予任何重视。
特别地,密码术不太会是系统最薄弱的部分。
即使使用具有512 位RSA 密钥和40 位RC4 密钥的SSL-1 ,这种被认为是难以置信的薄弱的密码术,攻击者仍有可能找到容易得多的方法进入。
的确,它是可攻破的,但是攻破它仍然需要大量的计算工作。
如果攻击者想访问通过网络传输的数据,那么他们可能将其中一个端点作为目标,试图找到诸如缓冲区溢出之类的缺陷,然后在数据加密之前或在数据解密之后查看数据。
如果存在可利用的缓冲区溢出,那么世界上所有的密码术都帮不了
您― 而且缓冲区溢出大量出现在 C 代码中。
因为这一原因,虽然加密密钥长度的确对系统的安全性有影响,但在大多数系统中它们并不是如此的重要,在这些系统中更重要的事情都有错。
同样地,攻击者通常并不攻击防火墙本身,除非防火墙上有众所周知的弱点。
实际上,他们将试图突破通过防火墙可见的应用程序,因为这些应用程序通常是更容易的目标。
如果执行一个好的风险分析,则标识出您觉得是系统最薄弱的组件应该非常容易。
您应该首先消除看起来好象是最严重的风险,而不是看起来最容易减轻的风险。
一旦一些其它组件很明显是更大的风险时,您就应该将精力集中到别的地方。
当然,可以永远使用这一策略,因为安全性从来就不是一个保证。
您需要某些停止点。
根据您在软件工程过程中定义的任何量度,在所有组件都似乎在可接受的风险阈值以内时,您应该停下来。
原则 2 :纵深防御
纵深防御背后的思想是:使用多重防御策略来管理风险,以便在一层防御不够时,在理想情况下,另一层防御将会阻止完全的破坏。
即便是在安全性社区以外,这一原则也是众所周知的;例如,这是编程语言设计的着名原则:
纵深防御:采取一系列防御,以便在一层防御不能抓住错误时,另一层防御将可能抓住它。
让我们回到为银行提供安全性的示例。
为什么典型的银行比典型的便利店更安全?因为有许多冗余的安全性措施保护银行― 措施越多,它就越安全。
单单安全摄像机通常就足以成为一种威慑。
但如果攻击者并不在乎这些摄像机,那么安全保卫就将在那儿实际保护银行。
两名安全保卫甚至将提供更多的保护。
但如果两名保卫都被蒙面匪徒枪杀,那么至少还有一层防弹玻璃以及电子门锁来保护银行出纳员。
如果强盗碰巧砸开了这些门或者猜出了PIN ,起码强盗将只能容易抢劫现金出纳机,因为我们有保险库来保护余下部分。
理想情况下,保险库由几个锁保护,没有两个很少同时在银行的人在场是不能被打开的。
至于现金出纳机,可以为其装备使钞票留下印记的喷色装置。
当然,配备所有这些安全性措施并不能确保银行永远不会遭到成功的抢劫。
即便在具备这么多安全性的银行,也确实会发生银行抢劫。
然而,很清楚,所有这些防御措施加起来会形成一个比任何单一防御措施有效得多的安全性系统。
这好象同先前的原则有些矛盾,因为我们实质上是在说:多重防御比最坚固的环节还要坚固。
然而,这并不矛盾;“保护最薄弱环节”的原则适用于组件具有不重叠的安全性功能的时候。
但当涉及到冗余的安全性措施时,所提供的整体保护比任意单个组件提供的保护要强得多,确实是可能的。
一个好的现实示例是保护在企业系统不同服务器组件间传递的数据,其中纵深防御会非常有用,但却很少应用。
大部分公司建立企业级的防火墙来阻止入侵者侵入。
然后这些公司假定防火墙已经足够,并且让其应用程序服务器不受阻碍地同数据库“交谈”。
如果数据非常重要,那么如果攻击者设法穿透了防火墙会发生什么呢?如果对数据也进行了加密,那么攻击者在不破解加密,或者(更可能是)侵入存储未加密形式的数据的服务器之一的情况下,将不能获取数据。
如果我们正好在应用程序周围建立另一道防火墙,我们就能够保护我们免遭穿透了企业防火墙的人攻
击。
那么他们就不得不在应用程序网络显式输出的一些服务中寻找缺陷;我们要紧紧掌握那些信息。
原则 3 :保护故障
任何十分复杂的系统都会有故障方式。
这是很难避免的。
可以避免的是同故障有关的安全性问题。
问题是:许多系统以各种形式出现故障时,它们都归结为不安全行为。
在这样的系统中,攻击者只需造成恰当类型的故障,或者等待恰当类型的故障发生。
我们听说过的最好的现实示例是将现实世界同电子世界连接起来的示例― 信用卡认证。
诸如Visa 和MasterCard 这样的大型信用卡公司在认证技术上花费巨资以防止信用卡欺诈。
最明显地,无论您什么时候去商店购物,供应商都会在连接到信用卡公司的设备上刷您的卡。
信用卡公司检查以确定该卡是否属被盗。
更令人惊讶的是,信用卡公司在您最近购物的环境下分析您的购物请求,并将该模式同您消费习惯的总体趋势进行比较。
如果其引擎察觉到任何十分值得怀疑的情况,它就会拒绝这笔交易。
从安全性观点来看,这一方案给人的印象十分深刻― 直到您注意到某些事情出错时所发生的情况。
如果信用卡的磁条被去磁会怎样呢?供应商会不得不说:“抱歉,因为磁条破了,您的卡无效。
”吗?不。
信用卡公司还向供应商提供了创建您卡的标记的手工机器,供应商可以将其送给信用卡公司以便结帐。
如果您有一张偷来的卡,那么可能根本不会进行认证。
店主甚至可能不会向您要您的ID 。
在手工系统中一直有某些安全性所示,但现在没了。
在计算机网络出现以前,可能会要您的ID 以确保该卡同您的驾驶证相匹配。
另外需要注意的是,如果您的号码出现在当地定期更新的坏卡列表之内,那么该卡将被没收。
而且供应商还将可能核查您的签名。
电子系统一投入使用,这些技术实际上就再也不是必需的了。
如果电子系统出现故障,那么在极少见的情况下,会重新使用这些技术。
然而,实际不会使用这些技术。
信用卡公司觉得:故障是信用卡系统中十分少见的情形,以致于不要求供应商在发生故障时记住复杂的过程。
系统出现故障时,系统的行为没有通常的行为安全。
遗憾的是,系统故障很容易引起。
例如,很容易通过将偷来的信用卡在一块大的磁铁上扫一下来毁坏其磁条。
这么做,只要小偷将卡用于小额购买(大额购买经常要求更好的验证),他们就
或多或少地生出了任意数目的金钱。
从小偷的角度看,这一方案的优点是:故障很少会导致他们被抓获。
有人可以长期用这种方法使用同一张卡,几乎没有什么风险。
为什么信用卡公司使用这种愚蠢落后的方案呢?答案是:这些公司善于风险管理。
只要他们能够不停地大把赚钱,他们就可以承受相当大数量的欺诈。
他们也知道阻止这种欺诈的成本是不值得的,因为实际发生的欺诈的数目相对较低。
(包括成本和公关问题在内的许多因素影响这一决定。
)
大量的其它例子出现在数字世界。
经常因为需要支持不安全的旧版软件而出现问题。
例如,比方说,您软件的原始版本十分“天真”,完全没有使用加密。
现在您想修正这一问题,但您已建立了广大的用户基础。
此外,您已部署了许多或许在长时间内都不会升级的服务器。
更新更聪明的客户机和服务器需要同未使用新协议更新的较旧的客户机进行互操作。
您希望强迫老用户升级,但您尚未为此做准备。
没有指望老用户会占用户基础中如此大的一部分,以致于无论如何这将真的很麻烦。
怎么办呢?让客户机和服务器检查它从对方收到的第一条消息,然后从中确定发生了什么事情。
如果我们在同一段旧的软件“交谈”,那么我们就不执行加密。
遗憾的是,老谋深算的黑客可以在数据经过网络时,通过篡改数据来迫使两台新客户机都认为对方是旧客户机。
更糟的是,在有了支持完全(双向)向后兼容性的同时仍无法消除该问题。
对这一问题的一种较好解决方案是从开始就采用强制升级方案进行设计;使客户机检测到服务器不再支持它。
如果客户机可以安全地检索到补丁,它就升级。
否则,它告诉用户他们必须手工获得一个新的副本。
很遗憾,重要的是从一开始就应准备使用这一解决方案,除非您不在乎得罪您的早期用户。
远程方法调用(Remote Method invocation (RMI))的大多数实现都有
类似的问题。
当客户机和服务器想通过RMI 通信,但服务器想使用SSL 或一些其它加密协议时,客户机可能不支持服务器想用的协议。
若是这样,客户机通常会在运行时从服务器下载适当的套接字实现。
这形成了一个大的安全漏洞,因为下载加密接口时,还没有对服务器进行认证。
攻击者可以假装成服务器,在每台客户机上安装他自己的套接字实现,即使是在客户机已经安装了正确的SSL 类的情况下。