vishalVasanthakumarPoornima/Cloud-Threat-Intelligence-Dashboard

GitHub: vishalVasanthakumarPoornima/Cloud-Threat-Intelligence-Dashboard

一个集成了多个主流威胁情报源的 IOC 富化与调查仪表板,帮助安全分析人员高效评估 IP、域名、URL 和文件哈希的风险。

Stars: 0 | Forks: 0

# 威胁情报仪表板 一个安全的入侵指标 (IOC) 富化与调查仪表板 基于 FastAPI、React、TypeScript、Tailwind、SQLAlchemy 和 PostgreSQL 构建。 该项目接受 IP 地址、域名、URL 或文件哈希,对输入进行分类和 验证,编排服务器端的威胁情报连接器, 计算透明的风险评分,并在 仪表板中呈现分析人员可读的证据。 ## 当前状态 此仓库现在包含 Codex 构建计划的基础部分: - FastAPI 后端,包含 `/api/health`、`/api/analyze`、`/api/active-scan/nmap`、`/api/sources/status`、结果路由以及执行版 PDF 报告。 - 严格的入侵指标 (IOC) 分类器,涵盖 IP、域名、URL 和哈希。 - 默认拦截私有/内部 IP、环回 IP、链路本地 IP、多播 IP 和云元数据 IP。 - 用于分析请求、工具结果、风险报告、缓存条目和审计日志的 SQLAlchemy 数据模型。 - 请求大小限制、基本的速率限制、安全的 CORS 默认设置以及安全标头。 - React TypeScript 仪表板,包含浅色/深色模式、风险卡片、来源状态卡片、证据表格和 API 客户端。 - Dockerfile、Docker Compose PostgreSQL 服务、环境示例和架构文档。 - 用于 VirusTotal、AbuseIPDB、AlienVault OTX、Shodan、 URLScan 和 IPinfo 的实时被动连接器。 - 仅针对已授权 IP/域名目标的主动 Nmap 预设,包括快速 端口检查、服务检测、操作系统指纹尝试和 SYN 扫描模式。 特权预设可以在明确 启用本地演示时使用免密 `sudo -n nmap`。 - 安全的 VirusTotal 文件检查,它首先对上传的文件进行哈希处理,并将样本 视为不透明的字节,不进行本地执行、提取或解包。 - 通过 `/api/results/{analysis_id}` 进行当前会话的结果查找。 - 完成了视觉仪表板的打磨,包括滚动动画效果、加载 反馈、结果完成反馈、深色/浅色模式以及响应式卡片。 ## 项目就绪情况 该项目已准备好在本地运行并进行端到端演示。剩余的工作是 部署/输入设置,而不是缺少核心代码: - 在 `backend/.env` 中添加真实的提供商 API 密钥以获取实时情报结果。 - 从仓库根目录运行 `./start.sh` 并打开 `http://127.0.0.1:5173`。 - 添加密钥后,使用 `backend/scripts/check_api_keys.py` 确认提供商访问权限。 - 有关 Render 托管,请遵循 `docs/render-deployment.md`。 - 对于生产环境,设置一个非本地的 `ALLOWED_ORIGINS`,通过 密钥提供 `DATABASE_URL`,并部署前端时将 `VITE_API_BASE_URL` 指向 后端 API。 - 可选的未来升级:将已完成的报告持久化到 PostgreSQL 中,而不是 将结果查找保留在当前的后端进程内存中。 ## 仓库结构 ``` backend/ app/ api/routes/ connectors/ core/ db/ schemas/ services/ tests/ frontend/ src/ api/ components/ types/ docs/ architecture.md screenshots/ ``` ## 后端设置 ``` cd backend python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt cp .env.example .env uvicorn app.main:app --reload --port 8080 ``` 健康检查: ``` curl http://localhost:8080/api/health ``` ## 启动一切 从项目根目录开始: ``` ./start.sh ``` 该脚本会创建缺失的本地依赖项,在 `http://127.0.0.1:8080` 上启动 FastAPI,在 `http://127.0.0.1:5173` 上启动 Vite,并在你按下 `Ctrl+C` 时将两者同时关闭。如果任一端口已被占用,脚本将退出 并显示一条明确的提示信息,而不是默默地切换端口。 分析请求: ``` curl -X POST http://localhost:8080/api/analyze \ -H "Content-Type: application/json" \ -d '{"ioc":"8.8.8.8"}' ``` 获取当前会话的结果: ``` curl http://localhost:8080/api/results/ ``` 为已完成的当前会话结果下载执行版 PDF 报告: ``` curl -o threat-report.pdf http://localhost:8080/api/results//report.pdf ``` VirusTotal 文件检查: ``` curl -X POST http://localhost:8080/api/analyze/file \ -F "file=@/path/to/sample" ``` ## 前端设置 ``` cd frontend npm install cp .env.example .env.local npm run dev ``` 除非更改了 `VITE_API_BASE_URL`,否则仪表板默认在 `http://localhost:8080/api` 查找后端。后端本地的 CORS 默认设置同时允许 `http://localhost:5173` 和 `http://127.0.0.1:5173`。 ## API 密钥 仅将密钥存储在后端环境变量或部署密钥管理器中: - `VIRUSTOTAL_API_KEY` - `ABUSEIPDB_API_KEY` - `OTX_API_KEY` - `SHODAN_API_KEY` - `URLSCAN_API_KEY` - `IPINFO_TOKEN` 文件上传防护机制: - `MAX_UPLOAD_FILE_BYTES` 默认为 `33554432` 字节。上传的文件将 在本地进行哈希处理,首先通过 SHA-256 在 VirusTotal 中查询,并且只有在 没有现有报告时才会提交给 VirusTotal。 特权 Nmap 设置: - `NMAP_USE_SUDO=false` 为默认值。 - 仅在本地或已锁定的后端环境中设置 `NMAP_USE_SUDO=true`。 - 在需要 root 权限的系统上演示操作系统检测或 SYN 扫描 预设之前,请遵循 `docs/nmap-privileged-mode.md`。 可选的 AI 摘要: - `AI_PROVIDER=groq` 配合 `GROQ_API_KEY` 和 `GROQ_MODEL` 用于 Groq Cloud。 - `AI_PROVIDER=xai` 配合 `XAI_API_KEY` 和 `XAI_MODEL` 用于 xAI/Grok。 - `AI_PROVIDER=gemini` 配合 `GEMINI_API_KEY` 和 `GEMINI_MODEL` 用于 Gemini。 请勿将 API 密钥放在前端的 `.env` 文件、源代码、屏幕截图或日志中。 添加密钥后,你可以运行经过脱敏处理的提供商冒烟测试: ``` cd backend .venv/bin/python scripts/check_api_keys.py ``` 该脚本仅打印提供商状态代码和简短的健康信息。它不会 打印 API 密钥值。 ## 测试 分类器测试使用 Python 标准库,因此它们可以在 完全安装后端依赖项之前运行: ``` cd backend PYTHONPATH=. python -m unittest discover -s app/tests ``` ## 道德使用 该项目通过经批准的第三方 API 执行富化,并且仅 在用户确认授权的情况下才会进行主动 Nmap 扫描。它不会 进行漏洞利用、暴力破解、模糊测试或攻击目标。仅分析你获得授权调查的指标并扫描 主机。
标签:AV绕过, CTI, FastAPI, GitHub, React, Syscalls, 威胁情报, 安全运营中心, 开发者工具, 攻防调查, 测试用例, 网络映射, 请求拦截, 逆向工具