操作系统安全模型、体系结构与设计

332 阅读8分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第29天,点击查看活动详情

操作系统安全模型

  • 安全模型是一个系统安全政策的形式化描述(数学描述) 一个系统是安全的,当且仅当它所有的状态都满足安全政策的规定。
  • 安全模型的意义 安全模型能够精确地表达系统对安全性的需求,增强对系统安全性的理解; 有助于系统实现 有助于系统安全性的证明或验证

BLP模型

  • Bell-LaPadula Model 用来描述美国国防部 的多级安全政策 ——用户和文件分成不同的安全级别,各自带有一个安全标签Unclassified, Confidential , Secret, Top Secret ——每个用户只可以读同级或级别更低的文件
  • BLP模型只描述了保密性,没有描述完整性和可用性的要求
  • BLP模型基于有限状态自动机的概念

1.jpg

  • BLP模型是D.Elliott Bell和Leonard J.LaPadula于73年创立的一种模拟军事安全策略的计算机操作模型, 是最早、也 是最常用的一种计算机多级安全模型。
  • 主体对客体的访问分为r(只读)、w(读写)、a(只写)、e(执行)以及c(控制)等几种访问模式,其中c(控制) 是指该主体用来授以或撤消另一主体对某一客体访问权限的能力。 该模型安全策略从两方面描述:DAC和MAC.DAC用一个访问控制矩阵表示,MAC安全策略包括SSP和*-特性。
  • 系统对所有主体和客体都分配一个访问类属性,包括主体和客体 的密级与范畴,系统通过比较主体与客体的访问类属性控制主体对客体的访问。
  • 所有的MAC系统都是基于BELL-LAPADULA模型,因为它允许在代码里面整合多级安全规则,主体和客体会被设置安全级别,当主体试图访问一个客体,系统比较主体和客体的安全级别,然后在模型里检查操作是否合法和安全。
  • 例:降低主体密级会违犯BLP模型什么特征?提升客体的密级会违犯什么特征? 答:-特性:高安全级别的主体不能对低安全级别的客体写数据. SSP:低安全级别的主体不能从高安全级别客体读取数据。 降低主体密级会违犯BLP模型-特性,存在低安全级别写数据的可能。 提升客体的密级会违犯SSP,存在读取高安全级别客体数据的可能。

BLP模型的不足

  • 只处理秘密性没有考虑完整性、包含隐通道、没有制定修改访问控制权限的策略,可信主体权限过大等。
  • 这与它设计的初衷只是为了处理权限相对固定、只关心秘密级别的情况有关。

Biba(毕巴)模型

  • Biba模型是在bell-lapadula模型之后开发的,与bell-lapadula模型不同很相似,被用于解决应用程序数据的完整性问题。
  • Biba模型能够防止数据从低完整性级别流向高完整性级别,Biba模型有三条规则提供这种保护:
  • 星完整性规则(*-integrity axiom),表示完整性级别低的主体不能对完整性级别高的客体写数据
  • 简单完整性规则(simple integrity axiom),表示完整性级别高的主体不能从完整性级别低的客体读取数据
  • 恳求属性规则(invocation property)。表示一个完整性级别低的主体不能从级别高的客体调用程序或服务。这就保证低完整性的主体不会去调用某个高完整性客体的清除工具清除该客体的数据。
  • 规则1:“写”操作的实施由下面(1)控制;“执行”操作的实施由下面的规则(2)控制: (1)当且仅当I(O)<=I(S)时,主体S可以“写”客体O; (2)当且仅当I(S2)<=I(S1)时,S1可以“执行”S2.
  • 规则2:(BIBA低水标模型) Imin=min(I(O),I(S)),S在“读”操作后,主体S的完整性级别被调整为Imin.
  • 规则3:(BIBA环模型) 不管完整性级别如何,任何主体都可以读任何客体。 BIBA严格完整性模型(规则4与规则1) 规则4:当且仅当I(S)<=I(O),主体可以读客体O。
  • 总结:

    • 安全模型是建立安全操作系统的一个基本要求;

    • 多级安全系统中最广泛的模型是BLP机密性安全模型等,这些模型都各具特点;

安全体系结构

  • 安全体系结构的含义

    • 详细描述系统中安全相关的所有方面;
    • 在一定的抽象层次上描述各个安全相关模块之间的关系;
    • 提出指导设计的基本原理;
    • 提出开发过程的基本框架及对应于该框架体系的层次结构;
  • 两个参考标准:TCSEC和CC

  • 两个安全体系:Flask体系和权能体系

    • Flask体系:基于微内核的操作系统中实现,特点——策略的可变通性、策略的广泛多样性、支持可吊销机制、可适应性;
    • 权能体系:实现访问控制的一种通用的、可塑性良好的方法;在简单性和效率方面具有明显的优势;

安全体系结构类型

美国国防部的目标安全体系(DoD Goal Security Architecture)中把安全体系分为:

  • 抽象体系(Abstract Architecture) 从描述需求开始,定义执行这些需求的功能函数,然后定义如何选用这些函数及如何把这些功能有机组织成为一个整体的原理及相关的基本概念;主要描述安全需求、定义安全功能和安全服务、确定系统实现安全的指导原则和基本概念;
  • 通用体系(Generic Architecture) 基于抽象体系的决策进行的;定义系统分量的通用类型及使用相关行业标准的情况、明确规定系统应用中必要的指导原则;
  • 逻辑体系(Logical Architecture) 满足某个假设的需求集合的一个设计,显示了把一个通用体系应用于具体环境时的基本情况;
  • 特殊体系(Specific Architecture) 表达系统分量、接口、标准、性能和开销,表明如何把所有被选择的信息安全分量和机制结合起来以满足我们正在考虑的特殊系统的安全需求;

安全体系结构设计的基本原则

  • 从系统设计之初就考虑安全性;
  • 应尽量考虑未来可能面临的安全需求;
  • 隔离安全控制,并使其最小化;
  • 实施权限极小化;
  • 结构化安全相关功能;
  • 使安全相关的界面友好;
  • 不要让安全依赖于一些隐藏的东西;

安全操作系统设计

安全操作系统设计原则

  • 最小特权原则:每个用户和程序须尽可能使用最小的特权;
  • 机制的经济性:系统的设计必须小型化、简单、明确;
  • 开放系统设计:保护机制应该公开、安全性不依赖于保密;
  • 完整的存取控制机制:对每个存取访问系统必须进行检查;
  • 基于“允许”的设计原则:应当标识什么资源可存取、而不标识什么资源不可存取;即要基于否定背景的;
  • 权限分离:在理想情况下对实体的存取应该受到多个安全条件的约束;
  • 避免信息流的潜在通道:系统应采用物理或逻辑分离的方法;
  • 方便使用

开发方法

  1. 虚拟机法:在现有操作系统与硬件之间增加⼀个新的分层,作为安全内核,操作系统⼏乎不变地作为虚拟机。 优点: - 安全内核的接⼝⼏乎与原有硬件接⼝等价,操作系统本⾝并未意识到已被安全内核控制。 - 可以不变地⽀持现有的应⽤程序,且能很好地兼容ISOS的将来版本。 缺点: - 硬件特性对虚拟机的实现⾮常关键, 要求原系统的硬件和结构⽀持虚拟机
  1. 仿真法:对现有操作系统的内核做⾯向安全策略的修改,然后在安全内核与原ISOS⽤户接⼝界⾯中间再编写⼀层仿真程序。 优点: -建⽴安全内核不必受现有应⽤程序的限制 -⾃由定义ISOS仿真程序与安全内核间接⼝ 缺点: -要求同时设计仿真程序和安全内核 -要受顶层ISOS接⼝的限制 -有些ISOS的接⼝功能不安全,⽆法仿真 -有些接⼝功能安全,但仿真实现特别困难
  1. 新建法: 包括⾯向安全策略的安全内核在内,重新设计整个操作系统 优点: 可以任意建⽴所需的内核接⼝ 可以定义操作系统的接⼝与内核实施的安全策略保持兼容 可以保证内核设计的最⼩化和操作系统的运⾏性能 缺点:

    必须从头开始,难度⼤,⼯作量也⼤.

一般开发过程

阶段一 系统需求分析:描述各种不同需求 抽象、归纳出安全策略 建立安全模型及安全模型与系统的对应性说明; 阶段二 安全机制设计与实现 安全功能测试;重复该两部分工作; 阶段三:安全操作系统可信度认证

2.jpg