CISSP 第四章 安全架构和设计

安全架构和设计

  • 主要内容
  • 4.1 计算机安全
  • 4.2 系统架构
  • 4.3 计算机架构
    • 4.3.1 中央处理单元CPU
    • 4.3.2 多重处理
    • 4.3.3 操作系统架构
    • 4.3.4 存储器类型
    • 4.3.5 虚拟存储器
    • 4.3.6 输入/输出设备管理
    • 4.3.7 CPU架构
  • 4.4 操作系统架构
  • 4.5 系统安全架构
    • 4.5.1 安全策略
    • 4.5.2 安全架构要求
  • 4.6 安全模型
    • 4.6.1 状态机模型state machine model
    • 4.6.2 Bell-LaPadula模型
    • 4.6.3 Biba模型
    • 4.6.4 Clark-Wilson模型
    • 4.6.5 信息流模型
    • 4.6.6 无干扰模型noninterference
    • 4.6.7 格子模型lattice model
    • 4.6.8 Brewer and Nash模型
    • 4.6.9 Graham-Denning模型
    • 4.6.10 Harrison-Ruzzo-Ullman模型
  • 4.7 运行安全模式
    • 4.7.1 专用安全模式delicated security model
    • 4.7.2 系统高安全模式system high-security model
    • 4.7.3 分隔安全模式compartmented security model
    • 4.7.4 多级安全模式multilevel security model
    • 4.7.5 信任与保证
  • 4.8 系统评估方法
    • 4.8.1 对产品进行评估的原因
    • 4.8.2 橘皮书TCSEC
  • 4.9 橘皮书和彩虹系列
  • 4.10 信息技术安全评估准则ITSEC
  • 4.11 通用准则Common Criteria
  • 4.12 认证与认可C&A
  • 4.13 开放系统与封闭系统
  • 4.14 一些对安全模型和架构的威胁
    • 4.14.1 编程陷阱maintenance hook
    • 4.14.2 检验时间/使用时间攻击TOC/TOU

主要内容

软件缺陷是组织面临的主要威胁,实现软件安全的最关键的环节之一是它的架构。
当今的操作系统没有把安全作为重点来设计架构,只能不断的打补丁。

4.1 计算机安全

可用性,完整性,机密性

4.2 系统架构

架构提供了“全景”目标,用来指导后面的设计和开发阶段。
在设计阶段会引入模型,如Bell-Lapadula,Biba和Clark-Wilson,模型被用来帮助系统设计的构建,最终实现架构目标。

4.3 计算机架构

计算机架构由使计算机正常运转所需的全部部件组成,包括操作系统、存储器芯片、逻辑电路、存储设备、输入输出电路、安全组件、总线和联网组件。

4.3.1 中央处理单元CPU

Central Processing Unit是计算机的大脑,从存储器中提取命令并加以执行。

操作系统必须被设计为在这个CPU架构中允许,能够在奔腾处理器上运行的操作系统无法在SPARC处理器上运行。

CPU中包含一些指向存储器位置的寄存器register,寄存器是一个临时位置,保存了下一个要执行的指令。访问存储器比访问寄存器要慢很多。

实际执行指令工作的是算法逻辑单元(Arithmetic Logic Unit,ALU),ALU对数据执行数学函数计算和逻辑操作,是CPU的大脑。

CPU有几种不同类型的寄存器:

  1. 通用寄存器general register用于保存变量和临时结果
  2. 特殊寄存器,也称专用寄存器,保存诸如程序计数器,栈指针和程序状态字之类的信息
  3. 程序计数器寄存器,包含需要提取的下一个指令的存储器地址

程序状态字Program Status Word,PSW保存各种不同的条件位,其中一个条件位指出CPU应在用户模式(问题状态),还是特权模式(内核模式或监管模式)下工作。

存储器栈
后入先出,Last In First Out,LIFO的方式读取和写入数据的数据结构

4.3.2 多重处理

为了提高性能,一些专用计算机装配有多个CPU

对称模式symmetric mode:计算机有两个或多个CPU且每个CPU使用加载均衡方式
非对称模式asymmetric mode:计算机有两个或多个CPU,且一个CPU仅专门用于一个特定程序,而其他CPU执行通用的处理程序。

4.3.3 操作系统架构

  1. 进程管理
    应用程序作为独立的单元运行,这种单元叫进程。
    程序只有加载到存储器并由操作系统激活后才被视为进程。

操作系统提供了多程序(multiprogramming)设计功能,同是可以在存储器中加载几个程序/进程。因此我们可以在系统中同时运行防病毒软件,字处理软件等。

协调式多任务处理cooperative multitasking:要求处理器自愿地释放所使用的资源,如果没有资源释放,可能导致资源被应用程序无限期占用。进程对资源的控制力过于强大。

抢占式多任务处理preemptive multitasking:操作系统可以控制进程使用某一资源的时间,通过应用分时time sharing,系统可以挂起一个正在使用CPU资源的进程,允许其他进程访问CPU。

如果一个进程与CPU交互时出现了一个中断(即其他进程请求访问CPU),那么系统会将进程的信息存储在进程表中,并由下一个进程获得与CPU交互的时间。

中断有两种类型:
可屏蔽中断maskable interrupt:分配给不是十分重要的事件,如果中断发生,程序不必停止运行。
不可屏蔽中断non-maskable interrupt:分配给非常重要的事件,中段不能被应用程序忽略。

看门狗定时器watchdog timer:是一个不能被屏蔽的关键进程

  1. 线程管理multithreaded
    当进程需要传送数据给CPU进行处理时,它会生成一个线程。
    线程由一个单独的指令集和需要由CPU处理的数据组成。
    一次可以执行若干不同任务(显示、打印、与其他应用程序交互)的程序称为多线程应用程序 。
    进程创建的每个线程共享建立该进程的相同资源。
    进程应该只接受被批准实体的指令且它接受的这些指令在实施前应该经过验证。

  2. 进程调度
    操作系统需要负责调度并同步各种进程及其活动。
    进程的不合理调度可能导致资源耗尽(如DDOS),软件死锁。

  3. 进程活动
    为了保证进程不受彼此的影响,操作系统实施了进程隔离(process isolation),一个进程挂起,不会影响到其他应用软件的运行。

进程隔离的方法
对象的封装:封装提供了数据隐藏能力,外部组件无法知道一个进程的工作方式,也不能修改进程的内部代码。封装的进程不会被恶意指令影响。
共享资源的时分复用time multiplexing
命名区分naming distinctions:不同进程拥有自己的名称或标识值,进程通常分配有进程标识值PID,Process Identification,被隔离的进程就有唯一的PID
虚拟映射:virtual addrsss space mapping虚拟地址空间映射,应用程序在存储器分配给它的地址空间(即RAM芯片)中运行

  1. 存储器管理
    所有的操作都在存储器中进行,所有存储器管理很重要
    存储器管理器用于分配并释放不同存储器段,实施访问控制以确保进程仅与它们各自的存储器交互,在RAM和硬盘间交换存储内容。

4.3.4 存储器类型

操作系统指令、应用程序、数据、基本输入输出系统(Basic Input/Output System,BIOS)、设备控制器指令和固件都保存在存储器中,但可能是在存储器的不同位置,也可能是在不同类型的存储器上。

1. 随机存取存储器RAM
Random Access Memory,是一种临时的存储设备,操作系统和应用程序使用其来执行读写操作,断电数据会丢失。

  • 动态RAM:Dynamic RAM,保存在RAM存储单元中的数据必须不断动态刷新,使位值保存在存储单元中
  • 静态RAM:Static RAM,不需要不断刷新来保存位值,所有速度比DRAM快。SRAM需要更多的晶体管,因此价格比DRAM贵。
    SRAM用在高速缓存器中,DRAM用在RAM芯片中。

除处理器外,存储器的类型,存储器大小,存储器寻址,总线带宽都是影响计算机速度的重要因素。

抖动:如果计算机在较小的存储块间转移数据所花的时间比实际处理数据的时间还要长,就称之为抖动,抖动会造成系统速度缓慢。

硬件分割:高信任级别的系统要求对进程使用的存储器进行硬件分割,确保低级别的进程无法访问和修改高级别进程的存储器空间。

寻址空间:64位寻址方案的系统比32位寻址方案的系统一次能输入更多的指令和数据到数据总线。

  • 同步DRAM:Synchronous DRAM,将自身的行为与CPU时钟进行协调,使CPU与存储器活动保持同步,提高了数据传输和数据执行的速度。
  • 拓展数据输出DRAM:Extended Data Out DRAM,比DRAM速度更快,DRAM一次只能访问一个数据块,而DEO RAM在将数据块交给CPU处理时,就能获得下一个数据块。
  • 爆发式EDO RAM:Burst EDO RAM,工作方式与EDO RAM相似,但一次能传送更多数据(爆发)
  • 双数据速率SDRAM:Double Data Rate SDRAM,每个时钟周期执行两次操作,因此传输的速率是SDRAM的两倍。

2. 只读存储器ROM
Read Only Memory,数据写入ROM就不能再被修改,断电数据也不会丢失。存储在ROM中的软件称为固件。

  • 可编程ROM:Programmable ROM,是一种在生产后仍能再修改的ROM,只能编程一次。
  • 可擦可编程ROM:Erasable And Programmable ROM,其中的程序可以擦除、修改和升级。
  • 闪存:flash memory,主要用于数码相机,BIOS芯片,手提电脑存储卡和电子游戏控制台中,更像是一块硬盘而非储存器。人们常把闪存当小型硬盘使用,更小更轻更快,除了贵没毛病。

3. 高速缓存存储器
如果系统需要多次访问某一特定信息,就会将信息保存在高速缓存存储器中,以实现方便快捷的访问。

4. 存储器映射
通过存储器映射和寻址来确保数据不遭到破坏和未授权访问。
软件对存储器进行访问,是通过索引表和指针间接访问,而不是直接给予访问存储器的权限,使用存储器的逻辑地址。
CPU对存储器进行访问,是直接访问,使用存储器的物理地址,称为绝对地址。

5. 缓冲区溢出
缓冲区是一个已分配的存储器段,只要数据过多,就会发生溢出的情况。
利用缓冲区溢出时,插入缓冲区的代码需要具有特定的长度。
防止缓冲区溢出的最好的对策是合理编程,使用边界检查,如一个输入值只能是9个字符,应用程序就只能接受9个字符。
C语言很容易受到缓冲区溢出攻击,因为它允许直接操纵指针。

6. 存储器泄露
应用程序在使用完存储器后,没有释放存储器,导致一直被占用,可能被利用发生拒绝服务攻击。
对策:开发正确释放存储器的完善的代码,使用垃圾收集器这种软件来通知操作系统标记存储器。

4.3.5 虚拟存储器

辅助存储(secondary storage)与RAM结合得到虚拟存储器。
RAM易丢失,辅助存储不易失。
交换空间(swap space)是保留的硬盘空间,用于扩展RAM的容量。

虚拟存储器分页(virtual memory paging):当系统的易失性存储空间满了,数据就从存储器写到硬盘上。如果程序需要访问这些数据,就以特殊页的形式将它从硬盘调回存储器中。这个过程叫虚拟存储器分页。

4.3.6 输入/输出设备管理

I/O设备通常被视为块或字符设备,如磁盘,打印机,网卡,鼠标

控制I/O活动的操作系统软件目标之一是实现设备独立,开发人员可以编写程序来读写任何设备,而不需要编写不同的进程来与各种I/O设备交互。

操作系统采用不同的方式来执行软件I/O过程:

  • 可编程I/O:CPU向一台I/O设备发送数据并轮询该设备,以查看它是否准备好接受更多的数据。浪费时间。
  • 中断驱动I/O:举例:CPU向打印机发送一个字符,转而处理另一个进程的请求,打印机打印完第一个字符后,会向CPU发送一个中段,CPU中止正在进行的工作向打印机发送另一字符,再去处理另一个进行。
    发送字符-离开处理其他事情-中断-发送另一个字符,每次发送字符中间都要处理中断,也会浪费时间。
  • 使用DMA的I/O:Direct Memory Access,直接存储器访问,不使用CPU而在I/O设备与系统存储器间传输数据,也称非映射I/O(unmapped I/O),数据传输速度快。
  • 映射前I/O:CPU向I/O设备发送进程的物理存储器地址,由I/O设备直接与存储器的内容进行交互。
  • 全面映射I/O:I/O设备与逻辑地址交互,由操作系统来控制两者的通信。

4.3.7 CPU架构

操作系统是软件,CPU是硬件。
操作系统和CPU必须能够通过指令集进行通信。常用指令集是X86。
操作系统输入指令告诉CPU需要做什么,CPU执行操作提供结果。

操作系统确保进程不会产生负面影响的方式:
存储器保护,保护环(protecting ring)
保护环:操作系统最信任的组件可以访问0环,0环是操作系统内核。

应用程序通常在3环运行。环决定了敏感系统资源的访问级别,环号越低,为运行该环内的进程所授予的权限越大。
工作在3环的进程无法直接请求2环或者1环的进程,而是将通信请求发送给操作系统专门制定的负责此事的API。
API是在操作系统内部可信和非可信进程之间提供访问控制的保障。

4.4 操作系统架构

系统由所有用于计算机的必要部分组成:硬件、固件、软件组件。
架构指决定操作系统各组件彼此交互方式和提供应用程序和用户要求的功能的架构。

操作系统架构:

  1. 单块架构monolithic architechure
    所有操作系统进程都在内核模式下工作,在复杂性、移植性、延展性、安全性上存在问题。代码功能遍布整个系统,难测试排障。
  2. 分层架构Technische Hogeschool Eindhoven
    THE有5个功能层次,不同层次的进程都有可以为上下层进程使用的接口。整个操作系统还在在内核模式下工作,只是操作系统的功能被分成可以相互调用的不同层。
  3. 微内核架构
    操作系统运行在内核模式中,其余运行在用户模式下。具有更小的一套内核进程,更安全。但在处理过程中需要不断的进行模式转换(用户模式和内核模式的转换),性能很低。
  4. 混合微内核架构hybrid microkernel architechure
    所有操作系统进程运行在内核模式中。核心进程运行在微内核中,其余运行在客服端/服务器模型中。

虚拟化:使单个硬件装备能够在多个操作系统环境中同步运行。
虚拟机:操作系统的虚拟实例

4.5 系统安全架构

4.5.1 安全策略

安全策略通过制定要完成什么样的安全机制等目标来精确的标明应该达到什么样的安全级别。
任意型访问控制(DAC)操作系统和强制型访问控制(MAC)操作系统的安全策略完全不同。

4.5.2 安全架构要求

  1. 可信计算基Trusted Computing Base
    TCB,系统内提供某类安全并实施系统安全策略的所有硬件、软件和固件的组合。
    TCB可以一条可信路径、一个可信外壳以及系统完整性检查功能。可信路径是用户或内核之间的通信通道。

可以被用来破坏系统或者使系统处于不稳定状态的任何组件,都是TCB的一部分,必须被安全地开发和控制。

  1. 安全边界
    安全边界是划分可信和不可信的边界。
    可信组件和不可信组件之间的通信必须加以控制,通过配备严格的API接口来控制TCB内外各组件之间的通信,从而确保系统保持稳定和安全的状态。

  2. 引用监控器reference monitor
    是主体对客体进行所有访问的中介,确保主体拥有必要的访问权限,以及保护客体的非授权访问和破坏性更改。
    引用控制器是一个访问控制概念,而不是实际的物理概念,常被称为“引用控制器概念”和“抽象机”。
    引用控制器在系统内为如何以统一协调的方式指定和控制访问决策指明方向。所有的决策都是由操作系统的、工作在内核里的、既可信又防篡改的一个组件完成,这正是安全内核的作用。

  3. 安全内核
    安全内核由位于TCB内的硬件、软件和固件组件组成,并且实现和实施引用控制器概念。

总结
系统的可信度:由如何实施自己的安全策略来定义
准则:判断安全策略是否得到正确的支持和实施
安全策略:指出与系统如何管理、保护和发布敏感资源相关的规则和举措
引用监控器:所有的主体必须具有适当的授权才能访问客体
安全内核:实施引用监控器概念
多级安全策略:规定系统如何才能同时为不同许可级别的用户处理不同分类级别的信息,防止信息从高安全级别流向低安全级别的安全策略

4.6 安全模型

安全策略是一个抽象的术语,描述了系统被认为安全和可接受时必须满足和达到的目的与目标。
安全模型将安全策略的抽象目标映射到信息系统的具体内容上,提供实现目标该做什么,不该做什么,通常以数学和分析的理念来表示。

4.6.1 状态机模型state machine model

状态机模型被用于描述一个系统对不同输入的响应行为。
状态机模型的开发人员必须标识所有的初始状态,还要概况说明变量如何发生变化,以使最终的各种状态仍然能够确保系统的安全。

使用状态机模型的系统在其出现的每一个和每一次实例中都处于安全状态。

状态机模型主要用于不允许出现错误或安全脆弱性的系统中,如空中管制系统等。

4.6.2 Bell-LaPadula模型

Bell-LaPadula模型是一个状态机模型,是多级安全策略的第一个算术模型,用于定义安全状态机的概念、访问模式和概述访问的准则,防止以未经授权的方式访问信息。

采用Bell-LaPadula模型的系统称为多级安全系统(multilevel security system)。

Bell-LaPadula模型使用了实施了3种主要的规则:

  1. 简单安全规则:规定不能读取较高安全级别驻留的数据,即不能向上读
  2. *属性(星属性)规则:规定不能将数据写入较低的安全级别,即不能向下写
  3. 强星属性规则:规定一个主体只能在同一安全级别上执行读写功能,在较高和较低级别上都不能读写

优势关系dominance relation:dominate意味着高于/超出,主体的访问等级高于客体的访问等级,主体只能对客体执行读取操作,这称之为优势关系。

Bell-LaPadula模型定义了一个安全状态,表示一个安全的计算环境以及所允许的能够保持安全性的操作。
基本安全定理basic security theorem:如果系统在安全的状态下启动,而且所有允许的状态转换都是安全的,那么无论出现什么输入,随后的每一个状态都是安全的。
Bell-LaPadula模型还使用了平衡性原则tranquility principle:表示主体和客体一旦初始化,它们的安全级别就不能发生变化。

所有MAC模型都以Bell-LaPadula模型为基础。

4.6.3 Biba模型

Biba模型是一种状态机模型,解决了应用程序内数据的完整性问题。Bell-LaPadula也是状态机模型,解决的是机密性问题。
Biba模型使用的是格子模型完整性级别,Bell-LaPadula使用的是格子模型安全级别(绝密、机密、秘密等)。

Biba模型通过以下3条规则来提供这种完整性保护:

  1. *完整性公理:主体不能向位于较高完整性级别的客体写数据,即不能向上写
  2. 简单完整性公理:主体不能从较低完整性级别读取数据,即不能向下读
  3. 调用属性:invocation property,主体不能请求(调用)完整性级别更高的主体的服务

4.6.4 Clark-Wilson模型

Clark-Wilson模型采用一些不同的方法来保护信息的完整性。

  • 转换过程:Transformation Procedure,TP,可编程的抽象操作,如读写更改
  • 约束数据项:Constrained Data Item,CDI,只能内TP操纵
  • 非约束项:Unconstrained Data Item,UDI,用户可以通过简单的读写操作进行操纵
  • 完整性验证过程:Integrity Verification Procedure,IVP,确保所有关键数据(CDI)遵循应用程序预定义的完整性规则。

据上,数据被分为两类,不需要高度保护的UDI,需要高度保护的CDI,用户不能直接更改关键数据。CDI的完整性由TP保护。使用TP更改CDI,称为格式良好的事务处理(well-formed transaction)

完整性模型的目标:

  1. 防止未授权用户进行更改-----Biba和Clark-Wilson可以实现
  2. 防止授权用户进行不正确的更改(职责分离,举例:用户取款金额较大时要求用户进行身份验证)-----Clark-Wilson可以实现
  3. 维护内部和外部的一致性(格式良好的事务处理)-----Clark-Wilson可以实现

4.6.5 信息流模型

Bell-LaPadula模型主要防止信息从高安全级别流向低安全级别
Biba模型阻止信息从低完整性级别流程高完整性级别

确保代码中不存在隐蔽通道是确保软件不会使信息随意流动的一种方式。
隐蔽通道convert channel:某个实体以未授权方式接收信息的一种方式,是一种不受安全机制控制的信息流。

出现隐蔽通道的原因:

  1. 产品开发过程中的疏忽
  2. 软件中实现的访问控制不当
  3. 两个实体之间存在共享的资源

隐蔽通道的类型:存储和计时
存储:进程通过系统上的某种存储空间进行通信,创建文件是一种实现隐蔽存储通道攻击的方式
计时:一个进程通过调节自己对系统资源的使用来向另一个进程中继传输数据,这两个彼此通信的进程使用相同的共享资源,即时间。
可接受的隐蔽通道数量取决于系统的保护评级,通用准则评级为EAL6的系统比评级为EAL3的系统隐蔽通道更少,提供的保护级别更高。

4.6.6 无干扰模型noninterference

位于较高安全级别的实体不能对较低级别的实体产生影响,使其意识到高安全级别实体引发的活动,推断/猜测出其没有许可级别/授权而可以知道的信息(称为推理攻击),存在信息泄露的可能。
这个模型的目的是处理隐蔽通道和推理攻击inference attack。

4.6.7 格子模型lattice model

一个由有限部分有序集与相应上下限运算符组成的结构。
部分有序:系统必须对这个集合应用最大限制的访问控制
最小上界:系统查看一个访问控制的陈述和其他访问控制的陈述,并取最小上界值

4.6.8 Brewer and Nash模型

也称Chinese Wall模型,提供根据用户先前活动而动态改变的访问控制,访问控制根据用户的授权、活动和先前的访问请求而动态改变。
目标是防止用户访问被认为有利益冲突的数据。
模型规定,主体只有在不能读取位于不同数据集的某个客体时才能写另一个客体,如股票经纪人不能在读取到股价下跌的数据库时写某人的账户,指示应出售持有的股票。

4.6.9 Graham-Denning模型

定义了一组基本权限,即主体能够在客体上执行的一组命令,来说明如何创建删除主体和客体,以及分配具体的访问权限:

  • 如何安全创建一个主体
  • 如何安全创建一个客体
  • 如何安全删除一个主体
  • 如果安全删除一个客体
  • 如何安全提供读访问权限
  • 如何安全提供授予访问权限
  • 如何安全提供删除访问权限
  • 如何安全提供转移访问权限

4.6.10 Harrison-Ruzzo-Ullman模型

HRU模型主要涉及主体的访问权限以及权限的完整性,主体只能对客体执行一组有限的操作。

4.7 运行安全模式

在决定操作系统应在什么模式下运行,应考虑:

  • 直接或间接连接到系统的用户类型
  • 系统处理的数据类型(分类级别、分隔区间和类别)
  • 用户拥有的许可级别、“知其所需”和正式访问批准

4.7.1 专用安全模式delicated security model

如果所有用户都具有对系统上所有信息的访问许可和相关形式化的知其所需 ,那么系统就工作在专用安全模式下面。所有用户都获得正式访问批准,并签署保密协议Nondisclosure Agreement,NDA,这个系统能处理单个信息分类级别。

4.7.2 系统高安全模式system high-security model

所有用户都有访问系统上所有信息的安全许可,但不一定对系统内的全部数据拥有知其所需时,系统就工作在系统高安全模式下。
这种模式下,如果主体访问客体不满足知其所需,就会受限。

4.7.3 分隔安全模式compartmented security model

如果所有用户拥有访问由在系统高安全配置下的系统处理的信息的许可,但可能没有知其所需和正式访问批准,系统基于工作在分隔安全模式下。
如果用户具有必要的许可,那么分隔模式工作站(Compartmented Mode Workstation,CMW)允许他们同时处理多个数据分隔区间。

4.7.4 多级安全模式multilevel security model

如果一个系统允许同时处理两个或多个信息分类级别,但并非所有用户都拥有访问系统处理的全部信息所需要的许可或正式批准,那么该系统在多级安全模式下运行。

Bell-Lapudula模型是多级安全模型的一个实例,能处理一个系统内若干不同安全级别上的多种信息分类。

卫士:用于连接在不同安全模式下运行的不同MAC系统 ,以及连接在不同安全级别下运行的不同网络。 从保证度低的系统接收请求,审查,然后向高级别的系统提交请求,以确保不会出现未授权访问。
CISSP 第四章 安全架构和设计_第1张图片

4.7.5 信任与保证

可信计算机系统评估准则(Trusted Computer System Criteria,TCSEC,常称橘皮书)中,较高保证级别系统的设计和构建工作经过了更为细致的审查。

4.8 系统评估方法

保证评估(assurance evaluation)研究系统的安全相关部分,包括TCB、访问控制机制、引用监控器、内核和保护机制,以及组件间的关系和相互作用。

4.8.1 对产品进行评估的原因

可信产品评估程序(Trusted Product Evaluation Program,TPEP)于1983年开始用于国家安全局(National Security Agency,NSA)
之后出现了可信技术评估计划(Trusted Technology Assessment Programme,TPEP)
2001年出现了通用标准(Common Criteria)评估框架,产品不再由NSA评估

4.8.2 橘皮书TCSEC

可信计算机系统评估准则 Trusted Computer System Criteria,TCSEC
橘皮书用于评估产品是否包含供应商所声称的安全属性以及它是否适用于特定的应用或功能。
TCSEC解决了机密性问题,但没有解决完整性问题。

TCSEC提供一个分级系统,将保证级别划分成下面的不同层次:
A.验证保护:最高保证级别
B.强制保护
C.自主保护
D.最小保护
编号较大的类提供更高的可信度和保证级别,B2比B1更值得信任,C2可信度比C1高。
每个级别和类都包含级别比它们更低的分级和类的要求。
监督评估过程的团体称为TPEP,评估成功的产品会加入到已评估产品清单(Evaluated Products List,EPL),并附带相应的评定级别。

  1. D分级:最小保护
    经过安全评估但没有满足较高分级标准的系统

  2. C分级:自主保护
    C1:自主安全保护,不需要严格的访问控制和审计措施
    C2:受控访问保护,单独标识每个用户以提供更加精准的访问控制和审计功能。如果用户可信,但同时需要某种程度的可问责性,就用C2等级的系统环境。C2无法保证客体不会受到威胁,但能够提供一定程度的保护。

  3. B分级:强制保护
    通过使用安全标签来实施,以Bell-LaPudula模型为基础。
    B1:标签安全,每个数据客体包含一个分类标签,每个主体包含一个许可标签,当主体访问客体时,系统必须比较主体和客体的安全标签确保行为是否可接受。主要应用于要求系统处理分类数据的环境。
    B2:结构化保护,安全策略被明确定义并文本化,增加了系统设计需求。B2要求严格的身份验证机制和在层之间定义完善的接口,不允许存在隐蔽通道,没有后门。
    B3:安全域,系统的设计和实现都不能太复杂,引用监控器组件需要足够小,以便进行正确测试,并且能防干扰。系统需要在一个初始安全状态下启动,能从故障中恢复,且安全级别不会受到伤害。

  4. A分级:验证保护
    A1:验证设计,相比B3,系统设计和规范制定过程的正确性和验证技巧详尽性的要求更高。A1系统的开发过程实施了更加严格的变更配置,以便整个设计能通过验证。

4.9 橘皮书和彩虹系列

橘皮书专门针对操作系统,着眼于机密性问题,因此更加适合政府和军事系统,而不适合用于商业领域。

彩虹系列(Rainbow Series)为橘皮书的某个需求提供了详尽的信息和解释。

红皮书
Trusted Network Interpretation,TNI,可信网络解释,称为红皮书
解释了网络和网络组建的安全评估问题,主要针对局域网和广域网系统。

红皮书涉及的安全项:

  • 通信完整性:身份验证(数字签名,加密,时间标记和密码),消息完整性(身份验证和加密),不可否认性(机密,数字签名,公证)
  • 防止拒绝服务:操作的持续性(容错和冗余),网络管理
  • 泄露保护:数据机密性(访问控制,加密和电缆物理保护),通信流量机密性(消息填充,发送噪声和虚假消息),选择性路由(网络配置和路由表)

4.10 信息技术安全评估准则ITSEC

ITSEC是欧洲国家评估计算机系统安全属性的单一安全标准,美国参照橘皮书和彩虹系列标准。

ITSEC评估系统保护机制的两个主要属性:

  • 功能性:考察和衡量提供给用户的服务
  • 保证:对保护机制及其持续性执行的能力和效力的信心程度,一般通过检查开发实践、文档、配置管理和测试机制来进行测试

ITSEC与TCSEC对比:
ITSEC:功能性和保证捆绑在一起评级,更灵活,涉及完整性、可用性和机密性,关注联网系统
TCSEC:单独评估功能性和保证,仅涉及机密性,仅关注独立的系统

4.11 通用准则Common Criteria

对产品指定评估保证级别(Evaluation Assurance Level,EAL),级别从仅仅执行功能测试的EAL1到执行彻底的测试并验证系统设计的EAL7。

通用准则的组成部分:

  • 保护样板:描述所需的安全解决方案
  • 评估目标:提供所需安全解决方案的产品
  • 安全目标:解释满足所需安全解决方案的安全功能和保护机制
  • 安全功能要求:产品必须提供的每一个安全功能
  • 安全保证要求:为保证安全功能的实现而采取的措施
  • 数据包(即EAL):把功能和保证需求封装起来,描述每个级别所必须满足的要求

ISO/IEC 15408是国际标准,是评估CC框架下产品安全属性的基础,通常包括三个部分:

  • ISO/IEC 15408-1 入门和通用评估模型,介绍CC评估模型的概念和准则
  • ISO/IEC 15408-2 定义在评估过程中要评估的安全功能要求
  • ISO/IEC 15408-3 定义了保证要求

4.12 认证与认可C&A

认证certification
认证是处于认可的目的而对安全组件及其一致性进行全面的技术评估,确保系统、产品或者网络能够适合客户的目的。

认可accreditation
认可是管理员对系统整体安全和功能的充分性的正式认可,意味着管理层接受在组织机构环境中使用新产品所带来的风险。

4.13 开放系统与封闭系统

开放系统
开放的系统架构在已公布了规范的标准、协议和接口之上,使得第三方能够开发出附加的组件和设备,提供了在不同供应商的产品之间的互操作性。
现在的大部分系统都是开放系统,可以与其他系统兼容,共享信息和使用第三方插件。

封闭系统
封闭系统使用的架构没有遵循业界标准,只能与类似的系统进行通信。封闭架构能向系统提供更高的安全性。

4.14 一些对安全模型和架构的威胁

4.14.1 编程陷阱maintenance hook

编程陷阱是一种后门,在开发阶段非常有用,投入应用前应该删除。

防止后门的预防性措施:
使用HIDS监视通过后门进入系统的攻击者
使用文件系统加密来保护敏感信息
实现审计,以检测任何类型的后门使用

4.14.2 检验时间/使用时间攻击TOC/TOU

Time-Of-Check/Time-Of-Use,也称异步攻击asynchronous attack
利用多任务操作系统中发生的事件的时序依赖性,如攻击者在指令2和3间执行某中操作,就可能会影响活动的结果

竞争条件(race condition)是指两个不同的进程需要在同一个资源上执行其任务的情况,这些进程必须遵守正确的顺序。竞争条件是打乱进程执行顺序以控制结果的攻击。
TOC/TOU是攻击者进入两个进程间进行更改,以达到控制结构的目的。

对策:
不要分解能够改变顺序的关键任务
如果操作系统能够应用软件锁,最好在它执行检查任务时锁定将要使用的项。

你可能感兴趣的:(CISSP)