3. 威胁建模方法论概览
威胁建模不是“画一张数据流图然后开会讨论”,而是一套有明确输入、分析视角和输出物的工程方法。不同方法论解决的核心问题并不相同:有的擅长快速枚举技术威胁,有的擅长把业务风险与攻击路径对齐,有的专注隐私合规,有的强调把威胁建模嵌入敏捷开发流程。选错方法论,常见后果是分析结果与团队实际决策脱节——要么产出一堆无法排期的威胁条目,要么漏掉真正影响业务的关键风险。
四类主流方法论的核心定位
STRIDE 由微软提出,是最广泛使用的技术威胁枚举框架。它把威胁分为六类:Spoofing(仿冒)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)、Elevation of Privilege(权限提升)。STRIDE 的核心优势是“可操作”:每一类威胁都对应一组安全属性(认证、完整性、不可否认性、机密性、可用性、授权),并可直接映射到缓解措施。它适合在架构设计阶段对数据流图逐元素(进程、数据存储、数据流、外部实体)做检查。
PASTA(Process for Attack Simulation and Threat Analysis)是七阶段、风险驱动的攻击模拟方法。它从业务目标出发,经过技术范围定义、应用分解、威胁分析、漏洞分析、攻击建模,最终落到风险与影响分析。PASTA 的独特价值在于“攻击者视角”和“业务对齐”:它要求先明确业务影响,再反推攻击路径,适合对高风险系统做深度评估,但耗时较长,通常用于关键系统或合规审计场景。
LINDDUN 专注隐私威胁,覆盖 Linking(关联)、Identifying(识别)、Non-repudiation(不可否认)、Detecting(检测)、Data Disclosure(数据披露)、Unawareness(不知情)、Non-compliance(不合规)七类。它与 STRIDE 结构相似,但分析对象是个人数据流和隐私属性。当系统涉及用户画像、位置、生物特征、行为日志等个人数据时,LINDDUN 应作为 STRIDE 的补充,而不是替代。
VAST(Visual, Agile, and Simple Threat modeling)强调可视化和敏捷集成。它区分两类模型:应用威胁模型(面向开发与运维)和运营威胁模型(面向基础设施与流程)。VAST 主张把威胁建模做成自动化、可重复的流水线活动,适合 DevOps 和持续交付环境,但对团队的工具链成熟度要求较高。
选择标准:从“分析目标”出发,而不是从“方法论名气”出发
选择方法论时,建议按以下顺序判断:第一,明确本次威胁建模要回答什么问题——是“这个设计有没有明显安全漏洞”,还是“攻击者最可能从哪条路径打进来”,还是“个人数据处理是否合规”。第二,评估系统特征:是否涉及个人数据、是否属于关键业务、是否处于快速迭代环境。第三,考虑团队能力与时间预算:STRIDE 半天到一天可完成一轮,PASTA 通常需要数天到数周,LINDDUN 需要隐私专业人员参与,VAST 需要工具链支持。
一个常见的误区是“只选一种方法论”。实际工程中,组合使用往往更有效:用 STRIDE 做基线覆盖,确保六类威胁都被检查;对高风险模块用 PASTA 做攻击路径推演;涉及个人数据时用 LINDDUN 补充隐私威胁;在敏捷团队中,用 VAST 的思路把威胁建模活动拆解为可迭代的小任务。
落地要点:让威胁建模产生可跟踪的输出
无论选择哪种方法论,落地时都要抓住三个关键点。第一,输入要具体:数据流图必须标注信任边界、数据存储位置、外部实体和协议;没有这些信息,威胁分析会退化为泛泛而谈。第二,输出要可跟踪:每条威胁应记录威胁描述、受影响资产、攻击前提、潜在影响、缓解措施、责任人和状态。第三,节奏要匹配开发流程:在需求评审时做轻量 STRIDE 检查,在设计评审时做完整威胁建模,在迭代回顾时更新威胁状态。
威胁建模方法论的真正价值,不在于用了多复杂的框架,而在于是否让团队在系统设计早期就识别出关键风险,并把风险转化为可执行、可验证的安全需求。选择方法论时,先问“要解决什么问题”,再问“团队能投入多少”,最后问“输出物如何进入开发流程”。