OWASP/cornucopia
GitHub: OWASP/cornucopia
一个通过卡牌游戏机制帮助软件开发团队在设计和开发阶段识别安全需求的 OWASP 项目。
Stars: 116 | Forks: 80

[](https://owasp.org/other_projects/)
[](https://bestpractices.coreinfrastructure.org/projects/7125)
[](https://qlty.sh/gh/OWASP/projects/cornucopia)
[](https://qlty.sh/gh/OWASP/projects/cornucopia)
# OWASP Cornucopia 项目
OWASP Cornucopia 是一种以卡牌游戏形式存在的机制,旨在协助软件开发团队在 Agile(敏捷)、传统和正式的开发流程中识别安全需求。
它与语言、平台和技术无关。访问:https://cornucopia.owasp.org/
## Web App Edition 牌组的交叉引用涉及以下版本的 OWASP 和外部资源:
* [OWASP 开发指南 Web 应用程序清单](https://devguide.owasp.org/en/04-design/02-web-app-checklist/)
* OWASP ASVS OWASP_Application_Security_Verification_Standard v4 (2019)
* OWASP AppSensor AppSensor_DetectionPoints
* CAPEC™ Mitre Common Attack Pattern Enumeration and Classification v3.9
* SAFECode SAFECode Practical Security Stories and Security Tasks for Agile Development Environments July 2012
* MASTG OWASP Mobile Application Security Testing Guide 1.7
* MASVS OWASP Mobile Application Security Verification Standard 2.1
## 参与开发
### 大型二进制文件
请安装 git-lfs 以确保您能下载输出文件。
从 https://git-lfs.com/ 安装
然后从 git lfs 拉取二进制文件。
```
git lfs pull
```
### 使用脚本开发和构建 Cornucopia
#### 构建 Cornucopia 卡组的脚本
请阅读 [README.md](./scripts/README.md)
#### 其他实用脚本
请阅读 [README.md](./scripts/README.md)
### 安全扫描
首次设置:
```
pip install pre-commit
pre-commit install
```
Bandit pre-commit hook 会在提交时扫描 Python 脚本中的安全问题。
它通过 pre-commit 自动运行(中等严重性,高置信度)。
手动运行:
```
pre-commit run bandit --all-files
```
### 构建和部署 Cornucopia 网站
https://cornucopia.owasp.org 包含了 cornucopia 花色中每张卡牌的卡牌浏览器,以及每种花色中每张卡牌的分类法和深入解释。
请阅读 [README.md](cornucopia.owasp.org/README.md)
### 构建和部署 Cornucopia 游戏引擎:Copi
Copi (https://copi.owasp.org) 是一个在线游戏引擎,您可以在其中玩 Cornucopia 和 Elevation of Privilege。您可以玩 Cornucopia 的所有版本(网站和移动版)以及 Elevation of Privileges 游戏。
请阅读 [README.md](copi.owasp.org/README.md)
## 打印
最新的可打印文件发布在 [pre-release](https://github.com/OWASP/cornucopia/releases/tag/pre-release) 下。请从那里下载最终的可打印文件。
docx/pdf 文件可以由任何桌面打印机轻松打印,但为了获得最佳质量,请使用 idml InDesign 文件。将文件发送给印刷机构时,您可能需要提供用于创建作品的字体。
如果印刷机构手头没有字体,您可以在此仓库的 `resources/templates/Fonts` 下找到可安装的字体。它们既是开源的,也可免费用于商业用途。
这些字体也可以从网上下载。
Fivo Sans: https://www.fontsc.com/font/fivo-sans
Atkinson Hyperlegible: https://brailleinstitute.org/freefont
使用了以下字体:
- Leaflet: Noto Sans (Light/Regular/Italic/Medium (Italic)/SemiBoldItalic/Extra Bold)
- Leaflet: Noto Sans (Thin/Light (Italic)/Italic/Medium//Extra Bold)
- case
- Noto Sans Condensed Bold
- Noto Sans Condensed Extra Bold
- Noto Sans Condensed Medium
- Noto Sans ExtraCondensed Extra Bold
- Noto Sans ExtraCondensed Extra Medium
- Logos:
- Noto Sans Condensed Bold
- Noto Sans Condensed Extra Bold
- Noto Sans Extra Condensed Extra Bold
### 尺寸
#### 卡组:
"bridge" 文件是 (2.25 x 3.5" 或 57mm x 88.8mm) 标准扑克牌。
"tarot" 文件是 (2.75 x 4.75" 或 71mm x 121 mm) 标准扑克牌。
#### 盒子:
"bridge" 尺寸为 60 x 89.25 mm x 27.15 mm
"tarot" 尺寸为 122.2 x 73.1 x 29.1 mm
"tarrot" 盒子具有 Agile Stationary 用于打印其 Cyber Security Cornucopia Edition 的标准尺寸。
"bridge" 盒子如果使用可能需要重新调整。
#### 传单:
"bridge" 文件为 55mm x 87mm
"tarot" 文件为 (2.75 x 4.75")
根据您打印的语言,"bridge" 和 "tarot" 版本是 16-20 页的展开页。
请注意,indesign 传单的目录在打印前必须针对所有语言版本进行调整,英文版本除外!!
这是因为 indesign 不支持自动调整 TOC(目录)。
您可能需要调整字体大小以适应 16 页或 20 页的传单展开。
**不要打印 18 页的传单!** 效果不好看。
### 出血:
所有 4 边的标准出血设置为 3mm。
### 纸张
bridge 卡牌和 tarot 卡牌均使用 300gsm。
对于盒子,我们建议使用防刮伤覆膜的折叠盒纸板,传单使用 100gsm 无涂层纸。传单也可以覆膜,但这可能会使它们具有弹性。
## 发布流程
此仓库遵循 [semver](https://semver.org/) 方式。发布一个新
版本意味着在 `master` 分支中标记提交。请勿使用相同的标签
两次。
为了避免常见错误,有一个脚本将引导您完成流程
并从您的机器推送正确的标签。
发布新的补丁版本:
```
make release
```
```
make release-patch
```
发布新的次要版本:
```
make release-minor
```
发布新的主要版本:
```
make release-major
```
## 许可证
### 一般许可条款
© 2025 OWASP Foundation
除非另有说明,本仓库中的内容根据 [CC-BY-SA-4.0](./LICENSE.md) 授权
OWASP Cornucopia 转换器和网站就是此类示例。
如果您想在自己的项目中使用任何作品,请链接回我们的[网站](https://cornucopia.owasp.org/about)
并致谢 OWASP Cornucopia。
为项目部分做出贡献的个人将通过 OWASP Cornucopia 项目获得署名。
只要您使用的是我们的最新作品,您可以参考 [CC-BY-SA-4.0](./LICENSE.md) 许可证获取指导。
### 权限提升 (EoP)
© 2010 Microsoft Corporation。Elevation of Privilege (EoP) 的文本根据 [CC-BY-SA-3.0](./LICENSE-CC-BY-SA-3.0.md) 授权
EoP 由附属教授 Adam Shostack 创建(参见:[adamshostack/eop](https://github.com/adamshostack/eop))
### MLSec 提升 (MLSec)
© 2024 Kantega AS。Elevation of MLSec (MLSec) 的文本根据 [CC-BY-SA-4.0](./LICENSE.md) 授权。
Elevation of MLSec 由 Elias Brattli Sørensen(设计:Jorun Kristin Bremseth)在 Kantega AS 工作期间创建(参见:[kantega/elevation-of-mlsec](https://github.com/kantega/elevation-of-mlsec))。
### OWASP Cumulus
© 2025 OWASP Foundation。OWASP Cumulus 的文本根据 [CC-BY-SA-4.0](./LICENSE.md) 授权。
OWASP Cumulus 由 Christoph Niehoff 创建。更多信息可在其网站上找到(参见:[owasp.org/www-project-cumulus](https://owasp.org/www-project-cumulus/))。
### OWASP Cornucopia Mobile App Edition(版本低于 2.0)
OWASP Cornucopia Mobile App Edition 的文本和代码映射根据 [CC-BY-SA-3.0](./LICENSE-CC-BY-SA-3.0.md) 授权
### OWASP Cornucopia Website App Edition(版本低于 3.0)
OWASP Cornucopia Website App Edition 的文本和代码映射根据 [CC-BY-SA-3.0](./LICENSE-CC-BY-SA-3.0.md) 授权
### Copi - The Cornucopia Game Engine
Copi - The Cornucopia Game Engine 根据 [GNU AFFERO GENERAL PUBLIC LICENSE](copi.owasp.org/LICENSE) 授权
### 字体许可
关于字体许可,请阅读字体 [README.md](./resources/templates/Fonts/README.md)
### version-up.sh
版权所有 (C) 2017, Oleksandr Kucherenko,根据 [MIT](https://opensource.org/license/mit) 授权
### Cloudflare Worker Content Security Policy Nonce Generator (nonce-worker.js)
MIT 许可证 版权所有 (c) 2020 Move Your Digital, Inc.
请阅读 [README.md](./cornucopia.owasp.org/script/README.md)
### Common Attack Pattern Enumeration and Classification (CAPEC™)
使用 Common Attack Pattern Enumeration and Classification (CAPEC) 及来自 capec.mitre.org 的相关引用受 [使用条款](CAPEC.md) 约束。版权所有 © 2007–2025, The MITRE Corporation。CAPEC 和 CAPEC 徽标是 The MITRE Corporation 的商标。
## 我们的威胁模型
您可以使用 [OWASP Threat Dragon](https://www.threatdragon.com/#/dashboard) 并在 [ThreatDragonModels](ThreatDragonModels) 打开 copi.json 或 cornucopia.json 来审查 Cornucopia 和 Copi 的威胁模型。
注意:如果您正在考虑使用 Copi,建议先查看 [Copi 的已知威胁](copi.owasp.org/README.md#our-threat-model),以确保您做好了相应的准备并将我们的已知威胁纳入考虑。
标签:ASVS, CAPEC, DNS解析, Git LFS, IPv6支持, Web安全, 卡牌游戏, 威胁建模, 安全意识, 安全教育, 安全测试, 安全游戏, 开源项目, 攻击性安全, 敏捷开发, 目录枚举, 移动安全, 程序员工具, 蓝队分析, 软件开发, 逆向工具, 防御加固, 需求工程