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 威胁分类) 定义:Spoofing、Tampering、Repudiation、Information disclosure、Denial of service、Elevation of privilege。 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 在故障时进入更安全状态,防止未授权访问。
本节进度
完成后会保存在当前浏览器。线上版可保存;不同手机、平板之间暂不自动同步。
尚未完成