center-for-threat-informed-defense/attack-workbench-frontend
GitHub: center-for-threat-informed-defense/attack-workbench-frontend
ATT&CK Workbench 的 Angular 前端界面,让安全团队能够探索、扩展、标注和共享 MITRE ATT&CK 知识库。
Stars: 408 | Forks: 72
# ATT&CK Workbench 前端
ATT&CK Workbench 是一款允许用户**探索**、**创建**、**标注**和**共享** MITRE ATT&CK® 知识库扩展的应用程序。
ATT&CK 社区内的组织或个人可以初始化该应用程序的一个实例,作为其自定义 ATT&CK 知识库实例的核心,并根据需要连接其他工具和接口。通过 Workbench,这个本地知识库可以通过新的或更新的技术、战术、缓解措施组(mitigations groups)和软件进行扩展。最后,ATT&CK Workbench 提供了在需要时与更广泛的 ATT&CK 社区共享这些扩展的方法,从而促进了比现有工具更高水平的社区协作。
我们在开发 Workbench 时充分考虑了 ATT&CK 用户社区。如果 MITRE ATT&CK 是您组织安全运营的核心,您主动利用 ATT&CK 追踪威胁,根据 ATT&CK 调整防御措施,或基于 ATT&CK 规划安全投资,那么 Workbench 就是为您准备的。ATT&CK Workbench 在 ATT&CK 社区内实现了许多重要的用例:
- **网络威胁情报 (Cyber Threat Intelligence)**:对技术、组和其他对象做笔记,以便在威胁情报团队内部进行协作。一旦新的威胁报告发布,立即用新的映射更新您的知识库。
- **防御规划**:通过自动下载新版本的 ATT&CK,紧跟不断演变的威胁形势。通过创建新的组和软件来填补开源报告中的空白,并无缝将其整合到现有的 ATT&CK 知识库中。
- **红队演练**:像追踪 ATT&CK 覆盖范围一样,追踪和管理红队演练的覆盖情况。
- **与 ATT&CK 及社区协作**:与 ATT&CK 社区共享您的自定义数据集,并下载他人创建的数据集。
本仓库包含一个基于 Angular 的 Web 应用程序,为 ATT&CK Workbench 应用程序提供用户界面,以及有关其使用的主要文档。ATT&CK Workbench 应用程序需要额外的组件才能完全运行。有关设置整个项目的更多详细信息,请参阅 [安装与运行](#install-and-run) 说明。
ATT&CK Workbench 不会与 MITRE 或任何第三方收集或共享信息。
## Frontend 文档
有关 ATT&CK Workbench 的更多信息,请参阅 [docs](/docs/README.md) 文件夹。docs 文件夹的内容也可在应用程序内的帮助页面中找到。
- [usage](/docs/usage.md):关于如何使用 ATT&CK Workbench 应用程序及其全部功能的文档。
- [collections](/docs/collections.md):关于 collection 和 collection index 数据类型的文档。
- [integrations](/docs/integrations.md):将其他工具与 ATT&CK Workbench 集成的说明。
- [contributing](/docs/contributing.md):关于如何为此项目做出贡献的信息。
- [changelog-archive](/docs/changelog-archive.md):v3.1.0 之前此应用程序的更新记录。
## Collections 和 Collection Indexes
从 ATT&CK Workbench 导入和导出数据是通过 **Collections** 和 **Collection Indexes** 完成的。这些数据格式还可以记录 ATT&CK 版本和扩展。
- [Collections](/docs/collections.md#collections)
Collections 是相关 ATT&CK 对象的集合,可用于表示数据集的特定版本,例如“Enterprise ATT&CK v9.0”,或任何其他可能希望与他人共享的对象集合。Collections 以 STIX 2.1 表示。
所有当前和以前的 ATT&CK 版本的 Collections 都可以在我们的 [attack-stix-data GitHub repository](https://github.com/mitre-attack/attack-stix-data) 中找到。
- [Collection Indexes](/docs/collections.md#collection-indexes)
Collection indexes 是有组织的 collections 列表,旨在简化其向数据消费者的分发。Collection indexes 跟踪给定 collections 的各个版本(例如 Enterprise v7, Enterprise v8, Enterprise v9),并允许 Workbench 等应用程序检查是否发布了新版本。Collection Indexes 表示为 JSON 对象。
ATT&CK collection index 可以在我们的 [attack-stix-data GitHub repository](https://github.com/mitre-attack/attack-stix-data) 中找到。ATT&CK Workbench 预配置为在“添加 collection index”界面中推荐此索引。
有关 collections 和 collection indexes 的更多信息可以在 [collections 文档](docs/collections.md) 中找到。
## 安装与运行
ATT\&CK Workbench 应用程序由几个相互连接的服务组成。**为了使完整的应用程序正常运行,frontend、REST API 和 database 必须都在运行且能够相互通信。** [Docker 安装指南](https://github.com/mitre-attack/attack-workbench-deployment) 提供了安装所有组件的说明,是大多数部署的**推荐方法**。
### 核心组件
* **[ATT\&CK Workbench Frontend](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend)**
ATT\&CK Workbench 的基于 Web 的用户界面,也是用户与知识库交互的主要方式。
* **[ATT\&CK Workbench REST API](https://github.com/center-for-threat-informed-defense/attack-workbench-rest-api)**
提供一个 CRUD 接口,用于存储、查询和编辑 ATT\&CK 对象,以及管理 collections、collection indexes 和订阅。
* **[ATT\&CK Workbench Database](https://hub.docker.com/_/mongo)**
一个用于持久化 Workbench 实体的 MongoDB 实例。
* **[ATT\&CK Workbench TAXII 2.1 Server](https://github.com/mitre-attack/attack-workbench-taxii-server)** *(可选)*
一个 sidecar 服务,通过兼容 TAXII 2.1 的接口暴露 Workbench 的 STIX 对象。
每个组件也可以使用其各自仓库中的说明进行手动安装。如果您希望在单独的机器上部署组件或使用自定义配置,这非常有用。
### 使用 Docker 安装
请参阅官方 [部署指南](https://github.com/mitre-attack/attack-workbench-deployment),获取使用 Docker Compose 安装和运行 Workbench 的模板和分步说明。
### 手动安装
倾向于在本地(Docker 之外)运行 Workbench frontend 的开发人员可以按照以下步骤操作。
#### 要求
- [Node.js](https://nodejs.org/) 版本 `22.x`
#### 安装依赖项
仅当您使用 `ng serve` 或 `ng build` 在本地运行应用程序时,才需要执行此步骤。如果您使用的是上述 Docker 设置,则可以跳过此步骤。
1. 运行 `npm install` 以安装所需的包。
#### 本地运行
1. 运行 `ng serve`
2. 打开浏览器并导航到 `http://localhost:4200`
#### 构建以用于部署
1. 运行 `ng build`
2. 将 `dist/` 目录中的输出复制到您所需的部署位置。
要为生产环境构建应用程序,请使用:
```
ng build --prod
```
这将使用生产环境配置编译应用程序。
有关更多信息,请参阅 [修改环境配置](#modifying-the-environment)。
#### 修改环境配置
ATT&CK Workbench Frontend 配置为连接到在其默认配置下运行的 REST API。如果应用程序配置为在不同的端口上运行,或者应用程序将被托管以供多台机器访问,则必须编辑环境配置以反映 URL 和端口。
这些环境属性可以在 `src/environments` 下编辑:
- [src/environments/environment.ts](app/src/environments/environment.ts) 是开发环境,包含在本地机器上托管或正在积极开发时的配置。这是构建应用程序时使用的默认环境文件。
- [src/environments/environment.prod.ts](app/src/environments/environment.prod.ts) 是生产环境,用于在组织内部署或用户不开发应用程序的情况。当为生产部署构建应用程序(`ng build --prod`)时,将使用此环境文件。
#### 设置默认着陆页
为了允许额外的自定义,ATT&CK Workbench 允许用户为其 Workbench 实例设置默认着陆页。要设置默认着陆页:
- 打开位于 `src/assets/config.ts` 的配置文件。
- 将 `defaultLandingPage` 变量设置为您想要设置为默认着陆页的 url 路径
- 您可以将默认值设置为更通用的页面,例如战术列表视图 `"defaultLandingPage": "tactic"`,或设置为特定页面,例如某个矩阵 `"defaultLandingPage": "matrix/x-mitre-matrix--eafc1b4c-5e56-4965-bd4e-66a6a89c88cc"`
### 开发者设置
有关安装和运行应用程序以进行本地开发和测试的信息,请参阅我们的 [本地开发说明](docs/local-dev.md)。
## 相关工作
### STIX
结构化威胁信息表达式 (Structured Threat Information Expression,STIX™) 是一种用于交换网络威胁情报 (CTI) 的语言和序列化格式。
STIX 使组织能够以一致且机器可读的方式彼此共享 CTI,使安全社区能够更好地理解他们最可能看到的基于计算机的攻击,并更快、更有效地预测和/或响应这些攻击。
STIX 旨在改进许多不同的能力,例如协作威胁分析、自动化威胁交换、自动化检测和响应等。
https://oasis-open.github.io/cti-documentation/
### MITRE ATT&CK
MITRE ATT&CK® 是一个精选的知识库和网络对手行为模型,反映了对手生命周期的各个阶段以及已知他们所针对的平台。ATT&CK 有助于理解针对已知对手行为的安全风险,规划安全改进,并验证防御措施是否按预期工作。
https://attack.mitre.org
### ATT&CK Navigator
ATT&CK Navigator 是一个用于标注和探索 ATT&CK 矩阵的基于 Web 的工具。它可用于可视化防御覆盖范围、红/蓝队规划、检测到的技术的频率等。
https://github.com/mitre-attack/attack-navigator/
## 声明
版权所有 2020-2025 MITRE Engenuity。已获准公开发布。文档编号 CT0020,公开发布案例编号 22-3206。
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守本许可证,否则您不得使用本文件。您可以在以下地址获取许可证副本
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件是按“原样”分发的,没有任何形式的明示或暗示的担保或条件。请参阅许可证以了解管理权限和限制的特定语言。
本项目使用了 ATT&CK®
[ATT&CK 使用条款](https://attack.mitre.org/resources/terms-of-use/)
标签:Angular, Cloudflare, Grype, MITM代理, MITRE ATT&CK, STIX, 云安全态势管理, 前端应用, 协作工具, 威胁情报, 开发者工具, 攻击框架, 数据标注, 知识库管理, 网络安全, 自动化攻击, 自动化攻击, 请求拦截, 防御规划, 隐私保护