威胁建模
CIA
CIA 是信息安全领域的三个基本要素;
CIA 的含义如下:
机密性(Confidentiality):保护信息避免向未授权的人披露
一致性(Integrity):保护信息避免受未授权的人更改
可用性(Availability):将信息提供给已授权的人需要时取用
信息安全三要素和信息安全基本的三个属性
信息安全三要素 | 信息安全三属性 |
---|---|
保密性 | 认证 |
一致性 | 鉴权 |
可用性 | 审计 |
风险
资产(Assets)受到各种威胁(Threats)影响;
威胁(Threats)通过利用系统的脆弱性(Vulnerabilities)可导致暴露(Exposure),这就是风险(Risk);
应对风险(Risk)的对策是使用防护措施(Safeguards),缓解风险使资产得到安全保障。
威胁建模(Threat Modeling)
一种分析和解决问题的结构化方法,用来识别、量化并应对威胁,利用抽象的方法来帮助思考风险。
威胁建模允许系统安全人员传达安全漏洞的破坏力,然后定义防范或减轻系统威胁的对策,并按轻重缓急实施补救措施。
who: PM、安全测试人员、开发人员、客户和黑客
what: 生成一个标准化,可落地到文档的 Check List,使得安全能力不因人员水平参差而有不同
why: 便于系统服务及时识别风险,尽早修复
when: 最好在设计阶段做(参考微软的安全开发生命周期SDL),每个公司的客观条件不同,实践上也会不一样
SD3+C 原则
Secure by Design、Secure by Default、Secure in Deployment 和 Communication
在设计阶段并无法完全考虑到所有风险因素,但通过标准化的设计考虑,可以在更早的时候,开发资源更充足的情况下,利用20%的投入及时解决掉80%的风险,而不至于在后期使得改造成本无比巨大甚至无法规避设计上的缺陷,只能通过打各种补丁规避。
当然了,威胁建模本身也是一个耗成本的活,取决于企业对此类安全的重视程度。
STRIDE模型及六类威胁与信息安全三要素、三属性的对应关系
STRIDE模型
Spoofing(欺骗)——> 做好鉴权
Tampering(篡改)——> 保证完整性
Repudiation(抵赖)——> 加强可追溯
Information Disclosure(信息泄露)——> 加密
Denial of Service(拒绝服务)——> 保证可用性
Elevation of Privileges(权限提升)——> 加强权限控制
注:随着全球对隐私保护重视程度的加大,隐私安全也成了产品的一个重要威胁,因此STRIDE的6个威胁也添加了一项隐私(Privacy),即ASTRIDE,A代表Advanced。
威胁 | 安全属性 | 定义 | 举例 |
---|---|---|---|
欺骗(S) | 认证 | 冒充人或物 | 冒充其他用户账号 |
篡改(T) | 一致性 | 修改数据或代码 | 修改订单信息 |
抵赖(R) | 审计 | 不承认做过某行为 | 不承认修改行为 |
信息泄露(I) | 保密性 | 信息被泄露或窃取 | 用户信息被泄露 |
拒绝服务(D) | 可用性 | 消耗资源、服务可不用 | DDOS导致网站不可用 |
权限提升(E) | 授权 | 未经授权获取、提升权限 | 普通用户提升到管理员 |
步骤
- Diagram
画应用程序生成数据流图(DFD),包含如下元素:
数据流(箭头线段):通过网络连接,命名管道,RPC 通道等移动的数据
数据存储(双横线):表示文件,数据库,注册表项以及类似项
进程(圆形):计算机运行的计算或程序
交互方(方形):系统的端点,例如人,web服务器和服务器
信任边界(虚线):表示可信元素与不可信元素之间的边界
示例:
- Identify
分析威胁。使用 STRIDE 模型分析 DFD 中的每一类部件对应的威胁
示例:
注:其中R项的勾是红色表示数据存储的R(抵赖)可能有也可能没有,只有当分析的数据存储用作审计时,才要去分析R(抵赖)的威胁,不作为审计使用就不用分析R(抵赖)的威胁。
- Mitigate
缓解威胁。在这一步输出威胁列表,对每个威胁项进行评估处理。
因为威胁很多也需要根据优先级来合理投入。比较简单的直接使用 ALE(年度预期损失)来评估:危险 = 发生概率 × 潜在的损失;也可以使用DREAD进行。
DREAD:(所有项可进行“高中低”评价,来进行输出用于决策)
Damage potential: 潜在损失,如果缺陷被利用,损失有多大?
Reproducibility: 重现性,重复产生攻击的难度有多大?
Exploitability: 发起攻击的难度有多大?
Affected users: 有多少用户受到影响(用粗略的百分数表示)?
Discoverability: 缺陷容易发现吗?
- Validate
验证缓解威胁措施,当满足基线要求,可再次进行下一个迭代。
微软威胁建模工具
微软发布了STRIDE威胁建模工具,提供免费下载
下载地址:https://docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool