Biba实用模型的自动化形式验证
2013-04-29徐亮刘宏
徐亮 刘宏
摘要:通过给传统的Biba模型增加相应的敏感级函数, 完善其主客体完整性标签, 并对其安全操作规则进行相应的改进, 使其适应实际的应用需求. 采用完全形式化的方法对改进后模型中的各元素、模型必须满足的不变式以及模型迁移规则进行描述, 并在此基础上利用定理证明器Isabelle完成对该模型的自动化形式验证, 从而实现高等级安全操作系统研发过程中对安全策略模型的形式化需求.
关键词:Biba模型;形式化方法;定理证明;自动化形式验证;安全策略
中图分类号:TP301.2 文献标识码:A
安全操作系统的完整性指的是数据或数据源的可信性.“完整性”经常在阻止不恰当及未授权的改变时涉及到.信息源与它的精确性和可信性以及人们对该信息的信任程度有关.完整性的可信性方面对于系统的正常运作至关重要.完整性的目标有3个[1]:
1)防止未授权用户的修改;
2)防止授权用户的不当修改;
3)维护数据的内部和外部一致性.
常见的完整性模型有Biba模型[2]、ClarkWilson模型[3]、DTE模型[4]、Sutherland模型[5]以及Biba改进模型[6-7]等.DTE模型和Sutherland模型只是其中的某些特性可以达到完整性保护的目的,而并不是作为完整性模型提出的;ClarkWilson模型没有用形式化的语言来描述;Biba模型是专门为完整性保护提出的,使用了严格的形式化语言来描述,可以有效保护系统数据的完整性,但降低了系统的可用性;Biba改进模型对传统的Biba模型进行了改进并给出了具有形式化语言的描述,符合GB/T20272-2006[8]中对结构化保护级安全策略模型开发要求,但在该模型中并没有对模型的正确性给出自动化的形式证明,同时,其主客体完整性的基本操作也相对简单.
在操作系统的形式化验证工作中,微软的SLAM[9]主要是对C语言进行模型检测;NICTA的L4.Verified[10-11]则只针对seL4微内核进行了从规范到代码的验证分析,都没有严格意义上对某一具体安全策略模型进行验证.本文针对安全策略模型中的完整性模型,为模型引入了多安全标签,以及适合实际系统的安全模型操作规则共十条,并在此基础上,采用定理证明的方法[12-13],将组成模型的各元素、操作规则和不变式用Isabelle[14]定理证明器能接受的完全形式化的语言进行描述,并对其进行正确性的自动化证明,从而满足GB/T20272-2006中关于最高等级安全操作系统——访问验证保护级操作系统研发中对形式化安全策略模型的要求.
3.4BLP模型的状态迁移规则及其安全证明脚本
系统要始终保持在安全状态运行,除了初始状态要满足安全要求以外,系统的所有迁移规则也必须满足安全要求,也即由安全状态经过任意一条迁移规则以后到达的状态仍然是安全状态.接下来就是对系统中各条迁移规则的安全性自动化证明脚本.
4结语
本文以研究设计符合GB/T20272-2006中对最高等级安全操作系统——访问验证保护级安全操作系统要求的完全形式化的安全策略模型为目标,提出了一种具有实际可行性的Biba模型,并详细定义了模型的不变量和安全迁移规则,使得该模型能够满足系统实际操作的需要.于此同时,我们还以定理证明工具Isabelle为依托,对模型的安全状态、安全性质、初始化状态进行完全形式化的描述,参照文中对3条迁移规则的具体描述和验证方法,可以给出全部11条安全迁移规则的自动化正确性验证脚本,从而完成了对模型的自动化形式验证工作.
参考文献
[1]BISHOP M. Computer security: art and science[M]. Boston: Addison Wesley, 2003: 3-6.
[2]BIBA K J. Integrity considerations for secure computer systems[R]. Washington: US Air Force Electronic System Division, 1977.
[3]CLARK D D, WILSON D R. A comparison of commercial and military computer security policies[C]//Proceedings of IEEE Symposium Security and Privacy. Oakland: IEEE, 1987: 184-195.
[4]BADGER L, STERNE D F, SHERMAN D L, et al. A domain and type enforcement UNIX prototype[C]// Proceedings of the Fifth USENIX UNIX Security Symposium. Utah: USENIX, 1996: 127-140.
[5]SUTHERLAND D. A model of information[C]//Proceedings of the 9th National Computer Security Conference. Gaithersburg: U.S. Government Printing Office, 1986: 126-132.
[6]郭荣春, 刘文清, 徐宁,等. Biba改进模型在安全操作系统中的应用[J]. 计算机工程, 2012, 38(13): 96-98.
[7]张明西, 韦俊银, 程裕强,等. 具有历史特征的Biba模型严格完整性策略[J]. 郑州大学学报:理学版, 2011, 43(1): 85-89.
[8]GB/T 20272-2006 信息安全技术操作系统安全技术要求[S]. 北京: 中国国家标准化管理委员会, 2006.
GB/T 20272-2006 Information Security TechnologySecurity Techniques Requirement for Operating System[S]. Beijing: China National Standardization Management Committee, 2006.(In Chinese)
[9]SLAM[EB/OL]. (20120714)[20120812]. http://research.microsoft.com/en-us/projects/slam/.
[10]KEVIN E, GERWIN K, RAFAL K. Formalising a highperformance microkernel[C]//Proceedings of Workshop on Verified Software: Theories, Tools, and Experiments. Seattle: Springer, 2006: 1-7.
[11]GERWIN K, MICHAEL N, KEVIN E, et al. Verifying a highperformance microkernel[R]. Baltimore: 7th Annual HighConfidence Software and Systems Conference, 2007.
[12] GENESERETH M R, NILSSON N J. Logical foundations of artificial intelligence [M]. California: Morgan Kaufmann, 1987: 87-90.
[13] DAVIS M, LOGEMANN G, LOVELAND D. A machine program for theorem proving [J]. Communications of the ACM, 1962, 5(7): 394-397.
[14]ISABELLE[OL]. (20120712)[20120812]. http://www.cl.cam.ac.uk/research/hvg/isabelle/.