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。
标签:MITM代理, Mutation, 代码示例, 可视化, 威胁情报, 开发者工具, 数据分析, 自动化攻击, 自托管