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 相关实体、漏洞数据以及威胁情报源的结果。 ![Cyber Atlas 仪表盘预览](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5eaf41b91e005058.png) ## 功能特性 - 从 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, 仪表盘, 可视化, 失陷标示, 威胁情报, 威胁情报平台, 安全中间件, 安全运营, 安全防御评估, 实时处理, 密码管理, 开发者工具, 异步任务, 恶意软件分析, 情报平台, 情报收集, 扫描框架, 搜索引擎, 搜索引擎查询, 数字签名, 数据可视化, 无后门, 权限控制, 测试用例, 漏洞研究, 漏洞管理, 网络信息收集, 网络安全, 请求拦截, 逆向工具, 限流, 隐私保护