威胁建模

CIA

CIA 是信息安全领域的三个基本要素;
CIA 的含义如下:
机密性(Confidentiality):保护信息避免向未授权的人披露
一致性(Integrity):保护信息避免受未授权的人更改
可用性(Availability):将信息提供给已授权的人需要时取用

CIA

信息安全三要素和信息安全基本的三个属性

信息安全三要素 信息安全三属性
保密性 认证
一致性 鉴权
可用性 审计

风险

风险

资产(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) 授权 未经授权获取、提升权限 普通用户提升到管理员

步骤

  1. Diagram

画应用程序生成数据流图(DFD),包含如下元素:

数据流(箭头线段):通过网络连接,命名管道,RPC 通道等移动的数据
数据存储(双横线):表示文件,数据库,注册表项以及类似项
进程(圆形):计算机运行的计算或程序
交互方(方形):系统的端点,例如人,web服务器和服务器
信任边界(虚线):表示可信元素与不可信元素之间的边界

示例:

DFD

  1. Identify

分析威胁。使用 STRIDE 模型分析 DFD 中的每一类部件对应的威胁

示例:

Identify

:其中R项的勾是红色表示数据存储的R(抵赖)可能有也可能没有,只有当分析的数据存储用作审计时,才要去分析R(抵赖)的威胁,不作为审计使用就不用分析R(抵赖)的威胁。

  1. Mitigate

缓解威胁。在这一步输出威胁列表,对每个威胁项进行评估处理。

因为威胁很多也需要根据优先级来合理投入。比较简单的直接使用 ALE(年度预期损失)来评估:危险 = 发生概率 × 潜在的损失;也可以使用DREAD进行。

DREAD:(所有项可进行“高中低”评价,来进行输出用于决策)

Damage potential: 潜在损失,如果缺陷被利用,损失有多大?
Reproducibility: 重现性,重复产生攻击的难度有多大?
Exploitability: 发起攻击的难度有多大?
Affected users: 有多少用户受到影响(用粗略的百分数表示)?
Discoverability: 缺陷容易发现吗?
  1. Validate

验证缓解威胁措施,当满足基线要求,可再次进行下一个迭代。

微软威胁建模工具

微软发布了STRIDE威胁建模工具,提供免费下载

下载地址:https://docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool