《金融信息安全6访问控制》由会员分享,可在线阅读,更多相关《金融信息安全6访问控制(86页珍藏版)》请在金锄头文库上搜索。
1、金融信息安全-访问控制1 1主要内容访问控制系统概述访问控制系统组成、数学模型策略类型、策略语言安全策略的设计原则自主访问控制访问控制列表、能力、授权证书多级安全BLP模型Biba模型访问规则、信息流分析Lipner完整性矩阵模型多级安全系统的建立可信平台模块、安全操作系统、软件沙箱多级安全系统的困难2 2主要内容多边安全长城模型个人信息保护访问规则、实现技术基于角色的访问控制模型的组成组织中的角色事务完整性模型身份完整性过程完整性职责隔离和过程授权日志完整性3 3访问控制策略模型访问控制是实现各种安全属性的核心技术,是安全工程与计算机科学的结合点。访问控制是按事先确定的规则决定主体对客体的访
2、问是否合法。通过身份认证的用户,只是拥有了进入应用系统和数据库的“凭证”,但用户能读或写服务器上的哪些数据、执行那些交易,如何与其他主体共享数据等,就要依靠“访问控制”的权限分配和约束。根据具体应用,可采取不同粒度的访问控制。访问请求包含访问者信息,访问请求信息,目标信息,上下文信息。访问者信息指用户的身份、权限信息(授权证书信息)等;访问请求信息包括访问动作,如读写、执行、搜索等的信息;目标信息包含资源的等级敏感度等信息;上下文信息主要指影响决策的应用端环境,如会话的有效期等。4 4访问控制模型访问控制模型5 5策略实施点策略描述了对系统中实体和行为的约束,策略是独立于机制的。假设一个系统接
3、入到Internet,用户启动了Web浏览器,Web浏览器从远程站点下载程序并在本地执行,本地系统的策略会约束下载程序的功能范围。应用内实现访问控制的一段代码或者监听程序。它截获访问者发出的对某一目标的访问请示,对请求进行处理,根据用户信息、操作请求和目标形成决策请求,发给决策点。策略决策点一个判断逻辑,如访问控制代码中的判断函数。决策单元和执行单元不必是分开的模块。它根据用户权限,策略规则对决策请求进行判断,并将决策结果返给策略执行点,允许/拒绝策略执行点根据决策结果执行访问或拒绝访问系统。决策单元中包含访问控制信息,能够提示攻击者哪些用户具有访问权限。为了防止攻击者获得这些信息,访问控制文
4、件的内容应该是保密的。6 6访问控制的实现方式访问控制实现有以下三种方式,访问控制代码,服务器插件和代理服务器。基于应用的方式(ApplicationBased)在应用程序中使用进行访问控制的代码,在应用程序内部对访问请求进行直接的控制和处理。服务器插件方式(Plug-InBased)针对应用服务器(如Web)建立服务器的安全插件,在服务器上对请求进行处理,可以与具体的应用服务器紧密集成,插件可以在相同的应用服务平台上重复使用。代理方式(ProxyBased)在用户和应用服务器之间建立访问控制代理服务器,对访问请求进行处理后,允许的访问被转发到应用服务器。访问控制实现部件可以位于通路两端,如V
5、PN机,加密路由器,加密防火墙等使用门卫模式,在应用层到链路层,从探测设备到安全网关等出入关控制设备等控制系统或使用内部控制模式,在应用层或表示层实现访问控制决策。7 7安全策略的数学模型在系统模型(R,D,W,z0)中,有下列元素:访问请求集R:用于请求访问系统受控资源。决策集D:yes,no,error,?,请求决策,其中yes为许可,no为拒绝,error为错误,?表示未决。状态集V:由模型中的状态变量构成,不同的系统变量值就构成了不同的系统状态实例。定义WRDVV。z0为系统的初始状态。一个元素t0,1,2,t,表示一个离散时刻,可以作为一个有关请求、决策和状态序列以及状态元素的索引。
6、例如,zt是状态序列z中的第t个状态。设x是请求序列,y是决策序列,z是状态序列,当且仅当T中的任何一个=1,(xt,yt,zt,zt-1)W都在系统(R,D,W,z0)中,有(x,y,z)(R,D,W,z0)。8 8安全策略安全策略把状态分割为一个授权状态集和一个非授权状态集。当一个系统进入了一个非授权状态,则称出现了安全违反。例如,设一个有限状态机由4个状态和5个变换组成,有授权状态集A=s1,s2和非授权状态集UA=s3,s4。在这个系统中,尽管系统是从授权状态开始的,但是由于其可以进入一个非授权状态,所以它并非一个安全系统。如果没有从s1到s3的边(t3),则该系统就是一个安全系统。9
7、 9安全策略类型访问控制策略有许多类型,以下几个因素是产生不同类型的主要原因:在哪一个级别上作授权决策。用户和/或目标用哪种方法被连在一起以达到共同操作的目的;策略的哪些扩展可根据由系统部件自动实施的一般规则来陈述。自主式策略(DAC)访问权限基于主体和客体的身份。个人用户可以设置控制机制来许可或拒绝,客体的拥有者通过允许特定的主体进行访问,以限制对客体的访问。如何分组用户和目标有很大的灵活性,其范围可从单个用户和目标的清晰识别到广阔的组的使用。1010自动访问控制策略的弹性使它适合于多种系统及应用,如windows、unix等。强制式策略(MAC)主体和客体的拥有者都不能决定访问的授权。系统
8、机制通过检查主体与客体的相关的信息来决定主体是否可以访问客体。基于能自动实施的系统规则,规则描述允许访问的条件。为将这样的规则付诸实施,用户和目标必须使用一个很广阔的组。例如,法律允许法庭在未经拥有者允许的情况下查看其驾驶纪录就是强制访问控制,因为记录的拥有者不能控制法庭对信息的访问。1111安全策略类型强制存取控制通过安全级来强制性约束主体对客体的存取,其安全性比自主访问控制的安全程度高。强制访问控制的主要缺陷在于实现工作量太大,管理不便,不够灵活,同时,对其他方面如系统连续工作能力、授权的可管理性等考虑不足。除了DAC和MAC外,系统还可基于客体的创建者进行数据访问,称为创建者控制访问控制
9、,并可通过使用附加的控制来进一步强化这些策略。这些附加的控制包括:1)依赖于值的控制有时,目标的敏感性会依据当前存储的数据值而改变。例如,对超过某临界值的金额的账号的信息也许要比相同的公司数据库的其他合同提供更强的保护。2)多用户控制3)基于上下文的控制允许访问控制策略在确定一个目标时依靠外部因素,例如时间、用户的位置、通信路径、认证强度。例如,访问一个特定的目标可能只有在工作时间并在公司允许的电脑上才可以访问。1212访问控制策略的组合使用对于相同的信息结构,可能具有不同的访问控制粒度,不同级别的粒度可能在逻辑上有截然不同的访问控制策略和采用不同的访问控制机制。一般地,可组合使用这些策略进行
10、系统地访问控制,当多种策略运用于一个目标时,有必要建立一些关于这些策略之间如何协调的规则。在一个包含多个安全区域的路径上提供访问控制时,有时可能需要在一个安全区域的边界翻译、映射、访问控制一个伴随一个访问请求的信息。这是由于在临近的区域有不同的安全策略所导致的。例如:标识符映射;角色名称映射;一个区域中的个体在另一个区域中映射为角色。1313策略语言策略语言是描述安全策略的语言。高级安全策略语言使用抽象的方法来表达对实体的策略约束。其准确性依赖于策略的数学公式或程序公式,而普通语言是不够准确的。低级策略语言则根据系统中程序的输入或调用选项来表达约束。1414设计原则Saltzer和Schroe
11、der提出了8条设计原则,充分体现了简单性与限制性的思想。简单性在配置复杂的情况下,容易出现安全漏洞,因而要尽量降低安全机制的复杂度。简单性减少了安全策略之间的潜在的不一致性,简单的设计更不易出错,例如,减少系统构件交互的次数将直接减少构件间传输数据的合理性检查次数。而且,简单性也增强了设计与实现的可理解性。限制性要求只有在必要时实体间才进行通信,并且通信只使用尽可能少的方法,从而使得实体只能访问其所需要的信息,减弱了实体的能力。1515若干限制性规则实施最小权限最小权限原则规定只授予主体用于完成任务所需的权限,要求进程应该被限制在尽可能小的保护区域之内。自动防护缺省原则除非显式授予某主体对特
12、定客体的访问权,否则此主体必须被拒绝访问该客体。要求如果主体不能完成其操作或工作,应当注意在操作或工作终止之前撤销它对系统安全状态的改变。当一个进程对敏感对象(包括秘密信息)使用完后,这些对象应该对删除、释放或者清除。1616若干限制性规则假定外部系统是不可信的。远方的主机可能是不可信的,对环境作了不正确假定的安全机制。在配置复杂的情况下,容易出现,因而要尽量降低安全机制的复杂度。完全仲裁原则要求所有对客体的访问都要经过检查,以保证访问的合法性。文件完整性检查工具能够在一定程度上检验出文件是否被篡改,但是在检查间隔内黑客仍可能改变文件。“第二次访问”请求如果不进行检查,则会导致违反完全仲裁原则
13、:在unix中,进程向系统内核出示一个文件描述符,该文件描述符指示了所允许的访问操作。如果文件拥有者在文件描述符签发后就拒绝了进程的读请求,系统内核将仍允许这次访问。1717若干限制性规则权限分离原则规定系统不根据单一条件签发文件访问许可。例如,超过一定金额的交易必须由两名以上的操作人员完成。类似地,系统与程序在对资源访问授权时也应至少满足两个条件,这种方法提供了一种资源的细粒度访问控制,同时对访问的合法性通过了额外保证。最小公共机制原则资源共享提供了信息传输的通道。用于访问资源的机制不应被不适当地共享,这些机制可能位于系统的不同层次。这一原则起源于对拒绝服务攻击的处理,因为拒绝服务攻击利用了
14、共享资源。最小公共机制原则可用于处理隐通道问题。1818自主访问控制访问控制列表(ACL)广泛用于用户自行管理其文件安全的场合。在Unix系统中,访问控制列表通常标志一个文件是否是一个目录,所有者、组和其它人的读写和执行权限,并且具有所有者和组的名字。例如,一个文件的访问列表可以是-rw-r-AliceAccounts代表所有者可以读写,组可以读,其他没有访问权限,文件所有者是Alice,组是Accounts。访问决策基于程序所关联的用户号,系统启动时获得控制权的程序关联到超级用户号0,具有无限权限,可以访问任何资源,成为任何用户等。以特权用户身份运行的程序包括网络服务程序HTTPServer
15、、MailServer1919访问控制列表文件的suid和sgid属性可以间接地实现(用户,程序,文件)控制三元组suid/sgid程序是Unix一项特殊技术,普通rwx之上加上s位,文件的suid标记或sgid标记使它可在所有者权限下而不是在调用者权限下运行。然而,文件的suid标记或sgid标记经常是不适当的。人们通常不去认真思考问题,而是简单地将suid置为超级用户,这会导致严重的安全隐患:大部分程序员经验不足或安全意识不强,从而为他们的代码赋予了过多的权限,用户可通过调用具有超级suid的程序控制整个运行环境,从而导致保护失败。2020访问控制列表WindowsNT系统也大量使用访问控
16、制列表。与unix的不同是:它添加了拥有、修改权限和删除,而不只是读、写和执行,因而可进行更灵活的授权。这些属性可用于组,这样可达到unix中的sgid机制所能达到的功能。权限属性不简单地进行开关,而是可以设置:访问拒绝、访问允许和系统审计。这样,进行日常配置操作是可以不必使用完全的管理员权限。2121访问控制列表的局限性首先,访问控制列表不能很好地表达变化着的状态,难以管理有状态的访问规则,如果需要进行实时安全检查,效率会下降。同时,难以追踪文件的打开状态,导致操作系统必须在文件访问时查看访问控制列表,或以某种其它方法跟踪活动着的访问权限。其次,将访问规则分散在各个访问控制列表会造成:要找到
17、一个用户拥有权限的所有文件是困难的。例如,要取消一个离职员工的访问权限,通常只有通过撤销其口令和其它认证机制。2222ACL存在一些根本性的问题,从而无法满足Web应用这样的新兴分布系统的安全需求:1用户身份鉴别困难,用户不一定为系统所熟知;2缺乏委托机制,分布的系统管理任务需要委托机制的支持;3表达能力和可扩展性差,无法处理多变的安全条件和个性化的安全需求;4本地信任策略不能跨越管理域,而Web应用往往需要跨越多个管理域。2323访问控制矩阵在访问控制矩阵中,使用列表示文件,行表示用户。各点表示不同的访问权限。一个主体的访问权限可以使用行来表示,称为能力。在关系型数据库的访问控制中,可使用授
18、权关系列表作为能力矩阵的变体,在授权关系列表中,每一行(一个元组)表示了主体和客体的一个权限关系,主体访问一个客体的权限关系可能需要多行。相对于访问控制列表,能力机制的一个优点是,它可以使实时安全检查更加有效。使用能力机制,通过将某个用户设为无访问权限,可立即锁定资源。使用能力设施,可以方便地进行授权。例如,Bob可以建立一个证书说明:“这是我的能力,我将这一权力授权给David,使他可以在上午9点到下午1点间读一个文件;Bob的签名”。2424基于能力的系统IBMAS/400系列系统采用基于能力的保护,获得了商业上的成功。然而,最重要的能力应用当数Win2K系统。Win2K为系统添加了能力,
19、以覆盖或补充NT4中的访问控制列表:在Win2K中,对于单个资源,使用更细粒度的访问控制列表同时,建立用户或组策略使用profile的形式被列出。策略可使用标准工具或客户代码创建。Win2K系统以组作为集中配置管理和控制的首要方法,组策略覆盖单个用户的profile文件。组定义为一个活动目录。活动目录是一个面向对象的数据库,可以在一个命名空间域中组织用户、组、机器和组织单元,为它们建立一个索引,以使它们能按属性进行索引。一般来讲,组策略可与站点、域和组织单元相关,因而通过命名管理可解决一些实际的复杂问题。2525访问控制矩阵不能处理大规模应用系统的内部访问控制要求。例如,具有50,000员工和
20、300个应用的系统的访问控制矩阵达到1500万个条目。如此巨大的矩阵不仅会降低处理性能,而且会导致管理员发生错误。这表明访问控制矩阵不太适用于大型且不断变化的用户群体。2626授权证书授权证书公钥证书中的扩展域以及随后出现的授权证书是能力概念的新发展,可用于处理客户的访问控制。公钥证书经常被视为“密码”而不是“访问控制”,其对安全控制策略和访问控制政策的影响经常容易忽视,这对安全应用来说是不利的。X.509中的公钥证书带有某些扩展项,从理论上讲,这些证书可以用来完成访问控制功能。为更有效地实现大规模网络中分布式资源的管理和共享,ISO/IEC9594-8提出了授权管理基础设施(Privileg
21、eManagementInfrastructure,PMI)技术,使用另外一个相对独立的第三方(AA)签发轻量级的数字证书授权证书,也称授权证书。2727授权证书的应用模型2828授权证书一般不包含公钥信息,到了有效期的日期,证书将会自动失效,从而可以避免公钥证书在撤销时的种种弊端。作为PKI系统的增值服务,授权证书通常建立在身份证书基础之上。授权证书应该对证书的持有者能够进行的商务活动的范围、质量、有效期和其他附属条件等商务策略作出规范,实现细粒度的、基于角色的访问控制和授权管理,并为数据起源认证和非否认性提供所需要的附加证据。2929一致性验证过程一致性验证过程3030基于授权证书,可实现
22、一个独立于具体应用的信息管理模型。在这个模型,应用服务器是策略实施点,在进行交易过程中,应用服务器方向信任管理引擎发送一个验证的请求。信任管理引擎是策略决策点,根据授权证书和本地策略库中的相关策略,输出是否容许访问的应答。策略准确定义了什么时候权限验证者应该确定一套已存在的权限是“充分的”,可以对要求的对象、资源,应用等等进行访问。由于要进行授权证书的查找验证解析,信任管理引擎会导致一定的性能损失。但是,可以在PMI中使用缓冲技术,只是在用户登录系统时验证解析证书,在整个访问过程中证书的验证解析上损失的时间很小。3131BLP模型模型BLP模型是一种为保护信息的机密性提出的模型,防止信息的非授
23、权泄漏。在BLP模型中,主体和客体都有一个安全等级,安全等级包含两方面的内容:密级和部门(或称类别),即某个主体能否成功地访问到某客体,不仅取决于二者的密级是否匹配,还取决二者的部门是否匹配。一般将文档的密级从下到上分为未分级、敏感、秘密和绝密,具体划分标准是变化的。例如,一开始将关系到人的生命安全的信息标记为“秘密”,将关系到许多人安全的信息标为“绝密”。政府雇员要接受严格的背景调查。有时在未分级、敏感之间加入一个“受限制的”级别。安全等级的支配关系定义如下:令、是安全密级,、是安全类别,当且仅当LL且C包含C时,有(L,C)(L,C)。3232BLP模型的访问控制策略BLP模型形式化地定义
24、了系统状态及状态间的转换规则,并制定了一组约束系统状态间转换规则的安全公理。BLP模型的自主存取控制通过存取控制矩阵按用户的意愿来进行存取控制。在BLP模型中,强制存取控制部分下面的简单安全特性和*特性组成:简单安全公理当且仅当SC(s)SC(o),且s对o具有自主读权限时,允许s对o读操作。*特性公理当且仅当SC(s)SC(o),且s对o具有自主写权限时,允许s对o写操作。3333BLP模型的*特性*特性可以防止高级实体向低级实体发送信号,能够对抗恶意和有缺陷的代码所造成的危害。商业间谍可以潜入商业软件公司,在其产品中嵌入代码,具有“机密”权限的系统管理员可能会执行木马代码,这样木马可以将其
25、自身拷贝到系统的机密区域并且将信息传递给代码的编写者,则安全失效。如果一个应用程序本身可以向下写,应用程序的漏洞将会导致安全策略的违反。基本安全定理系统是安全系统,当且仅当初始状态是安全状态,且对每一次状态转换满足简单安全特性、*特性和自主安全特性。3434BLP模型应用中的问题强宁静特性规定系统运行中安全标记不可改变。弱宁静属性执行最宽松的原则,允许安全标记在不违反已定义的安全策略时可以改变。弱宁静属性的引入动机是在实际中,我们经常要处理具有最低权限的主体。即使一个主体被标记为“绝密”,他也首先开始执行一个无密级的进程。在弱宁静属性中,如果要处理一个敏感级的邮件,则会话自动升级到“敏感”级。
26、每次处理较高级别的数据时,会话和进程也进行自动升级,并且在缺省情况下,其随后所写的文件都具有升级后的密级,即实现高水标原则。进一步,BLP模型使用了可信主体的概念,用于表示在实际系统中不受*特性制约的主体,以保证系统正常运行和管理。例如,在HP-UX/CMW中,将安全内核外的一些应用进程视为可信进程,使它们可以绕过系统的访问控制机制等。这种可信主体不受*特性约束,其访问权限往往太大,不符合最小特权原则。因此应对可信主体的操作权限和应用范围进一步细化。3535BLP模型中的可信主体策略举例:1所有从外部组件流入内部组件的信息必须经过访问控制组件;2系统还要求所有模块可以读取系统配置信息,但不能对
27、其修改;3所有模块可以追加日志信息,但不能读取该信息。可信主体为了实现访问控制模块的信道控制功能,可将访问控制模块设置为可信主体,信息流除了通过访问控制模块能向下流入内外模块以外,其他所有信息流都只能从下向上流。可信主体的局限性访问控制模块是可信实体,但其密级的设置要低于日志,因而不能读取日志信息;其完整性级别低于配置文件,因而不能篡改配置信息。这说明,访问控制模块作为可信实体,其行为仍然受到访问控制机制的严格控制,并在其职责范围内完成信息降密的任务。3636Biba模型Biba是多级完整性访问控制模型,通常被称为BLP模型的对偶。一个认证控制装置可能具有两种不同的模式:校准和使用。对正常用户
28、,可清除使用过程积累的数据;而对校准参数,普通用户只能进行读取而不能进行修改,以防止系统的失效。Biba模型防止高完整性等级的客体被低等级主体污染,从而变得不再可靠。3737信息转移路径3838Biba模型的访问规则3939Biba模型的应用WEB服务器在WEB服务器中,可以将Web服务器上发布的资源的安全级别定义为秘密,Internet上用户的安全级别为公开,依照Biba模型,Web服务器上数据的完整性将得到保障,Internet上的用户只能读取服务器上的数据而不能更改它,因此,任何POST操作将被拒绝。网络设备的配置另一个例子是对系统状态信息的收集,网络设备作为对象,被分配的安全等级为机密
29、,网管工作站的安全级别为秘密,那么网管工作站将只能使用SNMP的get命令来收集网络设备的状态信息,而不能使用set命令来更改该设备的设置。这样,网络设备的配置完整性就得到了保障。软件的执行在LOCUS操作系统中,使用完整性等级来度量可信度,并根据软件源的不同而指定了从0到n的度量值,用户进程如果要执行一个信用等级较低的程序,用户必须使用run-untrusted命令,表示接受相关的风险。4040Biba模型的低水标原则Biba模型通常使用低水标原则:目标的完整性等级是所有写或修改过它的目标完整等级中最低的。具有两种不同的表现形式:(1)主体低水标模型(TheLow-Water-MarkMod
30、elonSubject)在此模型中,每个主体的完整性级别不是静态不变的,而是它前一状态的函数。此策略保证了主体的l(s)函数值是动态的、单调的和非递增的。主体低水标模型只要求调整主体的完整级。(2)客体低水标模型(TheLow-Water-MarkModelonObject)客体低水标模型,除了改变主体的完整性级别外,被修改客体的完整性级别也要进行调整。即客体在被主体修改后,它的完整性级别也是单调不增的。例如,使用低水标原则对Linux系统的扩展,系统文件具有高等级,而网络具有低等级。一旦程序(例如守护进)收到网络消息,则它自动降级。4141Biba模型在两个方面强调进程的完整性,分别是程序的
31、完整性和访问控制文件的完整性。其中,程序的完整性是为了有效地保护它,使得只有合法的开发人员才能对其进行修改。Biba的完整级概念可以用于安全配置的完整性分析。Shankar等人SHAN06对安全关键应用进行信息流完整性验证时,把TCB内主体标识为高完整级,而非TCB主体则是低完整级的,通过分析是否存在低完整级到高完整级的信息流来分析配置的安全性。在SElinux系统中,我们把(类别,许可权)组成的序偶(c,p)定义为操作。以Web服务器系统为例,Web服务器(httpd_t)是高完整性的进程,而普通用户(users_t)是低完整性的,如果规则选择不当,则会存在不安全的信息流。4242Biba模
32、型的不足低水标策略约束了所有的信息转移路径:如果存在一个从客体O1到客体On+1的一条信息转移路径,那么在这种低水标策略下,有SC(On+1)SC(O1)。在实践中,主体的等级往往需要改变,如果主体的等级是非递增的,这意味着它很快就不能访问完整等级较高的客体。另一种策略是降低客体的完整性等级而不是主体的完整性等级,但是这种策略又存在将客体完整性降低到最低的特性。4343Biba模型的不足Biba模型定义的完整性是在子系统级别进行评价的。子系统是指由那些根据函数或优先级分离出来的系统主体和客体所组成的子集;一个计算机系统可以包含任意个子系统。这使得其应用粒度不能达到较为细致的水平。在使用范围上,
33、Biba认为程序测试和验证技术完全可以处理内部的威胁;因此Biba模型只涉及到外部威胁。在安全规则的处理上,Biba模型也存在一些缺陷:Biba模型通过完整级的偏序格关系来制定安全规则,一旦某一级别的主体被病毒感染,那么病毒的影响将扩散到完整级低于该主体的所有主体和客体。这已经被Cohen用实验所证实。其次,Biba模型没有对修改的方式进行限制,某一主体完整级一旦高于某一客体完整级,它就可以以任何方式修改该客体。最后,模型没有给出完整级定义的标准,其最大的问题是它不是来源于实际的安全需求,而是建立在对安全模型进行数学分析的基础上的,因此缺乏应用背景。4444Lipner完整性矩阵模型商业数据完
34、整性需求:用户不能自己编写程序,而要使用现有的生产程序和生产数据库。程序员开发测试程序是在一个非生产系统上完成的,如果他们需要访问实际的数据,他们就需要使用特定的处理过程来获得生产数据,但是他们只能在自己的开发系统上使用数据。将开发系统上的一个程序安装到生产系统上必须遵从一个特定的处理过程。必须对上面的特定处理过程进行控制和审计。管理员和审计员必须能够对系统状态和已生成的系统日志进行访问4545安全等级和安全类别Lipner使用了BLP模型,Lipner模型依据下面次序提供两种安全等级:审计管理(AM):系统审计和管理功能所处的等级;系统底层(SL):任何进程都可在这一等级上读取信息安全类别:
35、生产(SP):生产代码和生产数据;开发(SD):开发安全类别;系统开发(SSD):4646完整性等级和类别为了修正这个问题,Lipner将他的模型与Biba的模型进行了综合。首先对安全等级进行扩充,增加三个完整性等级(从高到低):系统程序(ISP):系统程序的等级;操作级(IO):生产程序和开发软件的等级;系统低层(ISL):用户登录时的等级可区分生产软件与数据和开发软件与数据的两类完整性类别:开发(ID):开发实体;产品(IP):生产实体4747主体完整性等级表4848客体完整性等级表4949多级安全系统的建立可信平台模块(TPM)为系统中的不同部分维护一个用于表达可信度的局部级别,以支持硬
36、件实现的授权体系。在TPM的同一个平台中,可同时存在多个信任根,使用这些信任根区分来自不同LOCAL的命令。TPM所有者可以将外部软件进程,如某个可信操作系统的特征存储于某个特定的空间,并将其摘要存储于PCR中,并为它赋予一个表达可信度的局部级别。某些配置组合比其他组合得到更高的授权,5个不同的localities:0正常应用程序,1可信应用程序,2可信OS,3辅助/保留,4可信芯片组。任何实体如进程、线程或嵌入的控制器等提交的TPM操作命令,如果可能对安全性或隐私性造成影响,则必须得到授权,并且通过合法性验证后才能被执行。5050安全操作系统安全操作系统可以在一台主机上将管理员权限分成系统管
37、理员、安全管理员、安全审计员以及其它一般性质的业务操作人员,分三或四级,包括核心级、执行级、管理级、用户级等,并且同时取消操作系统的超级用户特权。可信计算基(TCB)被定义为硬件、软件、人等组件组成的集合,监控整个操作系统收到的所有访问请求,检验它们的访问权限并决定是否为这个请求提供服务。在许多情况下,TCB不仅能对抗恶意泄漏,而且防止更加具有威胁性的应用程序和用户无意的泄漏。5151用户级沙箱用户可以运行从站点下载的称为applet的代码。这些代码可以做一些有害的事情,如将敏感信息传送出去。沙箱提供了一种受限环境,使得有害代码不能接触本地硬盘(或者临时接触有限的目录),并且只允许它与其来源主
38、机通信。如果进程P在沙箱中运行子进程Q,则Q的权限集合可被限制为P的权限集合的子集。例如,如果P运行在真实的操作系统环境中(这也是一个最大的沙箱)且拥有足够的权限,那么P可以查看系统上的所有进程。而Q由于拥有的权限少,则只能看到与其运行在同一个沙箱中的进程。利用沙箱可以限制因Q误操作而引起的危害。通过使用Java虚拟机(JVM)翻译执行可达到这一安全目标,这是由于JVM只具有有限访问权限。5252构建用户级沙箱的方法软件容错隔离。这一方法将软件模块的代码和数据加载到自己的容错域。容错域在逻辑上独立于应用的地址空间,包含一段连续的内存空间,有着独立的标识符,用于控制其对资源的访问,如文件描述符。
39、修改模块的目标代码,阻止其跳转出自己的容错域或向容错域外的空间进行写操作。这样隔离在容错域中的程序模块就无法通过除明确规定外的其它方法修改和执行他人的数据和代码。5353构建用户级沙箱的方法API(ApplicationProgrammingInterface)拦截。构造一些监视模块,这些模块包含一个系统调用许可列表,指明是否检测或过滤相应的系统调用。在执行系统调用前,监视模块检测调用参数的有效性以阻止恶意代码的执行。实现这种方法时可以利用系统提供的程序跟踪机制。共享库中间连接器接收应用申请共享服务的请求,在调用真正的库函数时先进行安全性检测,只有通过了检测才调用原来的库函数,为应用提供服务。
40、利用连接器可以完成:有条件地调用相应的API;更改API调用参数;返回处理过的API的结果。将应用对操作系统的访问看作是随时间变化的一系列操作资源请求。利用操作系统提供的一些机制(如:细粒度的时钟、程序跟踪、基于优先级的进程调度和基于页的内存保护等)来控制和限制应用对资源的访问能力。5454多级安全系统的困难多级安全系统非常昂贵费力,其原因技术、管理和成本等各个方面。(1)MLS系统不是批量生产,常常需要满足高标准的物理健壮性,需要严密的文档、测试和其他质量控制措施。美国海军研究室(NRL)提出了一种单向数据传递设备,称为泵,它使用缓冲区机制实现单向信息流动,利用确认消息的定时随机化等机制降低
41、反向信息泄漏的可能性。这种方法的一个好处是可以通过泵连接不同安全级别的系统,从而实现多级安全。由于这种系统只处理一个级别,因而可利用廉价的商业化组件(COTS)建造。随着硬件成本的降低,它成为了一种流行选择。5555多级安全系统的困难系统弱点或被攻击会导致信息间接地流动。例如,当一个用户运行一个处理他的私有信息的使用程序时,那个程序有没有办法将这些私有信息泄露给一个未授权的成员呢?这正是特洛伊木马所关心的。隐通道不是合法的信息传递,而是用于从一个环境的资源到另一个环境中的接收者泄露信息。没有一个实际的方法可完全避免隐蔽通道,但是可通过带宽来限制。在这里,“通信”包括了尽可能广泛的方式,甚至包括
42、没有使用常规通信手段的信息泄露。在较高的层次,“水门”事件的揭露者Bernstein和Woodward描述了一种无需消息提供者直接回答问题的方式:如果消息不正确,则消息提供者挂断电话,否则,保持在线。复合系统安全困难其中一个例子是瀑布问题。5656一个等级为B3的系统一般可以处理无级别到机密级别的信息,或敏感级别到绝密级别的信息,但不能容许无级别的用户处理绝密数据。假设一个系统可同时处理无级别和秘密信息,而其秘密级别部分又可与能处理绝密信息的另一个系统通信,则安全策略被违反了。5757复合系统的安全问题复合后的系统的安全问题大多数是由于反馈引起。考虑一个部件,接受两个高层输入H1、H2,将它们
43、相乘,然后与一个随机数R异或以进行加密,将该随机数R作为H3输出,并输出完美加密过的密文L=(H1*H2)R作为低级信息。在允许反馈的情况下,H3=R的输出可以反馈给H2,结果导致高等级的输入H1出现在低等级的输出L上。一些具有较低权限的应用代码需要调用具有较高权限的进程如设备驱动器。如果这些设计不当,可引起安全漏洞。例如,一个同时执行正常和有权任务的程序可以使得前者具有更高的权限。有限缓冲区及阻塞式的发送及接收对不干涉安全性产生影响,通过执行临界条件可将高安全级的输入拷贝到另一个子系统的输出,而原来各个子系统都是安全的。5858复合过程以BLP模型复合为例,指导原则是:1自治原则:任何子系统
44、允许的访问,复合后的系统也必须允许;2安全原则:任何子系统禁止的访问,复合后的系统也必须禁止确定一个访问是否安全时,需要计算各个子系统的安全策略和复合策略所允许的访问的传递闭包,并且删除那些被复合策略允许的、同时子系统策略禁止的访问。这一过程具有多项式时间的复杂度。为了同时满足上述两个原则,复合策略必须禁止某些访问,如何确定这些访问的最小集合,在一般情况下是一个NP问题。5959多级安全系统的困难MLS系统具有特殊的管理工具和例程。普通的Unix系统管理员需要进一步培训后才能安装和正确使用MLS系统。许多应用需要重写或大量修改后才能在MLS操作系统下运行。信息等级的合理定义是不容易的应该使用不
45、同的机器来处理有级别和无级别的材料,需要为安全相关人员制定指导性安全手册。计算机安全的其他方面,例如可信路径(用户如何知道他所运行的操作系统未被篡改?)、可信分发(用户如何知道他正在安装的是真实完整的拷贝?)越来越引起人们的关注。最早是多级系统,后来出现了基于能力的计算机以及可信的商业应用如ATM、智能卡、POS等,它们都要求内部所运行的代码的完整性,以能够可靠地提供所要求的服务功能。6060在使用智能卡的系统中,外部代码如何以一种可信的方式注入卡内?一种方案是带有安全证明的代码。要执行的代码必须带有一个别名它不会违反本地安全策略的证据。多级安全模型可能带来负面作用。企业根据信息和他的重要等级
46、做相应的处理(保密、内部使用、公开等等),但可信系统组件和组织指南的存在容易取代遇事认真思考的习惯。设计者只是选择他们认为合适的安全组件族,将它们的描述作为整个系统的安全规范,而不是系统性地挖掘系统的安全需求。6161多边安全在很多情况下,我们的目标不是防止信息的向下流动,而是防止部门之间的横向流动。信息流动的水平控制是一个非常普遍的问题,并且具有相当的社会和经济意义。多边安全模型的典型代表包括长城模型和BMA信息控制模型每个模型都有其产生的不同的背景,然而,它们的应用范围又超出了其初始目的。6262长城模型长城模型根据英国关于处理利益冲突的法规演化而来,解决商业中的利益冲突长城模型将相互竞争
47、的公司的数据进行分割存放。数据集分割(COI,CD)中的COI代表具有若干相互竞争的公司的数据集,CD代表某家公司的客体数据,要求在每个COI中只可以访问其中的一个CD。简单安全条件:令PR(S)代表S曾经读取过的客体集合,S可以读取O,当且仅当以下任一条件为真:1)存在一个S访问过的客体O,使得CD(O)=CD(O);2)对于任意的O,O属于PR(S),则有COI(O)不等于COI(O);3)O是无害数据区分数据是否可公开6363长城模型的安全访问规则*-属性:S可以写O,当且仅当以下两个条件为真:1)S可以读O;2)对于任意的有害数据O,S能读取O,则有CD(O)=CD(O)。*-属性是对
48、简单安全条件的扩展。假设A和B在同一个交易所工作,A可以读取美洲银行CD中的客体,B可以读取花旗银行CD的客体,他们都可以读取CO公司CD的客体。令O代表CO公司CD中的客体,O代表美洲银行CD中的客体,假设O没有进行无害化处理,则显然第二个条件,即-*属性不能满足,因而A不可以写CO公司CD中的客体。否则,如果A可以读出取美洲银行CD中的客体并将其写入CO公司CD中的客体,这样B可以通过CO公司CD中的客体作为中间跳板,获得美洲银行CD中的客体,从而导致利益冲突。6464长城模型的特点长城模型是自由选择和强制访问控制的混合:一个雇员可选择所在的公司,但一旦决定下来,他不能在那个行业的其他公司
49、任职。它还在访问控制中引入了责任分离的概念,一个用户可以执行交易A或交易B,但不能同时执行这两者。与BLP相比,长城模型有以下特点:1采取保密性和完整性兼顾的策略,并且加入时间属性,这是BLP模型不能表达的;2初始时主体可访问的CD并不固定,而在BLP模型中,访问范围在初始时是已经分配好的。6565BMA模型BMA模型目的对不同主体(用户、进程等)对不同数据客体(表、记录等)的不同访问权限(读、写、更新等)进行控制,并建立审计跟踪机制。BMA模型的特点数据客体,如防止支付信息本身必须能决定是否容许访问,要求建立一个安全策略,在这个安全策略中,访问控制不是集中作出或是由用户作出,而是由数据个体作
50、出。可以看到,它比BLP模型表达能力更强,并且引入了信息流状态的概念。同时,可处理信息的安全可用性和可追究性。6666访问规则根据BMA模型,在系统中,可以使用以下原则保护客户记录的安全性:每个账户必须有一个访问控制列表,指明可以读写的人或组。医生通常以医疗组的形式工作只有一个人是负责人,他可以修改访问控制列表。例如,只有医生和病人能够访问病人的医疗记录当记录被打开、添加或转移时,必须经过客户同意,只有在紧急情况下例外。因为相应的治疗必须得到病人的同意,所以病人应该知道他的医疗记录在什么时候被访问和被修改过。不仅如此,如果一个对病人不熟悉的医生访问了医疗记录,病人应被告知信息已被泄露。6767
51、其他规则征信系统通过不同的信用渠道获取信息,并将所得信息和成单独的信用报告,报告包括个人收入、贷款情况和信用卡号等。这将为个人带来一些风险:首先,不正确的数据解释将带来不正确的结论,有时情况是不完全的;一个事件是否表示相关客户的信用等级不好是有争议的。其次,错误的信息将导致巨大的伤害。攻击者通过使用伪造的身份证替代某人以获得另一个人名下的信用并不履行相关还款责任,因而对诚实公民的信用记录造成了伤害。记录信息应完全,记录访问者的名字、访问日期和时间都必须被记录。信息必须一直保存直到被删除,要保留删除轨迹以利于审计。信息系统应能重构过去一定期限的记录内容,以使仲裁者可确定当时的场景和事实。6868
52、其他规则创建原则当医生和病人都在访问控制表中时,可以打开一个记录。如果记录作为转诊介绍被打开,那么转诊医生也要在访问控制表中。删除原则除非达到一定期限,记录不能被删除。汇聚原则防止病人数据汇聚的措施必须有效,特别是当某人要加入到病人医疗记录的访问控制表中,并且这个人能够访问大量的医疗记录的时候,就必须通知病人。在很多应用环境下,较困难的是如何容许在不影响隐私性的前提下实现统计查询。限制原则当且仅当B的访问控制列表包含在A中时,从A记录中所获得的信息可以添加到记录B中。实施原则处理信息的计算机系统必须具有一个可信的计算基,以有效实施这些要求,其有效性需要有专家6969技术手段为防止某些敏感信息的
53、泄漏,需要对数据本身采取相应的技术手段进行处理。首先,基于模型,为不同的用户定义不同的视图,可以限制各个用户的访问范围。通过视图机制把要保护的数据对无权存取这些数据的用户隐藏起来,从而自动地对数据库提供一定程度的安全保护。但是单纯的视图机制的安全性保护还不能达到应用系统的要求,在实际应用中,通常将视图机制与RBAC模型中的授权机制结合起来使用首先用视图机制屏蔽一部分保密数据,然后在视图机制上进一步定义存取权限。7070trackers和聚集威胁统计查询的特征表达式是记录选择条件,例如:“所有账户余额在100万元以上的账户”,通过属性条件的合取得到的最小记录集合称为基本集。对应一个集合的一个统计
54、信息可能是敏感的,如果容许更广泛的统计信息查询,则可获得更多的附加信息以推导出所需要的敏感信息,从而绕过强制控制控制措施,这种技术称为trackers。与此相关的是可通过获得通过集成低级别的信息推出高级别的结论,即聚集攻击。trackers和聚集威胁经常能够使多级安全策略失效。7171抵抗trackers为防止以上威胁,需要使用trackers控制技术:如果实际能够执行的查询集合是D,P是不安全查询集合,trackers控制技术要求实际查询集合D是安全查询集合,即P的补集的子集。如果D与P的补集相等,则保护是精确的。不精确的保护意味着有些合理的查询不能响应,因而降低了可用性。抵抗tracker
55、s的一个显而易见的机制是规定查询记录的最小数量。一般说来,如果共有N条记录,具有阈值n的查询尺寸意味着返回结果在n和Nn之间。简单的限制记录条数并不是一个充分的安全条件。为对抗Trackers攻击,可能还需要限制可查询的属性个数。一个令人惊讶的发现是设t=N/4是设定的阈值,如果不附加对查询类型的限制,则可找到大小值在N2n,2n之外的集合的统计信息,从而导致攻击。7272抵抗trackers的一个更本质的做法是拒绝那些将查询到的记录集合分割为许多小的集合的查询。一个格可用于定义控制信息流动的偏序关系,并用于以一种系统化的方式控制查询。例如,A,B,C三个属性中的任何一个都不是敏感的,但查询其
56、中任何两个属性是敏感的。这时,一个格可将查询分为两个等级。7373查询序列攻击通过跟踪访问记录,攻击者可能试图绕过静态查询控制的限制。例如,查询那些每月进行定存定取业务的客户。对抗措施是拒绝那些可能泄露敏感信息的查询序列。这一方法非常复杂,首先是随着时间推进,处理复杂性经常以指数形式增长,其次,查询者可能进行合谋。7474基于角色的访问控制角色(Role)是“一个基于各种属性来对主体进行分类的组机制”。基于角色的访问控制(RBAC)提供了比多级安全系统更一般的强制访问控制框架。RBAC可与DAC,MAC共存,可在应用层上实现,并直接支持最小特权策略。相对用户和授权之间直接关联的方法,RBAC系
57、统能够以简单的方式向最终用户提供语义更为丰富、得到完整控制的存取功能,便于实现系统的安全管理和评估。7575角色和许可指派角色指派根据用户的特权属性为其指派适当的角色,角色指派关系RA是用户与角色之间多对多的关系。角色根据系统上下文的实际环境,具有一定的层次关系。许可指派根据角色所具有的职能(访问能力)为其指派对于对象方法适当的访问许可。许可指派关系是角色、对象、方法、许可之间多对多的关系。许可指派可通过访问控制表,对访问者的职务、工作性质、可信程度,资源的特征如敏感程度、密级等实行数据资源的访问控制。7676RBAC模型7777责任的动态分离(会话Session)会话是主体对客体(对象中的方
58、法)的一次访问过程。一个主体可以启动多个会话,主体与会话的关系是一对多的关系。在RBAC系统中,每个用户进入系统得到控制权时,就得到了一个会话。在工作站环境下,一个用户可以同时打开多个会话,每个会话置于一个窗口内。只要静态定义过这些角色与该用户的关系,会话就可以根据用户的要求负责将它映射到多个角色上去。在一个会话内,该用户可以获得全部被激活的角色所代表的授权。如果在会话中激活了一个角色,那么该角色所包含的子角色也同样被激活。通过这一机制,可以实现责任的动态分离。7878ARBAC7979管理角色AROLEsARBAC可以用于对数量巨大、高度分散的雇员、应用及其关联关系进行有效管理。大型机构拥有
59、数以万计的、地理上高度分散的雇员,企业的信息技术环境由一系列功能不同的应用构成,这些应用最后都与这些企业用户通过某种方式相关联。一般情况下,一个应用可以关联一个或者多个用户,而一个用户也可以关联一个或者多个应用。管理角色集合(AROLEs)角色是使用特定例程为一个或多个主体(AUSERs)制定的一定期限内的固定的访问许可集合。在一个大型组织中,我们可以发现大多数员工可以归入一个或几个类别中。银行可以有4050个这样的类别:柜员、主管、支行行长、分行行长等。需要单独定义权限的其余人(如安全官,外汇首席交易员)可能只有很小的一部分人。8080角色通常基于工作功能来定义,例如:一个公司基于如同收银员
60、这样的工作功能定义角色。当依据组织层次建立一个角色树时,在层次中位于高端的部门常常被赋予更加通用的角色。对于所有的雇员的权限(例如使用邮件系统的权限)将会赋予“Bank”角色,对于“Region”角色赋予特定区域的存取权限,依此类推。在组织树中处于较低位置的角色继承树的上部所有角色的权限。8181本地帐户本地帐户(AACOUNTs)大多数情况下角色需要获得在本地进行管理所需的管理权限才能实现目标,因而需要将公司级别中的管理人员映射到本地系统的管理员帐户集合。后者随着本地公司业务范围和信息系统的功能结构的不同而变化,并且在一个本地公司中常有多个职责不同的管理员。为实现职责隔离,经常要求负责构造角
61、色层次的管理员不可以具有本地帐户管理权限。8282管理许可集合(APERMISSIONs)管理许可集合由管理操作集合(AOPERATIONs)和管理对象集合(AOBJECTs)组合而成,即:APERMISSIONs:AOPERATIONsAOBJECTs管理操作说明哪些存取权限适合于哪些类型的管理对象客体。在下表中,所有的操作在客体(object)层都是适用的,而View和Change是和属性(attribute)层相关的,用以防止非授权管理员查看和更改敏感属性。8383范围(scope)范围就是一个依据一个或者多个特性来确定的客体集,用于标识哪些存取权限适合哪些客体个体。通过范围概念的引入,
62、管理权限就被定义为一个操作、客体和范围的组合体。对于每个范围可以应用下边的选项限制管理权限:节点(Node):仅有范围节点自身被授权。树(Tree):只有低于指定节点的子树中的范围被授权。排除(Exclude):所指定的节点(节点、树,或者两者兼而有之)被显式的排除。8484基于角色的委托委托是一种重要的安全策略,它的主要思想是系统中的主动实体将权限委托给其他主动实体,以便以前者的名义执行一些工作。基于角色的委托受到了广泛的关注。在如下几种情况下会发生委托:(1)角色备份:某人出差或度假,他负责的工作需要继续执行,这样就需要将其工作权力委托给其他人,使工作可以继续进行。(2)协作工作:在组织中
63、和组织间进行的工作需要相互协作。在这种情况下,需要赋予协作对方一定的访问权限以便进行信息共享。(3)权力下放:组织初始构建或重组织时,需要按照组织结构从高级到低级分配权限。在委托中有一个隐含的原则就是委托人要对被委托人的行为负责。这就意味着委托人需要对其委托的角色进行严格限制,所以委托的限制是委托策略的重要组成部分。8585委托限制临时性从情形(1)、情形2中可以看到,委托具有临时性。临时性体现在委托角色的使用期限、使用次数以及更严格的使用时间限制上。部分性在情形2探讨的协作工作中,不一定需要委托角色的所有权限,即委托具有部分性。角色权限传播在情形(1)情形(3)中都可能出现委托角色权限传播的问题,这些权限的传播必须受到限制,即委托具有受限的传播性。常规角色关联性在各种情形中,委托角色都可能具有常规角色关联性。例如在角色备份的情况下,委托角色只有在委托角色的用户没有激活角色时方可激活角色。在协作工作的情况下,委托角色可能仅在特定用户激活特定角色时方可激活。8686