D8-03 8–10 分钟 重要程度:高

Threat Modeling 与安全设计控制

Threat Modeling 是在设计阶段系统化识别攻击面、信任边界、威胁和缓解措施。CISSP 题目通常偏向主动建模、降低风险和 fail-secure。

一、必须记住

  • Threat Modeling 应在架构和设计阶段执行,并随重大变更更新。
  • 常见步骤包括分解系统、识别资产、入口点、信任边界、数据流、威胁和缓解措施。
  • STRIDE 可帮助识别 Spoofing、Tampering、Repudiation、Information disclosure、Denial of service、Elevation of privilege。
  • 输入验证是避免注入、越界、命令执行和业务逻辑错误的重要控制。
  • 认证和会话管理应保护 Cookie、令牌、过期时间和传输信道。
  • 错误处理不应向用户暴露内部表结构、IP、堆栈或配置。
  • 日志应记录认证失败、访问控制失败、篡改尝试、无效会话令牌、TLS 和加密错误等安全事件。
  • Fail-secure 默认在故障时进入更安全状态;fail-open 只适合非常少数业务连续性优先的场景。

二、核心概念

威胁建模

Threat Modeling 不是等漏洞出现后才分析,而是在设计中找出攻击者如何滥用系统。数据流图、信任边界和入口点能帮助团队看见控制缺口。

安全设计控制

输入验证、认证、会话管理、错误处理、集中日志、加密和访问控制是应用安全设计的基础。控制必须和威胁对应,而不是为了合规机械添加。

故障状态

Fail-secure 在安全控制故障时拒绝访问或关闭功能,适合保护保密性和完整性。Fail-open 允许绕过失败控制,可能保护可用性,但会显著增加未授权访问风险。

三、CISSP 判断规则

  • 问设计阶段识别威胁和缓解,选 Threat Modeling。
  • 问 STRIDE 的 I,选 Information disclosure。
  • 问错误讯息泄露数据库表结构,选改进错误处理和日志。
  • 问安全控制故障时默认拒绝,选 fail-secure。
  • 问会话令牌,优先保护随机性、过期时间和 TLS 传输。

四、常见陷阱

  • 威胁建模不是漏洞扫描;扫描通常发现已实现代码或运行系统的问题。
  • 详细错误应写入受保护日志,不应直接回显给普通用户。
  • Fail-open 可能维持可用性,但在安全考试中通常不是最佳默认。

五、英文关键字

Threat Modeling (威胁建模) STRIDE (STRIDE 威胁分类) Attack surface Trust boundary Data flow diagram Input validation Session management (会话管理) Error handling Security logging Fail-secure (故障安全) Fail-open (故障开放)

小测验

1. 团队在设计阶段绘制数据流、标出信任边界并识别威胁,属于什么活动?

Threat Modeling 在设计阶段系统化识别威胁、攻击面和缓解措施。

2. 应用发生错误时直接显示数据库表名和堆栈信息,最应改进哪项?

内部错误细节应进入受保护日志,不应暴露给攻击者。

3. 安全控制失败时系统默认拒绝访问,称为?

Fail-secure 在故障时进入更安全状态,防止未授权访问。

本节进度

完成后会保存在当前浏览器。线上版可保存;不同手机、平板之间暂不自动同步。

尚未完成