karthickmessi/ThreatScope-SOC

GitHub: karthickmessi/ThreatScope-SOC

基于 Cowrie SSH 蜜罐与 Flask 构建的实时安全运营中心仪表盘,用于捕获攻击者行为并进行威胁情报可视化分析。

Stars: 1 | Forks: 0

# 🛡 ThreatScope SOC — 实时蜜罐威胁情报仪表盘 这是一个实时安全运营中心(SOC)仪表盘,用于监控实时运行的 Cowrie SSH 蜜罐,捕获攻击者的行为——包括登录尝试、执行的命令以及恶意软件下载尝试,并通过交互式威胁情报平台进行可视化展示。 该项目旨在展示端到端的安全工程实践:包括蜜罐部署、数据流水线设计、后端 API 开发以及实时仪表盘可视化。 ## 🎯 项目功能 1. 在隔离的 Docker 容器中部署 **Cowrie**(一个 SSH/Telnet 蜜罐) 2. 将每一次攻击者交互——登录尝试、执行的命令、“下载”的文件——捕获为结构化的 JSON 日志 3. 解析这些数据并将其存储在 SQLite 数据库中 4. 提供基于 Flask 的实时仪表盘,包含: - 实时攻击信息流 - 威胁评分与严重性分类 - 数据分析(事件分布、热门命令、高频攻击者 IP) - MITRE ATT&CK 技术映射 - 系统状态监控 ## 🏗 架构 ``` [ Attacker/Bot ] | v [ Cowrie Honeypot (Docker, isolated) ] --> logs to cowrie.json | v [ Python Parser ] --> parses JSON, inserts into SQLite | v [ SQLite Database ] (attacks table) | v [ Flask Backend ] --> REST API (/api/stats, /api/events, /api/analytics, /api/intelligence) | v [ Live Dashboard ] --> Bootstrap + Chart.js, auto-refreshing every 5s ``` **Docker 隔离的重要性:** Cowrie 模拟了一台真实的、存在漏洞的 Linux 服务器,配备了虚拟的文件系统、虚假的命令响应和虚假的凭据。“闯入”的攻击者只能在这个沙箱化的模拟环境中进行交互——他们永远无法接触到真实的宿主机系统。这正是将其安全地暴露在互联网上的原因。 ## 🛠 技术栈 - **蜜罐:** [Cowrie](https://github.com/cowrie/cowrie) (SSH/Telnet) - **隔离:** Docker - **后端:** Python, Flask - **数据库:** SQLite - **前端:** Bootstrap 5, Chart.js, 原生 JavaScript - **数据流水线:** 自定义 Python JSON 日志解析器 ## 📸 截图 *(在此处添加您的截图 —— 仪表盘、实时威胁、分析、情报页面)* ## ⚙️ 设置与安装 ### 前置条件 - Docker - Python 3.10+ - pip ### 1. 克隆代码库 ``` git clone https://github.com/karthickmessi/ThreatScope-SOC.git cd ThreatScope-SOC ``` ### 2. 启动 Cowrie 蜜罐 ``` mkdir -p ~/honeypot-logs chmod -R 777 ~/honeypot-logs docker run -d \ --name cowrie \ -p 2222:2222 \ -p 2223:23 \ -v ~/honeypot-logs:/cowrie/cowrie-git/var/log/cowrie \ cowrie/cowrie ``` ### 3. 配置 Python 环境 ``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 4. 初始化数据库 ``` python database/init_db.py ``` ### 5. 导入蜜罐数据 ``` python parser/parser.py ``` ### 6. 运行仪表盘 ``` python app.py ``` 访问 **http://localhost:5000** 查看实时仪表盘。 ## 🔍 工作原理 —— 攻击生命周期 1. 攻击者(或僵尸网络)连接到蜜罐的 SSH 端口 2. 他们尝试登录 —— Cowrie 会记录尝试过的每一个用户名/密码组合 3. 一旦“登录”成功(Cowrie 被配置为接受常见的弱口令,以模拟安全性较差的服务器),攻击者将获得一个虚拟的 shell 4. 他们运行的每一个命令(`whoami`、`cat /etc/passwd`、`wget malware.sh` 等)都会被高保真地完整记录下来 5. Python 解析器读取这些结构化的 JSON 日志,并将其插入到 SQLite 中 6. Flask API 提供这些数据,仪表盘每 5 秒自动刷新一次,以进行实时展示 ## 📊 功能详解 | 页面 | 用途 | |---|---| | **仪表盘** | 实时统计数据概览 —— 事件总数、执行的命令、活动会话、整体威胁级别和评分 | | **实时威胁** | 实时攻击数据流,展示每一次发生的事件 | | **分析** | 事件分布(圆环图)、常用热门命令(柱状图)、按风险排名的攻击者 IP | | **情报** | 头号攻击者画像、计算出的威胁评分、MITRE ATT&CK 技术映射 | | **设置** | 平台/系统配置概览 | ## 🧠 威胁评分逻辑 威胁评分基于攻击者行为的权重计算得出: ``` score = (failed_login_attempts × 5) + (commands_executed × 2) ``` - **0–19:** 低危 (LOW) - **20–49:** 中危 (MEDIUM) - **50–79:** 高危 (HIGH) - **80–100:** 严重 (CRITICAL) ## 🗺 路线图 / 未来改进 - [ ] 将其部署在具有公网静态 IP 的云 VM 上,以捕获有机的互联网全球攻击流量 - [ ] 添加 GeoIP 丰富信息以映射攻击者的地理位置 - [ ] 集成实时威胁情报源(AbuseIPDB, VirusTotal)以进行 IP 信誉评分 - [ ] 迁移至 PostgreSQL + Redis,以支持更高吞吐量的多传感器部署 - [ ] 添加基于 WebSocket 的推送更新以替代轮询 ## ⚠️ 负责任的使用声明 本蜜罐严格仅用于防御性研究和教育目的——即在完全沙箱化的环境中观察攻击者行为。它永远不会授予真实的系统访问权限,也不会与真实的外部服务进行交互。 ## 👤 作者 **Karthickraja S** 渗透测试员 | 漏洞分析师 | eJPT 认证 [LinkedIn](https://linkedin.com/in/KARTHICKRAJA2005S) · [GitHub](https://github.com/karthickmessi)
标签:Flask, 可视化大屏, 后端开发, 威胁情报, 安全运营, 开发者工具, 扫描框架, 数据可视化, 蜜罐, 证书利用, 请求拦截, 逆向工具