1 / 150

安全操作系统

安全操作系统. 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008. 第七章 安全操作系统的设计与实现. 对 OS 进行攻击, 是黑客永恒不变的目标, 突破了 OS 的防御, 就有机会得到计算系统的秘密, 就有机会控制应用程序的运行。. 内容提要. 安全操作系统的设计原理 安全操作系统的设计 安全操作系统的开发 安全操作系统关键技术的实现. 内容提要. 安全操作系统的设计原理 安全操作系统的设计 安全操作系统的开发 安全操作系统关键技术的实现.

vidar
Download Presentation

安全操作系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 安全操作系统 中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn 助教:裴建国 Autumn 2008

  2. 第七章 安全操作系统的设计与实现 对OS进行攻击, 是黑客永恒不变的目标, 突破了OS的防御, 就有机会得到计算系统的秘密, 就有机会控制应用程序的运行。

  3. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  4. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  5. 通用操作系统的安全功能 用户认证 存储器保护 文件和I/O设备的访问控制 对普通对象的定位和访问控制 共享的实现(保证完整性和一致性) 保证公平的服务 IPC和同步 Saltzer和Schroeder的八条设计原则 安全操作系统的设计原理

  6. 存储器保护 • 用户程序的运行空间 • 未经批准的用户不能访问! • 即便是对自己的程序空间,访问也要受限! • Linux中的线性区… 返回

  7. 公平的服务 • 极端:饿死现象 • 资源: • CPU:公平调度 • 内存:按需分配 • IO设备 • 等等 返回

  8. IPC和同步 • 信号量 • 管道和FIFO • 消息队列 • Socket • 共享内存 返回

  9. 75,Saltzer和Schroeder • Saltzer, J.H. and M.D. Schroeder, The protection of information in computer systems. Proceedings of the IEEE, 1975. 63(9): p. 1278-1308. • 以保护机制的体系结构为中心 • 探讨了计算机系统的信息保护问题 • 重点考察了权能和访问控制表的实现结构 • 给出了信息保护机制的8条设计原则 • 并指出,如何证明硬件和软件保护机制的设计与实现的正确性,是一个挑战

  10. 信息保护机制的八条设计原则 • 机制经济性原则:要简单而且短小 • Fail-safe默认原则:即失败是保险的。 显式授权 VS 隐式授权 • 完全仲裁原则 • 开放式设计原则:不要基于设计的保密性 • 特权分离原则 • 最小特权原则 • 最少公共机制原则 • 心理可接受性原则:易用性

  11. 操作系统安全的可信性 • 操作系统安全的可信性,依赖 • 安全功能在系统中实现的完整性 • 文档系统的清晰说明 • 系统测试 • 形式化程度

  12. 操作系统 • 一个大型软件:内核+系统软件+应用程序 • 验证困难 • 解决思路: • 提供安全保证的部分:尽可能小便于验证(测试) Application System Software OS kernel 硬 件

  13. 安全操作系统的一般结构 • 高安全级别OS的结构 VS. 低安全级别OS的结构 • 分离的安全内核? • 前者:KSOS,UCLA Secure Linux • 后者:LINVS IV,Secure XENIX,TMACH和Secure TUNIS 安全操作系统的一般结构

  14. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 隔离 • 安全内核 • 分层设计 • 环结构 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  15. 通用OS 灵活性 性能 开发费用 方便性 安全内核 隔离性 完整性 可验证性 操作系统设计的基本原则 • 安全操作系统设计的考虑因素 • 隔离性:主要是不同进程间的隔离,是操作系统最基本的安全功能 • 安全内核的设计: • 分层设计 • 环结构设计

  16. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 隔离 • 安全内核 • 分层设计 • 环结构 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  17. 隔离 • 有四种方法将一个进程与其他过程分离 • 物理分离:各进程使用不同的硬件设施 • 时间分离:各进程使用不同的时间段(宏观) • 密码分离: • 逻辑分离: • 安全操作系统应该将每个用户与所有其他用户分离开,仔细地只允许受控制的用户间的交互

  18. 操作系统中隔离机制的实现方法 • 隔离机制的实现方法: • 多个虚拟存储空间 • 虚拟机

  19. 多个虚拟存储空间 存储器 地址0 操作系统空间 用户1空间 用户2空间 … 用户n空间 高端 操作系统空间 对比:早期,多用户OS的存储器,单地址空间

  20. 多个虚拟存储空间(举例:IBM MVS) 存储器 存储器 存储器 地址0 地址0 地址0 操作系统空间 操作系统空间 操作系统空间 MAIN 用户2的程序 数据片段 MAIN SUB1 用户1的程序和数据 PROC_A 用户2的程序和数据 用户1的程序 数据片段 DATA1 DYNAMIC_DAT SUB2 用户3的程序 数据片段 DATA2 PROC_B 自由空间 自由空间 用户2的程序 数据片段 高端 高端 高端 操作系统空间 操作系统空间 操作系统空间 内存的实际组织 用户1感觉到的内存 用户2感觉到的内存

  21. 多个虚拟存储空间(举例:Linux 2.4.18) 低端 用户态 中断/异常/系统调用 3GB 内核 内核 内核 内核 内核态 高端

  22. 虚拟存储器虚拟机 终端 终端 终端 对比:传统的操作系统

  23. 虚拟机(举例:IBM VM) 虚拟机:安全? 虚拟机系统

  24. 虚拟机(举例:VMWare)

  25. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 隔离 • 安全内核 • 分层设计 • 环结构 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  26. 安全内核 • 操作系统中“核”的概念 • “核”是操作系统的一部分,用于完成低级功能 • 常规操作系统中,核的功能包括: • 同步、进程间通信、中断处理等 • 安全内核负责实现整个操作系统的安全机制 • 一般,安全内核被包含在操作系统内核内 • 为什么要将安全功能隔离在安全内核中?

  27. 为什么要隔离出一个安全内核 • 优点 • 分隔 • 统一 • 可修改性 • 紧凑性 • 可验证性 • 覆盖面 • 安全内核:有什么缺点? 主要是性能问题

  28. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 隔离 • 安全内核 • 分层设计 • 环结构 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  29. 分层设计 层 层间接口 分层操作系统

  30. 在不同层上操作的模块

  31. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 隔离 • 安全内核 • 分层设计 • 环结构 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  32. 环结构 ring structure 分层设计的进一步发展 • MULTICS • 参考ppt:http://www.cs.wfu.edu/~fulp/CSC790/access2.pdfhttp://www.cse.psu.edu/~tjaeger/cse497b-s07/slides/cse497b-lecture-24-macsystems.pdf

  33. Multics中的段 • 两类:数据和程序 • 段相关的权限 • 读、写、执行和添加 • 保护环ring • 编号0~63:环编号越大,特权越低 • 内核:0 • 环与一个段相关联,而不是整个进程,称“一个程序在环r中执行” • 环跨越和环跨越fault • 关于门gate

  34. r2 r3 r1 a1 a2

  35. (2) (1) (3) (4) a1 c2 a2 c1

  36. 4 2 2 4 6

  37. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统开发方法 • 安全操作系统开发过程 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  38. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统开发方法 • 安全操作系统开发过程 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  39. 开发思路 • 1)设计时就考虑建立一个完整的安全OS • 包括硬件和软件 • 如MULTICS • 2)先设计一个通用OS,然后加入安全机制 • 如HP CMW,基于HP UX,达到B1 • 如数据通用公司的DG UX/B1和DG UX/B2,基于DX UX • 后者,安全级别不会超过B2 • B3及以上的SOS必须“从头做起”

  40. 一般有三种方法: 基于通用操作系统之上开发安全操作系统

  41. 虚拟机法 • 在GOS与硬件之间增加一个新的分层:安全内核 • 安全内核提供的接口几乎与原有硬件等价 • GOS本省并未意识到已被安全内核控制 • 例如KVM • 其硬件(IBM 370)支持虚拟机 • 其原有OS(VM/370)支持虚拟机 • 缺点: • 由于对虚拟机的依赖,局限性太大

  42. 改进/增强法 • 在GOS中,对内核和应用程序进行面向安全策略的分析,加入安全机制,进行改造开发 • 保持原有GOS的用户接口 • 优点: • 代价小;用户接口不变;效率变化不大 • 缺点: • 受GOS的限制 • 难达B3

  43. 仿真法 • 对GOS的内核进行修改,但不受限于GOS • 在得到的安全内核之上提供一个仿真程序 • 缺点: • 工作量大 • 围绕安全策略,仿真困难

  44. 改进/增强法举例 基于某版本通用UNIX操作系统进行安全性开发的例子

  45. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统开发方法 • 安全操作系统开发过程 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  46. 安全操作系统开发过程 一致性?? 形式化方法,是非形式化方法的一个补充 形式化方法,要达到完全,是很困难的 半形式化方法 安全操作系统的系统开发过程

  47. 用非形式化论据论证系统实现、形式化描述和模型三者是一致的用非形式化论据论证系统实现、形式化描述和模型三者是一致的 操作系统安全性开发过程

  48. 内容提要 • 安全操作系统的设计原理 • 安全操作系统的设计 • 安全操作系统的开发 • 安全操作系统开发方法 • 安全操作系统开发过程 • 安全操作系统的开发 • 安全操作系统关键技术的实现

  49. 从两个方面进行 安全功能 安全保证 十项安全功能 标识与鉴别 自主访问控制 标记 强制访问控制 客体重用 审计 数据完整性 可信路径 隐通道分析 可信恢复 三个方面的安全保证 TCB自身安全保护 TSF保护 资源利用 TCB访问 TCB设计和实现 配置管理、分发和操作、开发指导性文档、生命周期支持、测试、脆弱性评定 TCB安全管理 安全操作系统的开发

More Related