dether-net/dethernety-oss
GitHub: dether-net/dethernety-oss
这是一个基于图数据库架构的开源威胁建模平台,通过可视化编辑器构建系统模型并利用图遍历技术进行深度的安全分析与攻击路径映射。
Stars: 1 | Forks: 0
Dethernety
开源的、原生图形化的威胁建模平台
官方网站 · 快速入门 · 文档 · 视频 · 贡献指南
## 概述
Dethernety 是一个原生图形化的威胁建模工具。您的模型以实际的图形结构(Neo4j 或 Memgraph)存储——组件、数据流、边界和控制措施是节点和关系,而不是表中的行。这使得跨架构的攻击路径遍历、影响分析和依赖关系映射成为可能。您可以使用拖放编辑器以可视化方式构建模型,然后运行安全分析以呈现映射到 MITRE ATT&CK 技术和 D3FEND 对策的发现结果。
所有特定于领域的内容——组件类型、分析逻辑、安全控制、问题类型——均由可执行的 JavaScript 模块提供。该平台默认附带两个:默认的 Dethernety 模块和 MITRE 框架模块。有关如何构建您自己的模块,请参阅 [Module system](#module-system)。
## 快速开始
### 演示(推荐)
体验 Dethernety 最快的方式。不需要 OIDC 提供商 —— 本地评估时禁用了身份验证。
前置条件:Node.js 18+、pnpm 9+、Docker(包含 Compose v2)。
Python 3 是可选的(用于 MITRE ATT&CK/D3FEND 数据)。
```
cd demo
./demo.sh # builds, starts, and installs modules
```
打开 **http://localhost:3003** —— 无需登录。
该脚本构建工作区,创建 Docker 镜像,启动三个服务
(Memgraph + OPA + Dethernety),并安装模块。后续运行将跳过
构建。有关详细信息和故障排除,请参阅 [demo/README.md](demo/README.md)。
### 从源码构建
前置条件:Node.js 18+、pnpm 9.13+、Neo4j 或 Memgraph、OIDC 提供商。
```
git clone https://github.com/dether-net/dethernety-oss.git
cd dethernety-oss
pnpm install
cp env.production.template .env
# 使用数据库和 OIDC 设置编辑 .env
pnpm m-ingest # Load MITRE framework data
pnpm dev # Start development servers
```
前端:`http://localhost:5173` | GraphQL API:`http://localhost:3000/graphql`
### 生产环境
生产环境部署需要配置身份验证(OIDC)、数据库、
策略引擎和模块安装。完整设置请参阅
[Configuration Guide](docs/CONFIGURATION_GUIDE.md)。
## 功能
- **可视化建模** -- 包含组件、边界和信任区域的拖放式数据流编辑器
- **原生图形存储** -- 模型以图形结构存储,支持攻击路径遍历和影响分析
- **可执行模块系统** -- 组件类、分析逻辑、控制和集成均由运行时加载的 JavaScript 模块提供
- **MITRE ATT&CK / D3FEND** -- 暴露到技术的映射和防御对策建议
- **基于文件的持久化** -- 将模型导出为 JSON 文件,以便与代码一起进行版本控制、离线编辑和重新导入
- **问题跟踪** -- 根据发现结果创建问题,支持自动元素关联、筛选和合并
- **MCP 服务器** -- AI 代理可以通过 Model Context Protocol 创建、导出和更新威胁模型
## 架构
```
┌─────────────┐ GraphQL/WS ┌─────────────┐ Bolt/Cypher ┌─────────────┐
│ dt-ui │ <────────────────> │ dt-ws │ <────────────────> │ Neo4j / │
│ (Vue 3) │ │ (NestJS) │ │ Memgraph │
└─────────────┘ └─────────────┘ └─────────────┘
│
Module System
│
┌─────┴──────┐
│ Modules │
│ (dt-module)│
└────────────┘
```
基于 Vue 3、NestJS、Neo4j/Memgraph、GraphQL、OPA/Rego 构建。支持 OIDC 身份验证。
## 文档
### 用户指南
| 指南 | 描述 |
|-------|-------------|
| [Building Your First Model](docs/user/BUILDING_YOUR_FIRST_MODEL.md) | 创建威胁模型的分步教程 |
| [Component Configuration](docs/user/COMPONENT_CONFIGURATION_GUIDE.md) | 组件设置、类分配和属性 |
| [Security Analysis](docs/user/SECURITY_ANALYSIS_WORKFLOW.md) | 运行分析并解读结果 |
| [Security Controls](docs/user/WORKING_WITH_SECURITY_CONTROLS.md) | 创建、配置和分配控制措施 |
| [Modules](docs/user/UNDERSTANDING_MODULES.md) | 模块系统的工作原理 |
| [Issue Management](docs/user/ISSUE_MANAGEMENT_GUIDE.md) | 问题创建、筛选、合并和集成 |
| [Dethereal Plugin](docs/user/dethereal/README.md) | 使用 Claude Code 插件进行 AI 辅助威胁建模 |
### 架构
| 文档 | 描述 |
|----------|-------------|
| [Backend](docs/architecture/backend/BACKEND_ARCHITECTURE.md) | NestJS 后端、GraphQL API、模块注册表 |
| [Frontend](docs/architecture/frontend/FRONTEND_ARCHITECTURE.md) | Vue.js 前端、stores、数据流编辑器 |
| [Module System](docs/architecture/modules/README.md) | 模块接口、基类、打包 |
| [Data Access Layer](docs/architecture/dt-core/README.md) | 共享 TypeScript 接口和图形操作 |
| [Dethereal](docs/architecture/dethereal/ARCHITECTURE.md) | MCP 服务器内部机制 |
| [Architecture Decision Records](docs/architecture/decisions/) | 重大技术决策背后的基本原理 |
| [Configuration](docs/CONFIGURATION_GUIDE.md) | 环境变量和部署设置 |
| [Security Model](docs/SECURITY_MODEL.md) | 安全架构和保护措施 |
| [Glossary](docs/GLOSSARY.md) | 领域术语参考 |
## 模块系统
模块是可执行的 JavaScript/TypeScript 代码,而非静态配置或模板。模块可以定义用于威胁建模的组件类、实现分析逻辑、提供安全控制、创建问题类型或与外部系统集成。因为它们是真正的代码,所以模块的功能没有硬性限制——任何您能用 JS 编写的功能都可以实现。
您不需要从头开始。该平台附带了一个处理注册、模式定义和生命周期管理的基类库 ([dt-module](packages/dt-module/))。对于分析,模块可以使用内置的 OPA/Rego 策略评估来声明式地编写检测规则,或者实现自己的逻辑。附带的 [Dethernety Module](modules/dethernety-module/) 是一个可运行的参考实现。
有关构建您自己的模块,请参阅 [开发指南](docs/architecture/modules/DEVELOPMENT_GUIDE.md)。
## 项目结构
```
dethernety-oss/
├── apps/
│ ├── dt-ui/ Vue 3 frontend (Vuetify + Vue Flow)
│ ├── dt-ws/ NestJS backend (GraphQL + Bolt/Cypher)
│ └── dethereal/ MCP server for AI-assisted threat modeling
├── packages/
│ ├── dt-core/ Shared TypeScript interfaces and utilities
│ ├── dt-module/ Module system base classes
│ ├── eslint-config/ Shared ESLint configuration
│ └── typescript-config/ Shared TypeScript configuration
├── modules/
│ ├── dethernety-module/ Default threat modeling module
│ └── mitre-frameworks/ MITRE ATT&CK and D3FEND data
├── docs/ Documentation
├── demo/ One-command demo (Memgraph + OPA + Dethernety)
└── scripts/ Build scripts and module-manager CLI
```
## 贡献
我们欢迎贡献。请在提交 pull requests 之前阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。通过参与,您同意遵守我们的 [Code of Conduct](CODE_OF_CONDUCT.md)。
所有贡献者必须签署 [Contributor License Agreement](CLA.md)。
## 安全
要报告漏洞,请参阅 [SECURITY.md](SECURITY.md)。请勿针对安全报告公开提交 issue。
## 许可证
[GNU Affero General Public License v3.0](LICENSE) (AGPL-3.0-only)。
Copyright 2025-2026 dether-net.
标签:Cloudflare, CMS安全, D3FEND, Docker, GNU通用公共许可证, JavaScript, Memgraph, MITM代理, MITRE ATT&CK, Neo4j, Node.js, OPA, 依赖映射, 反取证, 可视化建模, 威胁分析, 威胁建模, 安全控制, 安全架构, 安全评估, 安全防御评估, 开源安全工具, 影响分析, 拖拽编辑器, 攻击路径分析, 网络安全, 自动化侦查工具, 自动化攻击, 逆向工程平台, 防御措施, 隐私保护, 靶场