计算机安全总复习 Part2
访问监控器#
- 访问监控器 Reference Monitor, 负责监控所有主体对客体的访问
- 安全内核 Security Kernel, 实现 RM 的硬件固件软件的总和
- 可信计算基 Trusted Computing Base, 计算机系统中全部的保护机制的总和, 包括硬件软件固件
访问验证机制的三个要求:
- 不可破坏性, 必须不受篡改
- 警惕性, 始终处于活动状态
- 可测试性, 必须是一个足够小的进程, 操作系统可以随时监视它
受控调用/门: 系统提供的一种机制, 允许低权限用户 (例如用户态程序) 以安全的, 预定义好的唯一方式调用高权限资源.
可信路径: 在用户 (其他主体) 和可信计算基之间建立的安全的, 抗篡改的直接通信通道.
安全模型#
BLP 模型#
Bell-LaPadula 模型, 保密性
状态集:
- B: Current Accesses 当前访问集, 谁正在对谁干什么
- M: Access Matrix, 一个表格, 记录了系统设定的权限名单 (谁允许对谁干什么)
- F: Security Level Functions, 给每个主体分配涉密许可级, 给客体分配密级
安全属性如下:
- ss-property (Simple Security Property, 简单安全属性)
又称向下读, 一个状态是安全的, 当且仅当对于 中的每一个读操作, 主体的安全级别必须大于或等于客体的安全级别. - *-property (Star Property, 星型安全属性)
又称向上写, 一个状态是安全的, 当且仅当对于 中的每一个写操作, 主体的安全级别必须小于或等于客体的安全级别. - ds-property (Discretionary Security Property, 自主安全属性)
当前的任何访问 ( 中的元素), 都必须在访问控制矩阵 中有明确的授权.
基本安全定理: 初始状态安全, 状态转换能保证三个属性不被破坏, 则系统安全.
Biba 模型#
不下读, 不上写, 保证的是完整性
考虑医院, 主治医师不能看实习生笔记, 实习生不能在病历里写东西
- 简单完整性, 禁止往下读
- 完整性*-property, 禁止往上写
信息传递路径: 信息只能自上而下流动.
动态完整性级别: 如果主治医师看了不可靠的笔记, 则暂时把他当成实习生
调用性: 低完整性的主体不允许请求 (调用) 高完整性的主体提供服务
环属性: 取消了读取限制, 但依然保留不上写和调用性原则.
Chinese Wall 模型#
用于域权限隔离.
为什么安全模型的名字都这么奇怪.
公司数据集, 利益冲突类, 安全标签标明它属于哪个公司数据集以及哪个利益冲突类.
- ss-property: 想读必须满足二者之一:
- 这个文件和你以前读过的文件属于同一个公司数据集
- 这个文件属于一个你从未接触过的全新利益冲突类
- *-property: 想写必须满足: 能读, 且未读过任何其他公司的机密数据
信息流模型#
考虑了所有形式的信息流.
- 强 (显式) 信息流: 信息从变量 直接传递到变量 , 例如直接赋值语句
- 弱 (隐式) 信息流: 变量 的值没有直接赋给 , 但是 决定了程序的控制流, 从而间接改变了 的值, 例如条件分支语句 (if-else).
熵:
从 流向 的信息量是
Unix/Linux 安全#
- 主角: UID, GID, group, root
- 主体: pid, EUID/EGID/RUID/RGID
- 客体: 文件许可位
二进制表示: rwx
SUID, SEID: 特殊的文件权限位. 当一个可执行文件被设置了 SUID, 普通用户在运行这个程序时, 其进程的有效用户 ID (EUID) 会临时变成该文件所有者的 UID (通常是 root).
受控调用: 虽然进程拥有了超级用户的权限, 但用户只能严格按照该程序预先编写好的代码逻辑来执行操作, 无法任意发挥.
强制访问控制 (MAC), SELinux
访问授权规则的四个元素:
- 源类型
- 目标类型
- 客体类别
- 许可权限
Windows 安全#
- WinLogon: 负责用户登录
- LSA Local Security Authority: 本地安全授权子系统, 是 Windows 安全的核心组件, 负责验证用户身份, 生成访问令牌以及管理本地安全策略.
- SAM Security Account Manager: 安全账户管理器, 是一个数据库, 存储了本地用户的账户信息和密码哈希值.
- 注册表: Windows 系统的核心配置数据库, SAM 数据库实际上就是注册表中的一个特定配置单元.
- 域 (Domain) / 活动目录 (AD): 域是 Windows 网络中共享统一安全策略和集中账户管理的逻辑边界. 活动目录是实现域管理的目录服务数据库, 用于集中存储网络中所有对象 (用户, 计算机, 组) 的凭据和权限信息, 实现单点登录和集中控制.
- 主角
- 主体
- 令牌: 由 LSA 在用户成功登录后创建的数据结构, 包含了用户的安全标识符 (SID), 所属组的 SID 以及用户拥有的特权列表. 进程通过持有这个令牌来证明自己的身份.
- 安全描述符 (Security Descriptor): 附加在 Windows 对象 (如文件, 文件夹, 注册表键, 进程) 上的数据结构, 包含了对象的所有者信息以及用于控制访问的规则.
- 受限上下文 (Restricted Context): 一种安全机制 (如 Windows UAC 用户账户控制), 通过创建一个去除了管理员特权或特定组 SID 的「受限访问令牌」来运行进程, 从而实现最小权限原则, 防止恶意软件滥用高权限.
- DACL (Discretionary Access Control List, 自主访问控制列表): 安全描述符中的一部分, 包含了允许或拒绝特定用户/组访问该对象的规则 (ACE). 系统通过比对进程的令牌和对象的 DACL 来决定是否放行.
- SACL (System Access Control List, 系统访问控制列表): 负责安全审计. 它定义了当特定用户尝试访问对象时 (成功或失败), 系统是否需要生成安全审核日志 (Audit Log).
- DEP (Data Execution Prevention, 数据执行保护): 一种基于硬件和软件的内存保护机制. 它将系统内存分为「可执行代码区」和「不可执行数据区」. 如果恶意程序试图在标记为「数据」的内存区域执行代码 (例如常见的缓冲区溢出攻击), DEP 会强制关闭该进程, 从而防止系统被控制.
这都啥玩意啊.
Android/Harmony 安全#
Android 系统架构: Java VM, Dalvik VM, ART
Android 安全机制: 沙箱, 权限
微内核, 宏内核, 鸿蒙, 安卓
数据库安全#
关系数据库
视图, 快照
存储过程, 函数
触发器
委托授权 WITH GRANT OPTION
递归回收: 撤销某个用户的带有委托性质的权限时, 系统会级联 (Cascade) 撤销由该用户直接或间接授权给其他所有用户的该项权限, 以确保权限依赖图的完整性.
否定式授权: 拒绝优先
基于视图的访问控制, 优点:
- 细粒度的安全控制
- 简化用户操作
缺点:
- 性能开销
- 很多复杂的视图是不可更新的, 用户无法通过这些视图向底层表中直接插入或修改数据, 限制了业务写入的灵活性
用户发放授权和角色 (即职位) 发放授权, 当回收用户权限时, 必须理清其权限来源.
三元组安全标签: 在强制访问控制模型中, 主体 (用户/进程) 和客体 (数据行/列/文件) 都会被绑定一个安全标签, 等级, 类别, 组别, 如 (绝密: Keter: Site-9)
统计数据库的推理: 通过多个合法查询推导出个人隐私
跟踪攻击: 构造辅助谓词 (Tracker), 查询 的聚合值和 的聚合值并进行差分计算, 绕开基数限制.
差分隐私: 在查询结果中添加随机噪音, 防止推理出单个数据
数据库备份的考虑因素, 完全备份, 差异备份, 增量备份
系统完整性检查#
系统引导 (Boot, Bootstrap): 从计算机通电到操作系统进入正常工作状态的过程
系统可信引导的目标: 确保引导过程中获得控制权的所有组件的完整性都没有受到过破坏
系统安全引导的目标: 不仅确保完整性良好, 还要确保操作系统内核一定能够顺利地引导起来. 为此, 需要在系统可信引导的基础上增加系统恢复的功能
进程完整性的体现:
- 初始状态的完整性
- 中断过程的完整性
- 呈现于存储介质时的完整性 (片上 Cache 和片外存储)
- 输出结果的完整性
云计算安全#
真有人关心这个吗.
云计算的五大特性#
- 按需自助服务: 用户可以根据实际需求, 单方面地, 自动地配置计算资源 (如服务器运行时间, 网络存储), 而无需与服务提供商进行人工交互.
- 泛在接入: 计算资源可以通过各种标准机制在网络上获取, 并支持各种异构的客户端平台. 只要有水管就能接水.
- 资源池化: 服务商的计算资源被集中整合为一个资源池, 通过多租户模型为多个消费者提供服务. 物理和虚拟资源会根据用户需求动态地分配和重新分配.
- 快速伸缩性: 计算能力可以弹性地, 甚至自动地进行配置和释放, 以便根据业务需求快速扩大或缩小规模.
- 服务可计量
云计算的三大服务模式#
- IaaS (Infrastructure as a Service, 基础设施即服务), 提供商为消费者提供处理, 存储, 网络和其他基础计算资源. 消费者可以在其上部署和运行任意软件 (包括操作系统和应用程序). 消费者不管理底层云基础设施, 但拥有操作系统的控制权.
- PaaS (Platform as a Service, 平台即服务), 提供商将支持消费者开发, 运行应用程序的平台 (如编程语言运行环境, 数据库) 部署在云端. 消费者无需管理底层的服务器, 操作系统和存储, 只需掌控自己部署的应用程序.
- SaaS (Software as a Service, 软件即服务), 提供商为消费者提供运行在云基础设施上的完整应用程序. 消费者只需通过浏览器或客户端界面直接使用软件, 完全不需要管理任何底层云基础设施或应用程序的后端代码.
云计算的四大部署模式#
- 公有云
- 私有云
- 社区云
- 混合云
云计算服务安全管理基本原则: 四不变一坚持: 安全管理责任不变, 资源的 所有权不变, 司法管辖关系不变, 安全管理水平不变, 坚持先评后用原则
安全评估#
评估对象: 产品, 系统
评估方法:
- 面向产品的: 检查和测试产品; 更加适合查找问题
- 面向过程的: 检查文档和产品开发的过程; 代价小, 而且容易达到可重复的结果
TCSEC#
可信计算机系统评估准则橘皮书, Trusted Computer System Evaluation Criteria
D 类是最低保护等级.
- D 最小保护级
- C 自主保护级
- B 强制保护级
- A 验证保护级
ITSEC: E0 不充分保证到 E6 形式化证明
CC: EAL1 功能测试到 EAL7 形式化验证的设计和测试
网络安全等级保护#
Oh, who cares?
密码应用安全性评估#
你不觉得做三明治无聊得让人脑袋打结, 无聊得震古烁今, 无聊得惊世骇俗, 无聊得超乎想象吗?
对密码技术产品/服务的合规性, 正确性, 有效性进行检测分析和评估验证.
三同步一评估: 信息系统的密码保障系统必须与业务系统实现同步规划, 同步建设, 同步运行, 并且投入使用后要开展定期评估.
密码应用基本要求的八大安全类:
- 技术类: 物理和环境安全, 网络和通信安全, 设备和计算安全, 应用和数据安全
- 管理类: 管理制度, 人员管理, 建设运行, 应急处置
网络安全等级保护和密码应用安全性评估的区别: 等保关注的是信息系统的综合安全防护能力(防病毒, 访问控制等); 密评专项聚焦于系统中密码应用的合规与有效. 在方案评估阶段, 等保评估的是「整体安全架构设计」是否满足对应等级的防御需求; 而密评专门评估该方案中「密码算法是否合规 (如是否使用了国密 SM 系列), 密钥管理体系是否安全, 密码协议是否正确」.
入侵检测#
PPDRR 模型: Policy, Protection, Detection, Response, Recovery
- IDS (Intrusion Detection System, 入侵检测系统): 监控和告警
- IPS (Intrusion Prevention System, 入侵防御系统): 主动防御
- DPI (Deep Packet Inspection, 深度包检测): 深入检查数据包载荷
- DFI (Deep Flow Inspection, 深度流检测): 基于流量行为特征检测
- 态势感知: 基于大数据和人工智能技术, 全面收集网络环境中多源的安全数据, 宏观评估整体安全状况, 并对未来可能的威胁趋势进行预测的高级系统.
入侵检测的两种方法:
- 异常检测: 基于行为, 行为大幅偏离 Baseline 时判定, 能发现零日攻击, 但误报率高
- 误用检测: 基于特征, 匹配已知攻击行为的特征码, 准确率高, 无法发现未知的全新攻击
入侵检测系统的分类: 按照数据来源分类
- 基于主机, 系统获取数据的依据是系统所在主机, 保护的目标也是系统所在主机
- 基于网络, 系统获取的数据是网络传输的数据包, 保护的是网络的运行
- 混合型
应急响应与灾备恢复#
Policy, Protection, Detection, Response, Recovery
风险评估#
评估准备: 确定评估的目标, 范围, 策略, 成立评估工作组, 准备评估工具.
风险要素识别:
- 资产识别: 对系统内的硬件, 软件, 数据等进行分类并赋值(确定其重要性).
- 威胁识别: 分析威胁的来源 (人为/环境), 动机及发生的可能性.
- 脆弱性识别: 通过漏洞扫描, 代码审计等手段找出技术和管理上的弱点.
- 确认已有安全措施: 评估现有控制措施是否能抵消一部分脆弱性.
风险分析: 采用定性或定量方法, 将资产价值, 威胁出现概率, 脆弱性严重程度进行关联矩阵计算, 最终确定风险值.
风险处理: 根据风险值和业务接受度, 选择降低风险(加固), 规避风险(停用高危业务), 转移风险(买保险或外包) 或接受风险(对残留的微小风险不予处理).
划分应急事件级别: 系统重要程度, 损失/破坏程度, 社会影响/波及范围
RAID0: 条带化
RAID1: 镜像
RAID5: 分布式奇偶校验, 最少 3 块磁盘, 空间利用率: , 允许任意坏一块磁盘而不丢失数据