delishamiranda22/Project2-cyber-threat-intelligence-dashboard
GitHub: delishamiranda22/Project2-cyber-threat-intelligence-dashboard
基于 Flask 的网络威胁情报仪表板,聚合 VirusTotal 和 AbuseIPDB 数据源,自动判定 IP 或域名的安全状态并记录查询历史。
Stars: 0 | Forks: 0
# 网络威胁情报仪表板
## 简介
本项目是 Elevate Labs 网络安全实习(项目阶段)的一部分。它是一个基于 Flask 的 Web 仪表板,可聚合实时威胁情报数据,以帮助评估 IP 地址或域名是恶意的、可疑的还是安全的。
## 摘要
安全分析师经常需要检查危害指标(IOC),例如 IP 地址或域名,是否有恶意活动的历史记录。该工具通过查询两个实时威胁情报源(VirusTotal 和 AbuseIPDB)来自动执行此查询,将它们的结果合并为一个明确的判定结论,并将过去查询的可搜索历史记录存储在本地数据库中。
## 使用的工具
- Python 3 和 Flask(Web 框架)
- VirusTotal API(免费版)用于恶意软件/信誉分析
- AbuseIPDB API(免费版)用于 IP 滥用置信度评分
- SQLite 用于存储查询历史记录
- python-dotenv 用于安全的 API key 管理
- HTML/CSS(Jinja2 模板)用于前端
## 构建项目涉及的步骤
1. 使用 Python 虚拟环境设置一个 Flask 项目。
2. 在 VirusTotal 和 AbuseIPDB 注册免费的 API 访问权限。
3. 使用 .env 文件安全地存储 API key,并将其排除在版本控制之外。
4. 构建一个函数来查询 VirusTotal,以获取恶意/可疑/无害的检测计数。
5. 构建一个函数来查询 AbuseIPDB 以获取 IP 滥用置信度评分。
6. 实现判定逻辑,将两个来源的结果合并为 CLEAN / SUSPICIOUS / MALICIOUS(安全 / 可疑 / 恶意)评级。
7. 设置一个 SQLite 数据库,以带时间戳的方式持久化保存每一次查询。
8. 构建一个 Flask 路由,同时处理页面显示和表单提交。
9. 设计了一个带有颜色标识的 HTML 仪表板,用于显示当前结果和完整的查询历史记录。
## 设置说明
1. 克隆此代码库
2. 创建一个虚拟环境并安装依赖项:pip install flask requests python-dotenv
3. 将 .env.example 复制为 .env 并添加您自己的 VirusTotal 和 AbuseIPDB API key
4. 运行:python app.py
5. 在您的浏览器中打开 http://127.0.0.1:5000
## 结论
该项目演示了实用的网络威胁情报聚合,这是 SOC 分析师和与 GRC 相关的安全运营角色的核心技能。它展示了如何将开放的威胁情报源组合成一个单一的可操作判定结论。
标签:Flask, Python, SQLite, 威胁情报, 安全仪表盘, 开发者工具, 无后门, 调试辅助, 逆向工具