多级安全数据库推理通道综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多级安全数据库推理通道综述
摘要:介绍了多级安全数据库系统中存在的推理通道,推理攻击的种类,推理通道的4种形式化描述方法。在此基础上,介绍了目前国内外最新的检测和消除多级安全数据库中推理通道的最新技术成果和
未来研究热点与方向。
关键词:计算机安全;推理通道;多级安全数据库
0引言
多级安全数据库(Multilevel Secure Database,MLSD)通过给每一个主体和每一个客体都分配一个安全级,根据主体和客体安全级的支配关系来控制主体对客体的访问,保护数据库中的数据。安全模型阻止了系统中信息从高安全级向低安全级的直接流动,但低安全级别用户利用低安全级别的信息及自身的知识推理出高安全级别的相关信息时,就出现了推理问题,其实质是用户可在不违反存取控制机制的情况下非法获取信息,从而构成对数据库安全的威胁。推理问题在其他系统如操作系统中也存在,但是由于数据库系统中元组、属性、
元素之间是相互联系的,这个问题在数据库中更加突出。
1推理分类
(1)演绎推理(Deductive Inference):这是推理过程最为严格的一种形式,它的推理前提是数据库内信息,即推理的完成只使用了数据库内的信息。
(2)诱导推理(Abductive Inference):推理证明的要求相对较松,
可以在假定具有低密级公理的情况下完成推理,即除了数据库信息
外,推理还可以利用数据库外的信息。
(3)概率推理(Probabilistic Inference):这种推理方式不要求有严格的推理过程证明推理“的确”能够发生(前两
个就是这种情况),而在给定的推理前提下,从概率的角度判断
推理是否发生,如发生概率是否大于某个阈值。
2推理问题的形式化描述
推理的形式化主要研究如何定义推理问题,目前主要从集合理
论、经典信息论、数据划分和函数依赖等多方面进行研究。
2.1集合论描述
考虑一个数据库,每一个数据项都被指定一个访问级别,并且假设访问级别的集合是偏序的。定义关系分如下:给定数据项x和y,x→y表示可能从x推出y。关系→是自反的和传递的。集合S是推理封闭的,如果x属于集合S,并且x→y成立,则y也属于S。对于一个访问级别L,让E(L)表示由所有可能的访问级别小于或等于L 的响应组成的集合。如果E(L)不是推理封闭的,那么就存在一条推理通道。
2.2经典信息论描述
给定两个数据项x和y,让H(y)表示y的不确定性,让Hx(y)表示给定x以后y的不确定性(这里不确定性是以传统的信息论的方式定义的)。因此,给定x之后y的不确定性的减少量可以如下定义:
INFER(x→y)=(H(y)一Hx(y))/ H(y)
式中:
INFER(x→y)——给定x以后y的不确定性的减少量
H(y)——y的不确定性
Hx(y)——给定x以后y的不确定性
INFER(x→y)的值介于0到1之间。如果值等于0,那么不可能从x推出y的任何信息。如果值在0到1之间,那么给定x就有可能
推出y。如果值是1,那么给定x就肯定能推出y。
2.3由数据分区描述
对于每个用户,数据库中的数据可以划分为两个分区:一个可见的集合与一个不可见的集合,用户只能允许访问可见集合的数据,不允许访问不可见集合的数据。Known代表用户已经知道的数据条目,它由用户以前的查询得到,如果Invisible集合和Known集合的交集
为空,则不存在推理问题;反之,则存在推理问题。
2.4函数依赖描述
函数依赖定义如下:设R是一个关系模式,*表示其属性集合,X,Y*其中任意两个元组u,v对应于X的那些属性分量的值均相等时,则有u,v中对应于Y的那些属性分量的值也相等,即如果u[X]=v[X],则u[Y]=v[Y],称X函数决定y,或y函数依赖于
X。
3推理问题处理技术
检测并消除推理通道技术依据处理阶段的不同可以分为两类:第
一类是在设计阶段,试图发现推理通道,通过提升某些对象的安全级别,保证推理通道中至少有一个对象有更高的安全级别,但给属性或原始数据分配过高的安全级别可能会降低数据的可用性;第二类是在查询阶段,如果检测到潜在的推理通道就拒绝查询或修改查询,以保证敏感信息安全。这类技术可以在数据和模式级别都可以进行推理检测,数据级别的推理检测增加了数据可用性。但查询期间的推理控制的代价较高,且如从拒绝的查询来推理敏感信息仍会导致敏感信息的
泄露。
早期的大部分研究的框架和推理算法是针对特定的推理问题。Denning提出了等价模式观点来消除任意非授权数据来响应select-only、select-project、select-project-join 查询,但没有处理由于
数据库约束而产生的推理问题。
Hinke提出用语义模型的方法检测推理通道。其通过构建一个语义关系图来表达数据库中可能的推理。节点表示数据项,连结节点的边表示它们之间的关系。如果从结点A到结点B有两条路径,并且从一条路经可以看到所有的边,而从另外一条路经则不能,我们就说可能存在一条推理通道。一旦发现了这样一条推理通道,则进一步分析看它是否是一条真正的推理通道。如果是,可以提升一条边或多条边的级别。这个过程将持续下去直到所有的推理通道被关闭。这种方法被称为第二路径法,它没有对数据项之间的关系的性质做任何假
定,除了它们是否存在。
Smith提出了一种新的使用语义数据模型的模式,它允许用户表
达不同类型的关系。Smith定义了大量的可能类型的数据项,此外还定义了数据项之间的关系。这些项中的任何一个都可以被分级。因此,如果他们希望隐藏A和B之间的关系,只需要提升这个关系的级别,而A和B都可以是无级别的。这种方法可用来支持数据库的设计和分级。
Mazumdar、Stemple和Sheard提出了一个能够评估事务的安全性系统。他们使用一个定理证明器来判断,从数据库的完整性约束、事务的前提条件和输入事务的数据的类型中,是否能够提取出来某个预定义的机密信息。这种方法不依赖于存储在数据库中的任何特定的数据,因而能够在事务编译的时候应用到一个事务上,可被用来判断某种类型的事务安全级别。Mazumdar指出他们的技术能够被用来测
试数据库的安全性,并且给出重新设计的建议。
Lock Data views (LDV)工程使用了另外一种方法。根据可以从数据库推出的信息级别,确定一组数据上的分级约束。当一个查询被提交给系统时,查询结果将根据分级约束被提升到合适的级别,然后再交给用户。在系统中可以包含一个推理控制机制,可以基于查询分析的结果分级约束,也可以利用历史机制防止用户收集可以推出敏感数据的历史信息。例如,假设A和B一起能够推出C,这里C是敏感的而A和B不是,如果一个低级用户早已看到A,根据安全策略我们就可以阻止这个用户看到B或者阻止任何低级用户看到B。Thuraisingham描述了一种查询修改方法。首先被评估一个查询以决定它是否会导致推理通道,如果会的话,它将被转换成一个不会导致