Cumulus 是将安全引入云端和 devOps 团队的简单途径。
作为纸牌游戏 Elevation of Privilege 的一个变体,它遵循通过游戏化对系统进行威胁建模的理念。这种轻量级、低门槛的方法有助于你发现 devOps 或云项目中的威胁,并培养开发人员面向安全的思维方式。
点击此处查找最新版本。
通过严肃游戏进行威胁建模的想法可以追溯到 Adam Shostack 设计的纸牌游戏 Elevation of Privilege。其基本理念是让开发人员坐到同一张桌前,开始讨论他们系统的安全性。为此,一款纸牌游戏充当了贯穿威胁目录的指南。它被设计为低门槛,并且可以自然地嵌入敏捷开发流程中。
原始游戏从总体上探讨安全性,而另一个变体,由 OWASP 基金会开发的 Cornucopia,则专门针对(Web)应用程序安全,但我们感觉,在云环境中工作的 devOps 团队的具体需求一直被忽视。Cumulus 旨在填补这一空白,并提供一副针对云系统威胁的定制卡牌。
威胁被划分为以下几类(同时也是本游戏中的花色):
本游戏明确不试图取代 Elevation of Privilege 或 Cornucopia。它更应该被视为威胁建模卡牌三件套的一部分,反映现代软件开发项目的不同方面。
Cumulus 是一种吃墩纸牌游戏,与 spades 类似。
游戏目标是尽可能多地收集分数,无论是通过赢得一墩还是通过发现威胁。游戏结束时,得分最多的玩家获胜。
在游戏准备阶段,需要生成一份架构概览。理想情况下,这采取数据流图的形式,但最终,任何玩家都能理解的概览都可以。此外,玩家需要就起始花色达成一致,即一个威胁类别。
将卡牌分发给各位玩家后,游戏开始。第一位庄家是持有起始花色中点数最低牌张的玩家。庄家打出起始花色中的一张牌。每位其他玩家在该轮中必须跟出相同花色。如果无法做到,玩家可以选择手中的任意牌张。该轮的赢家赢得这一墩,并且是打出该轮花色中点数最高的牌张或最高王牌(trump)的玩家。
王牌是来自 访问与机密 花色的牌。
赢家随后获得一分,开始新一轮并选择新的花色。每当打出一张新牌时,所有玩家都会被要求思考当前牌上提到的特定威胁是否以某种形式适用于他们的系统。如果发现了一个威胁(并且团队同意这是一个值得关注的主题),就会将其记录下来,发现者会获得额外的一分。
通过严肃游戏进行威胁建模这一原创而精彩的想法,要追溯到当时在微软工作的 Adam Shostack。他发明了 Elevation of Privilege 这款游戏,它是 Cumulus 的蓝图。
另一款遵循 Elevation of Privilege 威胁建模方法的优秀游戏是由 OWASP 基金会 开发的 Cornucopia。
这两款纸牌游戏都是帮助开发团队提高其所构建系统安全性的绝佳工具。
然而,我们感到需要一款专门针对 devOps/云项目的威胁建模纸牌游戏。Cumulus 正是源于这一想法而生。
这款纸牌游戏有一个在线版本(Elevation of Privilege 和 Cornucopia 也有),适用于远程或地理上分散的团队。它可以轻松地自行托管。
你可以在以下地址找到它:
https://github.com/tng/elevation-of-privilege
或者,也可以在 copi.owasp.org 上玩 Cumulus,参见发布说明。感谢 Johan Sydseter。
非常欢迎为这副卡牌做出贡献。归根结底,这副卡牌旨在成为一个社区项目。
对威胁表述的修改欢迎以 pull request 的形式提交至 cards.tex。
这副卡牌遵循语义化版本控制。版本变更的含义:
这款纸牌游戏(包括威胁表述和已发布的 PDF 文件)根据 CC-BY-4.0 分发。在分发此游戏时,非常欢迎提及 TNG Technology Consulting。
所有工具文件(shell 脚本、用于排版的 LaTeX 代码)均根据 Apache-2.0 分发。