一、STRIDE分析的目的
STRIDE威胁建模分析,是基于逆向思维,像攻击者一样思考。
其目的
是通过STRIDE分析,帮助理解系统中潜在的安全威胁、明确风险并建立相应的消减机制。
STRIDE的内容:
- S :Spoofing仿冒
- T :Tampering篡改
- R :抵赖
- I : 信息泄露
- D :拒绝服务
- E : 权限提升
- P : 隐私
二、STRIDE Low Level威胁分析的过程
Low Level威胁分析的过程,总体分为如下几步:
- 绘制数据流图
- 威胁分析
- 风险评估
- 制定消减措施
- 产品响应
What: 威胁建模是一种结构化的方法,帮助产品通过威胁建模识别产品存在的潜在威胁,提高设计的安全性。其目标
是评估产品设计的安全性,并不能识别编码级的安全问题。
When: Low Level威胁建模分析与产品设计同步进行。
Who: 产品团队的系统架构师
与特性SE
,以及安全团队的安全顾问
。
1、绘制数据流图
Data Flow Diagram,缩写为DFD,数据流图DFD的作用是描述系统中的数据流程,它标志了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。
绘制数据流图是梳理业务的过程,以数据为中心将业务过程描述出来。
元素 | 符号 |
---|---|
外部交互方 | 能驱动系统业务,但不受系统控制的人和物。通常表示目标系统的输入/输出。涉及到个人数据需要在元素概述中详细列举元素涉及的高、中、低影响的个人数据。 |
处理过程 | 一个过程执行一个任务时的逻辑表示。例如:Web Server, FTP Server |
数据存储 | 数据存储表示文件、数据库、注册表项、内存等。 涉及到个人数据需要在元素概述中详细列举元素涉及的高、中、低影响的个人数据。 |
数据流 | 数据在系统中的移动方向,如网络通讯、共享内存、函数调用等。涉及到个人数据需要在元素概述中详细列举元素涉及的高、中、低影响的个人数据。 |
信任边界 | 当数据流穿越不同的信任级别(区域)时,就存在信任边界,例如从用户态到内核态,从客户端到服务端等。 |
绘制数据流图时,建议标注接口上使用的协议、涉及的关键数据,依赖于在分析时参考。
数据流图绘制粒度参考建议:
- 能够表达清楚业务/场景;
- 对于单进程: 模块级别;
- 单个设备/多进程系统: 进程级别;
2、威胁分析
STRIDE威胁分析表:
元素 | S | T | R | I | D | E | P | |
---|---|---|---|---|---|---|---|---|
外部交互方 | √ | √ | √ | |||||
处理过程 | √ | √ | √ | √ | √ | √ | ||
数据存储 | √ | √ | √ | √ | √ | |||
数据流 | √ | √ | √ |
Spoofing仿冒
外部交互方
和处理过程
可能存在仿冒;
Tampering篡改
处理过程
、数据存储
和数据流
可能存在篡改;
- 中间人攻击就是篡改了数据流
Repudiation抵赖
外部交互方
、处理过程
和数据存储
可能存在抵赖;
- 只有当存储的数据包含日志时,抵赖威胁才存在。
Informarion Disclosure信息泄露
处理过程
、数据存储
和数据流
可能存在信息泄露;
Denial of Service拒绝服务
处理过程
、数据存储
和数据流
可能存在拒绝服务;
Elevation of Privilege权限提升
处理过程
可能存在权限提升;
Privacy隐私
外部交互方
和数据存储
可能存在隐私风险;
对于增量特性,可在继承已有分析结果的情况下,仅对增加/变化部分进行分析,可以减少分析工作量,威胁分析过程增加变更识别的步骤。
用户在数据流图绘制完成后,先从业务角度将特性新增/变更的内容及关键数据识别出来,通过工具自动生成实际需要分析的威胁,对于那些存量内容和新增变更但未引入风险的内容,不再进行分析。
3、风险评估
定义不同威胁的剩余风险等级(Low、Medium、High),作为制定消减措施的参考。
风险 = 攻击者接入位置 \ 缺陷利用的技术条件 \ 影响
攻击者接入位置
攻击者发动针对目标系统的攻击时需要具备的接入条件。接入环境越开放,风险越高
- 近端访问
- 内部网络可访问
- 外部网络可访问
缺陷利用的技术条件
攻击者利用该缺陷时,必须具备的、技术上的前提条件(技术资源、权限、攻击时间窗、用户交互),利用难度越低,风险越高。
- 高 :需特权用户权限、有时间窗、秘密信息,大规模网络资源和计算资源的控制权等;
- 中 : 需普通用户权限、受限公开的敏感信息等;
- 低 : 无需准备特殊的条件即可发动攻击,并且可重复攻击;
影响
指的是如果该缺陷被利用,目标系统遭受的损失,包括完整性、机密性、可用性所受到的影响。缺陷被利用后,对系统的影响越大,风险越高。
- 高 : 所有信息或部分机密信息泄露; 任意信息或部分关键信息遭篡改; 系统完全瘫痪或关键业务瘫痪;
- 低 : 少量或非关键敏感信息泄露; 非关键数据遭篡改; 系统性下降或关键业务短时间不可用;
- 无 : 对业务功能和安全性(CIA)均无明显影响。
4、隐私风险定级
隐私风险 = 国家/角色 \ 缺陷利用的技术条件 \ 影响
国家/角色
指的是产品发往的国家和产品自身所处的角色。不同国家对隐私的重视程度不同,不同产品角色所承担的法律风险不同。
- 国家: 高敏感度国家
- 角色: 数据控制者、数据处理者、设备提供商
缺陷利用的技术条件
攻击者利用该缺陷时,必须具备的、技术上的前得条件,利用难度越低,风险越高。
- 高:成功的利用或发现隐私问题依赖于一项或多项苛刻的前提条件;
- 低:攻击者成功的利用或发现隐私问题不依赖于特定的前置条件或依赖的前置条件比较简单。
影响
指的是系统中存在的缺陷对隐私的合理性和合法性所产生的影响。当缺陷被发现后,对隐私的合理性和合法性影响越大,风险越高。
- 高:如果缺陷被发现,涉及的个人数据中包含
高
影响个人数据,那么影响程度就为高; - 中:如果缺陷被发现,涉及的个人数据中包含
中
影响个人数据,那么影响程度就为中; - 低:如果缺陷被发现,涉及的个人数据中包含
低
影响个人数据,那么影响程度就为低。
5、制定消减措施
消减的目标是将风险等级降到可接受的范围。
威胁 | 消减措施 |
---|---|
Spoofing | 认证(密码认证、SSL/TLS、IPSec、SSH等) |
Tampering | 完整性(Hash、MAC、数字签名、ACL等) |
Repudiation | 防抵赖(认证、审计日志等) |
Information Disclosure | 机密性(加密、ACL等) |
Denial of Service | 可用性(负载平衡、过滤、缓存等) |
Elevation of Privilege | 授权(权限最小化、沙箱等) |
Privacy | 合法(匿名化、用户可知可控、数据最小化等) |
6、威胁评估库与威胁树
- 威胁树的内容来自威胁评估库;
- 威胁树是威胁评估库的一个视图;
- 简洁、有全局观、可以展示出分析思路;
7、PIA分析过程
- 确认是否涉及个人数据;
- 识别具体风险;
- 评估风险;
- 建议消减措施;
声明:本文采用 BY-NC-SA 协议进行授权 | 星期九
原创文章转载请注明:转自《STRIDE威胁建模》