CISSP复习笔记-第4章 安全架构和设计
4.2 系统架构
- ISO/IEC 42010:2007:IEEE推荐的软件密集型系统架构描述
4.3 计算机架构
4.3.1 中央处理单元(Central Processing Unit,CPU)
- 算术逻辑单元(Arithmetic Logic Unit,ALU)
- 控制单元
- 通用寄存器:用于保存变量和临时结果
- 特殊寄存器
- 程序计数器
- 栈指针
- 程序状态字(Program Status Word,PSW):保存各种不同的条件位,其中一个条件位指出CPU应在用户模式(问题状态),还是在特权模式(内核模式(kernel mode)或监管模式(supervisor mode))工作
- 地址总线(address bus):CPU通过地址总线与RAM和其他I/O设备建立连接
- 数据总线(data bus):读/写的数据被放在数据总线上
4.3.2 多重处理
- 多核CPU的对称模式和非对称模式
4.3.3 操作系统架构
1. 进程管理
- 协调式多任务处理(cooperative multitasking):要求处理器自愿地释放所使用的资源
- 抢占式多任务处理(preemptive multitasking):操作系统能否控制进程使用某一资源的时间
- 进程:拥有各自的存储器空间、栈和程序计数器
- 中断:进程通过中断知道何时能与CPU通信
- 可屏蔽中断(maskable interrupt):分配给不是十分重要的事件,程序可以选择是否忽略
- 不可屏蔽中断(non-maskable interrupt):程序无法忽略
2. 线程管理
- 线程:当进程有具体活动需要操作系统执行时而生成的指令集
3. 进程调度
- 死锁:两个进程互相需要对方当前占用的资源才能完成任务
4. 进程活动
- 采用以下方法可以实施进程隔离
- 对象封装:API
- 共享资源的时分复用
- 命名区分:PID
- 虚拟地址空间映射(virtual address space mapping)
5. 存储器管理
- CPU寄存器>高速缓存器>主存储器>(交换空间>)磁盘存储
- 基寄存器(base register)和界限寄存器(limit register)确定进程地址空间
4.3.4 存储器类型
1. 随机存取存储器(Random Access Memory,RAM)
- 动态RAM(Dynamic RAM,DRAM):使用电容和晶体管,电容中的数据必须不断进行动态刷新,位值才不会莫名其妙地消失,刷新需要时间,因此比静态RAM慢
- 静态RAM(Static RAM,SRAM):不使用电容、只用晶体管,在RAM芯片中占更大面积,比DRAM快、比DRAM贵
2. 只读存储器(Read-Only Memory,ROM)
- 可编程只读存储器(Programmable ROM,PROM):生产后仍能再修改,只能编程一次
- 可擦可编程只读存储器(Erasable and Programmable ROM,EPROM):擦除时需要取下芯片,紫外线从石英窗口射入,擦除所有数据
- 电可擦除可编程只读存储器(Electrically Erasable and Programmable ROM,EEPROM):一次只擦除一字节数据,速度较慢
4. 存储器映射
- 绝对地址
- 逻辑地址
- 相对地址:已知地址的基础上应用一个偏移值
5. 缓冲区溢出
- 地址空间布局随机化(Address Space Layout Randomization,ASLR):最初在OpenBSD实现,Windows最早在Vista
- 数据执行保护(Data Excecution Prevention,DEP):确保可执行代码不在存有危险的内存段中发挥作用
4.3.7 CPU架构
- 0环:操作系统内核
- 1环:操作系统
- 2环:操作系统工具,驱动
- 3环:应用
4.4 操作系统架构
- 单块架构(monolithic architecture):所有操作系统进程都在内核模式,例如MS-DOS
- 分层架构(Technische Hogeschool Eindhoven,THE):所有操作系统进程还是在内核模式,但功能被分成可以互相调用的不同层
- 微内核架构(microkernel architecture):核心操作系统进程运行在内核模式,其余运行在用户模式
- 混合微内核(hybrid microkernel architecture):所有操作系统进程运行在内核模式,其中核心进程运行在微内核中,其余运行在客户端/服务器模型中
4.5 系统安全架构
4.5.2 安全架构要求
- 可信计算基(Trusted Computing Base,TCB):系统内提供某类安全并实施系统安全策略的所有硬件、软件、固件的组合,某种意义上说内核就是TCB
- 安全边界(security perimeter):划分可信与不可信的边界
- 引用监控器(reference monitor):抽象概念,主体对客体进行所有访问的中介
4.6 安全模型
4.6.2 Bell-LaPadula模型
- 多级安全策略的第一个算术模型
- 是一种状态机模型
- 解决保密性问题
- 是一个信息流模型
- 所有MAC模型都以Bell-Lapadula模型为基础
- 简单安全规则:不能向上读(no read up)
- 星属性规则:不能向下写(no write down)
- 强星属性规则:主体要读写一个客体,主体的许可和客体的分类必须同等
4.6.3 Biba模型
- 是一种状态机模型
- 解决完整性问题
- 是一个信息流模型
- 使用格子模型(绝密、秘密、敏感等)的完整性级别
- 星完整性公理:不能向上写(no write up)
- 简单完整性公理:不能向下读(no read down)
- 调用属性:主体不能请求(调用)完整性级别更高的主体的服务,规定了一个主体在运行时与其他主体的交互方式以及如何对它们进行初始化
4.6.4 Clark-Wilson模型
- 用户:活动个体
- 转换过程(Transformation Procedure,TP):可编程的抽象操作,如读、写、更改
- 约束数据项(Constrained Data Item,CDI):只能由TP操纵
- 非约束数据项(Unconstrained Data Item,UDI):用户可以通过简单的读写操作进行操纵
- 完整性验证过程(Integrity Verification Procedure):检查CDI与外部现实的一致性
- 完整性模型的目标
- 防止未授权用户进行更改
- 防止授权用户进行不正确的更改(职责分离)
- 维护内部和外部的一致性(格式良好的事务处理)
- Biba模型只实现了第1个目标
- Clark-Wilson模型实现了3个目标,其中一致性由IVP提供
4.6.7 格子模型
- 最小上界
- 最大下界
4.7 运行安全模式
- 保密协议(Nondisclosure Agreement,NDA)
- 专用安全模式(dedicated security mode):所有用户拥有所有信息的访问许可和正式访问批准
- 系统高安全模式(system high-security mode):所有用户拥有所有信息的访问许可,但只有知其所需信息的正式访问批准
- 分隔安全模式(compartmented security mode):用户只有知其所需信息的访问许可和正式访问批准
- 卫士:允许在可信与不可信系统与环境之间的数据交换,从保证度低的系统接收请求,审查这个请求以确保它得到许可,然后向保证度更高的系统提交该请求
4.8 系统评估方法
4.8.2 橘皮书
- 可信计算机系统评估准则(Trusted Computer System Evaluation Criteria,TCSEC):橘皮书
- 两类保证:运行保证,生命周期保证
- D(minimal protection):最小保护
- C(discretionary protection):自主保护
- C1(discretionary security protection):自主安全保护
- C2(controlled access protection):受控访问保护
- B(mandatory protection):强制保护
- B1(labeled security):标签安全
- B2(structured protection):结构化保护
- B3(security domains):安全域
- A(verified protection):验证保护
- A1(verified design):验证设计
- A1(verified design):验证设计
4.12 认证与认可
- 认证(certification):对安全组件及其一致性进行全面的技术评估
- 认可(accreditation):管理层对系统整体安全和功能的充分性的正式认定
4.14 一些对安全模型和架构的威胁
- 维护陷阱(maintainance hook):只有开发人员才知道和能够调用的指令
- 检验时间/使用时间(Time-Of-Check/Time-Of-Use,TOC/TOU)攻击:攻击者进入两个进程之间进行更改,一种异步攻击
- 竞争条件(racecondition):攻击者打乱进程执行顺序以控制结果