amirzyazid/NeuralTTP
GitHub: amirzyazid/NeuralTTP
基于本地AI语义搜索引擎的MITRE ATT&CK智能归因API,实现非结构化攻击描述到标准化威胁技术的零泄漏映射。
Stars: 0 | Forks: 0
# MITRE ATT&CK OSINT API
一个快速、本地托管的 FastAPI 服务,连接网络威胁情报与 AI。
该 API 提供实时的 MITRE ATT&CK Enterprise 数据,并配备了一个**完全离线、由 AI 驱动的语义搜索引擎,专为 OSINT 研究人员设计。** 它允许聊天机器人、分析师或脚本输入原始、非结构化的攻击行为描述,并通过数学向量相似度安全地获取精确的 MITRE Technique 归因。
## ⭐ 主要特性
- **真正的语义搜索:** 与简单的关键字匹配不同,该引擎能够理解概念。(例如,查询“要求为锁定的文件付款”,会明确返回 `T1486 - Data Encrypted for Impact`)。
- **100% 离线 AI 模型:** 利用 `fastembed`(`BAAI/bge-small-en-v1.5`),这意味着敏感的 OpSec 查询永远不会触及外部供应商(如 OpenAI 或 Google)。所有计算均在本地 CPU 上安全进行。
- **动态 STIX 解析:** 直接从 MITRE 官方的 GitHub 摄取持续更新的原始 MITRE STIX JSON 数据。
- **RESTful 架构:** 在 FastAPI 基础上构建的清晰、基于 Pydantic 类型的端点。
## 🛠️ 技术栈
* **框架:** [FastAPI](https://fastapi.tiangolo.com/)
* **服务器:** [Uvicorn](https://www.uvicorn.org/)
* **AI 引擎:** [FastEmbed](https://qdrant.github.io/fastembed/)(本地词嵌入)
* **数学层:** NumPy
## 🚀 入门指南
### 1. 前置条件
确保已安装 Python 3.10+。为了显著加快设置速度,我们强烈推荐使用 [uv](https://github.com/astral-sh/uv)。
### 2. 安装
克隆此仓库并进入项目目录:
```
cd mitre-api
```
创建虚拟环境并安装所需的依赖项:
```
# 使用 uv(推荐,超快)
uv venv
uv pip install -r requirements.txt
# 或者使用标准 pip
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
### 3. 预获取 AI 模型(可选)
在 API 首次启动时,它会从 HuggingFace 安全地下载约 100MB 的语言模型到您的机器上。为了确保在网络速度较慢时不会发生超时,请运行一次内置的加载脚本:
```
uv run python test_download.py
```
### 4. 运行服务器
使用热重载运行 Uvicorn ASGI 服务器:
```
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
```
## 📡 API 端点参考
服务器运行后,导航至 `http://localhost:8000/docs` 以查看完全交互式的 Swagger UI 仪表板。
### **核心数据接口**
- `GET /api/v1/groups` - 检索所有已知的威胁组织(例如,APT28)。
- `GET /api/v1/groups/{group_id}` - 通过特定 ID 检索。
- `GET /api/v1/techniques` - 检索所有 MITRE Techniques。
- `GET /api/v1/techniques/{technique_id}` - 通过特定 ID 检索。
- `GET /api/v1/software` - 检索相关的恶意软件/工具列表。
### **🧠 AI 语义搜索接口**
- `POST /api/v1/search/techniques`
- 将自然语言句子无缝解析为本地化的 N 维数学向量,并返回最相关的 MITRE Techniques。
**请求示例:**
```
{
"query": "encrypts data and demands ransom payment ransomware",
"top_k": 3
}
```
**响应示例:**
```
[
{
"technique": {
"name": "Data Encrypted for Impact",
"description": "Adversaries may encrypt data on target systems or on large numbers of systems in a network to interrupt availability to system and network resources...",
"external_references": [{"external_id": "T1486"}]
},
"similarity_score": 0.75
}
]
```
## 🕵️♂️ OSINT 聊天机器人集成用例
如果在 Slack/Discord 上构建 OSINT 聊天机器人,只需将用户文本代理到 `POST /api/v1/search/techniques` 循环中即可。
1. **用户向聊天机器人输入提示词:** *“我们发现了写入启动脚本的恶意文档宏。”*
2. **聊天机器人查询此 API。**
3. **API 立即响应:** `T1059.005` (Visual Basic) 和 `T1037` (Boot or Logon Initialization Scripts)。
4. **聊天机器人通知分析师,** 无需在本地写入日志,从而确保安全性。
标签:AV绕过, BAAI/bge-small-en-v1.5, Cloudflare, ESC4, FastAPI, fastembed, MITRE ATT&CK, NLP, NumPy, OSINT, Python, SecOps, STIX, Uvicorn, 云安全架构, 向量数据库, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数据解析, 无后门, 本地AI, 网络安全, 网络安全, 自动化分析, 词向量, 语义搜索引擎, 跨站脚本, 逆向工具, 隐私保护, 隐私保护, 零数据泄露