17.13. MAC Biba 模块
上一页 | 第 17 章 强制访问控制 | 下一页

## 17.13. MAC Biba 模块

模块名： `mac_biba.ko`

对应的内核配置： `options MAC_BIBA`

引导选项： `mac_biba_load="YES"`

mac_biba(4) 模块将加载 MAC Biba 策略。 这个策略与 MLS 策略非常类似， 只是信息流的规则有些相反的地方。 通俗地说， 这就是防止敏感信息向下传播， 而 MLS 策略则是防止敏感信息的向上传播； 因而， 这一节的许多内容都可以同时应用于两种策略。

在 Biba 环境中， “integrity” (完整性) 标签， 将设置在每一个主体或客体上。 这些标签是按照层次级别建立的。 如果客体或主体的级别被提升， 其完整性也随之提升。

被支持的标签是 `biba/low`， `biba/equal` 以及 `biba/high`； 解释如下：

- `biba/low` 标签是客体或主体所能拥有的最低完整性级别。 在客体或主体上设置它， 将阻止其在更高级别客体或主体对其进行的写操作， 虽然读仍被允许。

- `biba/equal` 标签只应在那些希望排除在策略之外的客体上设置。

- `biba/high` 允许向较低标签的客体上写， 但不允许读那些客体。 推荐在那些可能影响整个系统完整性的客体上设置这个标签。

Biba 提供了：

- 层次式的完整性级别， 并提供了一组非层次式的完整性分类；

- 固定规则： 不允许向上写， 不允许向下读 (与 MLS 相反)。 主体可以在它自己和较低的级别写， 但不能向更高级别实施写操作。 类似地， 主体也可以读在其自己的， 或更高级别的客体， 但不能读取较低级别的客体；

- 完整性 (防止对数据进行不正确的修改)；

- 完整性级别 (而不是 MLS 的敏感度级别)。

下列 `sysctl` 可以用于维护 Biba 策略。

- `security.mac.biba.enabled` 可以用来在机器上启用/禁用是否实施 Biba 策略。

- `security.mac.biba.ptys_equal` 可以用来在 pty(4) 设备上禁用 Biba 策略。

- `security.mac.biba.revocation_enabled` 将在支配主体发生变化时强制撤销对客体的访问权。

要操作系统客体上的 Biba 策略， 需要使用 `setfmac` 和 `getfmac` 命令：

`#` `setfmac biba/low test` `#` `getfmac test` test: biba/low

### 17.13.1. 规划托管完整性

与敏感性不同， 完整性是要确保不受信方不能对信息进行篡改。 这包括了在主体和客体之间传递的信息。 这能够确保用户只能修改甚至访问需要他们的信息。

mac_biba(4) 安全策略模块允许管理员指定用户能够看到和执行的文件和程序， 并确保这些文件能够为系统及用户或用户组所信任， 而免受其他威胁。

在最初的规划阶段， 管理员必须做好将用户分成不同的等级、 级别和区域的准备。 在启动前后， 包括数据以及程序和使用工具在内的客体， 用户都会无法访问。 一旦启用了这个策略模块， 系统将默认使用高级别的标签， 而划分用户级别和等级的工作则交由管理员来进行配置。 与前面介绍的级别限界不同， 好的规划方法可能还包括 topic。 例如， 只允许开发人员修改代码库、 使用源代码编译器， 以及其他开发工具， 而其他用户则分入其他类别， 如测试人员、 设计人员， 以及普通用户， 这些用户可能只拥有读这些资料的权限。

通过其自然的安全控制， 完整性级别较低的主体， 就会无法向完整性级别高的主体进行写操作； 而完整性级别较高的主体， 也不能观察或读较低完整性级别的客体。 通过将客体的标签设为最低级， 可以阻止所有主体对其进行的访问操作。 这一安全策略模块预期的应用场合包括受限的 web 服务器、 开发和测试机， 以及源代码库。 而对于个人终端、 作为路由器的计算机， 以及网络防火墙而言， 它的用处就不大了。

上一页 | 上一级 | 下一页
17.12. MAC 多级 (Multi-Level) 安全模块 | 起始页 | 17.14. MAC LOMAC 模块

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.