mitre-attack/attack-workbench-taxii-server

GitHub: mitre-attack/attack-workbench-taxii-server

为 ATT&CK Workbench 提供 TAXII 2.1 标准化接口的 Node.js 服务器,实现威胁情报的标准化共享与订阅。

Stars: 45 | Forks: 16

# ATT&CK Workbench TAXII 服务器 ATT&CK Workbench TAXII 服务器是一个 Node.js 服务器,旨在通过符合 [TAXII 2.1](https://docs.oasis-open.org/cti/taxii/v2.1/csprd02/taxii-v2.1-csprd02.html) 标准的 REST API 提供 STIX 2.1 内容。它作为整体 [ATT&CK Workbench 项目](https://medium.com/mitre-engenuity/att-ck-workbench-a-tool-for-extending-att-ck-e1718cbfe0ef) 的一部分运行。 ATT&CK Workbench 是一个允许用户**探索**、**创建**、**标注**和**共享** MITRE ATT&CK® 知识库扩展的应用程序。 以下资源提供了关于 TAXII 协议和用例的支持文档: - [TAXII 简介](https://oasis-open.github.io/cti-documentation/taxii/intro.html) - [TAXII 2.1 规范](https://docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html) - [OASIS Open TAXII 资源](https://oasis-open.github.io/cti-documentation/resources.html#taxii-21-specification) ATT&CK Workbench 应用程序需要额外的组件才能完全运行。[ATT&CK Workbench Frontend](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend) 仓库包含该项目范围和功能的完整文档。有关设置整个项目的更多详细信息,请参阅 [安装和运行](#install-and-run) 说明。 ## API Roots 此应用程序通过 TAXII 2.1 [Collections](https://docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html#_Toc31107500) 公开本地 ATT&CK Workbench 知识库的内容。目前,使用一个 [API Root](https://docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html#_Toc31107498) 来对可用的 STIX 集合及其相关端点进行逻辑分组。用户可以通过服务器的 [发现端点](https://docs.oasis-open.org/cti/taxii/v2.1/os/taxii-v2.1-os.html#_q0a03pfr5x7n) (`/taxii2/`) 查看可用的 API roots。 ### Workbench Collections collections API root(`{api-root}/collections/`)允许访问按 [Workbench collection](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/blob/master/docs/collections.md) 隔离的 Workbench 数据。知识库中每个集合的每个版本,包括本地创建和导入的集合,都通过此 API Root 提供访问。此外,每个集合的最新版本通过静态 ID 别名提供,这样当创建/导入新版本时,相应的 TAXII 端点不会改变。下图展示了此功能: ``` TAXII Collection ID Workbench Collection ──────────────────────────────────── ─────────────────────────────────── 4c936680-22bc-4e68-8037-ca7670493eef ◄───────┐ Enterprise ATT&CK (current version) │ bacf402e-b767-45bc-ae06-f0620d38ff15 ◄───────┴──── Enterprise ATT&CK v9 cda0f120-c30c-4499-a7f2-3bf859c876c3 ◄──────────── Enterprise ATT&CK v8 9cdda5dd-a8b7-41df-97e5-4fc01608dd26 ◄──────────── Enterprise ATT&CK v7 c7beaddb-f5a0-4602-bbb5-3383c1448de9 ◄───────┐ Mobile ATT&CK (current version) │ fde5d877-6f13-4694-b5c6-85d3f689f068 ◄───────┴──── Mobile ATT&CK v9 44f5bd59-ad8a-4103-8315-9cbb759c7a96 ◄──────────── Mobile ATT&CK v8 596f2f85-790e-4c37-97b7-cf68caa91f43 ◄──────────── Mobile ATT&CK v7 ``` ## TAXII 服务器文档 该应用程序使用 Swagger UI 模块动态记录可用的 REST API 端点。Swagger 报告可以通过以下路径访问:`/api-docs`。 [docs](/docs/README.md) 文件夹包含有关使用 TAXII 服务器的附加文档: - [SETUP](/docs/SETUP.md):包含设置 TAXII 服务器的高级详细信息和说明。 - [USAGE](/docs/USAGE.md):关于如何查询/使用 TAXII 2.1 REST API 的用户指南。 - [CONTRIBUTING](/docs/CONTRIBUTING.md):关于如何为该项目做出贡献的信息。 ## 安装和运行 默认情况下,使用 ATT&CK Workbench 不需要 TAXII 服务器,但使用 TAXII 服务器需要 ATT&CK Workbench。ATT&CK Workbench 由以下软件组件组成: - [ATT&CK Workbench Frontend](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend):ATT&CK Workbench 工具的前端用户界面,也是访问知识库的主要界面。 - [ATT&CK Workbench REST API](https://github.com/center-for-threat-informed-defense/attack-workbench-rest-api):用于存储、查询和编辑 ATT&CK 对象的 REST API 服务。 上述每个仓库都包含各自的部署说明。但是,部署整个 ATT&CK Workbench 的最简单方法是使用部署仓库中包含的 [Docker Compose](https://github.com/mitre-attack/attack-workbench-deployment)。 ### Docker #### 容器镜像仓库 ATT&CK Workbench TAXII 服务器作为 Docker 镜像打包在 GitHub Container registry 中: ``` docker pull ghcr.io/mitre-attack/attack-workbench-taxii-server:latest ``` #### 从源码构建 如果您希望从源码构建 Docker 镜像,提供了一个 [shell 脚本](./run.sh) 来简化该过程。它处理以下事项: - 从指定的 dotenv 文件加载环境变量 - 从源码构建 Docker 镜像 - 创建并启动容器实例 该脚本需要两个环境变量: - `TAXII_ENV`:用于确定 dotenv 配置文件的名称 - `TAXII_APP_PORT`:在 `docker run` 命令中用于公开所需的端口 ``` export TAXII_ENV=prod | dev | local export TAXII_APP_PORT=8000 ./run.sh ``` ### 手动安装 #### 要求 - [Node.js](https://nodejs.org) 版本 `14.20.0` 或更高 - [Node.js](https://nodejs.org) 版本必须支持 `AsyncLocalStorage` #### 安装 ##### 步骤 1. 克隆 git 仓库 ``` git clone git@github.com:mitre-attack/attack-workbench-taxii-server.git cd attack-workbench-taxii-server ``` ##### 步骤 2. 安装依赖项 ATT&CK Workbench TAXII 服务器安装项目内的所有依赖项。它不依赖于任何模块的全局安装。 ``` npm install ``` ##### 步骤 3. 配置系统 该应用程序使用从 dotenv 文件加载的环境变量进行配置。为方便起见,提供了一个模板。有关支持的环境变量和使用说明的列表,请参阅 [SETUP](./docs/SETUP.md#environment-variables) 文档。 将 dotenv 文件存储在根目录 `config/` 目录中,并确保 `TAXII_ENV` 环境变量与 dotenv 文件名一致。`TAXII_ENV` 决定服务器加载的环境变量名称。例如: - 如果 `TAXII_ENV` 等于 `dev`,则服务器尝试加载 `config/dev.env`。 - 如果 `TAXII_ENV` 等于 `prod`,则服务器尝试加载 `config/prod.env`。 示例: ``` export TAXII_ENV=dev cp config/template.env config/${TAXII_ENV}.env # 修改 dev.env 文件 # 完成! ``` ##### 步骤 4. 运行应用程序 运行启用 Swagger 的生产模式服务器: ``` npm run build npm run start ``` 运行启用热重载的服务器(以便在您更改文件时服务器自动重新加载): ``` npm run start:dev ``` ## 声明 版权所有 2025 The MITRE Corporation 经批准公开发布;分发无限。案例编号 21-2703。 根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下地址获取许可证副本 除非适用法律要求或书面同意,否则根据许可证分发的软件是按“原样”分发的,没有任何形式的明示或暗示的担保或条件。请参阅许可证以了解管理许可权限和限制的具体语言。 本项目使用了 ATT&CK® [ATT&CK 使用条款](https://attack.mitre.org/resources/terms-of-use/)
标签:ATT&CK Workbench, Cloudflare, GNU通用公共许可证, MITM代理, MITRE ATT&CK, Node.js, OASIS 标准, REST API, STIX 2.1, TAXII 2.1, 威胁建模, 威胁情报, 开发者工具, 情报共享, 攻击模型, 数据标注, 知识库管理, 网络安全, 自动化攻击, 自动化攻击, 请求拦截, 隐私保护