3.1 系统架构
系统架构:描述了系统的主要组件,以及系统组件之间、系统与用户之间以及系统与其他系统之间如何相互交互
安全架构设计原则
ISO/IEC 19249,描述的五个框架原则:域隔离、分层、封装、冗余、虚拟化
五个设计原则:最小特权、攻击面最小化、集中参数验证、集中通用安全服务、为错误和异常处理做准备
术语开发是指系统的整个生命周期,包括规划、分析、设计、构建、测试、部署、维护和退役八个阶段
3.2 计算机架构
中央处理单元CPU
程序计数器寄存器保存需要提取的下一条指令的存储器地址
不对称多处理,多个CPU都能被用来进行处理,不对称指分配具体 应用程序到一个CPU的能力,这样不必与其他进程竞争分享计算能力 非对称模式
如何产生?1.未对用户输入进行验证,违反了安全编程黄金准则;2.函数调用机制可能造成堆栈溢出;3.使用了不安全的函数,在复制值时未保证它们不超过目标区域的大小。
缓冲区溢出对策:合理编程,使用边界检查,安装最新的更新、修补程序和补丁
存储器泄漏可能由操作系统、应用程序和软件驱动程序造成
防止存储器泄漏对策:开发正确释放存储器的更完善的代码,使用垃圾收集器(运行一种算法标识未被使用的但却被占用的存储器,通知OS将其标记为有效)
处理器沿着地址总线发送了一个存储地址和读请求,系统从那个地址读取了数据,又把请求数据放到了数据总线上。CPU使用程序计数器来跟踪包含需要按序列处理的指令集的存储地址
栈指针用于存储器栈通信流程中的组件
I/O总线由周边设备使用
CPU使用的物理存储器地址是绝对地址,软件使用的索引存储器地址是逻辑地址,相对地址是在一个已知地址的基础上应用一个偏移值。
3.3 操作系统
协调式多任务处理:指应用程序的开发人员必须适当地为软件编码以释放系统资源,否则运行在这个系统上的其他软件会受到负面影响
抢占式多任务处理:操作系统可以更多地控制系统资源的分配
进程与CPU进行通信通过中断来完成,中断分为可屏蔽和不可屏蔽
看门狗定时器是不可屏蔽中断,如果操作系统崩溃并且不能自行恢复,那么该进程将通过热启动重启系统
可实施进程隔离的方法:对象的封装、共享资源的时分复用、命名区分、虚拟映射
沙箱的使用是限制confinement的例子,系统限制特定进程的访问,以限制其影响在同一系统上运行的其他进程的能力。
系统保护环:0环操作系统内核,1环操作系统,2环文件系统、驱动程序等,3环用户程序
hypervisor是控制不同访客操作系统执行的中央程序。
3.4 系统安全架构
1、安全策略
安全从制定策略开始,是高级的指导性纲领
安全策略是一个系统的基础规范,是系统建成后评估它的基准,评估的目的是确保安全策略中提出的目标得以实现
安全需求来源:法规或合规性要求、威胁建模、系统的风险评估
2、安全架构要求
可信计算机系统评价标准TCSEC,核心内容:可信计算基、安全边界、引用监控器和安全内核
(1)可信计算基TCB(Trusted Computing Base)
系统内提供某类安全并实施系统安全策略的所有硬件、软件和固件的组合
(2)安全边界(接口)
安全边界划分可信与不可信的边界
并不是每一个进程和资源都会位于TCB内,有些资源位于安全边界之外,需要配备严格的接口控制TCB内外各组件之间的通信
注:TCB和安全边界不是物理实体,是一种由系统开发人员用于描述可信组件与不可信组件之间关系的概念
(3)引用监控器reference monitor 访问控制概念
确保访问客体的主体能够获得所需的权限
是一个抽象机,是主体对客体进行所有访问的中介,要确保主体拥有必要的访问权限,保护客体不被未授权访问和破坏性更改
引用监控器定义了引用验证机制必须满足的设计要求,从而能够正确执行系统型访问控制策略的规定
(4)安全内核 TCB的核心部分
由位于TCB内的硬件、软件和固件组件构成,并且实现和实施引用监控器概念,仲裁主体和客体之间的访问和功能,是控制对系统资源进行访问的操作系统部分
要求:
为实施引用监控器概念的进程提供隔离,保证进程不被篡改
针对每个访问企图,必须调用安全内核,保证不回避调用
必须足够小,以便能够完整地和全面地对其进行测试和验证
多级安全策略:防止信息从高安全级别流到低安全级别的安全策略,这类策略只有在主体的安全级别高于或者等于客体的安全级别时才允许主体访问客体
3.5 安全模型 实施安全策略
通过明确指定实现安全策略所需的数据结构和技术,安全模型将安全策略的抽象目标映射到信息系统的具体内容上
(1)Bell-LaPadula模型 美国军方 机密性
多级安全策略的第一个算术模型
主要原则:
简单安全规则:位于给定安全级别上的主体不能读取较高安全级别驻留的数据,即不能向上读
*属性规则:位于给定安全级别上的主体不能将信息写入较低的安全级别,即不能向下写
强星属性规则:规定一个主体只能在同一安全级别上执行读写功能,在较高或较低级别都不能读写
自主安全属性,规定系统使用访问控制矩阵来实施自主访问控制,即如果想打破上面三条规则,可通过白名单方式来实施
(2)Biba模型 解决数据完整性问题
用完整性级别来防止数据从任何完整性级别流到较高的完整性级别中
简单完整性公理:主体不能从较低完整性级别读取数据(不能向下读)
*完整性公理:主体不能向位于较高完整性级别的客体写数据(不能向上写)
调用属性:主体不能请求完整性级别更高的主体的服务
前两个都是信息流模型
(3)Clark-Wilson模型 完整性 最常用于商业环境中
用户 活动个体
转换过程TP 即程序,可编程的抽象过程
约束数据项CDI 只能由TP操纵,需要高度保护的子集
非约束数据项UDI 用户可操作 不需要高度保护的子集
完整性验证过程IVP 检查CDI与外部现实的一致性,确保CDI的完整性
访问三元组:主体、程序TP、客体CDI(主体只能通过授权程序访问客体)
实施职责分离,需要进行审计
专注于结构良好的事务处理和职能划分,结构良好的事务处理是指将数据项从一个一致状态转换为另一个一致状态的一系列操作
(4)无干扰模型 也是一种多级安全属性表达
在一个安全级别内执行的命令和活动不能被位于其他安全级别内的主体或客体看到,也不能影响到它们
目的是处理隐蔽通道
隐蔽通道:某个实体以未授权方式接收信息的一种方式,很难被监测到
分为:存储(进程能够通过系统上的某种存储空间通信)和计时(进程通过调节自己对系统资源的使用向另一个进程中继传送数据,eg莫尔斯电码)
TCSEC橘皮书要求:
B2:系统开发者必须彻底搜索隐蔽存储通道