导图社区 OSG9第八章 安全模型、设计和能力的原则
第八章 安全模型、设计和能力的原则,CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
编辑于2023-07-14 11:29:42 广东关于GBT 35273—2020个人信息安全规范的思维导图,本标准规定了开展收集、存储、使用、共享、转让、公开披露、删除等个人信息处理活动应遵循的原则和安全要求。
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
社区模板帮助中心,点此进入>>
关于GBT 35273—2020个人信息安全规范的思维导图,本标准规定了开展收集、存储、使用、共享、转让、公开披露、删除等个人信息处理活动应遵循的原则和安全要求。
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
CISSP(Certification for Information System Security Professional)即信息系统安全专业认证,这一证书代表国际信息系统安全从业人员的权威认证
第八章 安全模型、设计和能力的原则
8.1 安全设计原则
8.1.1 客体和主体
主体(subject):是发出资源访问请求的主动实体。主体通常是一个用户,但也可能是一个进程、程序、计算机或机构
客体(object):是主体想要访问的被动实体。客体通常是一个资源,例如一份文件或一台打印机,但也可能是一个用户、进程、程序、计算机或机构。
信任传递/继承(transitive trust): 的概念是:如果 A 信任 B 且 B 信任 C, 那么 A 通过传递属性继承 C 的估任(见图 8.1) 。这与数学方程类似:如果 a=b 且 b=c,那么 a=c
8.1.2 封闭系统和开放系统
封闭系统(closed system):经设计只与小范围的其他系统协作,这些系统通常来自同一家制造商。封闭系统的标准一般是专有的,且通常不会公开
开放系统(open system):在设计上使用公认的行业标准。开放系统更容易与来自支持相同标准或使用兼容应用编程接口(application programming interface, API) 的不同厂商的系统集成。
封闭系统比开放系统安全
安全原则:必须坚守
默认安全配置
失效安全
保持简单
零信任
通过设计保护隐私
信任但要验证
8.1.3 默认安全配置
永远都不要假设任何产品的默认安全配置是安全的。它们往往并不安全,因为默认安全配置可能会妨碍现有业务任务或系统操作。在任何情况下
在任何情况下都要安排系统管理员和/或公司安全人员依照本机构的安全策略更改产品的默认设定
8.1.4 失效安全
故障管理的第一类措施是程序错误处理,也叫异常处理(exception handling) 。这是程序员在预测和防范错误的机制中通过编码来避免程序执行中断的过程
''try... catch" 语句
“if…then...else" 语句,
失效打开(failI-open) ;失效关闭(fail-closed);失效保障(fail-safe);失效安全(fail-secure)
物理世界
在物理世界的某些情况下,产品在设计上可能会使资产保护优先于人员保护
物理世界语境下,失效打开与失效保障是同义词,失效关闭与失效安全是同义词
数字资产
失效打开(failI-open):状态以牺牲保密性和完整性为代价来保护可用性-防火墙
失效关闭(fail-closed): 状态则以牺牲可用性来保护保密性和完整性
遵循失效安全(fail-secure)、失效关闭和/或失效保障(fail-safe)规程的数字环境事例,Windows蓝屏死机BSoD
8.1.5 保持简单
保持简单(keep it simple):也叫KISS 原则这个概念鼓励开发人员避免把环境、机构或产品设计得过于复杂。
“不自我重复"(DRY): 这一理念主张不在多处重复相同的代码,从而消除软件中的冗余
计算极简主义 :编写代码时使其尽可能少用使件和软件资源
最低耗能规则 :使用适合所需解决方案的最低耗能编程语言。
“更坏的就是更好的"(也叫新泽西风格): 软件的质量不一定随着能力和功能的提高而提升
“你不需要它"(YAGNI) :程序员应该在真正需要的时候添加能力和功能,所以,与其想起什么就创建什么,不如在真正需要的时候才把它创建出来。
8.1.6 零信任
零信任(zero trust) :这一安全概念是指不对机构内部的任何东西自动予以信任。
微隔离
最小特权
微服务
零信任被用于各种不同的安全解决方案,包括内部分段防火墙(ISFW)、多因子身份认证(MFA)、身份和访问管理(IAM)以及下一代端点安全
默认情况下,任何实体、资产或主体(无论是内部的还是外部的)都是不可信任
零信任可以防止:横向扩展,横向移动
8.1.7 通过设计保护隐私
通过设计保护隐私(Privacy by Design, PhD):是指这样一条指导原则:在产品的早期设计阶段就把隐私保护机制集成到产品之中,而不是在产品开发结束之后再尝试添加
PbD 框架基于七大基本原则
主动而非被动,预防而非修补
以默认方式保护隐私
隐私嵌入式设计
所有功能 正和而非零和
端到端安全一全生命周期保护
可见性和透明性
重用户隐私
PbD 的目的是让开发人员把隐私保护集成到他们的解决方案之中,这样可以在初始阶段就避免侵犯个人隐私。总体概念侧重于预防,而不是事后对违规行为进行补救
欧盟的《通用数据保护条例》 (GDPR)也采用了部分 PbD 原则
8.1.8 信任但要验证
那种自动信任公司安全边界内的主体和设备(即内部实体)的传统安全保护方法就是“信任但要验证”
如今,大多数安全专家都建议依照零信任模型设计机构的安全防护
8.2 用于确保保密性、完整性和可用性的技术
为保证数据的保密性、完整性和可用性(CIA) ,必须确保可访问数据的所有组件都是安全的且行为端正
8.2.1 限定
进程限定(confmement):使进程只能对某些内存位置和资源进行读和写。这也就是所谓的沙箱(sandboxing) ,即对进程执行最小特权原则。限定的目的是防止数据被泄露给未经授权的程序、用户或系统。
限定可由操作系统本身执行(例如通过进程隔离和内存保护执行),也可借助一个限定应用程序或服务(如 Sandboxie)或者通过虚拟化或管理程序方案(如VMware 或 Oracle 的 VirtualBox)执行
8.2.2 界限
系统上运行的每个进程都被分配了一个授权级别。授权级别告知操作系统该进程可以执行哪些操作
简单系统
用户
内核
在大多数系统中,这些界限划分出了每个进程使用的内存逻辑区
8.2.3 隔离
当一个进程因访问界限的执行而被限定时,它就是在隔离状态下运行
隔离(isolation)是用来保护操作环境、操作系统内核以及其他独立应用程序的
隔离能阻止一个应用访问另一应用的内存或资源,不论访问是善意的还是恶意的
8.2.4 访问控制
为确保系统安全,你应当只允许主体访问得到授权的客体
访问控制限制主体对客体的访问。访问规则规定了每个主体可以合法访问的客体
8.2.5 信任与保证
可信系统(trusted system):是指所有保护机制协同工作,可为许多类型的用户处理敏感数据,同时使计算环境保持稳定、安全的系统。换句话说,信任是安全机制、功能或能力的体现。
保证(assurance):是指满足安全需求的可信程度
8.3 理解安全模型的基本概念
在信息安全中,模型提供了一种把安全策略形式化的手段。这些模型可以是抽象的,也可以是直观的,但全都是为了提出一套可供计算机遵守,用于执行构成安全策略的基本安全概念、进程和规程的明确规则
安全模型(security model):使设计人员得以把抽象陈述投射到令牌、能力和标签为构建硬件和软件规定了必要算法和数据结构的安全策略中
令牌、能力和标签
安全令牌(token):是与资源关联的独立客体,描述了资源的安全属性
能力列表(capability list):为每个受控客体各保存一列安全属性信息
安全标签(security label) :通常是附着在客体上的一个永久部分,提供了另外一种防篡改保护措施,而这是令牌和能力列表都没有提供的。
8.3.1 可信计算基
可信计算基(trusted computing base, TCB):设计原则是硬件、软件和控制的集合体,它们协同工作,构成了执行安全策略的可信根基。
在安全策略的遵守和执行方面,TCB是系统中唯一一个可以信任的部分
1. 安全边界
系统的安全边界(security perimeter):是一个假想的边界,可将 TCB 与系统的其余部分分隔开来(见图 8.2)
可信路径(trusted path) :TCB若要与系统的其余部分通信,则必须创建安全信道,也叫可信路径
可信壳(trusted shell) :安全边界还允许使用可信壳 。可信壳可使主体在不给 TCB 或主体带来风险的情况下进行命令行操作
2. 参考监视器和内核
参考监视器(reference monitor) :TCB 中负责在授权访问请求之前验证对每个资源的访问的部分被称作参考监视器
安全内核(security kernel) :TCB 中用于执行参考监视器功能的组件集合被称为安全内核
8.3.2 状态机模型
状态机模型(state machine model):描述了一个无论处于什么状态都始终安全的系统,它基 于有限状态机(finite state machine, FSM)的计算机科学定义
状态转换(state transition) :接受输入或产生输出时会发生转换。转换总会产生新的状态
如果一个状态的所有方面都达到安全策略的要求,则可认为这个状态是安全的
安全状态机(secure statemachine) :如果每个可能的状态转换都产生了另一个安全状态
8.3.3 信息流模型(多级模型)
信息流模型(information flow model)专注于控制信息的流动
信息流模型的设计往往可以在不同安全级别之间防止未经授权、不安全或受限制的信息流(通常被称为多级模型)
信息流表明了一个对象从一个时间点的一种状态到另一时间点的另一状态的转换
8.3.4 无干扰模型
无干扰模型(noninterference model):大致基于信息流模型
无干扰模型关注的并不是信息流,而是较高安全级别主体的动作会对系统状态或较低安全级别主体的动作产生的影响
主体A(高级别)的动作不应影响主体 B(低级别)的动作,甚至不应引起主体B 的注意
可以提供一种防止木马、后门、 rootkit 等恶意程序造成损害的保护手段
三种组合理论
级联(cascading) :一个系统的输入来自另一系统的输出。
反馈(feedback) :一个系统向另一系统提供输入,由后者进行角色互换(即系统 A 首先为系统 B 提供输入,然后系统 B 向系统 A 提供输入)。
连接(hookup) :一个系统在把输入发送给另一系统的同时还将其发送给了外部实体。
8.3.5 获取-授予模型
获取-授予模型(take-grant model):用一个定向图(见图 8.3)规定应该怎样把权限从一个主体传递给另一个主体或者从一个主体传递给一个客体
这个模型的要点在于,使用这些规则后,你将能确定何时可以更改系统相关权限,以及什么位置发生了泄露(指无意间分配了权限)。
简单来说,拥有授予权的主体(X)可把自已拥有的任何权限授予另一主体仅)或另一客体(Z)
同样,拥有获取权的主体(X)可从另一主体(Y)处获取权限。
获取-授予模型基本上有 4 条规则
获取规则:允许主体获取客体的权限。
授予规则:允许主体向客体授予权限
创建规则:允许主体创建新权限。
移除规则:允许主体移除自己拥有的权限。
8.3.6 访问控制矩阵
访问控制矩阵(access control matrix,ACM):是一个由主体和客体组成的表格,标明了每个主体可 对每个客体执行的操作或功能
访问控制列表(Access Control List,ACL):矩阵的每一列都是依照客体排列的访问控制列表
能力列表:矩阵的每一行都是每个被列主体的能力列表
BLP数据和用户安全等级划分
Top Secret(绝密)
Secret(秘密)
Confidential,机密
Stricted,受限
Unclassified,公开
8.3.7 Bell-LaPadula 模型(保密性)
美国国防部于 20 世纪 70 年代根据其多级安全政策开发了 Bell-LaPadula 模型。多级安全政策规定,具有任何级别许可权的主体可以访问该许可权级别或低于该级别的资源。然而在许可权级别内,也只能按因需可知(need-to~know)原则授予对分隔开的客体的访问权。
保护客体的保密性
Bell-LaPadula 模型建立在状态机概念和信息流模型之上,还采用了强制性访问控制和基于格子的访问控制概念
三个基本属性
简单安全属性(Simple Security Property):规定主体不可读取更高敏感度级别的信息(不可向上读)。
*安全属性(*Security Property):规定主体不可把信息写进较低敏感度级别的客体(不可向下写)。这也被称为限定属性(Confinement Property)
自主安全属性(Discretionary Security Property):规定系统通过一个访间矩阵执行自主访问控制,主体基于其工作或角色按需访问客体
Bell-LaPadula 模型有一个例外规定一”可信主体”不受*安全属性约束
8.3.8 Biba 模型(完整性)
Biba模型也建立在状态机概念上,基于信息流,而且是一个多级模型,侧重于完整性
Biba 模型的属性
简单完整性属性(Simple Integrity Property):规定主体不能读取较低完整性级别的客体(不可向下读)
*完整性属性(*Integrity Property):规定主体不能修改较高完整性级别的对象(不可向上写)
Biba 模型在设计上解决了三个完整性问题:
防止未经授权的主体修改客体
防止授权主体对客体进行未经授权的修改。
保护内部和外部客体的一致性。
Biba模型缺点
只解决了完整性问题,而不涉及保密性或可用性
它专注于使客体免受外部威胁侵扰,但是假定内部威胁会以程序化方式被处理。
它没有涉及访问控制管理,也没有提供分配或更改客体或主体定密级别的方式
它不能阻止隐蔽信道。
8.3.9 Clark-Wilson 模型
Clark-Wilson 模型:通过一种涉及诸多方面的方法实现数据的完整性。定义了每个数据项并且只允许通过一个受限或受控中间程序或接口进行修改。Clark-Wilson 模型执行了职责分离。可确保数据不会被任何未经授权的用户更改
三元组(access control triplet) :主体/程序/客体(或主体/交易/客体)的三方
主体只能通过程序、接口或访问门户访问客体(见图 8.7) 。
Clark-Wilson模型的设计成为商业领域/应用的通用模型
8.3.10 Brewer and Nash 模型
创建 Brewer and Nash 模型:是为了让访问控制可以根据用户先前的活动动态地作出改变(这也使其成为一种状态机模型),解决利益冲突
中国墙/中国长城模型:只要提到解决利益冲突就选这个
8.3.11 Goguen-Meseguer 模型
Goguen-Meseguer 模型:是一个完整性模型,非干涉性模型,这个模型被认为是非干涉性概念理论的基础
Goguen-Meseguer 模型以主体可访问的预先确定的客体集或域(即一个列表)为基础
Goguen-Meseguer 模型以主体可访问的预先确定的客体集或域(即一个列表)为基础。模型的根基是自动控制理论和域隔离。
8.3.12 Sutherland 模型
Sutherland 模型:是一个完整性模型,专注于通过防止干扰来支持完整性
基于状态机模型和信息流模型。但是它并没有直接指明保护完整性的具体机制。是一种理念:对一组系统状态、初始状态和状态转换给出明确定义
使用 Sutherland 模型的一个常见例子是:防止隐蔽信道被用来影响进程或活动的结果。
8.3.13 Graham-Denning 模型
Graham-Delllling 模型:专注于主体和客体的安全创建与删除
八条保护规则
安全创建客体。
全创建主体。
安全删除客体
全删除主体。
安全提供读取访问权。
安全提供授权访问权。
安全提供删除访问权。
安全提供传输访问权。
主体在一组客体上执行某些操作的具体能力或权限通常被定义在一个访问矩阵(也叫访问控制矩阵)中。
8.3.14 Harrison-Ruzzo-Ullman 模型
Harrison-Ruzzo-Ulhnan(HRU)模型:专注于给主体分配客体的访问权限以及这些被分配权 限的韧性,它是 Graham-Denning 模型的扩展
HRU下的访问权限状态可用一个矩阵表示,其中行是主体,列是客体(里面还会包含主体,因为主体也可以是客体)。每行和每列的交集朼包含允许每个主体针对每个客体执行的具体规程
有限命令或基元(primitive)集,以便控制授权主体修改矩阵的方式
8.4 根据系统安全要求挑选控制
安全评估常常由可信的第三方负责进行;这种测试的最重要结果是表明系统达到所有基本标准的“批准印章'
8.4.1 通用准则
“通用准则 ”(Common Criteria, CC):定义了测试和确认系统安全能力的各种级别,级别 上标注的数字表示执行了哪种测试和确
取代以前的静态系统例如美国国防部的“可信计算机系统评估准则”(TCSEC)和欧盟的“信息技术安全评估准则”(ITSEC) 。
TCSEC中安全级别最高的控制措施:验证保护
“通用准则”指南的目标如下:
提升购买者对已评估和已评级的 IT 产品安全性的信心。
消除重复评估(除了其他方面,这还意味着如果一个国家/地区、一家机构或一个验证组织在评定具体系统和配置时遵循了 CC,则其他机构在其他国家/地区就不必重复此项工作)
提高安全评估的效率和效果
确保IT 产品的评估符合一致的高标准
推广评估并提高已评估和评级 IT 产品的可用性。
评估受评估对象(TOE) 的功能(即系统能够做什么)和保证(即系统的可信程度)。
“通用准则“进程基于两个要要素
保护轮廓/范畴(protection profile, PP):为接受评估的产品(即受评估对象)规定了安全要求和保护措施,我们可以把这些要求和保护措施视为客户的安全期望或客户“想要的东西”,安全的功能性要求(FR)
安全目标(security targets, ST):规定了应被供应商纳入受评估对象的安全性能,如何提供安全服务(NFR)
评估保证级别(evaluation assurance level, EAL)
EAL1-功能测试
类比V模型
EAL2-结构测试
EAL3-系统性测试和检查
EAL4-系统性设计、测试和审查
EAL5-半正式设计和测试
EAL6半正式验证、设计和测试
EAL7-正式验证、设计和测试
排序连线题,或者下一个步骤是啥
CC局限性:
8.4.2 操作授权
就许多环境而言,必须得到正式批准才能将有安全保障的设备用于 IT 操作目的。这常常被称为操作授权(Authorization To Operate, ATO) ,评估和分配由授权官员(Authorizing Official, AO)负责执行
操作授权的有效期通常为 5 年,一下情况需要重新申请
操作授权的时间期限到期。
系统遭遇严重安全事件
系统发生重大安全变化。
授权官员可以作出 4 种授权决定
操作授权: 当组织对风险的管理达到可接受水平时,授权官员可作出这种决定
通用控制授权: 当安全控制继承自另外一家供应商,而且与通用控制相关的风险处于可接受水平并已从同一位授权官员处得到了操作授权时,授权官员可作出这种决定
使用授权: 当一家第三方供应商(如云服务提供商)提供的 IT/IS 服务器被认为达到可接受风险水平时,授权官员可作出这种决定;这一决定还可以用来接受另一授权官员的操作授权
拒绝授权: 当风险不可接受时,授权官员可作出这种决定
8.5 理解信息系统的安全能力
信息系统的安全能力包括内存保护、虚拟化、可信平台模块(TPM)、加密/解密、接口和容错
8.5.1 内存保护
内存保护是一个核心安全成分,必须通过设计纳入操作系统并在其中执行
两个重要的CPU错误
Meltdown(熔毁)
Spectre(幽灵)
这两个问题源自被现代 CPU 用来预测未来指令以优化性能的方法。
进行内存保护的方法(防止内存泄露):撰写更规范的代码
8.5.2 虚拟化
虚拟化技术用于在一台主机的内存中运行一个或多个操作系统,或运行与主机操作系统不兼容的应用程序
8.5.3 可信平台模块
可信平台模块(Trusted Platform Module, TPM):既是主板上密码处理器芯片的规范,也是此规范执行方案的称谓。
硬件安全模块(HSM)就是 TPM 的一个例子,是密码处理器
TPM可以实现硬盘加密
8.5.4 接口
受约束或受限制接口(constrained or restricted interface)在应用程序内执行,旨在使用户只能按自己的权限执行操作或查看数据
受约束接口旨在限制或制约得到授权和未经授权用户的操作。这种接口的使用是Clark-Wilson 安全模型的一种实际执行方式。
8.5.5 容错
容错(fault tolerance)是指系统虽然发生故障,但仍能继续运行的能力,内存和CPU指令不会丢失
为了实现容错,需要添加冗余组件
磁盘冗余阵列(RAID)添加硬盘,考冗余性能好、速度快、可以坏50%,选RAID10(最少4快硬盘)
故障转移集群配置添加服务器
容错是安全设计的基本要素,也被认为是避免单点故障和执行冗余的部分措施。
8.5.6 加密/解密
加密是指把明文转换成密文的过程,而解密是加密过程的反向过程