重新定义威胁建模:安全团队正在度假

2021-04-07 23:47:00

这是温哥华的冷酷而黑暗的日期;另一名员工安全工程师和我是开发人员LED威胁建模会话的一部分。我们找不到开发人员领导的团队的一个额外的安全问题。领导该项目的开发商考虑了所有选择!

当会议结束时,工作人员安全工程师问:“我们做了什么?我们甚至有什么目的?“我们开玩笑说失去了我们的工作,但我们知道这是一个最好的问题!

记录划痕,冻结框架:你可能想知道,“我们是怎么来到这里的?”

如果您之前从未听说过威胁建模,则您并不孤单。威胁建模对不同的人来说意味着非常不同的东西。在段,威胁建模是系统地识别系统内或特征中资产的过程,头脑风暴方式来损害这些资产,以及协作设计捍卫它们的方法。

威胁建模是段的安全开发生命周期的关键步骤。在我们从公众提供的分部提供功能之前,安全工程(SECENG)团队审查它。我们的工作是降低一个糟糕的演员利用该功能漏洞的风险,最终确保了客户数据的安全。

我们喜欢做威胁建模,因为我们可以在编码到系统之前修复漏洞。在设计阶段修复这样的漏洞是更便宜的。修复生产中的漏洞可能意味着开发人员必须从划痕,即时从头开始了解易受攻击的系统,并花费宝贵的时间上下文切换。我们还节省了金钱,因为我们减少了我们错误赏金计划中发现的漏洞的数量。由于开发人员花费更少的时间来修复漏洞,这意味着他们可以专注于建筑功能,而不是战斗火灾。

从安全的角度来看,它也意味着我们必须激活我们的皮鞋并可能告诉我们的客户我们搞砸了更少的安全事件。每个人都赢了,因为我们基本上为开发人员和安全工程师创造了乌托邦!

威胁建模听起来很棒,但它不是没有挑战。与威胁建模一样多的乐趣是,通常只有一个擅长威胁建模的组织中的少数人。由于安全工程师和组织工程师之间的比率,安全团队通常可以成为威胁建模和评论的瓶颈。鉴于所涉及的人数,有些人认为威胁建模在工程工作时间内过于昂贵。但是,鉴于您保存的工程工作时间响应事件,这不是真的。

随着节奏以非常迅速的步伐和我们的特征集成了甚至更快,而且是时候尝试不同的东西。自助式威胁建模检查所有右侧框:它删除了瓶颈,并有助于处理安全工程师对开发人员的不平衡比例。如果我们能够满足这些要求,我们就会建立自己的威胁威胁乌托邦。

在我们的安全乌托邦,工程团队履行威胁建模练习,安全团队是可选的与会者。然后,安全性可以选择它们基于攻击表面的兴趣,优先级和大小参加的会话。

安全“目标状态”对模型很重要,因为它解决了许多问题。在我们当前的世界中,安全团队的可用性成为一个瓶颈,但在我们的目标状态下,缺乏安全人员没有封锁工程团队,因为工程团队可以运行自己的威胁建模会议,安全团队是可选的与会者。在我们当前的世界中,威胁建模可以占用额外的工程工作时间来审查,其中在目标状态下,威胁建模活动内置于设计审查中,这已经是开发周期中的标准会议。虽然只有少数人对此负责,但威胁建模很难规模,但当每个人都可以做到这一点时,它会缩放精美。

开发人员知道他们的功能比任何人都更好:他们了解什么工作,差距是差距,他们可能遇到麻烦。相比之下,安全工程师只能在评估它时花几个小时的特定功能,但预计会对该功能提供深入的安全问题。这对特色专家来说,讨论潜在的安全问题,而不是从外面看问题的人来说,这更有意义。

大小事项。工程团队比安全工程团队更大。作为一个安全工程师,我知道更多人看待问题,我们发现更多的潜在问题。我们认为,通过培训和练习,与他们对其功能的私密知识相结合,我们的工程团队比我们的安全团队更好。在地平线上有了这一结果,它只有意义投资自助威胁建模培训。

自助威胁建模是一种工程范围的倡议,它已经采取了相当大的开发时间。我们有一个全面的课程,经历了几个阶段,以确保这个项目取得成功。

这少于一个阶段,更多“我们在我们开始自助威胁建模项目之前的地方。”

所有功能都需要在设计阶段期间安全审查。安全性负责审核,并在适当时为特征构建威胁模型。

为了转向自助服务模式,第一个也是最重要的一步是培训开发人员如何执行威胁建模锻炼。在此阶段,您将开发人员教授威胁建模工作流程,如何找到威胁的策略,如何优先考虑它们,以及如何决定应解决哪些威胁。

绝大多数开发商已经完全培训,现在团队领导自己的威胁建模会议。安全团队仍然(实际上)在房间里,并且有助于指导工程师成功。

在威胁建模会话开始之前,领导会话的人员会创建所有必要的预读材料。我们使用建立的威胁建模部分作为我们标准设计文档模板的一部分。设计文档提供了适当的上下文,但要求开发人员创建架构图,解释会议的范围内和范围内容,以及该项目所涉及的资产。资产可能是基础架构,应用系统本身,系统中的数据;任何值得保护的东西都被列为“资产”。

安全在此阶段的角色是在需要时参加会议并帮助指导对话。安全性并没有告诉开发人员漏洞是什么,而是指导团队自己发现漏洞。虽然发生了威胁模型,但这仍然是教授开发人员如何发现漏洞自己的好时机。

仍然存在开发人员不会发现重要漏洞的情况,即使是提示,那就是很好的。当他们观察到这一点时,安全获取并帮助指导思想过程,以便开发团队学会发现这些漏洞。同样,这是一个教学时刻,每个人都会对威胁模型感到更好的感觉。

到目前为止,我们已经有许多开发者LED自助式威胁展示会话,我们知道当一名员工安全工程师说“嗯,我在这次会议中完全没用的事情时,事情进展顺利。”

威胁建模并不是一种简单的学习技巧,它需要实践才能变得擅长。我们的责任是安全工程师,以创造学习文化。由于我们的团队开始更符合始终如一地发现批判性和高度严重性的漏洞,因此他们毕业于下一阶段。

在这一阶段,工程团队在威胁模型中是如此擅长,即安全团队不再需要在会议中。我们的工作是审查威胁建模会话的工件,并验证我们不会预计其他批判性或高度严重性的漏洞。

您可能会继续找到中型和低优先级的漏洞。那太棒了!您鼓励与团队分享,并解释您如何发现这些漏洞。

要继续下一阶段,工程团队必须始终如一地发现批判性,高中和中等严重程度漏洞。除此之外,经过几个周期,安全团队应开始看到这些团队的特征的错误赏金和渗透测试结果的显着下降。

这是我们安全工程师梦想的理想世界。一旦团队在这个阶段,它是可选的,即甚至审查威胁模型。

我们相信它可能需要一年或两个阶段来实现这一阶段,但我们知道最终,这将是值得的努力。

细分团队审查了许多培训选择。我们最终决定,继续进行的最佳方式是从头开始建立培训。培训本身必须是相关的和特定于我们的文化规范。

培训被交付给整个工程组织,任何想要注册的人:这包括产品经理,科技作家和普通员工的成员。这意味着培训必须参与各级技能和经验。课程由初级,中生和非常高级的人组成。培训不得不与从未以前从未做过威胁建模的人以及安全冠军的人有关。

第一个培训会议的目标是介绍威胁建模的概念,教导工作流程,并显示开发人员的工具安全用来找到漏洞。

我们通过与您可能考虑个人安全的方式来介绍对开发人员威胁建模的概念。这比潜水权更可关联,进入软件漏洞概念。

因为我们在2020年4月开始这个过程,在第一个运动中,我们谈到了我们的杂货购物习惯以前是什么,然后在大流行之后。这项练习让我们谈论风险,以及他们如何评估和决定他们对风险的宽容。我们通过几种非软件风险练习工作,以帮助使威胁建模可关联。

后来在会议上,我们向课程介绍了一步,并做了深度潜水并谈论每个漏洞类。然后,我们讨论现实生活漏洞以及它们如何影响应用程序。我们做一些轻微的练习来帮助课程习惯于询问正确的安全问题。

第二次培训的目标是让开发人员的手肮脏,练习才能巩固他们的知识。

我们介绍了“资产”的概念,以及威胁建模会话中的观点的多样性价值。重要的是,在我们经历威胁建模锻炼时,班上的每个人都会了解我们评估的系统中的资产。重要的是,工程团队的所有成员都会参与威胁建模练习。该团队的每个成员都有一个略有不同的背景和经验,因此他们每个人都以不同的方式看到系统。在找到潜在的漏洞时,每个人的声音都很重要。

作为本培训的一部分,我们对假段特征有了冗长的讨论:信用卡结算系统。该类分为小组,每个团队都阅读了设计文档并通过它谈论系统中的潜在漏洞。在评估结束时,每个人都会回到一起,我们讨论并比较来自每组的三大威胁。该类了解如何阅读设计文档,重点关注安全性,如何识别安全漏洞,以及如何优先考虑风险。

与团队执行结束威胁建模会话,并将我们讨论的概念保存。

在最终培训中,我们做了一个实际的威胁建模练习。我们讨论我们是威胁建模的功能,并查看架构图。然后,我们列出了系统中的资产,并讨论了锻炼的内容和脱离范围。接下来,我们花了一些时间发现潜在的漏洞,并讨论如何优先考虑它们。最后,我们讨论当我们发现的漏洞应根据严重程度和优先级进行修复。

我们已经学到了很多东西,同时推出我们的自助威胁建模程序。如果您正在考虑做类似的东西,这是一些建议。

我们的初步学习之一是在培训内容中快速迅速迭代。有两支球队愿意坐在第一个训练迭代中。

在初始会议之后,我立即举行焦点小组以获得与会者的反馈,更好地了解如何改进培训。它立即影响 - 我们调整了我们会议的长度,并改变了我们介绍的概念和何时。随着第一支球队的反馈,我们修改了我们的方法,并为第二队进行了培训。随着这两个初始团队的反馈和建议,我们巩固了培训内容和方法。然后我们准备好在本组织的其余部分滚动。

我最初犹豫不决,但我的开发人员对我留下了深刻的印象。他们快速学习并感兴趣并从事培训。当您为他们创造一个安全的空间来学习和犯错时,您将获得更快的自助目标。相信他们可以弄清楚如何发现漏洞,并教导团队如何找到它们。

当我推出威胁建模培训时,我注意到课堂上的人真的很喜欢训练。这导致更多人向我达成了他们在系统内漏洞的疑虑,让我提供主动建议和支持。在过去,开发人员有时候只联系了我,但现在他们更频繁地伸出了,更大的数字。

培训中的简单性使每个人都能获得“安全”的可怕话题,这使得它们不那么害怕向我们询问与我们有关的问题。许多人甚至询问了更多的安全学习资源,以及如何加入应用程序安全相关聚会。

通过该项目,我们在分部确定并创建了安全冠军。有有兴趣学习,安全性的人,以及往往对我们的安全知识留下深刻印象。我们只能看到这个计划的好处。

每个公司都是独一无二的!我建议您在某处开始,并调整培训以适应您的文化。

我们在细分中不希望你从头开始!如今,我们是开放的Seging威胁建模培训内容,让您调整和修改。您可以在下面找到链接。

我们希望您可以使用这些培训模块,提供有关如何更好地使其更好的反馈,并分享您与社区的找到。

我们在分段中有一个强烈的社区感,除了分享我们的培训幻灯片和本博客文章外,我们还提供了一个电子邮件地址,以便您提交您的问题和关于该计划的思考。我总是对听力反馈,好的还是坏!

我还将在即将举行的欧诺瓦斯温哥华聚会下谈论整个程序。随意将自己添加到OWASP温哥华Meetup Group。

所以,我们正在前往乌托邦的路上,事情看起来不亮。是时候休息在我们的桂冠上,对吧?错误的。我们不断考虑我们如何改善我们的威胁建模培训,并建立可持续系统。我们已经培训了所有目前的开发人员,但将来的新分会人员呢?我们正在考虑如何最好地将此培训纳入新员工的船上。

我们也在考虑如何保持这种知识。也许你几个月前训练,但自以来不得不使用它,现在你有这个巨大的项目 - yipee!威胁建模的复习课程救援!最后,对于真正享受培训并想要了解更多的人,或者真正想要深入了解大型和复杂系统的先进策略,我们正在致力于威胁建模“201”课程。

安全团队正在增长,我们正在寻找具有新的安全问题的候选人。如果您发现此博客有趣,您可能需要查看我们的职业页面。

在我们的新报告中,我们调查了4,000多个客户数据决策者,以衡量客户数据行业的当前和未来预测。