Farah-Adam/soc-threat-investigation-platform

GitHub: Farah-Adam/soc-threat-investigation-platform

一个基于Flask的轻量级模块化SOC模拟平台,集成日志分析、网络扫描、流量检测与威胁情报关联,帮助安全从业者实践真实威胁调查工作流。

Stars: 4 | Forks: 0

# 🔐 SOC 威胁调查平台 一个模块化的安全运营中心 (SOC) 模拟平台,旨在复现真实的网络安全威胁检测工作流,包括日志分析、网络扫描、数据包检查和威胁情报关联。 ## 🧠 项目意义 现代 SOC 团队依赖多种工具 (SIEM、IDS、威胁情报平台) 来检测和响应攻击。 本项目演示了如何使用 Python 在统一系统中实现这些能力,并提供以下方面的实践经验: * 威胁检测流水线 * 攻击模式识别 * 网络侦察分析 * 事件调查工作流 ## 🚀 核心能力 * 🔍 从系统日志中检测暴力破解和凭证攻击 * 🌐 通过多线程端口扫描识别暴露的服务 * 📡 分析网络流量以检测 SQLi、XSS 和反向 shell * 🧠 将 IP 与真实的威胁情报源进行关联 * 🖥 提供统一的 SOC 仪表板及报告功能 ## 🏗 架构 本项目遵循**模块化单体架构**,其中: * 独立的检测引擎作为模块运行 * Flask 作为编排层 * SQLite 用于轻量级数据持久化 ## 🎯 现实相关性 本平台模拟了以下岗位的核心职责: * SOC 分析师 * 安全工程师 * 事件响应人员 它反映了真实环境中使用的工作流,例如: * 日志分析 → 检测 * 网络扫描 → 暴露面评估 * 数据包检查 → 威胁验证 * 威胁情报 → 关联 ## 快速开始 ``` # 1. 安装 dependencies pip install flask werkzeug # 2. 启动 server python app.py # 3. 在 browser 中打开 http://localhost:5000 ``` ## 项目结构 ``` soc_platform/ ├── app.py ← Flask backend (main entry point) ├── requirements.txt ├── modules/ │ ├── log_analyzer.py ← Phase 1: brute-force / SSH detection │ ├── network_scanner.py ← Phase 2: TCP port scan + banner grab │ ├── packet_analyzer.py ← Phase 3: SQLi / XSS / ReverseShell │ └── threat_intel.py ← Phase 4: IP reputation matching ├── templates/ │ └── index.html ← Full dashboard UI ├── uploads/ ← Uploaded log / pcap files └── reports/ ← Exported JSON reports ``` ## API 端点 | Method | Endpoint | Description | |--------|-----------------------|--------------------------------| | GET | / | 仪表板 UI | | GET | /api/log/demo | 在演示数据上运行日志分析 | | POST | /api/log/analyze | 分析上传的 auth.log | | POST | /api/scan | 扫描目标 IP/主机名 | | GET | /api/packet/demo | 在演示数据上运行数据包分析 | | POST | /api/packet/analyze | 分析上传的 .pcap 文件 | | POST | /api/threat/check | 根据威胁情报源检查 IP | | POST | /api/report/export | 导出完整的调查 JSON | ## 模块 ### 模块 1 — 日志分析器 - 上传任意 auth.log / syslog 文件 - 检测暴力破解(滑动 60 秒时间窗口) - 检测失败登录后的成功登录(严重) - 检测无效用户名扫描 ### 模块 2 — 网络扫描器 - 输入任意 IP 或主机名 - 并发扫描前 24 个常见端口 - 抓取服务 banner(SSH 版本、Apache、MySQL...) - 对每个开放端口进行风险评级并提供解释 ### 模块 3 — 数据包分析器 - 上传来自 Wireshark 的 .pcap 文件或运行内置演示 - 检测:SQLi、XSS、CMDi、PathTraversal、ReverseShell、Obfuscation - 在扫描前解码 base64 和 URL 编码的 payload ### 模块 4 — 威胁情报 - 输入 IP(每行一个)进行检查 - 与本地黑名单匹配(可扩展接入实时 API) - 显示威胁类别、来源和国家 ### 事件报告 - 根据所有已完成的模块运行自动生成 - 可下载为 JSON 格式 - 可通过浏览器打印为 PDF ## 使用实时 API 扩展威胁情报 ``` # 在 modules/threat_intel.py 中,添加: import requests def check_abuseipdb(ip, api_key): r = requests.get( 'https://api.abuseipdb.com/api/v2/check', headers={'Key': api_key, 'Accept': 'application/json'}, params={'ipAddress': ip, 'maxAgeInDays': 90} ) return r.json()['data'] ```
标签:CISA项目, Flask, Python, SQLite, SQL注入检测, XSS检测, 云存储安全, 免杀技术, 关联分析, 凭据攻击, 反弹Shell检测, 后端开发, 威胁情报, 子域名枚举, 安全事件响应, 安全仪表盘, 安全工程, 安全运营中心, 开发者工具, 插件系统, 攻击模式识别, 数据包检测, 数据统计, 无后门, 暴力破解检测, 端口扫描, 系统安全, 红队行动, 网络安全, 网络扫描, 网络映射, 逆向工具, 隐私保护