440 likes | 714 Views
操作系统. 第九章 操作系统安全. 主要内容. 操作系统安全性 基本概念 操作系统 主要 安全机制 安全操作系统设计 与实现. 9 .1 操作系统 的 安全性. 操作系统的安全需求 系统安全的评估与标准 Unix/Linux 操作系统安全 Windows 2000 操作系统安全. 9 .1.1 操作系统的安全需求. 计算机信息系统安全性 保密性。安全保密是指防止信息的非授权修改,这也是信息安全最重要的要求。 完整性。完整性要求信息在存储或传输过程中保持不被修改、破坏和丢失。 可靠性。可靠性是指系统提供信息的可信赖程度。
E N D
操作系统 第九章 操作系统安全
主要内容 • 操作系统安全性基本概念 • 操作系统主要安全机制 • 安全操作系统设计与实现
9.1 操作系统的安全性 • 操作系统的安全需求 • 系统安全的评估与标准 • Unix/Linux操作系统安全 • Windows 2000操作系统安全
9.1.1 操作系统的安全需求 • 计算机信息系统安全性 • 保密性。安全保密是指防止信息的非授权修改,这也是信息安全最重要的要求。 • 完整性。完整性要求信息在存储或传输过程中保持不被修改、破坏和丢失。 • 可靠性。可靠性是指系统提供信息的可信赖程度。 • 可用性。可用性是指当需要时是否能存取所需信息,保护信息的可用性的任务就是防止信息失效或变得不可存取。 • 操作系统安全的目标 • 为用户信息处理提供安全的软件环境,为应用程序运行提供安全可靠的运行环境。
操作系统的安全需求 • 系统边界安全 • 认证和鉴别禁止非法用户进入系统; • 系统使用权限管理机制 • 不同用户配置不同的权限,每个用户只拥有他能够工作的最小权利; • 应用和数据的访问控制机制 • 用户只能按照指定的访问控制安全策略访问数据; • 为系统用户提供可信通路 • 保证系统登陆和应用层提供的安全机制不被旁路; • 系统操作的安全审计和管理 • 检查错误发生的原因,或者受到攻击时攻击者留下的痕迹;
9.1.2 系统安全的评估与标准 • 计算机信息系统 (computer information system) • 由计算机及其相关的和配套的设备、设施(含网络)构成; • 可信计算基 (trusted computing base ) • 计算机系统内保护装置的总体,包括硬件、固件、软件和负责执行安全策略的组合体。 • 主体(subject) • 即主动实体,导致信息在系统中流动及改变系统状态的用户或进程等; • 客体(object) • 能包含或接受信息的被动实体,如文件、内存块等; • 敏感标记 (sensitivity label) • 表示客体安全级别并描述客体数据敏感性的一组信息; • 安全策略(security policy) • 系统资源使用和管理的安全规定和约定;
系统安全的评估与标准 • TCSEC:Trusted Computer System Evaluation Criteria • 标准是计算机系统安全评估的第一个正式标准,具有划时代的意义。 • 1970年由美国国防科学委员会提出,并于1985年12月由美国国防部公布。 • 国标GB17859-1999:《计算机信息系统安全保护等级划分准则》 • 该准则参照TCSEC标准规定了计算机信息系统安全保护能力的五个等级。 • 用户自主保护级,系统审计保护级,安全标记保护级,结构化保护级,访问验证保护级 • POSIX.1e (Portable Operating System Interface for Computer Environ- ment)) • POSIX.1e是POSIX系列标准的一部分。它定义了POSIX.1规范的安全扩展部分; • POSIX.1e只规定了安全特性的函数接口(Security APIs)。
1. TCSEC- 共分A、B、C、D四类八个级别 • D: 非安全保护 • C: 自主保护级 • C1: 允许客体拥有者决定该客体的访问控制权,是否可以被其他主体访问 ; • C2: 自主访问控制更加细致。考虑客体重用和系统审计 ; • B:强制安全 • B1: 标记安全保护,标记和强制访问控制; • B2: 结构安全保护,强制访问控制的范围扩大到所有的系统资源,给出证明,要求考虑隐蔽信道(存储),并计算出带宽。 • B3: 安全区域保护,TCB不包含与安全无关的代码,并足够小到可以被测试、分析、证明,系统具有恢复能力。 • A:验证安全保护 • A1:验证设计级,设计可以被形式化的证明; • A2:验证实现级保护,实现可以被形式化的证明 。
形式化校验级保护,SNS A 级 安全内核,高抗渗透能力,Trusted Mach B3 级 结构化内容保护,正式安全策略模型,MULTICS B2 级 标记安全保护,如System V等 B1 级 C1+访问控制,广泛审核,Linux/WINDOWS NT C2 级 主体自主决定的安全保护,UNIX/WINDOWS C1 级 不分等级,无口令和权限控制,MS DOS D 级 系统安全的评估与标准
9.1.3 Unix/Linux操作系统安全-机制 • 用户标识和身份鉴别 • 每个用户一个唯一的标识符(UID); • 系统给每个用户组也分配有一个唯一的标识符(GID); • 登录需要密码口令; • 基于保护位的自主访问控制安全机制 • 用户:owner/group/other) • 访问权限:read/write/executable。 • 日志信息 • 包括:连接时间日志、进程统计和错误日志。
Unix/Linux操作系统安全-弱点 • 用户数据保护机制并不能保证严格安全要求; • 超级用户成为系统安全瓶颈; • 缺乏必要的系统审计机制; • 用户认证方面的要求不够严格; • 系统自身的完整性保护问题,一旦加载恶意的核心模块,整个系统可能完全被非法控制。
9.1.4 Windows 2000操作系统安全 • 活动目录 • 分布式对象存储和管理的目录服务; • 每个对象,都有唯一的安全描述符,定义了读取或更新对象属性所必需的访问权限。 • 身份验证 • 交互式登录/网络身份验证( Kerberos V5、公钥证书和NTLM、智能卡登录等) • 访问控制 • 安全主体包括用户,组和服务。 • 客体包括:文件,文件夹、打印机、注册表键、活动目录项。
主要内容 • 操作系统安全性基本概念 • 操作系统主要安全机制 • 安全操作系统设计与实现
9. 2 操作系统安全机制 • 标识和鉴别 • 可信路径管理 • 禁止客体重用 • 最小特权管理 • 访问控制技术 • 隐蔽信道检测与控制 • 安全审计
9.2.1 标识与鉴别 • 用户标识(user identification)——信息系统用以标识用户的一个独特符号或字符串; • 鉴别(authentication)——验证用户,设备,进程和实体的身份; • Unix/Linux实现了基本的标识和鉴别机制。一般系统中有三类用户:超级用户,普通用户和系统用户。 • 超级用户:root • 普通用户是指那些能够登录系统的用户 • 系统用于特定的系统目的。例如用户nobody和lp
标识与鉴别 • UID和GID通常是唯一的,不同的用户拥有不同的UID,不同的用户组拥有不同的GID; • 用户登录到系统时,须输入用户名标识其身份; • 用户属性的信息主要存储在 /etc/passwd 和 /etc/shadow 系统文件中; • 系统会分配好用户目录。这块空间与系统区域和其他用户的区域分割开来。
9.2.2 可信路径管理 • 任何进入系统都需要进行用户认证,同时进行相应的用户鉴别; • 可信路径-该路径上的通信只能由该用户初始化 。 • 实现可信路径 • 能够准确辨认出用户登录的意图; • 提供无法冒充的用户界面; • 在用户认证和鉴别过程中,限制无关进程的活动; • 保证通信路径上的可靠性。
禁止客体重用 • 含义 • 一个主体在释放资源时,一定要清除上面的信息。 • 思考 • WINDOWS/LINUX内存释放后内容被清空了吗? • WINDOWS/LINUX文件删除后硬盘上没有了吗?
9.2.3 最小特权管理 • 最小特权管理 • 系统不应给予用户超过执行任务所需特权以外的特权。 • 实现 • 将超级用户的特权划分为一组细粒度的特权,使得各种操作员或者管理员只具有完成其任务所必需的特权。 • 一般系统的三种管理角色 • 安全管理员,审计管理员,系统管理员。
9.2.4 访问控制技术 • 访问控制功能 • 管理所有资源访问请求,即根据安全策略的要求,对每个资源访问请求作出是否许可的判断; • 主要访问控制策略 • 最小权益策略:按主体执行任务所需权利最小化分配权利。 • 最小泄漏策略:按主题执行任务时所知道的信息最小化原则分配权利。 • 多级安全策略:主体和客体按普通、秘密、机密、绝密等级别划分,进行权限控制。 • 主要访问控制技术 • 自主访问控制,强制访问控制
自主访问控制(Discretionary Access Control) • 访问控制方法 • 它由资源拥有者分配访问权,在辨别各用户的基础上实现访问控制。 • 实现方式 • 基于行的DAC:这种方法在每个主体上都附加一个该主体可访问的客体的明细表; • 基于列的DAC:在客体上附加了一个主体明细表 来表示访问控制矩阵的列; • 弱点 • 权限管理比较分散,安全性差,不能抵御特洛伊木马的攻击。
自主访问控制缺陷举例 • SOS 重要信息放在important文件中,权限为只有自己可以读写。 • SPY 设计一个有用的程序Use_it_Please,除了有用的部分,还有一个木马,同时准备好一个文件Pocket,将其权限设置为: SOS:W, SPY:RW • 当SOS运行木马程序时 木马会将important文件的信息,写入Pocket中。
2. 强制访问控制(Mandatory Access Control) • 访问控制方法 • 每个主体和每个客体都有既定安全属性,是否能执行特定的操作取决于二者之间的关系。 • 实现方式 • 由特定用户(管理员)实现授权管理; • 通常指TCSEC的多级安全策略:安全属性用二元组表示,记作(密集,类别集合),密集表示机密程度,类别集合表示部门或组织的集合。 • 弱点 • 应用的领域比较窄,使用不灵活,一般只用于军方等具有明显等级观念的行业或领域,完整性方面控制不够。
BLP多级强制访问控制策略 • 两个重要的安全特性(公理) • Simple Security Condition:主体读客体,当且仅当用户的安全等级必须大于或等于该信息的安全级,并且该用户必须具有包含该信息所有访问类别的类别集合 ; • *-Property (Star Property) :一个主体/用户要写一个客体,当且仅当用户的安全等级不大于该客体安全等级,并且该客体包含该用户的所有类别 。 • 安全特性 • 保证了信息的单向流动,即信息只能向高安全属性的方向流动,
强制访问控制防止木马举例 • SOS赋予High安全级;important文件安全级high • SPY赋予low安全级;pocket文件安全级low • 当运行木马程序时 • 木马程序获得High安全级,可以读important文件; • 当向Pocket文件进行写操作时会被拒绝,因为Pocket文件的安全级别低于木马程序的安全级别,所以不允许进行写操作。
9.2.5 隐蔽信道检测与控制 • 定义 • “在强制式访问控制下,主体间以违背安全策略的形式传递信息的通信信道”。 • 分类 • 隐蔽存储通道(Covert Storage Channel) • 隐蔽时间通道(Covert Timing Channel) • 相关研究 • 搜索:静态或动态 • 计算带宽 • 消除、减低带宽
隐蔽信道检测与控制 • 隐蔽存储通道存在场景 • 信息发送者直接或间接地修改某存储单元,信息接收者直接或间接地读取该存储单元。 • 其产生的必要条件有以下四条 • 发送和接收进程必须能够对同一存储单元具有存取能力; • 发送进程必须能够改变共享存储单元内容; • 接收进程必须能够探测共享存储单元内容的改变; • 必须有对通信初始化和发送与接收进程同步的机制;
隐蔽信道检测与控制 • 时间隐蔽信道的存在场景 • 信息发送者依据机密信息有规律地调节它对系统资源的使用,信息接收者通过观察系统来推断信息。 • 产生的必要条件有以下四条 • 发送和接收进程必须能够对同一广义存储单元具有存取能力; • 发送和接收进程必须具有时间参照物; • 接收进程必须能够探测到发送进程对广义存储单元内容的改变; • 必须有对通信初始化和发送与接收进程同步的机制;
9.2.6 安全审计(auditing) • 功能要求 • 是一种通过事后追查增强系统安全性的安全技术; • 对涉及系统安全的操作做完整记录,并对这些记录进行必要的分析。 • 审计处理 • 记录系统中主体对受保护的客体的违规访问情况; • 系统中主体对某些特定客体的违规访问情况。 • 审计机制 • 在系统调用的总入口处设置审计点,审计系统调用,也就审计了所有使用内核服务的事件。 • 要选择最主要的事件加以审计,不能设置太多的审计事件,以免过多影响系统性能。
安全审计 • Linux系统的审计 • 连接时间日志——login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。 • 进程统计——由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个记录。 • 错误日志——各种系统守护进程、用户程序和内核通过syslog向文件/var/log/messages报告值得注意的事件。
主要内容 • 操作系统安全性基本概念 • 操作系统主要安全机制 • 安全操作系统设计与实现
9.3 安全操作系统设计与实现 9.3.1访问监视器(Reference Monitor) 审计数据库 主体 引用监视器 客体 访问控制数据库—安全策略 • 访问监视器是一种负责实施安全策略的软件和硬件的结合体 • 访问监视器只是一个理论上的概念,并没有一种实用的实现方法。一般人们把访问监视器的概念和安全内核和可信软件等同起来。
9.3.2 安全策略与安全模型 • 常用安全策略 • 自主存取控制策略 • 强制存取控制(BLP)策略 • BIBA策略 • 中国墙策略 • 常用安全模型 • 有限状态机模型 • 访问控制矩阵 • 基于角色的访问控制模型(RBAC)
典型安全操作系统分析 • 在TCSEC促进下研制了多种具有B1级别以上的安全操作系统产品 • IBM的安全Xenix、 • Bell实验室的System V/MLS、 • 加拿大多伦多大学的安全TUNIS等 • 早期的安全操作系统基本上是按照TCSEC中的要求为蓝本研制 • 根据单一的整体安全策略对系统进行访问控制和防护。 • 现代安全操作系统中已逐步实现了多种安全策略(Security Policy) • 典型的是RSBAC和SELinux安全操作系统。
RSBAC • RSBAC是基于GFAC提出的安全操作系统原型
SELinux • SELinux采用Flask框架作为它的安全体系结构 • SELinux核心级的安全增强主要表现在三个方面 • 实现了功能强大的安全服务器-ESS(Example Security Server) • 按照Flask体系框架的要求,把Linux内核中的相应子系统,包括文件管理、进程管理、Socket控制等,改造成独立的客体管理器 • 客体管理器中实现了访问向量缓存AVC(Access Vector Caching)提高了效率。 • 实现了安全工具层 • 提供一个与安全服务器相配套的安全策略配置语言和相应配置工具