resistec/diamond-model-editor
GitHub: resistec/diamond-model-editor
一款可自托管的网络威胁情报可视化建模平台,用于围绕入侵分析钻石模型组织、追踪和导出结构化的威胁指标。
Stars: 0 | Forks: 0
# 钻石模型 (DM) 编辑器
一个交互式的网络威胁情报 (CTI) 可视化和建模平台,旨在围绕**入侵分析钻石模型**的四个顶点:**对手 (Adversary)**、**能力 (Capability)**、**基础设施 (Infrastructure)** 和 **受害者 (Victim)**,组织、追踪和映射各类指标。
## 主要功能
* **动态钻石可视化**:一个交互式的 2D 画布,展示连接对手、能力、基础设施和受害者的经典钻石关系轴。
* **分层节点编辑器**:直接在每个顶点内添加、搜索、删除和嵌套项目(使用 AND/OR 逻辑运算符),以构建结构化的子指标。
* **MITRE ATT&CK TTP 自动补全**:在 **Capability** 顶点输入框中输入内容,即可查看官方 MITRE 技术(T 编号、名称和摘要)的高对比度即时自动补全建议。后端在安装和启动时会自动处理 `attack-data-model.git` 代码库和标准 enterprise-attack 目录的后台克隆与处理。
* **LTIV (情报价值最后有效时间) 标签**:将衰减阈值直接应用于指标。系统默认将 LTIV 标签的时间设置为距离项目创建日期恰好 1 年,以反映活跃的威胁情报生命周期。
* **多格式导出套件**:
* **STIX 2.1 合规包**:生成并下载格式完整、可直接导入的结构化威胁信息表达式 (STIX) JSON 捆绑包,包含 Campaign SDO、Identity SDO、Threat-Actor SDO、Indicators 以及标准 SRO 关联定义。
* **交互式 PDF 报告**:生成具有高对比度排版、嵌套项目符号索引和元数据统计信息的高质量可视化报告。
* **扁平化 CSV Schema**:生成扁平化的数据行,标识节点名称、约束条件、路径遍历、兄弟关系约束以及用于电子表格导入的 LTIV 值。
* **PNG 画布快照**:导出钻石画布干净且类似矢量的光栅快照。
* **备份 JSON Schema**:导出和导入完整的原始工作区,以保留嵌套的层级结构。
* **持久化 Campaigns 中心**:通过本地后端文件持久化,同步查看、修改、克隆和编录多个入侵配置文件。
## 应用布局与截图
工作区采用单屏布局,旨在最大化屏幕信息密度并实现快速上下文切换:
```
+------------------------------------------------------------------------+
| [ PLATFORM HEADER & TAB SELECTOR ] |
+------------------------------------------------------------------------+
| | |
| | [ VERTEX SELECTION PANEL ] |
| [ THE DIAMOND CANVAS ] | |
| | Select: Adversary / Capability / |
| Active Interactive | Infrastructure / Victim |
| 4-Vertex Layout | |
| |-------------------------------------|
| Connecting Lines | |
| & Realtime Mapping | [ NESTED INDICATOR EDITOR ] |
| | |
| | Add indicator nodes with: |
| | - AND / OR sibling logic |
| | - Custom text / hash / IPs |
| | - LTIV Date Picker Tag |
| | |
+----------------------------------+-------------------------------------|
| [ EXPORT PANEL ] |
| [ PNG Snapshot ] [ PDF Report ] [ CSV File ] [ STIX 2.1 ] |
+------------------------------------------------------------------------+
```
## | 我的项目 | 主页 | 帮助 |
| :---: | :---: | :---: |
|
|
|
|
## 本地前置条件与安装指南
本指南专为初学者和安全工程操作人员量身定制。
### A 部分:前置条件(面向初学者)
在本地运行代码之前,您的计算机需要两个安全且必要的组件来执行 TypeScript 引擎。
#### 1. 安装 Node.js (JavaScript Runtime)
Node.js 允许您的操作系统执行服务端 JavaScript 并安装开发包。
* **Windows & macOS**:
1. 访问官方下载门户:[https://nodejs.org](https://nodejs.org)。
2. 下载 **LTS (长期支持)** 版本安装程序(强烈推荐,以保证稳定性)。
3. 运行安装程序并接受所有默认配置(如果出现提示,请确保勾选将“Node”/“npm”添加到 PATH 环境变量中的选项)。
* **Linux (Ubuntu/Debian)**:
打开终端并运行以下命令序列:
sudo apt update
sudo apt install -y nodejs npm
要验证 Node.js 及其包管理器 (`npm`) 是否安装正确,请打开终端/命令提示符并输入:
```
node --version
npm --version
```
*(您应该会看到打印出类似于 `v20.x` 或 `v22.x` 的版本号)。*
#### 2. 安装 Git(源代码管理,可选但强烈推荐)
* **Windows**:在 [https://git-scm.com](https://git-scm.com) 下载安装文件,并按照向导的默认勾选进行安装。
* **macOS**:在终端中运行 `git` 以触发 Apple 的开发者命令行工具安装程序,或通过 Homebrew 安装(`brew install git`)。
* **Linux**:
sudo apt install -y git
### B 部分:在本地运行项目
设置好前置条件后,请按照以下步骤在您的计算机上本地执行这款高保真的 CTI 应用程序。
#### 步骤 1:获取源代码
如果您使用 Git,请将代码库克隆到您选择的目录中:
```
git clone
cd
```
*如果下载的是 ZIP 压缩包,请将其解压到标准目录中,并在该文件夹内打开终端或命令提示符。*
#### 步骤 2:安装开发依赖项
运行安装命令以获取所有前端和服务器包(包括 Tailwind CLI、Express、TypeScript 构建器和导出工具):
```
npm install
```
*(这将在您的目录内创建一个 `node_modules` 文件夹,其中包含所有必需的库)。*
#### 步骤 3:运行开发服务器
执行此单一脚本命令以挂载完全统一的 Express/Vite 开发服务器:
```
npm run dev
```
#### 步骤 4:访问应用程序
您将在终端中看到指示服务器正在运行的输出:
```
Server running on http://localhost:3000
```
打开您首选的 Web 浏览器,直接访问:
```
http://localhost:3000
```
将端口号更改为终端中显示的端口。
## 构建与生产部署规范
### 生产包编译
为了将应用程序部署到远程安全服务器(例如云平台、本地物理隔离环境或内部 CTI 节点),请运行:
```
npm run build
```
这将执行双层级编译序列:
1. 通过 **Vite** 将 React 单页客户端应用程序编译并进行资源处理,直接在 `/dist` 目录中生成优化后的静态构建。
2. 使用高性能的 **esbuild** 引擎将 TypeScript 平台入口点 (`server.ts`) 编译为自包含的 CommonJS 单包文件 `dist/server.cjs`,确保在没有结构性解析异常的情况下进行简单的独立 Node 启动。
### 生产环境使用
注意!该项目仅专为本地使用编写。该应用程序未实现用于网络生产环境的适当安全控制。
# 许可证
由 Google AI Studio 创建。
MIT 许可证。请注明作者 resistec。
|
|
|
## 本地前置条件与安装指南
本指南专为初学者和安全工程操作人员量身定制。
### A 部分:前置条件(面向初学者)
在本地运行代码之前,您的计算机需要两个安全且必要的组件来执行 TypeScript 引擎。
#### 1. 安装 Node.js (JavaScript Runtime)
Node.js 允许您的操作系统执行服务端 JavaScript 并安装开发包。
* **Windows & macOS**:
1. 访问官方下载门户:[https://nodejs.org](https://nodejs.org)。
2. 下载 **LTS (长期支持)** 版本安装程序(强烈推荐,以保证稳定性)。
3. 运行安装程序并接受所有默认配置(如果出现提示,请确保勾选将“Node”/“npm”添加到 PATH 环境变量中的选项)。
* **Linux (Ubuntu/Debian)**:
打开终端并运行以下命令序列:
sudo apt update
sudo apt install -y nodejs npm
要验证 Node.js 及其包管理器 (`npm`) 是否安装正确,请打开终端/命令提示符并输入:
```
node --version
npm --version
```
*(您应该会看到打印出类似于 `v20.x` 或 `v22.x` 的版本号)。*
#### 2. 安装 Git(源代码管理,可选但强烈推荐)
* **Windows**:在 [https://git-scm.com](https://git-scm.com) 下载安装文件,并按照向导的默认勾选进行安装。
* **macOS**:在终端中运行 `git` 以触发 Apple 的开发者命令行工具安装程序,或通过 Homebrew 安装(`brew install git`)。
* **Linux**:
sudo apt install -y git
### B 部分:在本地运行项目
设置好前置条件后,请按照以下步骤在您的计算机上本地执行这款高保真的 CTI 应用程序。
#### 步骤 1:获取源代码
如果您使用 Git,请将代码库克隆到您选择的目录中:
```
git clone 标签:MITM代理, Mutation, 代码示例, 可视化, 威胁情报, 开发者工具, 数据分析, 自动化攻击, 自托管