APP下载

一种灵活的强制完整性访问控制策略*

2014-03-23魏立峰张国印

计算机工程与科学 2014年5期
关键词:完整性客体进程

徐 锋,魏立峰,张国印

(1.哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨150001;2.国防科学技术大学计算机学院,湖南长沙410073)

1 引言

计算机信息安全除了要保护信息的机密性外,还要保护信息的完整性。文件的完整性是指文件完好无损,是完整的。一旦一个重要文件被替换或篡改,其危害甚至不亚于机密信息的丢失。

Tripwire是Linux下进行事后完整性检查的一种手段,但不能实时地对文件完整性进行保护,仅在事后给出提示,显然不能满足完整性保护需求。为保护信息完整性,学者提出了很多完整性模型,包括Biba模型、Clark-Wilson模型、Chinese-Wall模型、LOMAC模型、Lipner完整矩阵模型等[1],并进行了一系列后续研究[2~7],从完整性访问控制模型以及如何实施完整性访问控制等角度进行了研究,但是都不能真正做到利用完整性控制机制保护系统平台的完整性,防止外来程序的执行。

完整性保护是高等级安全操作系统的一项重要要求[8,9]。各安全操作系统基于不同的完整性保护模型进行适应性实现。银河麒麟提出了可信数据认证技术,定义了两个简单完整级,分别表示可信和不可信,通过定义外来数据不可信防止恶意程序对完整性的破坏,同时起到抵御恶意攻击的效果;红旗安全操作系统则在Biba严格完整性保护策略的基础上,实现了动态的严格完整性保护策略[3];FreeBSD在其强制访问控制MAC(Mandatory Access Control)框架下实现了保护完整性的mac_lomac策略[10]。Windows 7和Vista的强制完整性控制MIC(Mandatory Integrity Control)策略[11]是Biba模型中Ring策略[1]的一种实现。利用MIC机制,Windows 7和Vista实现了IE保护模式,限制恶意代码、程序和插件能够通过浏览器获得的权限操作。

虽然有很多的完整性模型及策略实现,但在实际使用中还是存在一些不足。无论信息完整性的保护需求有多高,总是有进程或用户可以有意或无意地进行修改、删除等操作,而在某些情况下,是不允许进行任何修改的,比如操作系统内核、重要配置文件以及系统重要命令或应用等,一旦这些文件被破坏,甚至可以导致系统瘫痪;较低完整性的文件是可以执行较高完整性程序的,因为并不会破坏完整性保护原则;新创建文件的完整性如何确定的问题并不是任何时候都要和进程完整性一致。基于此,本文提出了一种满足完整性保护需求并兼顾灵活和防止浏览器劫持等恶意攻击的灵活完整性控制策略,称之为FIC(Flexible Integrity Control)完整性控制策略,并给出了在LSM(Linux Security Module)[11]访问控制框架下的实现过程。FIC策略引入了辅助完整级,参与新创建文件客体的完整性标记确定规则中,并定义进程执行完整性标记规则,使得低完整性进程不能通过执行高完整性进程提升权限,高完整性进程执行低完整性进程必须降低权限,既增加了灵活性又不会对完整性造成破坏。分析表明,FIC策略即能满足完整性保护目标,也能有效防止系统重要文件遭到破坏,同时还有防止外来恶意软件运行和浏览器劫持等功能。

2 完整性策略模型分析

2.1 Biba模型

Biba模型是最经典的完整性模型和正式的计算机安全策略状态转换系统,由Biba K于20世纪70年代提出。类似于BLP[1]保密性模型,Biba模型为系统中的主客体定义了完整性等级,并制定了一套确保数据不被损坏的访问控制规则,提供了分级别的完整性保证。

Biba模型针对完整性保护提出了三种策略:low-water-mark策略、Ring策略和严格完整性策略(Biba模型)。

low-water-mark策略定义了如下三种访问控制规则:

(1)主体s能够写访问客体o,当且仅当客体o的完整级小于或等于主体s的完整级;

(2)如果主体s读访问客体o,如果客体o的完整级低于主体s的完整级,那么主体s在读访问客体o后,其完整级等于客体o的完整级;

(3)主体s1能够执行主体s2,当且仅当主体s2的完整级小于或等于主体s1的完整级。

Ring策略定义了如下三种访问控制规则:(1)允许任何主体读任何客体;

(2)主体s允许写访问客体o,当且仅当客体o的完整级小于或等于主体s的完整级;

(3)主体s1能够执行主体s2,当且仅当主体s2的完整级小于或等于主体s1的完整级。

严格完整性策略也称之为Biba模型,定义了如下访问控制规则:

(1)主体s能够读访问客体o,当且仅当主体s的完整级小于或等于客体o的完整级;

(2)主体s能够写访问客体o,当且仅当客体o的完整级小于或等于主体s的完整级;

(3)主体s1能够执行主体s2,当且仅当主体s2的完整级小于或等于主体s1的完整级。

2.2 Biba模型策略分析

Biba模型三种完整性策略的区别仅在于读访问时的限制,其目标就是对信息流进行限制,在主体访问客体时,禁止低完整性等级的进程对高完整性等级的客体进行写访问,保证信息只会从等级较高的实体传输到等级低的实体。在low-watermark策略中,当高完整级的进程读访问了低完整级的文件时,进程要降低其完整性等级。也可以描述为具有更高等级的清洁实体受到损坏后,就变成等级低的非清洁等级实体。Biba模型则不允许进程读更低完整级的客体。

Windows 7或者Vista的MIC机制实际上是Ring策略的一种实现。MIC只定义了简化的四个完整级,并通过浏览器进程运行在最低完整级来限制恶意木马或病毒通过浏览器对系统的破坏。

在Biba模型的三种策略中,低完整级进程不能执行高完整级应用,因为只要完整级不被提高,允许执行并不会对完整性造成破坏,因此灵活性不足。同时,高完整级进程在执行低完整级程序后没有相应的完整级变化规则,可能导致低完整性程序被高完整性进程执行后具有高完整性从而破坏完整性。由于缺乏新建客体的完整性标记规则,通常继承进程的完整性标记,但并不是任何时候高完整级进程创建的文件一定是高完整级文件,比如创建的临时文件,可能需要和其他进程共享,因此其完整级并不需要和进程的完整级一样高。

对操作系统本身而言,完整性保护的目标不只是信息的完整性,操作系统自身的完整性更加重要。如果操作系统内核、系统命令等被修改或删除,可能造成重要安全隐患甚至导致系统瘫痪。因此,对于某些在任何时候都不能被修改的文件,有必要采取特别措施保护其完整性。

3 FIC完整性策略

3.1 FIC完整级定义

为保护信息的完整性,并考虑实用性和灵活性,FIC完整性策略为系统中的主客体定义一个完整性标记,包括主完整级IL(Integrity Level)和辅助完整级IAL(Integrity Auxiliary Level)。主完整级IL主要参与访问控制决策以及客体完整性标记的确定;辅助完整级IAL则主要针对系统中的进程主体和目录客体,并参与到文件客体完整性标记确定规则中,用以确定新生成的文件客体完整性标记。

FIC完整性策略缺省定义七个完整级,从高到低分别是NOMOD、CORE、SYSTEM、USER、TMP、LOW以及UNDEF,其各自含义及适用主客体如表1所示。其中主完整级可以取值NOMOD、CORE、SYSTEM、USER、TMP以及LOW,辅助完整级取值范围则包括全部七个完整级。

一个完整性标记A的主完整级IL(A)和辅助完整级IAL(A)必须满足如下关系之一:

3.2 FIC完整性策略规则

定义1 当且仅当完整性标记A的主完整级IL(A)大于或等于完整性标记B的主完整级IL(B)时,即IL(A)≥IL(B)时,称完整性标记A支配完整性标记B。

Table 1 Definition of FIC default integraity level表1 FIC缺省完整级定义

FIC完整性策略与Ring策略相似,但考虑了灵活性,策略规则定义如下:

(1)读访问规则:由于读访问不破坏完整性,缺省允许;

(2)写访问规则:当且仅当进程主体的完整性标记支配客体的完整性标记时,才允许该进程对该客体进行写访问;

(3)执行访问规则:任何进程不允许执行主完整级为LOW的客体,且进程改变执行映像时,即在exec操作时,产生新进程的完整性标记为其父进程与被执行文件中完整性标记较小者。

通过上述完整性策略规则,FIC完整性策略既满足Ring策略的要求,又保证了系统运行的灵活性,可保证高完整性标记的文件、进程等不会被低完整性标记进程破坏。系统运行时,高完整性的进程在执行低完整性的文件后会降低其完整性标记,而低完整性的进程不可能通过执行高完整性的文件提升自己的权限。

3.3 FIC主客体完整性标记决策规则

在系统执行过程中,进程主体的完整性标记应随着其执行流的进行而改变,防止进程通过改变执行映像提高权限,并防止低完整性标记程序被高完整性标记进程执行时可能对系统完整性造成破坏。因此,进程在改变执行映像时需要根据进程的原有完整性标记和执行映像的完整性标记重新确定其完整性标记。新生成的客体完整性标记也是根据其父进程以及父目录的完整性标记来确定。

当进程创建子进程时,子进程缺省继承父进程的完整性标记。当进程p改变执行映像时,进程p的完整性标记按照如下规则改变:

(1)如果进程的当前完整性标记支配执行映像的完整性标记,则进程的主完整级降低为执行映像的主完整级;如果执行映像的完整性标记支配进程的当前完整性标记,则进程的完整性标记保持不变。

(2)如果执行映像具有辅助完整级,且辅助完整级不为NOMOD,则:

①如果进程当前没有定义辅助完整级,即辅助完整级为UNDEF,则进程的辅助完整级设置为执行映像的辅助完整级;

②如果进程当前有辅助完整级,且映像的辅助完整级高于进程的辅助完整级,则进程的辅助完整级不变;

③如果进程当前有辅助完整级,且进程的辅助完整级高于映像的辅助完整级,则进程的辅助完整级设置为执行映像的辅助完整级。

(3)经步骤(1)、(2)后,如果进程的辅助完整级IAL(p)高于进程的主完整级IL(p),则进程的辅助完整级IAL(p)设置得与进程的完整级IL(p)相等。

当进程创建文件时,文件客体的完整性标记通常要继承进程的完整性标记,但并不是所有新建文件都要和进程保持一致。辅助完整级主要用于文件或目录客体创建时的完整性标记限定。如果进程的辅助完整级不为UNDEF,则辅助完整级表示进程所能创建的文件的最高完整性标记;如果目录的辅助完整级不为UNDEF,则辅助完整级表示在该目录下新创建的文件的最高完整性标记。

新建客体标记确定规则如下:

(1)如果进程具有辅助完整级,则文件客体的主完整级继承进程的辅助完整级,否则文件客体的主完整级继承进程的主完整级。如果要创建的文件客体所在的父目录有辅助完整级,则转2);否则,文件客体的辅助完整级取值为UNDEF,文件客体完整性标记确定完毕。

(2)如果步骤(1)确定的文件客体主完整级高于父目录的主完整级,则继承父目录的主完整级。如果创建的文件客体是目录,则目录的辅助完整级也继承父目录的辅助完整级;否则,辅助完整级取值为UNDEF。转(3)

(3)如果步骤(2)确定的文件客体完整性标记支配步骤(1)确定的完整性标记,则文件客体的完整级即为步骤(1)确定的完整标记;如果文件客体具有辅助完整级,且辅助完整级高于文件客体的主完整级,则辅助完整级设置得与文件客体的主完整级相同。

4 FIC完整性策略在LSM框架下的实现

4.1 LSM框架

LSM是一种轻量级、通用的访问控制框架,为各种增强的访问控制策略提供一种底层的通用支持,使得安全模块开发者可以专注于安全策略内部的细节实现,而不必关心整个操作系统的流程。目前,LSM已经集成在Linux内核中,Linux各主要发行版本均包括LSM框架。通过LSM框架,可以方便地实现各种安全策略,如SELinux就是挂接在LSM框架下实现对系统的保护。

LSM在内核主要的数据结构(如inode、task、file等)中均增加了相应的安全域,以无类型指针void*security表示,并在内核相关函数内部的关键点插入钩子函数。根据控制对象的不同,LSM将hook函数进行分类,并定义在一个security_operations安全hook函数域结构中,各安全策略模块根据自身策略需求实现相应的部分或全部hook函数实体。当主体访问客体时,首先进行一系列常规操作及内核一般访问检查后,通过钩子函数进入挂接在LSM下的各访问控制策略检查函数,并根据各访问控制策略检查结果,决定是否授予访问权限。

4.2 FIC策略实现

4.2.1 FIC安全标记域

FIC完整性访问控制策略作为一个安全策略模块在LSM框架下设计实现,为系统内所有主客体定义如下一个fic_label完整性标记结构,在该结构中,fic_grade表示主完整级,fic_aux表示辅助完整级。

以该标记结构为基础,为inode、file、task、bprm等定义相应的完整性标记结构。

4.2.2 主体函数设计

FIC策略主要实现与访问控制相关的inode客体标记、进程再标记等hook函数。

进程访问文件的主体函数fic_inode_perm的逻辑结构如图1所示。

Figure 1 Logic structure of process access files图1 进程访问文件逻辑结构

进程p执行b的时候,进程完整性标记需要根据b的完整性标记重新确定进程p的主完整级和辅助完整级。主体函数fic_bprm_apply_creds的逻辑结构如图2所示。

Figure 2 Logic structure of process tags to determine图2 进程标记再确定逻辑结构

新建文件o的完整性标记缺省根据进程p的完整性标记确定,但如果父目录d下创建的文件完整性标记有特殊要求,则新建文件o的完整性标记根据进程p和目录d二者的完整性标记综合确定。主体函数fic_inode_init_security的逻辑结构如图3所示。

4.3 实现效果分析

FIC策略引入主完整级和辅助完整级,并允许低完整性标记的进程可以执行高完整性标记的程序,高完整性标记进程在执行低完整性程序后降低其完整性,实现了系统执行控制的灵活性。辅助完整级主要文件客体创建时的标记限定中,通常用于浏览器等进程以及/tmp等临时目录。

igure 3 Logic structure of new file tags to determine图3 新建文件标记确定逻辑结构

为保护操作系统内核等重要文件,通过安全配置工具ficset为/boot目录下所有文件设置完整性标记为CORE[NOMOD]。测试表明,任何用户对这些文件的修改操作都被拒绝,但不影响系统正常运行。

为浏览器进程定义TMP[LOW]完整性标记,即主完整级为TMP,辅助完整级为LOW,使得浏览器进程不能对系统造成破坏,且通过浏览器下载的文件或插件主的完整级只能是LOW,因此通过浏览器下载的恶意程序或木马不能运行,进一步保护了系统的安全。测试也验证了这一点。

5 结束语

本文研究了目前完整性保护机制的现状,指出了其中存在的缺陷,提出了一种灵活的完整性保护策略FIC,并在LSM框架下设计实现。FIC策略定义了主完整级和辅助完整级的概念,并通过访问控制规则、主体再标记规则和新建客体标记规则,实现了灵活的完整性保护。利用FIC策略,可以做到具有最高完整性保护要求的文件不会被任何用户或进程修改,并可防止外来恶意程序或木马的运行。

但是,FIC策略在设计实现过程中只简单定义了有限的几个完整级,在某些情况下,可能不能满足实际需求。因此,还可以对FIC进行可扩展性研究,管理员根据需要动态增加自定义完整级,系统根据完整级配置文件在内核维护完整级链表,进一步满足扩展需求。

[1] Bishop M.Computer security:Art and science[M].Boston:Addison Wesley,2002.

[2] Zhang Jun,Zhou Zheng,Li Jian,et al.Confidentiality and integrity dynamic union model based on MLS policy[J].Computer Engineering and Applications,2008,44(12):19-21.(in Chinese)

[3] Zhang Xiang-feng,Sun Yu-fang.Dynamic enforcement of the strict integrity policy in Biba’s model[J].Journal of Computer Research and Development,2005,42(5):746-754.(in Chinese)

[4] Zhou Zhou-yi,He Ye-ping,Liang Hong-liang.Hybrid mandatory integrity model composed of Biba and clark-wilson policy[J].Journal of Software,2010,21(1):98-106.(in Chinese)

[5] Luo Qin,Wang Xiao-ming,Fu zheng-fang.An improvement of clark-wilson integrity model[J].Microelectronics &Computer,2007,24(7):128-131.(in Chinese)

[6] Liu Zun,Wang Tao,Li Wei-hua.Role based integrity control model for operating system[J].Computer Science,2010,37(1):87-90.(in Chinese)

[7] Hu Ming,Pan Xue-zeng,Li Wen.Design and implementation of improved multiple-level security model[J].Computer Engineering and Applications,2011,47(4):77-80.(in Chinese)

[8] Galagher P R.A guide to understanding audit in trusted systems[M].US:National Computer Secuirty Center(NCSC),1987.

[9] Common criteria for information technology security evaluation(Version2.3)[S].Common Criteria Recognition Agreement(CCRA),2005.

[10] Wu Xin-song,Zhou Zhou-yi,He Ye-ping,et al.Static analysis of a class of memory leaks in trusted BSD MAC framework[C]∥Proc of ISPEC’09,2009:83-92.

[12] Riley S.Windows Vista system integrity technologies[R].Microsoft,2006:1-62.

[11] Wright C,Cowan C,Morris J,et al.Linux security modules:General security support for the Linux kernel[EB/OL].[2003-05-20].http://lsm.immunix.org.

附中文参考文献:

[2] 张俊,周正,李建,等.基于MLS策略的机密性和完整性动态统一模型[J].计算机工程与应用,2008,44(12):19-21.

[3] 张相锋,孙玉芳.Biba模型中严格完整性政策的动态实施[J].计算机研究与发展,2005,42(5):746-754.

[4] 周洲仪,贺也平,梁洪亮.基于Biba和Clark-Wilson策略的混合强制完整性模型[J].软件学报,2010,21(1):98-106.

[5] 罗琴,王小明,付争方.一种改进的Clark_Wilson完整性策略模型[J].微电子学与计算机,2007,24(7):128-131.

[6] 刘尊,王涛,李伟华.基于角色的操作系统完整性控制模型[J].计算机科学,2010,37(1):87-90.

[7] 胡明,潘雪增,李文.改进的多级安全模型的设计与实现[J].计算机工程与应用,2011,47(4):77-80.

猜你喜欢

完整性客体进程
稠油热采水泥环完整性研究
符号学视域下知识产权客体的同一性及其类型化解释
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
莫断音动听 且惜意传情——论音乐作品“完整性欣赏”的意义
精子DNA完整性损伤的发生机制及诊断治疗
旧客体抑制和新客体捕获视角下预览效应的机制*
关税课税客体归属论
社会进程中的新闻学探寻
桩身完整性检测中缺陷的综合判别