为了账号安全,请及时绑定邮箱和手机立即绑定

帕兰提尔公司如何在产品开发中融入威胁建模(软件供应链系列第二篇)

编者注:这是关于增强Palantir软件供应链安全的系列文章的第二篇。本文将介绍我们在Palantir提升软件供应链安全的过程中,在产品开发中加入威胁建模的考虑的背景介绍。本文分享见解和经验,提供Palantir如何在产品开发中集成威胁建模的背景信息。

引言:简介

Palantir 一贯将安全性作为我们产品的首要考虑,并且它也是我们关键的差异化因素之一。在评估我们当前的产品安全审查流程之后,我们发现了几个改进的领域,并开始设计一个新流程,以便更好地捕捉风险,并为我们在设计阶段构建的所有产品提供安全建议。我们的目标是确保安全建议在软件工程过程的早期阶段就被纳入,从而使我们的产品从设计之初就具备安全性。

我们选择实施正式的威胁建模练习,这是一个识别系统的攻击面并开发可能缓解措施的过程。通过在开发周期早期进行安全设计,我们能够在这些漏洞和风险被引入之前更早地发现它们。这还使我们能够识别常见风险模式,并能够大规模开发缓解措施,从而消除一类漏洞。此外,由于我们将威胁建模作为应用程序安全与产品开发团队之间的协作过程,我们能够提供安全方面的教育,并建立安全和产品团队之间强有力的合作关系。这也有助于强化这样一个理念:安全是大家共同的责任。

流程

在 Palantir 部署任何新产品或服务之前,必须先进行初步的应用安全(AppSec)审核。我们通过部署平台 Apollo 中的一个强制关口来执行这一政策。当 Apollo 中的用户尝试将服务添加到生产系统时,我们的策略引擎会检查以确定该服务已通过 AppSec 审查并获得 GA 批准。策略引擎在执行检查时还有更多配置选项和细节,但这将留待另文讨论。

存在产品团队初步建立的威胁模型

首先,产品开发团队将提交一个AppSec申请单,请求对新产品进行审查。申请单会自动将他们指引到有关如何进行审查的文档,并概述审查流程的后续步骤。在审查开始之前,产品团队需要提供一些基本信息。一份简短的问卷确保团队已完成了必要的基本安全工作,并促使他们深入思考他们的服务是如何实现安全基础功能的。虽然问卷通常不会产生直接的行动建议,但它有助于确保开发人员了解我们所需的安全基础措施。对于新开发人员来说,问卷可作为教育对话的启动器,解释我们内部框架的安全控制以及开发人员需要负责的部分。

然后我们要求团队绘制一个初步威胁模型图。该模型应涵盖整个功能集以及它与产品和服务更广泛架构的交互。让产品团队负责绘制这个初步图有助于他们反思自身安全问题,并优化与应用安全团队合作的时间。产品团队最适合解释服务的工作方式,它未来可能的工作方式,以及它与哪些组件交互。

应用安全团队分享威胁建模指南及示例,供产品开发团队在创建初始威胁模型时参考。我们使用OWASP提供的开源工具Threat Dragon来标准化图表组件,以便清晰地传达关键安全组件(例如,信任边界、端点、认证和授权的实施、数据存储位置、令牌的使用以及对其他服务的依赖)。这种标准化有助于各个团队之间的输出一致性,便于安全工程师和开发人员理解。

威胁模型图在发生事件、合规审查或其他事后调查时提供更多价值。它作为安全工程师的参考,帮助他们快速回顾并改进或验证他们对产品的理解。

和AppSec聊聊

威胁模型和问卷完成后,AppSec 会与产品团队安排一次会议,审查威胁模型图,,了解其整体架构情况,讨论攻击面情况,并制定可能的缓解措施。

AppSec 使用 STRIDE 模型 来组织关于攻击面的讨论,重点关注冒充、篡改、抵赖、信息泄漏、拒绝服务和权限升级。AppSec 记录任何潜在漏洞以及产品团队可实施的可能缓解方案。

在会议结束时,AppSec 和产品团队会列出需要执行的任何行动,并达成一致的时间安排。AppSec 工程师会整理会议要点,并通过邮件发送给所有参会者以及整个 AppSec 团队。

审查会议的前提

要安排一次评审会议,必须先满足几个前提条件:

  • 产品团队必须完成一份初始的 AppSec 调查问卷。
  • 产品团队必须提供一份类似于在产品开发过程中通常提供的概述文档。
  • 产品团队必须使用提供的 Palantir AppSec 文档和工具完成威胁图。
  • 产品团队必须在 AppSec 威胁模型的 Git 仓库中发起一个拉取请求,并在拉取请求中包含以下内容:威胁图、工程审查的链接以及完成的问卷。

满足这些要求后,就可以安排评审会议,会议可以邀请一名AppSec工程师和一名产品安全专家,以及来自该产品开发团队的代表。

审查会议与利益相关者

审查会议包括以下相关人员:

  • AppSec 工程师: 负责主导会议,并最终确认产品风险、修复及一般可用性状态。
  • 产品安全专家: 提供服务如何融入平台整体架构的背景信息,并帮助确定平台安全基础组件是否被正确使用。
  • 产品团队: 开发和维护产品 — 对产品功能、变更请求所需的工作量、业务时间线和部署权衡最为了解。
最终敲定威胁模型和缓解策略

审查会议结束后,AppSec 跟踪行动项并确认它们已解决。无论是产品或新功能部署前需要的行动项,还是可能需要数月时间才能完成的长期任务,确认其完成情况都是 AppSec 的责任。AppSec 将威胁模型和会议摘要存放在威胁模型 Git 仓库中,以便将来查阅和修改。

审查频率设置

所有新产品的开发都必须进行威胁建模练习,这是AppSec产品审查的一部分,所有产品在投入生产环境之前都必须完成这项审查。AppSec还有一份需要持续审查的关键安全产品清单。这些产品的审查频率根据其复杂性、风险和变化率而定。至少每两年审查一次,通常会更频繁。渗透测试、安全扫描和其他形式的安全风险评估是独立于威胁建模练习进行的,且这些活动更加频繁。

此外,产品团队会根据需要与AppSec团队合作,在进行新安全功能威胁评估时。大多数时候,这些审查是由变更的工程审查引发的,或者产品团队希望确认新功能集的风险是否已经适当减轻。

最后

Palantir继续在我们的软件开发生命周期(SDLC)安全保障方面投入大量资源。威胁建模是我们更广泛的防御工具箱中的一个。通过实施结构化和协作的威胁建模流程,我们能够确保安全从一开始就融入我们的产品中。这种主动的方法使我们能够尽早发现和解决潜在的漏洞,教育我们的团队,并培养一种安全人人有责的文化。您可以在我们的SDLC白皮书中了解更多我们采取的其他控制措施。

通过不断优化流程并采纳用户反馈,我们旨在领先于新兴威胁,并保持我们产品和服务的最高级别的安全标准。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消