跳转到主要内容

Biba

概述​

Biba 模型(1975 年)强制保证 完整性:subject 和 object 都具有完整性级别。其规则为:no read down(不读低完整性数据)、no write up(不写高完整性数据)。这样,高完整性数据就不会被低完整性来源破坏。

模型​

[request_definition]
r = sub, sub_level, obj, obj_level, act

[policy_definition]
p = sub, obj, act

[role_definition]
g = _, _

[policy_effect]
e = some(where (p.eft == allow))

[matchers]
m = (r.act == "read" && r.sub_level <= r.obj_level) || (r.act == "write" && r.sub_level >= r.obj_level)

策略​

通常不需要 p 规则;Biba 规则由 matcher 基于请求中的级别实现:

  • No Read Down(简单完整性属性):Subject 不能读取完整性级别更低的对象
  • No Write Up(星号完整性属性):Subject 不能写入完整性级别更高的对象

核心原则​

Biba 的“向上读、向下写”方法与 Bell-LaPadula 的“向下读、向上写”模型正好相反。这确保了:

  1. 数据完整性保护:防止高完整性数据被低完整性来源破坏
  2. 受控的信息流:限制写入只能从高完整性级别流向低完整性级别
  3. 可信性保持:在每个完整性级别上维持数据的可信度

示例​

请求示例​

alice, 3, data1, 1, read    # alice (level 3) reads data1 (level 1) - DENIED (No Read Down)
bob, 2, data2, 2, read # bob (level 2) reads data2 (level 2) - ALLOWED
charlie, 1, data1, 1, read # charlie (level 1) reads data1 (level 1) - ALLOWED
bob, 2, data3, 3, read # bob (level 2) reads data3 (level 3) - ALLOWED
charlie, 1, data2, 2, read # charlie (level 1) reads data2 (level 2) - ALLOWED

alice, 3, data3, 3, write # alice (level 3) writes data3 (level 3) - ALLOWED
bob, 2, data3, 3, write # bob (level 2) writes data3 (level 3) - DENIED (No Write Up)
charlie, 1, data2, 2, write # charlie (level 1) writes data2 (level 2) - DENIED (No Write Up)
alice, 3, data1, 1, write # alice (level 3) writes data1 (level 1) - ALLOWED
bob, 2, data1, 1, write # bob (level 2) writes data1 (level 1) - ALLOWED

完整性级别​

Biba 用整数表示完整性级别,数值越高表示完整性越高:

  • Level 1:低完整性(公开数据、用户生成的内容)
  • Level 2:中等完整性(经过验证的数据、可信来源)
  • Level 3:高完整性(系统数据、管理内容)
  • Level 4:关键完整性(安全策略、系统配置)

使用场景​

Biba 模型的常见应用:

  • 对数据准确性有要求的金融系统
  • 医疗记录管理
  • 对数据完整性有要求的数据库系统
  • 防止数据破坏比防止信息泄露更重要的环境
  • 信息准确性与可靠性至关重要的系统

实现要点​

  • 强制执行以完整性为重点的强制访问控制(MAC)
  • 系统管理员根据数据的可信度分配完整性级别
  • 访问决策取决于完整性级别,而非用户身份
  • 通过受控的读/写操作防止数据被破坏
  • 与 Bell-LaPadula 不同,大多数 Biba 实现只使用很少的几个完整性级别

与 Bell-LaPadula 的比较​

方面Bell-LaPadulaBiba
主要关注点机密性完整性
读规则不向上读不向下读
写规则不向下写不向上写
口诀“向下读,向上写”“向上读,向下写”