1、1.安全模型将安全策略整合到系统中。模型和策略是对称的,将策略的要求影射成一系列规则用于计算机遵守。2.安全模型将抽象的安全策略影射,通过明确数据结构、技术。安全模型通常是以运算或者分析的方式表示,映像成为系统说明,通过程序员的编程代码开发。一.state machine model1.在 state machine model 下,为核实系统安全性,使用 state,意味着必须获得所有现行的许可和现行的主体对对象的访问实例。维护系统的状态处理每个主体对对象的访问。如果主体按照安全策略要求的形式访问对象,那么系统是安全的。state machines 提供了信息安全模型的基础。系统的状态一个时
2、刻上系统的 snapshot。许多活动可以更改状态,被称为 state transitions.2.状态机用于描述系统针对不同的输入的反应。它提供了数学的构建,表示成 set 集合和顺序。当对象接受输入,这更改了一个状态变量。变量是 OS 指令集合的一部分。3.使用状态机模型的开发者必须识别系统的所有 initial states(默认变量值,初始状态),并列示这些数值如何变化使得变量的最后状态仍然确保系统的安全。4.采用状态机模型的系统将随时处于安全状态之下。安全启动、安全执行命令和交易、允许在安全状态下主体访问资源、在安全状态下关闭和 fail。在安全状态下 fail 非常重要,如果发生了
3、任何不安全的事情,系统必须保护自己。当 OS 显示一个 error messages 要求 reboot,它执行的是一个安全的措施。OS 经历了某些不合法的操作并且不能自行解决,所以确保自己不处于这个不安全的状态,做出反应。5.在开发状态机模型的产品时应注意以下几点:首先,开发者要定义状态变量是什么,在哪里?在计算机环境中,所有的数据变量需要独立的看作是状态变量,不安全的变更会影响系统或者其他的进程活动.其次,开发者必须为每个状态变量定义安全的状态.然后,定义和识别所有允许的状态转换功能.这些功能将表述对状态变量允许的变动.当定义完状态转换功能后,必须经过测试来核实整个状态机是安全的,而转换功
4、能将保持系统的完整性.二.the Bell-LaPadula model1.Bell-LaPadula model 开发出来关注的是 time-sharing 主机系统的安全性 ,和分级信息的 leakage泄露,它是第一个用于多极别安全策略的数学模型,用于定义安全状态机的概念和访问 modes以及规则。这个模型的主要目的是为了保护机密信息非授权访问。2.采用 Bell-LaPadula model 的系统被称为 multilevel security system。因为不同 clearances 的用户有不同的级别来使用系统和处理数据。信息分级所处的水平决定了应该采取的处理流程。Bell-L
5、aPadula model 市一个状态机模型,确保访问控制的机密性 confidentiality。使用一个矩阵和安全级别来判断主体是否能访问不同的对象。主体的 clearance 同对象的 classification 比较,然后采取不同的访问控制规则。3.这个模型使用主体、对象、访问操作(read,write,read/write)和安全级别。主体和对象放在不同安全级别,之间的访问活动受到规则的限制。如果这个模型适当配置,将提供一个安全的和有效的操作系统。Bell-LaPadula model 也是一个 information-flow 安全模型,意味着信息以安全方式 flow。4.Bel
6、l-LaPadula model 是一个 subject-to-object 模型。Bell-LaPadula model 关注的是主体适当认证:有必要的安全 clearance、need to know、正式的访问申请5.Bell-LaPadula model 使用的三个主要规则:1)simple security rule 表示的一个给定安全级别的主体必能读取一个高安全级别的数据。 no read up2)the *-property(star property)rule 表示一个给定安全级别的主体不能写信息到低安全级别的对象。no write down3)strong star prop
7、erty rule 表示主体只能在相同的安全级别上进行 read 和 write。主体和客体的clearance 和 classification 必须相同。6.这三个规则规定了系统能处的状态。状态是一个时刻上软件变量的数值。 系统的状态随着不同的操作而变动。Bell-LaPadula model 定义了安全的状态,意味着安全的计算环境和允许的操作,这些操作是 security-preserving 操作。7.Basic Security Theorem 基本安全定理:系统初始化是安全状态,所有允许的状态装换是安全的,那么每个子状态都是安全的。8.tranquility priciple 静止
8、法则同样适用于 Bell-LaPadula model,意味着主体和对象创建后就不能改变自己的安全级别9.Bell-LaPadula model 开发出来确保秘密保持机密,因此只是提供了机密性。这个模型不能保证数据的完整性。10.和访问控制,所有的系统基于 Bell-LaPadula model,因为允许 multilevel system。所有的主体和对象都分派了 labels。主体的 label 包含了 clearance lable(top secret,secret, confidential),对象的 label 包含的 classificaiton label(top secret
9、,secret, confidential)。当高一级的主体不能写入低一级的对象,适用*-property 规则,保证了不共享敏感信息。系统和数据库要遵循以上规则。三.The Biba model1.The Biba model 在 Bell-LaPadula model 之后开发,是一个状态机模型,和 Bell-LaPadula model非常相似,Biba 定义了应用的数据完整性。Bell-lapadula 模型使用一个安全级别 lattice.这些安全级别主要确保敏感数据的访问权限。Biba 模型不关注安全级别和机密性,而他不通过这些lattice 来判断访问控制。他使用的是一个 int
10、ergrity levels lattice 。2.如果执行合理,Biba 模型可以防止任何完整性级别的数据流到高完整性级别。Biba 有三个主要的规则来提供这种保护:1)*-intergrity axiom 主体不能将数据写到一个较高的完整性级别的对象中 no write up2)simple intergrity axiom 主体不能从低完整性级别的对象处读取数据 no read down3)invocatition property 主体不能请求高完整性主体的服务3.商业公司更多关注的是数据的完整性。会计公司是一个例子,他们采用的是 Biba 模型的软件。4.invocatition p
11、roperty 指的是主体不能 invoke(call on 调用) 比他高完整性级别的主体。指示的是在运行时间主体如何通信和初始化另外的主体。这保证了一个 dirty subject 不能调用一个 clean tool 来污染一个 clean object.dirty 和 clean 是相对概念,分别指的是低完整性和高完整性。5.Biba 模型也是信息流模型,因为它也关注数据在不同级别之间的流动。四.the Clark-Wilson model 1.the Clark-Wilson model 自 Biba 模型后开发,使用不同的方法来保护信息完整性。这个模型使用以下元素:1)users a
12、ctive agents2)transformation procedures TPs 编程的抽象操作,例如 read,write,modify3)constrained data items CDIs 只能被 TPs 管理4)Unconstrained data items UCDIs 用户可以通过简单的 read ,write 操作进行管理5)Intergrity verification procedures IVPs 检查 CDIs 与外部的一致性2.这些列表看起来非常直接。当应用使用 the Clark-Wilson model,将数据分成需要高度保护的subset,被称为 CDIs
13、;以及不需要高度保护的 subset,被称为 UDI。用户不能直接更改关键数据(CDI)。用户必须经过经过一种软件的认证,这个软件程序 TPs 将代表用户来执行相关操作。例如 A 需要更新公司数据库中的信息,没有软件控制他不能处理相关活动。首先,A 将通过程序认证,这个程序是数据库的前端;然后程序将控制 A 可以执行、不可以执行的操作。subjects(user)、program(TP)、object(CDI)组成了 access triple。用户不通过 TP 不能更改CDI3.CDI 必须通过 TPs 获得完整性保护。UDI 不要求如此高的完整性保护。在一些情况下,系统需要更改 UDI 数
14、据成为 CDI 数据。the Clark-Wilson model 是一个完整性模型,必须保证执行特定的完整性规则,这个是 IVP 的工作。IVP 保证了所有的 CDI 遵循了应用定义的完整性规则。4.模型有 constructs、mathematical formulas、其他的 PhD kinds of stuff。模型只是提供了一个框架,而厂商将判断哪些数据是 CDI,那些是 UDI,开发 TPs 来控制软件如何保证 CDI 的完整性。5.IVPs 确保了 CDI 数据的完整性,当 A 执行完交易后,IVP 验证了 CDI 的完整性,那么 CDI被认为处于 consistent stat
15、e。TPs 是执行操作的软件程序。使用 TPs 来更改 CDIs 被称为 a well-formed transaction。 a well-formed transaction 是一系列将数据从一个 consistent 状态转换到另一个 consistent 状态的操作。 the Clark-Wilson model 也在应用内部要求有职全分离。例如储户大笔取现,要求有监管岗登陆认证这个交易。这个模型提供了开发者必须遵守的规则以便在软件程序中执行和实施 separation of duties。五.goals of integrity models 完整性模型的目的1.以下是完整性模型的三
16、个目标1)防止非授权用户更改数据2)防止授权用户作出不恰当的数据更改(职权分离)3)维护内部和外部的一致性(well-formed transaction)Clark-Wilson 在模型中定义了所有的目标,而 Biba 只是定义了第一目标。2.internal 和 external 一致性通过 IVP 提供,确保系统内部的 CDI 恰当的映像更改他状态的输入数值。例如 A 从账户中(2000 块)取出 1500 块,结果是 CDI 变成 500 块。3.总结的说,Clark-Wilson 模型通过使用 access triple(users,TPs,object)、职权分离、审计来实现完整性
17、的三个目标。这个模型通过使用 well-formed transactions 和职责分离来实现完整性。六. the information flow model 信息流模型1.Bell-lapadula model 关注的是防止高安全级别的信息流到低安全级别。Biba model 关注的是防止信息流从低完整性级别流到高完整性级别。这两个模型都建立在信息流模型之上。信息流模型可以处理任何的信息流。2.信息流模型中,认为数据存放在个人和分离的单元中。在 Bell-lapadula 模型中,这些单元是基于安全性级别。信息是经过划分的,给予两个因素:classification 和 need to
18、know。用户的clearance 高于对象的 classification 并且还要包含相应的 need to know。3.信息在系统中多种方式流动。主体可以访问文件,进城可以访问 memory segments。当数据从硬盘的 swap space 移动到 memory 中,信息发生流动。数据进出 CPU 的寄存器。数据进入不同的缓存。信息流模型用于提供一个架构保障数据流的安全有效。其中一个方式是避免隐蔽信道的存在 covert channel(一)Covert Channel1.隐蔽信道是实体通过非授权的方式获取数据的方法,不受安全机制控制的信息流动。这种信息 path 不是用于通信,
19、因此系统没有适当的保护这个 path,因为开发者没有意识到这个信息流的存在。以这个方法收到信息违背了系统的安全策略。2.造成隐蔽信道的原因有如下几个:1)产品开发过程中的疏忽 oversight2)软件访问控制的不恰当执行3)两个实体之间共享资源的存在2.隐蔽信道有两个类型:storage 和 timing1)covert storage channel 进程可以通过系统中几种存储空间来通信,例如系统 A 感染了一个木马,安装了软件允许在受限方式下与另外的进程通信,系统 A 有一个非常敏感的文件,木马安装的软件将读取这个文件,需要将软件传递给攻击者,但是只能一次传递一个 bit。这个入侵软件将
20、联系攻击者锁定这个特定的文件,当攻击者试图访问这个文件,并发现上面加了个软件锁。攻击者破译,将敏感文件第一个 bit 破译为 1,下次再访问这个文件,文件没有锁,就破译为0;直到敏感文件中的数据都传递给攻击者。另一种攻击可以通过 file creation 来实现。系统被入侵并安装了在一个特定目录下可创建和删除文件的软件,这个软件有读取敏感文件的权限。当入侵软件发现了敏感文件中第一个 bit 是 1,他将在特定目录下创建一个临时文件,攻击者将在特定目下尝试创建一个相同名字的文件,然后攻击者将收到消息说文件已经创建。2)covert timing channel 一个进程使用模块化的系统资源将信
21、息传递个另一个。两个进程使用共享的资源来通信,这个资源就是时间。3.信息流模型制定规则确保不发生隐蔽信道。当时仍有很多方法可以创建。 (二)对策1.所有的操作系统都有一些隐蔽信道,不可能全部去除。可接受的隐蔽信道数据取决于系统的保证率。2.在桔皮书中,隐蔽信道直到安全级别 B2 才被关注。七.the nointerference model 非冲突模型1.多极安全特性可以表述成很多凡是,一个就是非冲突.这个概念确保的任何发生在高安全级别的活动不影响,干涉发生在低安全级别的行动。这种模型不关注数据流动,但是关注的是主体对系统状态的了解。如果一个高安全级别的实体执行了一个动作,不能改变低安全级别实
22、体的状态。2.如果低安全级别实体意识到由高安全级别实体执行的动作对系统状态和他自己造成的变动,他可以推断出高安全级别的许多信息,这是一种信息泄露。3.低安全级别用户应该不能意识到高安全级别用户的输入命令,而且也不应该受影响。4.这个模型的目的是为了发现 covert channel 和推论攻击 inference attacks。这个模型检查系统中不同用户的共享资源,识别信息怎样从高安全级别进程传递到低安全级别进程。 八. the lattice model1.lattice 格子是一个数学结构建立于组的概念之上。 lattice model 最常见的定义是:包含 least upper 和
23、greatest lower 操作权限的一个结构。2.MAC 模型建立于这个模型之上,主体和客体都有安全 label。每个主体的 label 包含了clearance 和 need to know categories。假如 A 的 clearance 是 top secret,并可以访问名字为 a 和b 的 compartments。九. the brewew and nash model1.the brewer and nash model,也被称为 chinese Wall model 中国长城模型。这个模型用于根据用户以前的行动来提供动态的访问控制。这个模型的主要目标是为了方式用户访问
24、尝试造成的利益冲突。例如例如一个大型的商场为两个银行提供商场推广资料,为银行 A 项目工作的职员看那些为银行 B 项目的信息。防止利益冲突因为两个银行是竞争者。2.这个公司可以购买一个产品用于跟踪不同的商场代理的访问活动,禁止某些造成利益冲突的访问请求。访问控制动态的根据用户的权限、活动和过去的访问请求而变动。3.chinese wall 模型也基于信息流模型,信息流不能造成利益冲突。这个模型只是一个主体当且仅当不能读取其他对象的时候,才能写入一个对象。十.the Granham-Denning model1.上面的所有模型,实际上都不是非常具体的。每个厂商都必须判断如何实际上满足他们选定的安
25、全模型的规则。Bell-lapadula 和 Biba 模型没有定义安全和完整性的 rating 如何定义和更改,他们也没有提供代理和装换访问权限的方法。the Granham-Denning model 解决了这些问题,按照一个特定主体对对象的可执行命令定义了一系列基础权限。这个模型有 8 个简单的 primitive保护权限或者规则:1)如何安全创建对象2)如何安全创建主体3)如何安全删除对象4)如何安全删除主体5)如何安全提供 read 权限6)如何安全提供 grant 访问权限7)如何安全提供 delete 权限8)如何安全提供 transfer 权限十一.the Harrison-Ruzzo-Ulman modelthe Harrison-Ruzzo-Ulman model 处理主体的 access rights 和这些 rights 的完整性。主体可以对一个对象执行有限的操作,因为安全喜欢简单。当把命令限制到一个单个的操作时禁止和允许操作权限就变得很简单。例如主体只有在操作 Y 的情况下才能发送命令 X,这个很简单。但是当主体发送命令 M,要完成这个命令,需要操作 A,B,C,P 都要执行,就会变得很复杂。