Pr0v0cateur/cyber-atlas
GitHub: Pr0v0cateur/cyber-atlas
一个自托管的威胁情报平台,自动化收集、存储、搜索和可视化多源 IOC、MITRE ATT&CK 实体及漏洞数据,帮助安全团队高效掌握威胁全貌。
Stars: 0 | Forks: 0
# Cyber Atlas
Cyber Atlas 是一个使用 FastAPI、PostgreSQL、Redis、OpenSearch 和 Celery 构建的威胁情报平台。它通过带有身份验证的 Web 仪表盘收集、存储、搜索和可视化失陷指标、MITRE ATT&CK 相关实体、漏洞数据以及威胁情报源的结果。

## 功能特性
- 从 URLhaus、MalwareBazaar、ThreatFox、AlienVault OTX 和 AbuseIPDB 收集威胁情报源。
- 针对IP地址、域名、URL和哈希值的 IOC 存储和搜索。
- JWT 身份验证、刷新令牌、基于角色的管理员功能以及 API 密钥。
- 用于 KPI、目标国家、行业、攻击活动、报告、恶意软件、工具、TTP 和活跃漏洞的仪表盘视图。
- PostgreSQL 持久化、Redis 缓存/任务代理和 OpenSearch 索引。
- 用于后台收集任务的 Celery worker 和 Celery Beat 调度。
- 用于速率限制、请求大小限制和 HTTP 头部的安全中间件。
## 技术栈
- Python 3.11
- FastAPI
- PostgreSQL 16
- Redis 7
- OpenSearch 2.11
- Celery 和 Celery Beat
- Docker Compose
- 静态 HTML、CSS 和 JavaScript 仪表盘
## 项目结构
```
cyber_atlas_backend/
|-- app/
| |-- connectors/ # Threat intelligence feed connectors
| |-- core/ # Configuration, database, logging, security
| |-- crud/ # Database operations
| |-- middleware/ # Security and request middleware
| |-- models/ # SQLAlchemy models
| |-- routes/ # API endpoints
| |-- schemas/ # Pydantic schemas
| |-- services/ # Domain services
| `-- tasks/ # Celery tasks and scheduling
|-- frontend_static/ # Web dashboard assets
|-- alembic/ # Database migrations
|-- scripts/ # Operational scripts
`-- tests/ # Automated tests
```
## 快速开始
### 前置条件
- Docker 和 Docker Compose
- Git
- 用于本地开发的 Python 3.11+
### 配置
从模板创建本地环境文件:
```
cp .env.example .env
```
在启动服务之前,编辑 `.env` 并替换所有占位符凭据。真实的 `.env` 文件被 Git 刻意忽略,绝不能被提交。
对于类生产环境的部署,请使用 `.env.production.example` 作为模板,并为每个环境生成新的密钥。
### 使用 Docker Compose 运行
```
docker compose up -d
```
可用的本地服务:
- 仪表盘:http://localhost:8000/static/dashboard.html
- 登录页面:http://localhost:8000/static/index.html
- API 文档:http://localhost:8000/docs
- Flower 任务监控:http://localhost:5555
默认管理员账户通过以下变量进行配置:
- `DEFAULT_ADMIN_EMAIL`
- `DEFAULT_ADMIN_PASSWORD`
在任何共享或生产环境中首次登录后,请立即更改默认密码。
## API 使用
使用已配置的管理员账户进行身份验证:
```
curl -X POST http://localhost:8000/api/auth/login \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=admin@cyberatlas.local" \
-d "password="
```
使用返回的访问令牌进行经过身份验证的 API 调用:
```
curl http://localhost:8000/api/search/iocs?q=malware \
-H "Authorization: Bearer "
```
触发情报源收集:
```
curl -X POST http://localhost:8000/api/feeds/pull \
-H "Authorization: Bearer "
```
## 安全
本仓库已做好准备以避免意外的秘密泄露:
- `.env`、`.env.production`、虚拟环境、日志、缓存、本地数据和 Celery 运行时文件均被 Git 忽略。
- 示例环境文件仅包含占位符。
- 本地密钥扫描脚本包含在 `scripts/secret_scan.py` 中。
- GitHub Actions 在推送和拉取请求时运行相同的密钥扫描。
- 包含 Dependabot 配置以提高依赖项更新的可见性。
在推送之前运行本地密钥扫描:
```
python scripts/secret_scan.py
```
为了获得更强的本地保护,请安装 pre-commit 并启用仓库钩子:
```
pip install pre-commit
pre-commit install
```
请参阅 `SECURITY.md` 了解项目安全策略。
## 测试
安装依赖并在本地运行测试:
```
pip install -r requirements.txt
pytest
```
用于快速语法检查:
```
python -m compileall app tests scripts
```
## GitHub 发布清单
在推送到 GitHub 之前:
1. 除非论文要求公开提交,否则请保持仓库私有。
2. 确认 `.env` 和 `.env.production` 已被忽略。
3. 运行 `python scripts/secret_scan.py`。
4. 轮换任何曾在本地计算机之外共享过的凭据。
5. 仅添加您控制的远程仓库。
## 许可证
尚未选择开源许可证。在添加许可证之前,所有权利均由项目作者保留。
标签:AbuseIPDB, API密钥, AV绕过, Celery, Cloudflare, CVE, Cyber Atlas, Dashboard, DAST, Docker, Docker Compose, FastAPI, GPT, IOC, IP 地址批量处理, JWT, MalwareBazaar, masscan, MITRE ATT&CK, Mutation, nuclei, PostgreSQL, Pydantic, Python, RBAC, Redis, SQLAlchemy, ThreatFox, TIP, URLhaus, 仪表盘, 可视化, 失陷标示, 威胁情报, 威胁情报平台, 安全中间件, 安全运营, 安全防御评估, 实时处理, 密码管理, 开发者工具, 异步任务, 恶意软件分析, 情报平台, 情报收集, 扫描框架, 搜索引擎, 搜索引擎查询, 数字签名, 数据可视化, 无后门, 权限控制, 测试用例, 漏洞研究, 漏洞管理, 网络信息收集, 网络安全, 请求拦截, 逆向工具, 限流, 隐私保护