Day37-06|18.2.2 Bell-LaPadula 模型:面向机密性的强制访问控制

对应教材:第 18 章 安全架构设计理论与实践——18.2.2 Bell-LaPadula 模型
学习定位:理解 Bell-LaPadula 模型的安全目标、主体和客体、密级与范畴、简单安全性质、“”性质和强 性质,掌握它对机密性系统、军事分级系统、数据访问和跨级流动的启示,同时理解模型的局限。

一、Bell-LaPadula 模型解决什么问题

Bell-LaPadula 模型是一种经典的强制访问控制模型,主要用于保护信息的机密性。它通过给主体和客体分配安全级别,并规定读写方向,防止低安全级别主体获取高安全级别信息,或高安全级别主体将敏感信息写入低级别客体。

该模型通常用于描述具有分级密级的系统,例如军事、政府、金融和企业内部的敏感信息管理。它的重点不是判断用户是否属于某个角色,而是从“主体当前许可级别”和“客体安全级别”的关系出发,限制信息流动。

Bell-LaPadula 的基本安全直觉可以概括为:

高密级信息不能被低密级主体读取;高密级主体不能把敏感信息写入低密级对象。

常用记忆方式是:

不向上读,不向下写。

这句话是帮助记忆的简化表达,真正答题时要写出主体和客体的安全级别关系,以及“*”性质对写操作的限制。

二、模型中的基本概念

2.1 主体

主体是能够发起访问请求或执行操作的活动实体,例如用户、进程、服务、终端或管理员。主体具有当前安全级别,也可能拥有多个范畴或部门标签。

主体的级别来源于身份认证、授权配置、所在环境和会话状态。主体的最高许可级别不代表它每次都可以访问所有相同级别的对象,还需要考虑范畴、任务和最小权限。

2.2 客体

客体是被访问或被保护的被动资源,例如文件、数据库记录、消息、打印文档、接口、配置和设备。每个客体具有安全级别和范畴集合。

客体的密级通常由数据分类、业务规则、创建者、管理员或自动化标签决定。客体一旦被写入更高敏感度信息,不能仅凭文件名或路径继续认为它属于低级别。

2.3 安全级别

安全级别表示主体或客体的敏感程度,通常形成一个有序关系。例如:

绝密 > 机密 > 秘密 > 公开

在一般化表达中,可以使用“支配”关系表示级别和范畴的综合比较。若主体级别不低于客体级别,并且主体拥有客体所需范畴,则主体可能具备读取资格;如果缺少范畴,即使级别较高,也不应自动允许访问。

2.4 范畴或隔离标记

范畴用于描述部门、项目、任务或数据域的附加隔离属性。例如同样属于“机密”级别的对象,还可能分别属于“项目 A”“项目 B”或“财务”“研发”范畴。主体必须同时满足密级和范畴要求,才能访问客体。

范畴有助于避免“高密级主体可以查看所有高密级数据”的过度授权,体现了强制控制中的分域思想。

三、Bell-LaPadula 的安全性质

3.1 简单安全性质

简单安全性质也常被称为“无向上读”或 No Read Up。它要求主体只有在主体的安全级别支配客体的安全级别时,才能读取客体:

主体级别 ≥ 客体级别

如果主体级别低于客体,读取请求必须被拒绝。这样可以防止低密级主体读取高密级数据。

例如,秘密级用户不能读取机密级文件;机密级用户可以读取秘密级文件,但还要满足范畴和其他访问条件。该性质主要保护机密性,限制信息从高密级向低密级主体泄露。

3.2 “*”性质

“*”性质也称无向下写或 No Write Down。它要求主体只有在客体的安全级别支配主体的安全级别时,才能向客体写入信息:

客体级别 ≥ 主体级别

这意味着高密级主体不能把数据写入低密级客体,防止敏感信息通过写操作、覆盖、复制、打印或消息发送流向较低密级环境。

例如,机密级进程不能向秘密级文件写入;秘密级进程可以向秘密级或更高级文件写入,但实际系统还需考虑完整性、权限和资源所有权。

3.3 强 * 性质

强 * 性质要求读写操作只能发生在相同安全级别,或者主体与客体处于等价级别:

主体级别 = 客体级别

它比普通“”性质更严格,可以防止跨级读写,但会降低系统灵活性。强 性质适合需要严格隔离、避免信息跨级流动的系统;普通“*”性质允许主体在满足安全关系时进行某些向上写操作。

3.4 读写规则对比

操作 安全要求 记忆方式 防止的问题
读 主体级别 ≥ 客体级别 不向上读 低密级读取高密级信息
写 客体级别 ≥ 主体级别 不向下写 高密级信息流向低密级客体
强 * 读写 主体级别 = 客体级别 同级操作 跨级信息流动

考试中要注意,读写规则保护的是机密性,不等于已经解决完整性、可用性、身份真实性和审计问题。

四、支配关系与安全标签

4.1 标签表示

可以将安全标签表示为:

标签 = (安全级别,范畴集合)

例如:

主体 S1 = (机密,{研发})

客体 O1 = (秘密,{研发})

客体 O2 = (秘密,{财务})

S1 可以支配 O1,因为级别不低且拥有研发范畴;S1 不一定支配 O2,因为范畴不匹配,即使级别满足,也应拒绝访问。

4.2 标签完整性

安全标签本身是访问控制的重要依据。如果普通用户可以随意修改文件标签,就可能把高密级文件标成低密级,从而绕过控制。因此标签的创建、修改、降级、升级和继承都必须受到强制控制并记录审计。

4.3 标签继承和派生

当高密级数据被复制、汇总、转换或发送到新对象时,新对象的安全标签如何确定,是实际系统中的难点。简单地沿用原标签可能过度限制业务,简单地降低标签又可能泄露信息。

通常需要根据数据来源、处理逻辑、混合结果和业务审批确定派生标签。对自动化处理,应使用可信组件和可验证规则,避免应用自行决定敏感级别。

五、模型中的主体与客体操作

5.1 读取

读取包括打开文件、查询数据库、读取消息、查看日志和调用返回数据。系统不仅要保护显式读取,还要考虑错误消息、统计结果、缓存、导出、打印和日志中的间接泄露。

5.2 写入

写入包括创建、修改、追加、发送消息、上传文件、写日志和更新数据库。高密级主体将数据写入低密级对象是典型风险,但写入控制还要与完整性策略结合,防止低可信主体污染高价值对象。

5.3 执行与调用

程序执行、接口调用和服务间通信可能同时产生读写效果。不能只检查调用者是否可以“执行接口”,还要分析接口背后读取和写入哪些对象、是否产生跨级数据返回、是否改变标签或触发下游转发。

5.4 管理与降级

安全管理员可能需要调整标签、创建主体和处理应急事件。这些操作属于高风险管理动作,不应因为管理员级别高就完全绕过模型。应采用职责分离、双人审批、临时权限、操作录像和全量审计。

六、Bell-LaPadula 与强制访问控制

6.1 自主访问控制与强制访问控制

自主访问控制通常由资源所有者决定谁可以访问,灵活但容易被所有者误配置或转授权。强制访问控制由系统安全策略统一决定,用户和资源所有者不能任意改变标签或绕过规则。

Bell-LaPadula 更接近强制访问控制模型。它要求访问决策由安全标签和系统策略共同决定,用户不能通过改变文件权限或复制对象轻易降低安全级别。

6.2 适用场景

适合具有明显机密等级和跨级流动限制的环境,例如军事信息系统、政府敏感信息系统、企业高敏感数据平台和多级安全数据库。对普通互联网业务,如果数据不具有清晰的分级关系,直接套用可能导致规则复杂、业务灵活性降低。

6.3 实现方式

实际系统可以通过安全内核、可信操作系统、数据库强制标签、容器和虚拟机隔离、可信中介、单向网闸或人工审批实现类似思想。实现时要保证标签不可伪造、策略不可绕过、跨级流动可控、管理操作可审计。

七、模型的优点

7.1 规则清晰

“不向上读、不向下写”的规则易于理解和验证,适合在安全策略、系统设计和测试中形成明确约束。

7.2 强调信息流控制

模型关注数据如何在不同安全级别之间流动,而不仅仅是用户是否拥有某个权限。它可以帮助架构师识别复制、导出、消息、缓存和日志造成的间接信息流。

7.3 适合分级数据保护

对于具有明确密级和隔离域的数据,安全标签和支配关系能够形成统一控制基础,减少每个应用自行解释权限的差异。

7.4 有利于形式化验证

状态、标签、读写规则和不变量可以被形式化描述,适合进行策略验证和安全测试。设计团队可以检查是否存在从高密级对象流向低密级对象的可达路径。

八、模型的局限

8.1 主要关注机密性

Bell-LaPadula 主要保护机密性,对数据是否被正确修改、系统是否持续可用、业务角色是否适当等问题没有完整回答。完整性可以结合 Biba 或其他模型,可用性需要通过冗余、限流和恢复机制解决。

8.2 不充分描述业务权限

模型按安全级别和范畴控制访问,但现实业务还需要角色、职责、流程、时间、地点、审批、交易额度和上下文。一个主体即使支配客体,也不代表业务上允许它执行所有操作。

8.3 跨级共享复杂

实际业务经常需要将高密级数据脱敏后共享给低密级部门,或将不同等级数据汇总用于统计。简单禁止所有向下流动会影响业务,允许人工复制又可能产生泄露。需要可信降密、脱敏、汇总、人工复核和审计机制。

8.4 动态环境适配困难

云、容器、移动和微服务环境中的主体、客体和标签动态变化,传统静态等级需要与身份、设备状态、风险和业务上下文结合,否则策略可能过于僵化。

8.5 标签管理成本高

资产多、数据流复杂时,标签的创建、继承、变更和审计会带来较高成本。标签错误可能导致数据泄露或业务阻断,必须建立自动识别、人工复核和异常监控机制。

九、与其他模型的关系

Bell-LaPadula 主要关注机密性,Biba 模型主要关注完整性,Clark-Wilson 模型强调 well-formed transaction 和职责分离,Chinese Wall 模型关注利益冲突。实际安全架构可以组合多个模型,分别保护不同属性。

例如,金融交易平台可能用 Bell-LaPadula 限制敏感客户数据跨级流动,用 Biba 或交易完整性规则防止低可信数据写入核心账务,用 Clark-Wilson 约束交易必须经过合法程序和审批,再用职责分离限制同一人员同时申请和批准。

十、案例分析:企业分级文档平台

某大型企业有公开资料、内部资料、秘密项目和绝密研发资料。员工根据岗位和项目参与关系访问文档,研发人员需要在特定项目内共享数据,部分统计结果可以提供给普通管理人员,但原始数据不能直接下发。

第一,定义安全标签。将文档划分为公开、内部、秘密和绝密等级,并增加项目、部门和地域等范畴。员工主体也具有岗位级别、项目范畴和临时任务标签。

第二,实施读规则。主体级别不能低于文档级别,且主体必须具备相应项目范畴。普通管理人员不能直接读取秘密项目原始数据,即使其岗位级别较高,也要满足项目授权或使用脱敏汇总结果。

第三,实施写规则。秘密或绝密主体不能把原始内容直接写入内部或公开文档。向低等级共享时,必须经过可信降密服务,执行脱敏、字段过滤、汇总和人工审批,形成新的低密级对象和审计记录。

第四,保护标签。用户不能直接修改文档等级和范畴,标签变更需由授权管理员或自动分类服务完成;复制、下载、打印、邮件发送和 API 导出都要继承或重新评估标签。

第五,结合业务控制。文档访问还需要检查岗位、项目、时间、设备状态和操作类型;高风险下载采用多因素认证和水印;异常批量读取触发限流和告警。

第六,进行验证。测试低级主体读高密文档、高级主体写低级文档、标签绕过、复制降级、缓存泄露、日志泄露和降密审批,确认信息流不违反安全不变量。

十一、常见失分点

  1. 只记住“不上读、不下写”,却不写主体、客体和安全级别关系。
  2. 把 Bell-LaPadula 当成完整的身份、完整性和可用性模型。
  3. 忽略范畴、标签保护和跨级数据共享。
  4. 认为高密级管理员可以任意绕过所有规则。
  5. 只考虑文件读取,忽略复制、缓存、导出、打印、消息和日志。
  6. 没有说明强制访问控制与自主访问控制的区别。

十二、今日必背清单

  1. Bell-LaPadula 主要保护信息机密性。
  2. 基本元素包括主体、客体、安全级别、范畴、安全标签和支配关系。
  3. 简单安全性质:主体级别不低于客体级别才能读,即不向上读。
  4. “*”性质:客体级别不低于主体级别才能写,即不向下写。
  5. 强 * 性质通常要求主体与客体处于相同安全级别。
  6. 范畴用于在同一密级内进行项目、部门或领域隔离。
  7. 标签本身必须受保护,复制、导出和降密也要纳入控制。
  8. 模型不充分解决完整性、可用性、业务角色和动态上下文问题。

十三、课后练习

练习一:单项选择

Bell-LaPadula 模型中,简单安全性质主要表达( )。

A. 主体不能向低级别客体写入
B. 主体不能读取高于自身级别的客体
C. 所有主体必须处于同一级别
D. 所有数据必须加密

练习二:判断题

Bell-LaPadula 模型能够单独保证数据机密性、完整性、可用性和业务授权正确。( )

练习三:简答题

请说明“*”性质为什么能够防止高密级信息通过写操作泄露到低密级环境。

练习四:案例题

某研究机构允许绝密级研究人员将脱敏后的统计数据发布给内部员工,但发现有人员直接复制原始数据到内部共享目录。请使用 Bell-LaPadula 模型分析问题并提出设计措施。

十四、参考答案

练习一答案

答案:B。

解析:简单安全性质也称 No Read Up,要求主体安全级别不低于客体安全级别才能读取,防止低密级主体读取高密级信息。

练习二答案

答案:错误。

解析:Bell-LaPadula 主要保护机密性,不能单独解决数据完整性、系统可用性、角色职责、业务审批和动态风险等问题,需要结合其他模型和安全控制。

练习三答案

参考答案:“*”性质要求主体写入客体时,客体级别不低于主体级别。高密级主体如果向低密级客体写入,就会使高密级信息进入低密级环境,因此写操作被拒绝;高密级主体只能写入同级或更高级客体。实际系统还要控制复制、导出、消息、日志和缓存等间接写入路径。

练习四答案

参考要点:绝密研究人员主体级别高于内部共享目录对应级别,直接复制原始数据属于违反“*”性质的向下写,可能造成机密信息泄露。设计上应禁止主体直接写入低级别目录,所有对外共享必须经过可信降密服务;降密流程要识别字段、脱敏、汇总、过滤元数据和重新标记,经过审批后生成新的内部级别对象。

还要控制剪贴板、下载、打印、邮件、缓存、日志和 API 导出等旁路路径,保护标签不可由普通主体修改;使用项目范畴和岗位权限限制访问;对批量复制、异常下载和标签变化进行审计告警;定期测试高密级数据是否能够通过各种路径流向低密级环境。对于完整性和业务流程,还应结合交易审批、职责分离和审计模型。

十五、今日复盘

请用自己的话回答:为什么“高密级主体可以读低密级数据”并不意味着它可以把低密级数据随意写回低密级环境?因为主体可能同时持有高密级信息,写回过程会形成不可见的信息合并和向下泄露;“*”性质通过限制写入方向保护机密性。下一篇进入 18.2.3「Biba 模型」,关注与 Bell-LaPadula 相反方向的完整性保护。