mitre-attack/attack-workbench-deployment

GitHub: mitre-attack/attack-workbench-deployment

ATT&CK Workbench 的官方部署仓库,提供 Docker Compose 和 Kubernetes 两种方式部署这套用于编辑和管理 STIX 格式威胁情报数据的 Web 应用。

Stars: 13 | Forks: 9

# ATT&CK Workbench 部署 本仓库包含 ATT&CK Workbench 的部署文件,这是一个用于编辑以 STIX 格式表示的 ATT&CK 数据的 Web 应用程序。它由前端 SPA、后端 REST API 和数据库组成。您可以选择部署一个“sidecar 服务”,通过 TAXII 2.1 API 提供您的 Workbench 数据。 ## 部署选项 ### Docker Compose 可以使用 Docker Compose 以两种不同的配置部署 ATT&CK Workbench: #### 1. 使用预构建镜像(推荐) 使用 `compose.yaml` 直接从 GitHub Container Registry (GHCR) 拉取预构建镜像: ``` # 使用预构建镜像部署 docker compose up -d # 使用 TAXII server 部署 docker compose --profile with-taxii up -d # 停止部署 docker compose down ``` #### 2. 从源码构建 结合使用 `compose.dev.yaml` 和 `compose.yaml` 从源代码构建镜像: ``` # 从源码构建并部署 docker compose -f compose.yaml -f compose.dev.yaml up -d --build # 构建并部署 TAXII server docker compose -f compose.yaml -f compose.dev.yaml --profile with-taxii up -d --build # 停止部署 docker compose -f compose.yaml -f compose.dev.yaml down ``` **注意**:从源码构建时,您需要确保以下三个源仓库与本部署仓库位于同一父目录下: - [attack-workbench-frontend](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/) - [attack-workbench-rest-api](https://github.com/center-for-threat-informed-defense/attack-workbench-rest-api/) - [attack-workbench-taxii-server](https://mitre-attack/attack-workbench-taxii-server/) 目录结构应如下所示: ``` . ├── attack-workbench-deployment ├── attack-workbench-frontend ├── attack-workbench-rest-api └── attack-workbench-taxii-server (optional) ``` ### Kubernetes 对于生产环境部署,`k8s/` 目录中提供了带有 Kustomize 的 Kubernetes manifests。 有关详细说明,请参阅 [k8s/README.md](k8s/README.md)。 ## 配置 ### 环境变量 我们大量使用字符串插值来最大限度地减少修改 Docker Compose manifest 文件(例如 [compose.yaml](./compose.yaml))的需要。因此,这意味着在使用这些模板时必须设置一系列环境变量。幸运的是,我们提供了一个您可以引用的 dotenv 模板。 将 `template.env` 复制到 `.env` 并根据需要自定义值: ``` cp template.env .env ``` 可用的环境变量: | Variable | Default Value | Description | |----------|---------------|-------------| | **Docker Image Tags** | | | | `ATTACKWB_FRONTEND_VERSION` | `latest` | Frontend Docker image tag | | `ATTACKWB_RESTAPI_VERSION` | `latest` | REST API Docker image tag | | `ATTACKWB_TAXII_VERSION` | `latest` | TAXII server Docker image tag | | **HTTP Listener Ports** | | | | `ATTACKWB_FRONTEND_HTTP_PORT` | `80` | Frontend HTTP port | | `ATTACKWB_FRONTEND_HTTPS_PORT` | `443` | Frontend HTTPS port | | `ATTACKWB_RESTAPI_HTTP_PORT` | `3000` | REST API port | | `ATTACKWB_DB_PORT` | `27017` | MongoDB port | | `ATTACKWB_TAXII_HTTP_PORT` | `5002` | TAXII server port | | **SSL/TLS Configuration** | | | | `ATTACKWB_FRONTEND_CERTS_PATH` | `./certs` | Path to SSL certificates | | **TAXII Configuration** | | | | `ATTACKWB_TAXII_ENV` | `dev` | Specifies the name of the dotenv file to load (e.g., A value of `dev` tells the TAXII server to load `dev.env`) | ### 特定服务配置 每个服务都有自己的配置目录: #### Frontend **默认配置文件**:`configs/frontend/` Frontend 容器是一个 Nginx 实例,用于提供前端 SPA 服务并将请求反向代理到后端 REST API。 我们在上述目录中提供了一个基本的 `nginx.conf` 模板,可以帮助您入门。 有关自定义 SPA 的更多详细信息,请参阅 [frontend documentation](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend)。 #### REST API **默认配置文件**:`configs/rest-api/` 后端 REST API 从环境变量以及 JSON 配置文件中加载运行时配置。 上述目录中提供了模板。 有关自定义后端的更多详细信息,请参阅 [REST API usage documentation](https://github.com/center-for-threat-informed-defense/attack-workbench-rest-api/blob/main/USAGE.md#configuration)。 #### TAXII Server **默认配置文件**:`configs/taxii/config/` TAXII server 从 dotenv 文件加载所有运行时配置参数。 dotenv 文件的具体文件名由 `ATTACKWB_TAXII_ENV` 环境变量指定。 例如,值为 `dev` 会指示 TAXII server 加载 `dev.env`。 ## 快速开始 1. 克隆本仓库: git clone https://github.com/center-for-threat-informed-defense/attack-workbench-deployment.git cd attack-workbench-deployment 2. 配置环境变量(可选): cp template.env .env # 使用您的首选设置编辑 .env 3. 配置 REST API 环境变量(必选): cp configs/rest-api/template.env configs/rest-api/.env Generate a secure random secret node -e "console.log(require('crypto').randomBytes(48).toString('base64'))" Set the above secret in `configs/rest-api/.env` SESSION_SECRET= 4. 使用预构建镜像部署: docker compose up -d 5. 通过 `http://localhost`(或您配置的端口)访问应用程序 6. 如需包含 TAXII server: docker compose --profile with-taxii up -d ## 数据持久化 MongoDB 数据持久化存储在名为 `workspace-data` 的 Docker 卷中。因此,可以删除并重新部署 `database` 服务而不会丢失对数据库的访问。部署时,数据库卷将重新挂载到 `database` 服务。 ## 故障排除 ### 检查服务状态 ``` # 查看运行中的容器 docker compose ps # 显示所有运行中容器的日志 docker compose logs # 跟踪日志 docker compose logs -f # 显示特定容器的日志 docker compose logs frontend docker compose logs rest-api docker compose logs database docker compose logs taxii ``` ## 贡献 有关贡献指南,请参阅 [contribution guide](./docs/CONTRIBUTING.md);有关我们发布过程的信息,请参阅 [developer guide](./docs/DEVELOPMENT.md)。 ## 许可证 本项目根据 Apache License 2.0 授权。有关详细信息,请参阅 [LICENSE](./LICENSE) 文件。 ## 支持 如有问题和疑问: - 查看 [deployment repository issues](https://github.com/center-for-threat-informed-defense/attack-workbench-deployment/issues) - 参考主要的 [ATT&CK Workbench documentation](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend)
标签:Cloudflare, CTID, DNS解析, Docker, Docker Compose, FTP漏洞扫描, Kustomize, MITRE ATT&CK, REST API, Shodan, STIX, TAXII, 中心威胁防御, 前端, 后端, 威胁 Hunting, 威胁情报, 子域名突变, 安全建模, 安全编排, 安全防御评估, 开发者工具, 开源项目, 数据库, 版权保护, 网络安全, 网络测绘, 请求拦截, 部署工具, 隐私保护