七月 10, 2025
Web3 威胁建模
什么是威胁建模?
威胁建模是识别协议中可能导致重大损失的漏洞点的过程。该过程本身并非旨在识别漏洞,而是突出关键领域。威胁建模过程的结果是一个文档,其中包含发现的描述及其优先级。该文档随后用于更新协议架构(如果威胁建模在开发的早期阶段进行),或作为审计人员将精力集中在指定区域的指南。它是 Web3 协议安全路线图的一部分。
理解系统
有效威胁建模最重要的先决条件是执行该程序团队对协议逻辑的全面理解。
深入理解产品协议的基本原理及其具体实现对于全面理解系统如何运作至关重要。
不同团队成员参与威胁建模过程可以从不同角度理解协议,从而提高清晰度。
让整个团队参与到流程中
除了从不同团队成员那里获取背景信息之外,让来自不同部门的参与者参与进来,可以从不同的角度审视可能的攻击向量。例如,财务部门的代表可能在与用户支持部门不同的地方看到潜在威胁。威胁建模流程负责人应鼓励对系统特性持有不同观点。
谁进行威胁建模
威胁建模过程应由对去中心化应用安全有深入了解的人员主导。如果内部专家具备相关能力,也可以由其担任此角色。
然而,在大多数情况下,建议聘请一位在威胁建模方面有足够经验的外部专家。外部专家将通过为其他客户进行威胁建模积累的经验,帮助加快此过程。
在哪个阶段进行威胁建模?
威胁建模可以在协议开发的不同阶段进行。
协议安全的全面方法应包括在项目开发的早期阶段和代码库开发完成阶段进行威胁建模。这两个过程相互补充,旨在为协议提供最大可能的威胁保护。
威胁建模用于改进协议设计
在早期阶段,在代码编写开始之前,威胁建模旨在识别协议架构中的弱点并评估业务逻辑的可行性。早期威胁建模很有用,因为发现的缺陷可以立即用于修改协议架构,从而形成一个短反馈循环,并对项目开发速度产生积极影响。
威胁建模作为安全审计的初步阶段
在编写协议代码的最后阶段进行威胁建模,旨在找出恶意行为者潜在攻击的位置。这种建模的结果文档对于后续的代码库安全审计至关重要。清晰定义和优先排序的攻击向量使审计人员能够将注意力集中在最重要的区域。在此类位置发现的漏洞将具有最高级别的严重性。
方法论
理解系统
为了让所有参与者理解系统,我们使用了分解和可视化。图表和草图用于表示数据流、定义关键系统组件、流程、数据存储、外部依赖以及系统元素之间的信任边界。
了解威胁行为者
要了解潜在威胁,需要形成对与系统交互的实体及其动机的理解。例如,受经济驱动的攻击者、MEV 机器人、内部人员、竞争对手等等。
定义攻击向量
在识别威胁的过程中,需要对每个已识别的组件建模并评估各种攻击选项。
发现优先级
已识别的威胁和攻击向量应根据可能后果的程度、可能性、攻击者所需的努力以及防止或减轻损害所需的行动进行评估。
结果文档
最终文档的使用取决于进行威胁建模的阶段。在协议开发的早期阶段,发现的漏洞应在修改协议架构的过程中加以利用,以减少威胁的数量和严重性。在代码库开发完成阶段,该文档用于在审计或渗透测试阶段引导安全审计人员的注意力。