1、威胁建模落地实战刘夏承办方:主办方:个人介绍刘夏ThoughtWorks,Lead Consultant架构师敏捷咨询师安全咨询师培训专家博客:https:/diagrams.today邮件:译著:C#9.0/8.0/7.0 in a NutshellPro.NET PerformanceClean Code in C#Data Visualization with D3 Cookbook威胁建模与 DevSecOpsPlan什么是威胁建模识别威胁保护资产降低风险传统安全模型安全左移模型产品审核安全运营安全需求安全架构威胁建模渗透测试安全编码静态分析动态分析安全培训威胁建模的好处传统安全模型安
2、全左移模型产品审核安全运营安全需求安全架构威胁建模渗透测试安全编码静态分析动态分析安全培训提前识别问题,节约上线前安全审核测试发现问题的修复时间在设计阶段识别安全风险,并将其纳入开发计划。降低系统后期的安全风险和交付风险。尽早与安全团队对技术方案深入讨论,提高设计质量。由于威胁建模的参与人员对项目了解更加充分,因此在讨论方案时也更有针对性。强化产品的安全性,提升市场竞争力安全左移,层层防御。最终都是为了得到更加安全的系统。威胁建模的参与者产品经理/业务分析师开发团队安全团队融合趋势隔阂依然存在但也形成了类似虚拟团队的组织形式威胁建模的总体思路AssetThreatThreat actorVul
3、nerabilities以资产(业务)为切入点以应用为切入点以攻击者为切入点持续的结构化分析过程创建威胁模型架构图识别威胁并确定各个威胁条目的状态针对识别的威胁创建消减措施从整体上准确的描述系统结构;理解系统业务。作为各种分析工作的基础。从攻击者的角度出发,综合分析攻击者可能采取的攻击类型以及对系统可能造成的影响。联合架构图和威胁识别的结果,从防守方的角度考虑应当采取哪些措施消减攻击带来的影响。威胁模型架构图威胁列表消减措施绘制威胁模型架构图威胁模型架构图的目的以全局的视角理解系统面临的安全问题。用于生成威胁列表,辅助后续的分析工作。威胁建模架构图的要求标明建模范围记录业务信息和安全信息分类分
4、层按照业务命名标记高价值资产威胁建模架构图的绘制识别用户和系统范围识别基本组件和外部依赖识别交互方式,识别安全边界回顾总结,标记高价值资产围绕高价值资产按需补充细节威胁建模架构图的绘制识别用户和系统范围识别基本组件和外部依赖识别交互方式识别安全边界标记高价值资产根据资产细化的需要补充细节在画图时一定要及时记录这些记录非常重要。虽然记录不会直接生成威胁,但是它包含了业务上下文,单纯的框图无法让人理解业务。威胁分析人员和审计人员都需要依赖这些信息来了解系统。关注用户如何使用系统威胁建模过程关注高价值资产。而用户使用系统的过程(称为用户旅程)可以完整的展现数据和资产在系统中流动的过程。根据资产需要细
5、化架构图细化架构图的原因是因为资产细化的需要,否则不要细化架构图。时刻注意我们的目的是找到设计中的问题,识别威胁。而不是画一张大而全的技术架构图。总结识别威胁威胁从何而来AssetThreatThreat actorVulnerabilitiesintentexploitaffectThreat actor 的动机每个用户、组件、安全边界、交互中的漏洞梳理威胁列表的方法全面反映各种类型的威胁准确反映威胁的当前状态与“业务上下文”相结合全面列出攻击模式(找缺陷)向团队解释威胁(说明资产和缺陷的关系)确认各个威胁的状态如何选择参考资料抽象模型(STRIDE)细粒度模型(CAPEC)如何向团队解释威
6、胁先从整体上说明系统面临的威胁。说明时首先找到资产,然后围绕资产联系各个环节存在的问题及攻击者的攻击方式进行说明。切忌直接开始一条一条过威胁列表因为威胁的识别离不开资产、缺陷、攻击者之间的联系。系统整体视图可以完善的体现这些联系。否则如果仅仅说某个组件有某个威胁或者漏洞,那么图上的各个组件之间的联系就完全无法发挥作用了。说明时,首先结合业务说明该威胁对当前系统中资产的危害;其次,描述攻击者会通过何种途径侵害系统资产。如果团队有不同意见则一定注意将这些业务记录在威胁列表中。结合使用 STRIDE 与 CAPEC 全面罗列攻击模式CAPEC大而充满细节。但很