本文主要讲述FreeBSD 5.0操作系统中新增的重要安全机制,即强制访问控制机制(MAC)的使用与源代码分析,主要包括强制访问控制框架及多级安全(MLS)策略两部分内容。这一部分较系统地对MAC框架及MLS策略的源代码进行分析。
2 MAC框架与MLS策略源代码分析
与本文相关的源代码文件主要有两个,即 /usr/src/sys/kern/kern_mac.c 和 /usr/src/sys/security/mac_mls/mac_mls.c 。另外还有一些头文件如mac.h、mac_policy.h等。
2.1 MAC框架整体结构
下面是 MAC 框架的示意性结构图,当用户控制台或用户程序通过系统调用对内核对象进行访问的时候,由于内核代码中相应的位置插入了MAC框架的检查函数,于是内核就会调用MAC框架的相应检查函数来做安全性检查。MAC框架会依次调用每个挂接在MAC框架上的安全策略,以决定访问是否安全。另外,其它可能涉及到安全问题的系统事件,如初始化各种安全标记、初始化各种内核对象等,也会通知MAC框架,由它做出相应的处理。
从图中我们也可以看到,安全策略作为一个独立的KLD模块,可以独立于内核进行编译,再在使用的时候挂接到MAC框架上。要判断一次访问是否安全,MAC框架会调用所有的安全策略,只有当所有的安全策略均表示同意,MAC框架才会授权这次访问。
2.2 安全标记
安全标记是由MAC框架和各个安全策略定义的一组数据,用于描述主体或客体的安全信息,安全标记与内核描述主客体的其它数据一起存储在内核中。要实现强制访问控制,首先必须为主客体定义安全标记。不同的策略由于判断的依据不一样,可能定义的标记也不相同。作为MAC框架,当安全策略向它注册的时候,它必须把该策略使用的安全标记附加到各个内核对象上去,这样当需要调用该策略做安全性检查的时候,才能为策略提供它们自己定义和理解的安全标记。我们先给出MAC框架与MLS策略定义的安全标记,再对之作进一步的解释。
相关专题
- 访问控制列表(ACL)介绍 (181篇文章)
- 访问控制列表 (124篇文章)
- FreeBSD系统安全管理 (8828篇文章)
- FreeBSD使用教程 (6592篇文章)
- Freebsd频道 (698篇文章)
- FreeBSD系统的使用 (96篇文章)
- FreeBSD系统安装与配置之准备篇 (1753次浏览)
- FreeBSD入门安装及汉化 (1472次浏览)
- FreeBSD下安装GNOME桌面 (971次浏览)
- FreeBSD 5.0硬盘安装指南 (707次浏览)
- freebsd5.2.1上安装vmware 3.2.1 (610次浏览)
- FreeBSD 5.1安装VMware全部过程 (571次浏览)
- FreeBSD连载(72):设置和使用DHCP (563次浏览)
- 使用FreeBSD的原因 (506次浏览)
- FreeBSD系统终极安装手册(图) (474次浏览)
- FreeBSD5.3下安装Apache+PHP+MySQL+Tomcat (453次浏览)




