用途:pytm 是 Python 库,用于以代码方式开展威胁建模,基于 STRIDE 方法论,把系统架构定义为代码,自动生成数据流图(DFD)、识别跨信任边界的安全威胁并产出威胁报告,便于将威胁建模集成进 CI/CD,实现左移安全与持续威胁分析。
主要能力:定义信任边界、参与者、服务器、数据存储、Lambda 等组件及数据流,并设置协议、加密、认证、授权等安全属性;自动按 STRIDE(仿冒、篡改、抵赖、信息泄露、拒绝服务、权限提升)分类识别威胁;支持自定义威胁与条件、DREAD 风险评分、graphviz 图形定制;配套脚本可生成 Markdown/JSON 报告、校验缓解措施、按严重度分类威胁、生成常见架构模板。
使用方式:安装 pip install pytm,生成图需 graphviz(macOS 用 brew install graphviz,Linux 用 apt-get install graphviz)。在 Python 脚本中导入 TM、Server、Dataflow、Boundary、Actor 等,定义组件与数据流后调用 tm.process() 生成威胁与 DFD。报告可用 scripts/generate_report.py --model threat_model.py --output threat_report.md,或加 --format json 输出 JSON。
适用场景:Web 应用三层架构、云原生微服务、移动应用、IoT 系统等威胁建模;SDLC 各阶段(设计、开发、代码评审、测试、部署、运维)集成;与问题跟踪、SIEM、渗透测试、SAST/DAST 等工具衔接。
限制:资料未提供具体收费、价格与平台支持信息;图生成依赖 graphviz,缺失会导致 DFD 失败;组件属性设置不当可能漏报或产生误报;威胁模型需随架构变更维护,否则会漂移。敏感架构信息与凭据不应硬编码,报告分发需控制访问。