操作系统安全访问机制

327 阅读14分钟

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

安全操作系统的概述

操作系统面临的威胁

  • 保密性威胁(secrecy) 信息的隐藏——对非授权用户不可见 保护数据的存在性
  • 完整性威胁(integrity) 信息的可信程度 信息内容的完整性、信息来源的完整性
  • 可用性威胁(availability) 信息或资源的期望使用能力 防止数据或服务的拒绝访问

操作系统安全基本概念

  • 操作系统安全是信息系统安全的基础,具有至关重要的作用。
  • 操作系统安全和安全操作系统 操作系统安全是从各种不同角度分析操作系统安全性 安全操作系统是按照特定安全目标设计实现的操作系统,和相应的安全等级挂钩 安全操作系统:按TCSEC标准,B1级以上的操作系统称为安全操作系统。
  • 安全功能与安全保证
  • 可信软件和不可信软件 软件的三大可信类别:可信的、良性的、恶意的 可信软件是可信计算基的软件部分
  • 主体与客体 主体(Subject):一个主动的实体,使信息在客体中间流动或者改变系统状态 客体(Object):一种包含或接受信息的被动实体
  • 安全策略与安全模型 安全策略(Security Policy):规定机构如何管理、保护与分发敏感信息的法规与条例的集合 安全模型:对安全策略所表达的安全需求的简单、抽象和无歧义的描述,是安全策略和安全策略实现机制关联的一种框架。
  • 安全内核 TCSEC:安全内核是一个可信计算基中实现引用监视器思想的硬件\固件和软件成分,必须仲裁所有访问,必须保护自身免受篡改,必须能被验证是正确的。 通过控制对系统资源的访问来实现基本安全规程的计算机系统的中心部分,包括引用验证机制、访问控制机制、授权机制和授权管理机制等。

可信计算基

主要思想是将计算机系统中所有与安全保护有关的功能提取出来,并把它们与其它功能分离开,然后将它们独立加以保护,防止受到破坏,这样独立出来得到的结果就称为可信计算基。 什么是? TCSEC:TCB是可信计算机系统的核心,它包含了系统中所有实施安全策略及对象(代码和数据)隔离保护的机制,为了使得保护机制更容易被理解和验证,可信计算基应尽量简单,并与安全策略具有一致性。

1.jpg

  • 组成 操作系统的安全内核 具有特权的程序和命令 处理敏感信息的软件,如系统管理命令; 与TCB实施安全策略有关的文件 其他有关的固件、硬件和设备 负责系统管理的人员 保障固件和硬件正确的程序和诊断软件

  • 其中可信计算基的软件部分是可信计算基的核心内容: 内核良好定义和安全运行方式; 标识系统中的每个用户; 保持用户到可信计算基登录的可信路径; 实施主体对客体的访问控制; 维持可信计算基功能的正确性; 监视和记录系统中的相关安全事件,进行安全审计。

  • 安全功能 正确实施TCB安全策略的全部硬件、固件、软件所提供的功能。TCB安全功能需要保证计算机系统具备物理安全、运行安全和数据安全三个方面。

    • 物理安全:环境安全、设备安全、记录介质安全及安全管理。
    • 运行安全:系统层面、网络层面和应用层面所涉及到的操作系统、数据库系统、网络系统和应用系统的运行安全。安全目标为身份识别、访问控制和可用性。
    • 数据安全:系统层面、网络层面和应用层面所涉及到的操作系统、数据库系统、网络系统和应用系统的数据安全。目标是机密性和完整性。
  • 安全保证 为确保安全功能达到要求的安全性目标所采取的方法和措施。 TCB安全保证技术包括:

    • TCB自身安全 可用机制包括物理保护、TSF (TCB Security Function) 自检、TSF数据的机密性和完整性、TSF有效性检测、恢复机制。
    • TCB的设计与实现 可验证的安全模型和完整性保证。
    • TCB安全管理 对TCB运行中的安全管理,包括对不同的管理角色和它们之间的相互作用(如权限分离)进行规定,对分散在多个物理上分离的部件有敏感标记的传播,TSF数据和功能配置等问题的处理,以及对TCB使用者安全属性的授予、撤消等。 保证人对系统的合理使用与使用控制方面。

操作系统安全机制

  • 一个操作系统的安全性从以下几个方面考虑: 物理上分离 时间上分离 逻辑上分离 密码上分离
  • 操作系统安全的主要目标: 依据系统安全策略对用户的操作进行存取控制,防止用户对计算机资源的非法存取; 标识系统中的用户并进行身份鉴别; 监督系统运行的安全性; 保证系统自身的安全性和完整性;
  • 操作系统安全的相应机制:

    1. 硬件安全机制 (1)存储保护:保护存储器中的数据; (2)运行保护:分层保护环; (3)I/O保护:I/O读写操作保护; 标识与鉴别
    2. (1)定义:系统标识用户身份;将用户标识符与用户联系的过程称为鉴别; (2)操作系统中的标识与鉴别:用户名和口令、审计;口令的内部存储必须实行一定的访问控制和加密处理;
    3. 存取控制 (1)需要完成的任务:授权、确定存取权限、实施存取权限; (2)形式:自主存取控制(DAC,Discretionary Access Control)和强制存取控制(MAC,Mandatory Access Control);
    4. 最小特权管理 (1)思想:系统不应给用户超过执行任务所需特权之外的特权;一般可设置5个特权管理职责:系统安全管理员(SSO)、审计员(AUD)、操作员(OP)、安全操作员(SOP)、网络管理员(NET);
    5. 可信通路 (1)保障用户和内核的通信机制; (2)实例:Linux中的“安全注意键”、SSH等;
    6. 安全审计 (1)安全审计是对系统中有关安全的活动进行记录、检查及审核; (2)表现形式:审计记录、审计日志、审计事件等;
    7. 存储保护、运行保护、I/O保护

标识与鉴别机制

  • 标识 系统可以识别的用户的内部名称
  • 鉴别:对用户宣称的身份标识的有效性进行校验和测试的过程。
  • 方法 密码验证 生物鉴别方法 可信计算基——与鉴别相关的认证机制

访问控制

  • 访问控制的基本任务:防止用户对系统资源的非法使用,保证对课题的所有直接访问都是被认可的。
  • 措施 确定要保护的资源 授权 确定访问权限 实施访问权限
  • 三种访问控制技术:自主访问控制DAC、强制访问控制MAC、基于角色的访问控制RBAC

自主式策略(DAC, discretionary access controls)

  • 基于对主体或主体所属的主体组的识别来限制对客体的访问,这种控制是自主的。

  • 自主指主体能够自主地将访问权或访问权的某个子集授予其他主体。 如用户A可将其对对象O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。

  • 缺点 信息在移动过程中其访问权限关系会被改变,导致安全问题的发生

  • 自主访问控制DAC

    • 基于行的自主访问控制机制 能力表:权限字 前缀表:包括受保护的客体名和主体对它的访问权限 口令:每个客体有一个
    • 基于列的自主访问控制机制 保护位:对客体的拥有者基其他主体、主体组,规定的对该客体访问模式的集合 访问控制表:对某个特定资源制定任意用户的访问权限。

ACL、CL访问方式比较

  • CL是由用户到资源的,ACL是由资源到用户的: CL中用户和资源的连接已内建于系统中 ACL需要一个独立的将用户连接到文件的方法
  • 当用户管理自己的文件和保护数据时,ACL较合适,在ACL下,对某个资源改变权力是容易的。 CL很容易委派,因而增加或删除用户很容易。 CL实现起来更为复杂一些,有时无法实现,因此,多数集中式操作系统使用ACL方法;‘或类似方式 由于分布式系统中很难确定给定客体的潜在主体集,在现代OS中CL也得到广泛应用

强制访问控制(MAC) 基于规则的访问控制

  • 为所有主体和客体指定安全级别,比如绝密级、机密级、秘密级、无秘级。
  • 不同级别的主体对不同级别的客体的访问是在强制的安全策略下实现的。
  • 只有安全管理员才能修改客体访问权和转移控制权。(对客体拥有者也不例外)

RBAC与DAC、MAC的区别

  • 与DAC的区别 DAC的主体可直接访问客体,而RBAC不行 DAC的权限要么在主体(能力表),要么在客体,而RBAC的却在角色控制模块
  • 与MAC的区别 大致与DAC的相同 MAC是多级的,而RBAC可以是单级的
  • 相对DAC/MAC,RBAC灵活且容易实现

基于角色的访问控制

角色概念:A role can be defined as a set of actions and responsibilities associated with a particular working activity 角色与组的区别 组: 用户集 角色:用户集+权限集

由Sandhu等人提出的RBAC96/ARBAC97/ARBAC02模型族

  • 基本模型 RBAC0
  • 角色分层模型 RBAC1
  • 角色约束模型 RBAC2
  • 统一模型 RBAC3

基于角色的访问控制RBAC0

基本模型RBAC0定义

The RBAC0 Model has the following components:

U,R,P, and S : (users, roles,permissions,and respectively session)

PA P ╳ R, a many-to-many permission to role assignment relation UA U ╳ R, a many-to-many user to role assignment relation

user: S→ U, a function mapping each session si to the single user user(si) (constant for the session‘s lifetime)

roles: S →2R , a function mapping each session si to a set of roles roles(si) {r∣(user(si),r)∈UA}(which can change with time) and session si has the permissions∪r∈roles(si) {p∣(p,r) ∈ PA}

  • RBAC0由四个基本要素构成,即用户(User)、角色(Role)、会话(Session)、授权(Permission)
  • 在RBAC中,用户和角色,角色和权限的关系是多对多的关系
  • 在一个RBAC模型的系统中,每个用户进入系统得到自己的控制时,就得到了一个会话。每个会话是动态产生的,从属于一个用户。只要静态定义过这些角色与该用户的关系,会话根据用户的要求负责将它所代表的用户映射到多个角色中去
  • 一个会话可能激活的角色是用户的全部角色的一个子集,对于用户而言,在一个会话内可获得全部被激活的角色所代表的访问许可权。角色和会话的设置带来的好处是容易实施最小特权原则(Least-Privilege Principle)

基于角色的访问控制RBAC1

  • 分层模型RBAC1定义 The RBAC1 Model has the following components: U,R,P,S,PA,UA and user are unchanged form RBAC0

    RH R ╳ R is a partial order on R called the role hierarchy or role dominanace relation, also written as ≥

    roles: S →2R is modified from RBAC0 to require roles(si) {r∣r’ ≥r[(user(si),r)∈UA]} (which can change with time) and session si has the permissions∪r∈roles(si) {p∣r’’ ≤ r[(p,r’’) ∈ PA }

  • RBAC1的特征是为RBAC0上引入了角色层次的概念

  • 在一般的单位或组织中,特权或职权通常是具有线性关系的,而角色层次RH可以反映这种权利责任关系

  • 原则上RH体现了上级领导所得到的信息访问权限高于下级职员的权限

基于角色的访问控制RBAC2

  • 限制模型RBAC2定义  The RBAC2 is unchanged from RBAC0 except for requiring that there be a collection of constraints that determine whether or not values of various components of RBAC0 are acceptable. Only acceptable values will be permitted.
  • 引入了约束(Constraints)的概念 在绝大多数组织中,除了角色的层次关系外,经常要考虑的问题是类似于下列情况:一个公司的采购员和出纳员虽然都不算是高层次的角色,但是任何一个公司都绝不会允许同时分配给某个人员以这两个角色。因为很显然,这种工作安排必然导致欺诈行为的发生。因此有必要增加约束机制

基于角色的访问控制

约束条件(constraints)

  • 互斥角色(multually exclusive roles) 同一用户在两个互斥的角色集合中只能分配给以其中一个集合中的角色,这样支持了职责分离的原则:而访问许可权的分配也有约束限制,对访问许可权的约束可以防止系统内的重要的特权被失控地分散,从而保证强制控制的可靠实施
  • 基数约束(cardinality constraints) 一个用户可拥有的角色数目受限:同样,一个角色对应的访问许可权数目但受约束
  • 先决约束(prerequisite) 用户为获得某些高等级角色必须首先拥有低等级角色,同理,某一角色必须具备了某些权限才能获得更高的权限
  • 运行时约束(Run Constraints) 允许一个用户具有两个角色,但在运行中不可同时激活这两个角色。

安全审计机制

  • 日志:记录的事件或统计数据
  • 安全审计:对日志记录的分析并以清晰的、能理解的方式表述系统信息,即对系统中有关安全的活动进行记录、检查及审核
  • 作用
  • 审计事件:主体、客体
  • 组成: 日志记录器:收集数据——系统日志、应用程序日志、安全日志 分析器:分析数据 通告器:通报结果

存储保护、运行保护和I/O保护

  • 存储保护 虚地址空间 分段 物理页号上的秘密信息 基于描述符的地址解释机制
  • 运行保护 保护环——运行域——等级域机制 进程隔离机制
  • I/O保护 I/O操作是操作系统完成的特权操作

UNIX安全机制

  • 标识 /etc/passwd和/etc/shadow中保存了用户标识和口令; root用户
  • 鉴别
  • 存取控制 存取权限:可读、可写、可执行; 改变权限: 特殊权限位:SUID和SGID;
  • 审计 日志文件:acct或pacct、aculog、lastlog、loginlog、messages、sulog、utmp、utmpx、wtmp、wtmpx、vold.log、xferlog等 审计服务程序:syslogd;
  • 网络安全性:有选择地允许用户和主机与其他主机的连接;
  • 网络监控和入侵检测:LIDS( Linux Intrusion Detection System)等;
  • 备份/恢复:实时备份、整体备份、增量备份;
  • PAM机制
  • 入侵检测系统
  • 加密文件系统
  • 安全审计
  • 强制访问控制
  • 防火墙