跳转到内容

安全架构与设计/安全模型

来自 Wikibooks,开放世界中的开放书籍

安全模型

[编辑 | 编辑源代码]
  • 安全策略是一份文件,它清晰简洁地表达了保护机制的实现方式。它声明了我们期望系统执行的安全保障。
  • 安全模型是安全策略的规范。
    • 它描述了受策略约束的实体。
    • 它说明了构成策略的规则。
  • 存在各种类型的安全模型。
    • 模型可以捕获机密性(Bell-LaPadula)或完整性(Biba、Clark-Wilson)的策略。
    • 一些模型适用于静态策略的环境(Bell-LaPadula),另一些模型则考虑访问权限的动态变化(中国墙)。
    • 安全模型可以是非正式的(Clark-Wilson)、半正式的或正式的(Bell-LaPadula、Harrison-Ruzzo-Ullman)。
  • 模型与策略
    • 安全模型通过指定强制执行安全策略所需的明确数据结构和技术,将策略的抽象目标映射到信息系统术语。安全模型通常用数学和分析思想表示,然后映射到系统规范,最后由程序员通过编程代码实现。
    • 例如,如果安全策略规定主体需要被授权才能访问对象,安全模型将提供数学关系和公式来解释 x 只能通过概述的特定方法访问 y。
    • 安全策略概述了目标,而不考虑如何实现它们。模型是一个框架,它赋予策略形式,并解决特定情况下的安全访问问题。

格模型

[编辑 | 编辑源代码]
  • 格是一种数学结构,建立在群的概念之上。
  • 格是一种数学结构,具有
    • 一组元素
    • 一个偏序关系
    • 任何两个元素必须具有唯一的最小上界和最大下界的性质
  • 安全格模型结合了多级和多边安全
  • 格元素是安全标签,包含安全级别和一组类别

状态机模型

[编辑 | 编辑源代码]
  • 在状态机模型中,捕获机器的状态以验证系统的安全性。
  • 给定状态包含所有当前权限和所有当前主体访问对象的情况。如果主体只能通过与安全策略一致的方式访问对象,则系统是安全的。
  • 该模型用于描述系统对不同输入的行为。它提供了表示集合(主体、对象)和序列的数学结构。当对象接受输入时,这会修改状态变量,从而过渡到不同的状态。
  • 实施提示
    • 开发人员必须定义状态变量是什么以及在哪里。
    • 开发人员必须为每个状态变量定义一个安全状态。
    • 定义和识别允许的状态转换函数。
    • 应测试状态转换函数,以验证整个 m/c 状态不会受到威胁,并且系统的完整性得到维护。

非干扰模型

[编辑 | 编辑源代码]
  • 该模型确保在更高安全级别上发生的任何操作都不会影响或干扰在较低级别上发生的任何操作。
  • 它不关心数据的流动,而是关心主体对系统状态的了解。因此,如果更高安全级别的实体执行操作,它不能更改较低级别实体的状态。
  • 该模型还解决了推断攻击问题,这种攻击发生在某人访问某种信息并可以推断(猜测)他无权知晓的信息时。


Bell-LaPadula 机密性模型

[编辑 | 编辑源代码]
  • 它是第一个具有多级安全策略的数学模型,用于定义安全状态机的概念和访问模型,并概述了访问规则。
  • 它是一个状态机模型,强制执行访问模型的机密性方面。
  • 该模型侧重于确保具有不同安全级别(绝密、秘密、机密)的主体通过拥有必要的安全许可、知情权和正式的访问批准(在访问不同分类级别的对象(绝密、秘密、机密)之前)来进行适当的身份验证。
  • Bell-Lapadula 模型的规则
    • 简单安全规则(不可向上读取规则):它规定,给定安全级别的主体不能读取驻留在更高安全级别的數據。
    • 星形属性规则(不可向下写入规则):它规定,给定安全级别的主体不能将信息写入较低安全级别。
  • 强星形属性规则:它规定具有读写能力的主体只能在同一安全级别上执行这些功能,不能更高也不能更低。
  • 平静原则:主体和对象在实例化(创建)后不能改变其安全级别。
  • 所有 MAC 系统都基于 Bell-Lapadula 模型,因为它具有多级安全性。
  • 由美国政府设计,主要由政府机构采用

Biba 完整性模型

[编辑 | 编辑源代码]
  • 它是继 Bell-LaPadula 模型之后开发的。
  • 它解决了数据的完整性问题,而 Bell-LaPadula 则解决了机密性问题。
  • 它使用完整性级别的格,而 Bell-LaPadula 使用安全级别的格。
  • 它也是一个信息流模型,与 Bell-LaPadula 类似,因为它们最关心数据从一个级别流向另一个级别。
  • Biba 模型的规则
    • 简单完整性规则(不可向下读取):它规定主体不能从较低完整性级别读取数据。
    • 星形完整性规则(不可向上写入):它规定主体不能将数据写入更高完整性级别的对象。
    • 调用属性:它规定主体不能调用更高完整性级别的主体。

Clark-Wilson 完整性模型

[编辑 | 编辑源代码]
  • 它是继 Biba 之后开发的,解决了信息的完整性问题。
  • 该模型将数据分为两个部分:需要高度保护的称为受约束数据项 (CDI) 的主体,以及不需要高保护级别的称为不受约束数据项 (UDI) 的主体。
  • 组件
    • 主体(用户):是活动的代理。
    • 转换过程(TP):例如读取、写入、修改等软件过程,代表主体(用户)执行所需的操作。
    • 受约束数据项 (CDI):只能由 TP 修改的数据。
    • 不受约束数据项 (UDI):主体可以通过基本读取/写入操作来操作的数据。
    • 完整性验证过程 (IVP):定期运行的程序,用于检查 CDI 与外部现实的一致性。这些完整性规则通常由供应商定义。
  • Clark-Wilson 模型的完整性目标
    • 防止未经授权的用户进行修改(由 Biba 模型解决)。
    • 职责分离防止授权用户进行不当修改。
    • 格式良好的事务:保持内部和外部一致性,即一系列操作,这些操作旨在将数据从一个一致状态转移到另一个一致状态。

访问控制矩阵

[编辑 | 编辑源代码]
  • 该模型解决访问控制问题。
  • 通常用于操作系统和应用程序。

信息流模型

[编辑 | 编辑源代码]
  • 在此模型中,数据被认为存储在独立的离散区隔中。
  • 信息根据两个因素进行分隔。
    • 分类和
    • 知情需求
  • 主体安全级别必须高于客体的分类级别,并且主体安全配置文件必须包含客体标签中列出的类别之一,以强制执行知情需求。
  • 例如
    • Bell-Lapadula 模型阻止信息从较高源级别流向较低源级别。
    • Biba 模型阻止信息从较低完整性级别流向较高完整性级别。

隐蔽通道

  • 隐蔽通道是实体以未授权方式接收信息的方式。
  • 它是安全机制无法控制的信息流。
  • 它是一种未经授权的通信路径,未受到系统保护,因为它是开发系统时未被发现的。
  • 隐蔽通道类型
    • 隐蔽时序:在此通道中,一个进程通过调节其对系统资源的使用来向另一个进程传递信息。
    • 隐蔽存储:在此通道中,一个进程将数据写入存储位置,而另一个进程直接或间接地读取它。

Graham—Denning 模型

[编辑 | 编辑源代码]
  • 此模型定义了一组基本权限,这些权限指的是特定主体可以在对象上执行的命令。
  • 它提出了八项基本保护权限,或这些类型功能应如何安全进行的规则。
    • 如何安全地创建对象。
    • 如何安全地创建主体。
    • 如何安全地删除对象。
    • 如何安全地删除主体。
    • 如何提供读取访问权限。
    • 如何提供授予访问权限。
    • 如何提供删除访问权限。
    • 如何提供传输访问权限。

Harrison—Ruzzo—Ullman 模型

[编辑 | 编辑源代码]
  • HRU 安全模型(Harrison、Ruzzo、Ullman 模型)是一种操作系统级别的计算机安全模型,它处理系统中访问权限的完整性。该系统基于有限数量的可用程序来编辑主体 s 对对象 o 的访问权限的想法。
  • 该模型还讨论了使用算法证明系统安全性的可能性和局限性。

Brewer—Nash(中国墙)

[编辑 | 编辑源代码]
  • 此模型提供访问控制,这些访问控制可以根据用户的先前操作动态变化。
  • 此模型的主要目标是通过用户访问尝试来防止利益冲突。
  • 它基于信息流模型,其中信息不能以导致利益冲突的方式在主体和对象之间流动。
  • 该模型指出,主体可以写入对象,当且仅当主体不能读取来自不同数据集的另一个对象。
华夏公益教科书