1024Cyber/ATLAS-Framework
GitHub: 1024Cyber/ATLAS-Framework
ATLAS 是一个完全本地运行的威胁情报工作台,帮助安全分析师在不上传数据的前提下完成 IOC 富化、威胁行为者追踪、情报关联和报告生成。
Stars: 1 | Forks: 0
# ATLAS — 分析师威胁与关联分析系统

## 什么是 ATLAS?
ATLAS 专为安全分析师打造,提供一个本地化的框架,用于**收集**、**富化**、**关联**和**处置**威胁情报 —— 无需将您的数据发送至第三方平台。
它完全运行在 `localhost:2077` 上。所有数据均保留在您的本地机器中。
## 截图
| 仪表盘 | 监控 |
|---|---|
|  |  |
| IOC 分析 | 威胁行为者 |
|---|---|
|  |  |
| 事件响应与漏洞管理 | 实时订阅源 |
|---|---|
|  |  |
| ATT&CK Navigator 地图 | PDF 报告生成器 |
|---|---|
|  |  |
| 关联图谱 | 导入 / 导出 |
|---|---|
|  |  |
| 关于 |
|---|---|
|  |
## 功能
### 模块
- **监控与收集** — 提交 IOC(domain、IP、hash、URL、email),通过 VirusTotal + OTX + Shodan 自动富化。点击任意行可查看完整的富化详情面板。
- **IOC 分析** — 深度多源分析,结合 VirusTotal、OTX AlienVault、AbuseIPDB、GreyNoise、URLScan.io 和 Shodan,生成单一的 0–100 风险评判。
- **分析** — 威胁行为者注册表,包含 ATT&CK TTP 映射。一键从 MISP Galaxy 导入 700+ 个行为者。活动追踪器,与 IOC 实现全面关联。
- **文档** — TLP 分级的情报报告构建器(每日、每周、闪电预警、行为者画像、高管摘要)。
- **事件响应与漏洞管理** — 带有时间线和状态工作流的事件追踪器。CVE 登记表,自动进行 CISA KEV 检查。点击任意 CVE 可查看完整的 NVD 详情面板。
### 实用工具
- **实时订阅源** — 定时自动从 abuse.ch Feodo Tracker、URLhaus、CISA KEV 和 OTX 订阅中拉取数据(间隔可配置,大部分无需 API key)。
- **ATT&CK Navigator 地图** — 根据所有行为者和活动的 TTP 生成 MITRE ATT&CK v16 / Navigator v5.1 的 layer JSON。下载后即可在 attack-navigator.github.io 中即时打开。
- **MISP 集成** — 双向同步:将 ATLAS 的 IOC 推送到 MISP 事件中,或将 MISP 属性拉取为 ATLAS 的 IOC。
- **PDF 报告生成器** — 品牌化、多章节的高管 PDF 报告,支持章节选择器、TLP 标记,并自动生成发现与建议。
- **导入 / 导出** — 批量 CSV IOC 导入(带富化功能),STIX 2.1 bundle 导出,针对关键 IOC 的 Slack/邮件预警。
- **关联图谱** — 力导向图,展示所有实体关系。节点可以是 IOC、行为者、活动、事件和漏洞。随着您将数据关联在一起,边会自动建立。
## 快速开始
```
# 克隆 / 解压
cd atlas
# 虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 配置
cp .env.example .env
# 添加你的 API keys(VT、OTX 等) — 见下方的 API Keys 部分
# 修复 graph library(一次性)
curl -L https://cdnjs.cloudflare.com/ajax/libs/vis-network/10.0.2/standalone/umd/vis-network.min.js \
-o static/vis-network.min.js
# 运行
python main.py
```
打开 **http://localhost:2077**
- 交互式 API 文档:**http://localhost:2077/docs**
- 健康检查:**http://localhost:2077/api/health**
## API Keys
| 服务 | 获取地址 | 免费额度 | 用途 |
|---|---|---|---|
| VirusTotal | virustotal.com/gui/join-us | 4 次查询/分钟 | IOC 富化 + 分析 |
| OTX AlienVault | otx.alienvault.com | 无限 | IOC 富化 + 订阅源 |
| Shodan | account.shodan.io | 有限 | IP 的端口/横幅数据 |
| AbuseIPDB | abuseipdb.com | 1000 次/天 | IP 滥用置信度评分 |
| GreyNoise | greynoise.io | 社区版 | 互联网扫描器分类 |
| URLScan | urlscan.io | 100 次扫描/天 | URL/Domain 页面分析 |
| CISA KEV | 公开订阅源 | 无需 key | 已知被利用的 CVE |
| abuse.ch 订阅源 | 公开 | 无需 key | C2 IP,恶意 URL |
## 配置
```
# .env
VIRUSTOTAL_API_KEY=your_key
OTX_API_KEY=your_key
SHODAN_API_KEY=your_key
ABUSEIPDB_API_KEY=your_key
GREYNOISE_API_KEY=your_key
URLSCAN_API_KEY=your_key
# MISP(可选)
MISP_URL=https://your-misp.local
MISP_KEY=your_auth_key
MISP_VERIFY_SSL=false
# Slack 告警(可选)
ALERT_SLACK_ENABLED=false
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
ALERT_MIN_SEVERITY=critical
# Feed 计划
FEED_ENABLED=true
FEED_INTERVAL_HOURS=6
```
## 架构
```
atlas/
├── main.py # FastAPI app, scheduler, startup
├── database.py # SQLAlchemy async models (SQLite)
├── requirements.txt
├── .env.example
├── routers/
│ ├── monitor.py # IOC intake + enrichment
│ ├── analysis.py # Actors, campaigns, TTPs
│ ├── docs.py # Reports, knowledge base
│ ├── ir.py # Incidents, vulnerabilities
│ ├── graph.py # Correlation graph
│ ├── ioc_analysis.py # Deep multi-source analysis
│ ├── feeds.py # Live feed control
│ ├── export.py # CSV import, STIX, alerts
│ ├── intelligence.py # MISP, PDF, search
│ ├── autopull.py # Bulk one-click ingestion
│ └── auth.py # JWT auth, user management
├── services/
│ ├── enrichment.py # VT / OTX / Shodan / CISA KEV
│ ├── ioc_analysis.py # AbuseIPDB / GreyNoise / URLScan
│ ├── correlation.py # Graph edge builder
│ ├── navigator.py # ATT&CK layer generator (v16)
│ ├── feeds.py # Feodo / URLhaus / OTX / KEV
│ ├── autopull.py # NVD CVEs / incidents / MISP Galaxy
│ ├── misp.py # MISP push/pull
│ ├── pdf_report.py # ReportLab PDF generator
│ ├── stix_export.py # STIX 2.1 bundle
│ ├── csv_import.py # Bulk IOC CSV import
│ ├── search.py # Global full-text search
│ └── auth.py # JWT, bcrypt, role management
└── static/
├── index.html # Single-file frontend (no build step)
└── vis-network.min.js # Graph library (download separately)
```
## API 参考
涵盖 11 个 router 的 66 个 endpoint。完整的交互式文档位于 `/docs`。
| 分组 | Endpoint | 描述 |
|---|---|---|
| `/api/monitor/` | IOC CRUD | 提交、富化、过滤、删除 IOC |
| `/api/analyze/` | 深度分析 | 多源 IOC 判定 |
| `/api/analysis/` | 行为者、活动 | 画像、MISP Galaxy 导入 |
| `/api/ir/` | 事件、CVE | 追踪、KEV 检查 |
| `/api/graph/` | 关联 | 节点、边、重建 |
| `/api/feeds/` | 实时订阅源 | 运行、调度、状态 |
| `/api/navigator/` | ATT&CK | Layer 下载 (v16) |
| `/api/export/` | 导入/导出 | CSV、STIX、预警 |
| `/api/misp/` | MISP | 推送、拉取、事件 |
| `/api/report/pdf` | PDF | 章节选择器报告 |
| `/api/autopull/` | 批量摄取 | IOC、CVE、事件、Galaxy |
| `/api/search` | 搜索 | 跨所有实体的全局全文检索 |
## 图谱:关联如何工作
当您执行以下操作时,边将被自动创建:
| 操作 | 边 |
|---|---|
| 将 IOC 链接至行为者 | `IOC → attributed_to → Actor` |
| 将 IOC 链接至活动 | `IOC → part_of → Campaign` |
| 将活动链接至行为者 | `Campaign → conducted_by → Actor` |
| 将 IOC ID 添加至事件 | `Incident → contains → IOC` |
| CVE 被行为者利用 | `CVE → exploited_by → Actor` |
| 行为者共享 3 个及以上 TTPs | `Actor ↔ shares_ttps ↔ Actor` |
## 技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.11 + FastAPI + Uvicorn |
| 数据库 | SQLite + SQLAlchemy async |
| 前端 | 原生 JS + HTML/CSS(无需构建步骤) |
| 图谱 | vis-network 10.0.2 |
| PDF | ReportLab |
| 情报格式 | STIX 2.1, ATT&CK Navigator v5.1 |
| 调度器 | APScheduler |
| 认证 | JWT (python-jose) + bcrypt (passlib) |
## 完整使用指南
请参阅 **[ATLAS_USAGE_GUIDE.md](ATLAS_USAGE_GUIDE.md)** 获取完整的操作指南,涵盖各项功能、日常工作流和故障排除。
## 路线图
- [ ] 用于自动化订阅源共享的 TAXII 2.1 server endpoint
- [ ] 暗网关键词监控调度器
- [ ] IOC 衰减/过期引擎(自动归档过期指标)
- [ ] 多用户协同(共享笔记、任务分配)
- [ ] 从观察到的 TTPs 导出 Sigma 规则
- [ ] Docker compose 配置
*专为需要本地、自包含且能真正实现数据关联(而不仅仅是存储)的 CTI 框架的分析师而打造。*
如需获取本项目的完整源代码,请通过 Telegram 联系我:
https://t.me/xnor1
标签:GPT, IOC分析, 威胁情报, 安全分析平台, 开发者工具, 数据可视化, 本地部署, 漏洞管理, 调试辅助, 逆向工具