一,Threat Modelling Goals
- threat profile
- secure design and implementation
- penetration tests渗透测试
- vulnerabilities漏洞
二,Three Different Perspectives
1. Assets
- “The valuable things you have”
- Can be tangible, obvious targets for attackers
- There are also intangible无形的 things you may need to protect
2. Attacker Lists
Aucsmith’s ‘Threat Personas’
三,Threats
- Unstructured (‘brainstorming’)
- Moderately structured:1 specific scenario, use case or user story and 2 Protection Poker
- Highly structured: 1. Data flow diagrams, 2. STRIDE, 3. Attack trees
Data Flow Diagrams
step 1、Diagram,画图了解场景
应用程序生成数据流图(DFD)将系统分解成部件,包含如下元素:
- 数据流(箭头线段):通过网络连接,命名管道,RPC通道等移动的数据。
- 数据存储(双横线):表示文件,数据库,注册表项以及类似项。
- 进程(圆形):计算机运行的计算或程序。
- 交互方(方形):系统的端点,例如人,web服务器和服务器。
- 信任边界(虚线):表示可信元素与不可信元素之间的边界。
Trust Boundaries
Entry & Exit Points
三,Labelling Threats: STRIDE
step 2、Identify,分析威胁
在上图中每一类部件都有对应STRIDE模型的威胁
- Spoofing(欺骗)——做好鉴权;
- Tampering(篡改)——保证完整性;
- Repudiation(抵赖)——加强可追溯;
- Information Disclosure(信息泄露)——加密;
- Denial of Service(拒绝服务)——保证可用性;
- Elevation of Privileges(权限提升)——加强权限控制;
Benefits of STRIDE
- Acts as a useful ‘checklist’
- understand threat effects
- assign a priority to threats:EoP often the most serious,Repudiation may be critical in financial sector
STRIDE-Per-Element
对应到组件中,有如下关系。其中R项的勾是红色是指数据存储的R(抵赖)可能有也可能没有,只有当分析的数据存储用作审计时,才要去分析R抵赖的威胁,不作为审计使用就不用分析R抵赖威胁。
四,Simpler Models
- IIMF:Interception, Interruption, Modification, Fabrication
- CIA:Confidentiality, Integrity, Availability
- 机密性(Confidentiality):保护信息免向未授权的人披露
- 一致性(Integrity):保护信息免受未授权的人更改
- 可用性(Availability):让信息供已授权的人需要时可取用
五,Attack Trees
- Root node, representing a threat 根节点是攻击目标
- Child nodes, each representing a condition that must be true for attack to succeed叶子节点是特定的攻击(或子目标)
- Arcs between parent and child nodes:Path from a leaf node to root is an attack path,Dashed line can be used to indicate low likelihood
- 攻击树上的节点有如下两种:And/ Or 节点代表不同程度地实现攻击:And节点意味着所有必须实现子攻击;Or节点意味着必须至少实现一次攻击
1、 AND节点。一系列的攻击子目标,若要攻击的成功,它们必须全部都能够达到。这些子节点由被称作AND-分解的形式来展示。
2、 OR节点。一系列的攻击子目标,若要攻击的成功,只要它们中的任意一个达到就可以了。这些子节点由被称为OR-分解的形式来展现。
六,Textual Representation
- Easier to create, but harder to use
- Can be made machine-readable – e.g., using XML or JSON
七,Risk Assessment:
DREAD 风险评估模型
DREAD提供了5个维度,进行威胁评级,每个维度0-10分。通过最后的评分确定威胁的严重程度
- Damage potential
- Reproducibility (how often an attempt at exploiting a vulnerability actually works)
- Exploitability (effort required to exploit vulnerability)
- Affected users (proportion of install base that would be affected if an exploit became widely available)
- Discoverability (likelihood that a vulnerability will be found by external security researchers or black hats)
Issues With DREAD
漏洞风险评估 CVSS
CVSS(Common Vulnerability Scoring System),即”通用漏洞评分系统”,是一个”行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度”。
它的主要目的是帮助人们建立衡量漏洞严重程度的标准,使得人们可以比较漏洞的严重程度,从而确定处理它们的优先级。CVSS得分基于一系列维度上的测量结果,这些测量维度被称为量度(Metrics)。漏洞的最终得分最大为10,最小为0。
得分710的漏洞通常被认为比较严重,得分在46.9之间的是中级漏洞,0~3.9的则是低级漏洞。
CVSS系统包括三种类型的分数:基本分数、暂时分和环境分。
基本得分和临时得分通常由安全产品卖主、供应商给出,因为他们能够更加清楚的了解漏洞的详细信息;
环境得分通常由用户给出,因为他们能够在自己的使用环境下更好的评价该漏洞存在的潜在影响。
Scoring is more thorough and objective that DREAD
Guided online calculators exist
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator
https://www.first.org/cvss/calculator/3.0
八,Mitigation
step 3、Mitigate,缓解威胁。在这一步输出威胁列表,对每个威胁项进行评估处理。因为威胁很多也需要根据优先级来合理投入。比较简单的直接使用ALE(年度预期损失)来评价:危险 = 发生概率 × 潜在的损失。也可以使用DREAD进行——
Damage potential,潜在损失,如果缺陷被利用,损失有多大?
Reproducibility,重现性,重复产生攻击的难度有多大?
Exploitability,发起攻击的难度有多大?
Affected users,用粗略的百分数表示,有多少用户受到影响?
Discoverability,缺陷容易发现吗?
所有项可进行“高中低”评价,来进行输出用于决策。
Summary
- Seen how threats can be found by analysing software using data flow diagrams and STRIDE
- Explored the use of attack trees to indicate the possible attack paths for a threat
- Noted that unmitigated attack paths correspond to vulnerabilities
- Considered two approaches to risk assessment and seen how these drive the mitigation process
版权归原作者 河图洛水 所有, 如有侵权,请联系我们删除。