KatrielMoses/voidaccess
GitHub: KatrielMoses/voidaccess
一个开源免费的自托管暗网威胁情报平台,通过13步自动化流水线实现从多源搜索到关系图谱构建的端到端情报分析。
Stars: 215 | Forks: 34
VoidAccess
A self-hosted OSINT platform for dark web threat intelligence.
Automate the entire investigation workflow from query refinement to relationship mapping in 13 autonomous pipeline steps.
## OSINT 强大引擎
商业威胁情报平台通常会为那些可以在私有硬件上运行的功能收取高昂的年费。**VoidAccess** 通过提供自动化的端到端工作流程,实现了高端暗网情报的普及化:
- **查询优化**:使用 LLM 进行智能搜索词优化。
- **多语言搜索**:跨英语、俄语和中文搜索引擎进行深网扩散搜索。
- **实体提取**:自动识别钱包、IOC、PGP 密钥等。
- **关系映射**:基于提取出的数据共现性动态生成图表。
- **结构化导出**:支持 STIX 2.1、MISP、Sigma 和 CSV 格式。
## 可视化演示
### 1. 直观的仪表盘
使用专为高风险研究设计的简洁深色主题界面展开调查。

### 2. 智能范围界定
精确优化查询并选择调查深度。

### 3. 实时流水线追踪
监控 13 步自动化流水线的抓取与情报提取过程。

### 4. 交互式图谱情报
在动态的高对比度关系图谱中探索实体、洋葱站点和威胁行为者之间的关联。

### 5. 综合情报报告
扫描完成后,获取结构化摘要和可操作的成果。

## 工作原理(13 步流水线)
VoidAccess 通过严格的序列处理来应对暗网研究的复杂性:
1. **LLM 查询优化**:针对 .onion 搜索引擎索引优化搜索词。
2. **全球扩散搜索**:查询 16 个以上的多语种 Tor 搜索引擎。
3. **情报过滤**:LLM 过滤无效噪音,仅保留相关的情报页面。
4. **多源丰富**:从 AlienVault OTX、abuse.ch、ransomware.live、CISA KEV 和 Shodan 获取数据。
5. **递归 .onion 发现**:通过种子 URL 抓取发现隐藏链接。
6. **向量缓存检查**:避免对最近访问过的页面进行冗余抓取(24 小时 TTL)。
7. **Tor 路由抓取**:安全地获取页面内容,设有 1MB 的安全上限。
8. **持久化存储**:将新内容存储在本地向量缓存中。
9. **情报合并**:将抓取和丰富后的数据合并以供处理。
10. **高级提取**:通过正则表达式、NER 和基于 LLM 的实体识别。
11. **历史交叉引用**:根据种子数据集验证数据。
12. **图谱构建**:基于共现性构建关系节点。
13. **最终情报摘要**:LLM 生成结构化的技术简报。
## 提取内容
提取流水线可识别以下实体类型:
| 类别 | 示例 |
|---|---|
| **加密货币** | Bitcoin、Ethereum、Monero 钱包地址 |
| **网络指标** | IPv4 地址、.onion URL、域名、电子邮件地址、PGP 密钥 |
| **文件指标** | MD5、SHA1、SHA256 哈希值 |
| **漏洞** | CVE 编号、MITRE ATT&CK 技术 |
| **威胁行为者** | 行为者代号、恶意软件家族、勒索软件组织名称 |
| **粘贴站点** | Pastebin、Ghostbin、Rentry 及类似链接 |
| **人员/组织** | 具名人员、组织名称、位置 |
丰富来源(共 8 个):
- **AlienVault OTX** — 威胁脉冲和恶意软件家族
- **MalwareBazaar** — 恶意软件样本和签名
- **ThreatFox** — 最新的 IOC 源
- **URLhaus** — 恶意 URL 数据库
- **ransomware.live** — 勒索软件组织追踪
- **CISA KEV** — 已知被利用漏洞目录
- **Shodan InternetDB** — 被动漏洞签名
- **VirusTotal** — 文件/URL 信誉为丰富来源(需要 API 密钥)
导出格式:
- **STIX 2.1** — 包含指标、威胁行为者、恶意软件对象的捆绑包
- **MISP JSON** — 包含 galaxies 的事件,可直接导入
- **Sigma rules** — 根据提取的 IOC 自动生成的检测规则
- **CSV** — 用于电子表格分析的扁平化实体转储
## LLM 与丰富生态系统
### 支持的 LLM 提供商
| 提供商 | 模型 | 备注 |
|---|---|---|
| **OpenRouter** | DeepSeek、Llama 3.3、Claude Haiku | 推荐的默认选项;提供免费模型 |
| **Groq** | Llama 3.3、Llama 3.1 | 快速推理;提供免费额度 |
| **OpenAI** | GPT-4o Mini | 需要 API 密钥 |
| **Anthropic** | Claude Haiku | Haiku 是经过测试的默认选项;其他模型可通过手动覆盖使用。 |
| **Google Gemini** | Gemini 1.5 Flash、2.5 Pro | 通过 AI Studio 提供免费额度 |
| **Ollama** | 任意本地模型 | 离线隔离运行;无需 API 密钥 |
默认设置为 **通过 OpenRouter 使用 DeepSeek** — 速度快,且擅长处理技术安全内容。使用免费额度 LLM(Groq 免费版、OpenRouter 免费模型或 Ollama)的成本为 **$0**。使用付费模型(如通过 OpenRouter 使用 DeepSeek)时,**每次调查的成本低于 $0.50**。对于完全离线隔离的部署,Ollama 完全在本地运行。
## 成本对比
| 平台 | 年费 | 自托管 | 开源 |
|---|---|---|---|
| Recorded Future | ~$25,000 | 否 | 否 |
| DarkOwl | ~$15,000 | 否 | 否 |
| Flare | ~$8,000 | 否 | 否 |
| **VoidAccess** | **免费** | **是** | **是** |
通过 Groq、OpenRouter 免费模型或 Ollama 完全免费。使用 DeepSeek 等付费模型时每次调查成本低于 $0.50。
## 快速开始
### 前置条件
- Docker 和 Docker Compose
- Python 3(推荐 — setup.sh 用于生成密钥;如无 Python,Linux/macOS 将回退至 /dev/urandom,Windows 的 setup.bat 可能需要它)
- 一个 LLM API 密钥 — 或使用 Ollama 进行完全本地化运行(免费)
**免费 LLM 选项(无需信用卡):**
- [Groq](https://console.groq.com) — 快速的免费额度,Llama 3.3 70B
- [OpenRouter](https://openrouter.ai) — 包括 DeepSeek 和 Llama 3.3 在内的免费模型
- [Google AI Studio](https://aistudio.google.com) — Gemini 免费额度
- [Ollama](https://ollama.ai) — 完全本地化,无需联网
### 安装
**macOS / Linux / WSL:**
```
bash setup.sh
```
**Windows (原生):**
```
setup.bat
```
交互式向导将创建 `.env`,生成 `JWT_SECRET` 和 `POSTGRES_PASSWORD`,提示选择 LLM 提供商(Groq、OpenRouter、Anthropic、OpenAI、Google Gemini 或 Ollama 之一),可选择输入威胁情报密钥(`OTX_API_KEY`、`VT_API_KEY`),可选择启用 Redis,设置管理员密码,并启动 Docker 栈。
### 启动与停止
**macOS / Linux / WSL:**
```
./start.sh # build and start all services
./stop.sh # stop all services
```
**Windows (原生):**
```
start.bat :: build and start all services
stop.bat :: stop all services
```
运行后,在浏览器中打开 **http://localhost:3001**。
### 获取 JWT(API 访问)
`setup.sh` 会在 `admin@voidaccess.tech` 创建一个默认管理员账户,密码为您在向导中提供的密码。
```
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "admin@voidaccess.tech", "password": "yourpassword"}'
```
在 API 请求中使用返回的 token,将其放入 `Authorization: Bearer
` 请求头中。
### 运行您的首次调查 (API)
```
curl -X POST http://localhost:8000/investigations \
-H "Authorization: Bearer " \
-H "Content-Type: application/json" \
-d '{"query": "LockBit ransomware infrastructure 2024"}'
```
调查将从 `pending` 开始,进入 `processing` 状态,并在 3-5 分钟后完成,附带摘要、提取的实体、关系图谱和可供导出的成果。
## 架构
四个 Docker 服务:
| 服务 | 技术 | 端口 |
|---|---|---|
| **postgres** | PostgreSQL 16 | 5433 |
| **tor** | Tor SOCKS5 代理 | 9050 |
| **fastapi** | Python 3.11、FastAPI、SQLAlchemy | 8000 |
| **nextjs** | Next.js 14、TypeScript、Tailwind | 3001 |
FastAPI 后端运行由 `POST /investigations` 触发的 13 步流水线。每个外部调用都包含 `try/except` 并具有优雅降级机制 — 流水线绝不会发生硬崩溃。运行时可在 **http://localhost:8000/docs** 查看 API 文档。
### 源码树
```
voidaccess/
├── analysis/ # Temporal patterns, OPSEC failure detection, anomaly scoring
├── api/ # FastAPI routes; investigation pipeline orchestrator
├── auth/ # JWT authentication and user management
├── crawler/ # Recursive .onion link discovery spider
├── db/ # SQLAlchemy ORM models and Alembic migrations
├── docs/ # Contributing, security, and usage policy documents
├── export/ # STIX 2.1, MISP, Sigma, and CSV artifact generation
├── extractor/ # Regex → NER → LLM entity extraction pipeline
├── fingerprint/ # Stylometry vectors and actor style profiling
├── graph/ # NetworkX MultiDiGraph builder and pyvis visualization
├── i18n/ # Language detection, translation, multilingual query expansion
├── infra/ # Docker Compose, Tor config, Postgres init
├── monitor/ # APScheduler watches, change diffing, Telegram/SMTP alerts
├── public/ # Logo, walkthrough screenshots, demo media
├── scraper/ # Async aiohttp and Playwright scrapers over Tor
├── scripts/ # Seed imports and operational utilities
├── search/ # 16+ .onion search engine fan-out with circuit breaker
├── sources/ # DarkSearch, Telegram, paste sites, threat-intel feeds
├── tests/ # Pytest suite (one test file per module)
├── utils/ # Async helpers, content safety, encryption, defang
├── vector/ # ChromaDB cache with sentence-transformer embeddings
├── voidaccess/ # LangChain LLM wrappers and provider registry
└── web/ # Next.js 14 + TypeScript + Tailwind frontend
```
## 故障排除
**服务无法启动:**
```
docker compose -f infra/docker-compose.yml --project-directory . ps
docker compose -f infra/docker-compose.yml --project-directory . logs -f
```
**端口冲突**(3001 或 8000 已被占用):
- macOS/Linux:使用 `lsof -i :3001` 查找占用进程
- Windows:使用 `netstat -ano | findstr :3001`
**Tor 无法连接:** 首次启动时,Tor 服务需要 30-60 秒来引导。使用 `./check_health.sh` 检查健康状况。此脚本会验证 Tor 代理的连通性、LLM 提供商的可达性以及暗网搜索引擎的可用性。
**没有 .env 文件:** 在启动前运行 `bash setup.sh` (macOS/Linux/WSL) 或 `setup.bat` (Windows)。
**Docker 构建耗时较长:** 首次构建会下载约 3GB 的镜像层。后续构建将使用 Docker 层缓存,速度会快得多。
## 内容安全
每次调查在结果到达 UI 或显示在图谱中之前,都会经过强制性的内容安全过滤。CSAM、血腥、暴力等违禁材料将在查询阶段、URL 验证、内容扫描以及提取后的实体过滤环节被拦截。这些过滤器是强制性的,无法被禁用。
## 可接受的使用范围
VoidAccess 仅用于授权的安全研究、威胁情报收集和执法目的。用户有责任确保遵守所有当地法律和道德标准。完整政策请参见 [docs/USAGE_POLICY.md](docs/USAGE_POLICY.md)。
## 许可证
MIT 许可证。详情请参见 [LICENSE](LICENSE)。标签:ESC4, IOC提取, OSINT, STIX 2.1, 商业情报软件替代, 多语言搜索, 威胁情报, 实体关系映射, 实时处理, 密码管理, 开发者工具, 情报报告, 数据提取, 暗网, 测试用例, 网络安全, 自动化调查, 自托管平台, 请求拦截, 逆向工具, 隐私保护