计算机安全总复习 Part2

访问监控器#

  • 访问监控器 Reference Monitor, 负责监控所有主体对客体的访问
  • 安全内核 Security Kernel, 实现 RM 的硬件固件软件的总和
  • 可信计算基 Trusted Computing Base, 计算机系统中全部的保护机制的总和, 包括硬件软件固件

访问验证机制的三个要求:

  • 不可破坏性, 必须不受篡改
  • 警惕性, 始终处于活动状态
  • 可测试性, 必须是一个足够小的进程, 操作系统可以随时监视它

受控调用/门: 系统提供的一种机制, 允许低权限用户 (例如用户态程序) 以安全的, 预定义好的唯一方式调用高权限资源.

可信路径: 在用户 (其他主体) 和可信计算基之间建立的安全的, 抗篡改的直接通信通道.

安全模型#

BLP 模型#

Bell-LaPadula 模型, 保密性

状态集: V=B×M×FV = B \times M \times F

  • B: Current Accesses 当前访问集, 谁正在对谁干什么
  • M: Access Matrix, 一个表格, 记录了系统设定的权限名单 (谁允许对谁干什么)
  • F: Security Level Functions, 给每个主体分配涉密许可级, 给客体分配密级

安全属性如下:

  • ss-property (Simple Security Property, 简单安全属性)
    又称向下读, 一个状态是安全的, 当且仅当对于 BB 中的每一个读操作, 主体的安全级别必须大于或等于客体的安全级别.
  • *-property (Star Property, 星型安全属性)
    又称向上写, 一个状态是安全的, 当且仅当对于 BB 中的每一个写操作, 主体的安全级别必须小于或等于客体的安全级别.
  • ds-property (Discretionary Security Property, 自主安全属性)
    当前的任何访问 (BB 中的元素), 都必须在访问控制矩阵 MM 中有明确的授权.

基本安全定理: 初始状态安全, 状态转换能保证三个属性不被破坏, 则系统安全.

Biba 模型#

不下读, 不上写, 保证的是完整性

考虑医院, 主治医师不能看实习生笔记, 实习生不能在病历里写东西

  • 简单完整性, 禁止往下读
  • 完整性*-property, 禁止往上写

信息传递路径: 信息只能自上而下流动.

动态完整性级别: 如果主治医师看了不可靠的笔记, 则暂时把他当成实习生

调用性: 低完整性的主体不允许请求 (调用) 高完整性的主体提供服务

环属性: 取消了读取限制, 但依然保留不上写和调用性原则.

Chinese Wall 模型#

用于域权限隔离.

为什么安全模型的名字都这么奇怪.

公司数据集, 利益冲突类, 安全标签标明它属于哪个公司数据集以及哪个利益冲突类.

  • ss-property: 想读必须满足二者之一:
    • 这个文件和你以前读过的文件属于同一个公司数据集
    • 这个文件属于一个你从未接触过的全新利益冲突类
  • *-property: 想写必须满足: 能读, 且未读过任何其他公司机密数据

信息流模型#

考虑了所有形式的信息流.

  • 强 (显式) 信息流: 信息从变量 xx 直接传递到变量 yy, 例如直接赋值语句
  • 弱 (隐式) 信息流: 变量 xx 的值没有直接赋给 yy, 但是 xx 决定了程序的控制流, 从而间接改变了 yy 的值, 例如条件分支语句 (if-else).

熵: H(x)=i=1np(xi)log2p(xi)H (x) = -\sum_{i=1}^{n}{p (x_i)\log_2p (x_i)}

xx 流向 yy 的信息量是 H(x)H(xy)H (x) - H (x|y)

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)

统计数据库的推理: 通过多个合法查询推导出个人隐私

跟踪攻击: 构造辅助谓词 TT(Tracker), 查询 TT 的聚合值和 T{Target}T \cup \{Target\} 的聚合值并进行差分计算, 绕开基数限制.

差分隐私: 在查询结果中添加随机噪音, 防止推理出单个数据

数据库备份的考虑因素, 完全备份, 差异备份, 增量备份

系统完整性检查#

系统引导 (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 块磁盘, 空间利用率: N1N\frac{N-1}{N} , 允许任意坏一块磁盘而不丢失数据