当前位置: 首页 > 专利查询>浙江大学专利>正文

一种基于KFramework的SELinux安全策略形式化验证方法技术

技术编号:35648442 阅读:25 留言:0更新日期:2022-11-19 16:42
本发明专利技术公开了一种基于KFramework的selinux安全策略形式化验证方法,采用了语义框架Kframework来做对selinux安全策略语言的形式化建模,K是一个基于重写的可执行语义框架,在其中可以使用配置和规则定义编程语言,类型系统和形式化分析工具。利用KFramework提供的语法解析功能,对策略配置源文件进行处理,再利用其语义执行功能,对策略进行安全性质的分析与验证,而且已经写好的语法和语义可以重复利用,可以验证多个安全模型,极大的简化了策略验证所需要的工作,方法简便,成本低廉且可靠性高,有效提高了问题的求解效率。有效提高了问题的求解效率。有效提高了问题的求解效率。

【技术实现步骤摘要】
一种基于KFramework的SELinux安全策略形式化验证方法


[0001]本专利技术设计计算机软件验证
,尤其是一种基于KFramework的selinux安全策略形式化验证方法。

技术介绍

[0002]SELinux(Security Enhanced Linux)安全策略:
[0003]在访问控制领域,运行中的程序,或者内存中的进程和线程被称为主题,而被主体操作的对象,或者一般意义上的文件资源被称为客体;
[0004]在传统的访问控制,即自主访问控制中,对客体的访问控制是根据主体的身份以及所属的组来实现的,即不区分用户与程序的概念,用户只依靠那些并非由自己创建的程序在计算机上执行操作,也就是说对于用户而言并没有真正的权限管理。
[0005]SELinux是强制访问控制的一种经典实现,访问控制由操作系统或者系统管理员实现,目标是限制主体对客体执行某种操作的能力,每当一个主体尝试访问某个客体时,都会由操作系统内核强制实施授权规则——检查安全属性并决定是否可以访问,任何主体对任何客体的任何操作都会有与之相对应的授权规则,而任何用户也无法覆盖或者修改策略,安全管理员定义的策略得以在原则上保证向所有用户强制实施。
[0006]SELinux作为经典的MAC实现案例,已经进入上游Linux内核多年,在一些追求稳定以及安全的Linux发行版上SELinux也被设置为默认开启的。
[0007]现有的技术有:
[0008]根据安全模型提取安全性质,根据安全性质编写相应的策略分析工具,先处理策略文件,在解析策略语句,再通过建立模型等方式对其性质进行验证。综上,现有技术的缺陷在于:
[0009]1)现有针对selinux策略的验证技术主要是针对安全模型编写分析工具然后再用分析工具对策略进行验证;
[0010]2)针对某种特定安全模型编写的分析工具往往针对性过强而缺乏泛用性;
[0011]3)编写分析工具的过程中策略文件解析的工作具有很多重复性。

技术实现思路

[0012]本专利技术是针对现有对SELinux策略以及类似安全策略验证技术的不足而设计的一种基于KFramework的selinux安全策略形式化验证方法,利用KFramework提供的语法解析功能,对策略配置源文件进行处理,再利用其语义执行功能,对策略进行安全性质的分析与验证,而且已经写好的语法和语义可以重复利用,可以验证多个安全模型,极大的简化了策略验证所需要的工作,方法简便,成本低廉且可靠性高,有效提高了问题的求解效率。本专利技术是通过以下技术方案来实现的:
[0013]本专利技术公开了一种用于selinux安全策略的形式化验证方法,
[0014]S1.对selinux安全策略语言进行建模,整理出BNF文法;
[0015]S2.在KFramework中定义selinux安全策略语言的语法,定义好的selinux安全策略语言的语法为根据selinux安全策略语言的BNF文法写成的K Framework中的syntax语句;
[0016]S3.以KFramework中定义好的selinux安全策略语法为载体,通过selinux安全策略语言中语句的含义,对selinux安全策略语言的语义进行形式化建模,在KFramework中以配置项和重写规则的形式写出来;
[0017]S4.获取安全模型;
[0018]S5.根据安全模型得到需要关注的安全属性以及相应约束;
[0019]S6.根据安全属性及约束在K中编写相应的规格,得到K中的规格代码;
[0020]S7.通过(K提供的编译器kompile)对S2得到的syntax语句部分、S3得到的以配置项和重写规则的形式写出来的语义部分、S6得到的规格部分编译K代码,得到selinux安全策略语言的语义执行环境;
[0021]S8.获取待验证的selinux安全策略源码;
[0022]S9.将selinux安全策略源码作为S8中得到的语义执行环境的输入,做语义执行,得到语义执行结果;
[0023]S10.根据语义执行结果判断安全属性是否被满足,得出验证结果。
[0024]作为进一步地改进,本专利技术所述的步骤S1,S2,S3中从语言层面对selinux做了形式化建模,将selinux策略语言的语法、语义用统一的语言(K代码)进行了明确描述。
[0025]作为进一步地改进,本专利技术所述的步骤S2中selinux策略语言的语法、S3中selinux安全策略语言中语句的含义从selinux官方提供的文档或者手册中获取,确保其正确性。
[0026]作为进一步地改进,本专利技术所述的步骤S5中的安全模型需要有明确形式化描述,包括模型中的状态量及状态量之间的约束关系。
[0027]作为进一步地改进,本专利技术所述的步骤S6中的安全属性是模型中状态量的约束关系。
[0028]作为进一步地改进,本专利技术所述的步骤S6中的规格是在原有的配置项和重写规则上做出的额外补充。
[0029]作为进一步地改进,本专利技术所述的步骤S8中需要获取的selinux安全策略源码是经过宏展开的、符合selinux安全策略语法的单文件源代码。
[0030]作为进一步地改进,本专利技术所述的步骤S9中语义执行的结果以配置项的最终状态来程序,如果配置项中还有未处理的语句,则表示该语句不满足S6中根据安全属性所编写的规格。
[0031]本专利技术的有益效果如下:
[0032]采用了语义框架K framework来做对selinux安全策略语言的形式化建模,K是一个基于重写的可执行语义框架,在其中可以使用配置和规则定义编程语言,类型系统和形式化分析工具。配置以称为单元的单元组织状态,这些单元被标记并且可以嵌套。K重写规则明确了术语的哪些部分是只读的、只写的、读写的或未使用的。这使得K适合定义真正的并发语言,即使在存在共享的情况下也是如此。计算被表示为原始语言抽象句法的句法扩展,使用嵌套列表结构对计算任务(例如程序片段)进行顺序化。计算就像重写环境中的任
何其他术语一样:它们可以匹配、从一个地方移动到另一个地方、修改或删除。这使得K适用于定义控制密集型功能,例如突然终止、异常或call/cc。
[0033]从语言层面对selinux安全策略做形式化建模,抽象层次更高,忽略了selinux安全策略具体实现中与操作系统内核强耦合的部分,只需关注策略本身的安全性质。
[0034]所获得的selinux策略语言的语法和语义在K中的描述是可以重用的,可以用于多种安全模型,泛用性高。
[0035]如果所验证的安全策略不符合安全模型的约束,所获得的语义执行环境可以准确定位问题所在。
附图说明
[0036]图1表示本专利技术完整操作流程图;
[0037]图2表示本专利技术装置结构示意图。
具体实施方式
[0038]本专利技术公开了一种基于KFramework的se本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于KFramework的selinux安全策略形式化验证方法,其特征在于,包括S1.对selinux安全策略语言进行建模,整理出BNF文法;S2.在KFramework中定义selinux安全策略语言的语法,定义好的selinux安全策略语言的语法为根据selinux安全策略语言的BNF文法写成的K Framework中的syntax语句;S3.以KFramework中定义好的selinux安全策略语法为载体,通过selinux安全策略语言中语句的含义,对selinux安全策略语言的语义进行形式化建模,在KFramework中以配置项和重写规则的形式写出来;S4.获取安全模型;S5.根据安全模型得到需要关注的安全属性以及相应约束;S6.根据安全属性及约束在K中编写相应的规格,得到K中的规格代码;S7.通过(K提供的编译器kompile)对S2得到的syntax语句部分、S3得到的以配置项和重写规则的形式写出来的语义部分、S6得到的规格部分编译K代码,得到selinux安全策略语言的语义执行环境;S8.获取待验证的selinux安全策略源码;S9.将selinux安全策略源码作为S8中得到的语义执行环境的输入,做语义执行,得到语义执行结果;S10.根据语义执行结果判断安全属性是否被满足,得出验证结果。2.根据权利要求1所述的基于KFramework的selinux安全策略形式化验证方法,其特征在于,所述步骤S1,S2,S3中从语言层面对selinux做了形式化建模,将selin...

【专利技术属性】
技术研发人员:赵永望康锦辉陆嘉晨任奎
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1