0x00 前言
1、什么是威胁建模:
以结构化的方式思考、记录并讨论系统存在的安全威胁,并针对这些威胁制定相应的消减措施。
2、为什么要威胁建模:
(1)在设计阶段开展威胁建模,一方面可以更全面的发现系统存在的威胁,根据发现的威胁提出相应的安全需求,来最大限度保证系统的安全;另一方面也可以降低安全设计缺陷导致的修复成本。
(2)通过威胁建模生成的记录文档,为后期开展的代码审计、渗透测试等安全活动提供支持,可极大提升漏洞挖掘的效率。
3、如何实施威胁建模:
(1)绘制数据流图(基于业务现有文档中的系统架构图等,来绘制数据流图)
(2)发现威胁(通过结合STRIDE、攻击树、攻击库等方法来分析发现威胁)
(3)处理和管理威胁(可使用风险管理的经典策略:解决、缓解、转移、接受)
(4)验证威胁是否解决。
4、数据流模型是威胁建模最理想的模型,因为安全问题经常出现在数据流中,而不是在控制流中。 数据流图的应用非常广泛,有时会被称为“ 威胁建模图” 。1967 年由Larry Const ant ine 设计,数据流图(DFD)包括数据存储和处理过程2个关键要素,通过数据流连接起来,并与外部实体相互作用。没有完全准确的数据流图,我们只是要让他尽量有用而已。本篇文章我将重点分享一下如何绘制一个对我们有用的数据流图。如果大家有更好的意见,希望不吝赐教。
0x01 数据流图5个元素
| 元素 | 图形表示 | 含义 |
|---|---|---|
| 外部实体 | 矩形 | 驱动系统业务,但不受系统控制的人和物。如用户、第三方系统等 |
| 处理进程 | 圆形或圆角矩形 | 表示一个任务、一个执行过程。如微服务、可执行文件、Web Server 、ftp server等 |
| 数据存储 | 两条平行线 | 存储数据的内部实体。如对象存储、数据库、消息队列、文件、注册表等 |
| 数据流 | 带箭头的直/曲线 | 数据在系统中的流动方向。如http请求、gRPC请求、服务调用、网络通信等。 |
| 信任边界 | 虚线 | 可信元素和不可信元素之前的边界 |

文章介绍了威胁建模的概念、目的和实施步骤,强调了数据流图在威胁建模中的重要性。通过软件架构4+1视图和C4模型解释了常见的架构设计模型,并对比了MicrosoftThreatModelingTool和OWASPThreatDragon等工具的优缺点。此外,还提供了Kubernetes的威胁建模案例,强调了定义信任边界的必要性,并总结了绘制数据流图的技巧和团队协作的重要性。
最低0.47元/天 解锁文章
1940

被折叠的 条评论
为什么被折叠?



