navaneedm7/threat-hunting-dashboard

GitHub: navaneedm7/threat-hunting-dashboard

基于 Streamlit 和模拟 SIEM 数据构建的威胁狩猎仪表盘,用于展示从日志狩猎、MITRE ATT&CK 检测到攻击时间线重建的完整 SOC 分析工作流程。

Stars: 0 | Forks: 0

# 🛡️ 威胁狩猎仪表盘 一个基于 Streamlit 构建的威胁狩猎工作台,使用模拟的 SIEM 遥测数据 (Windows 身份验证日志、Sysmon 风格的进程创建以及网络 连接日志)。它允许您狩猎原始日志,查看映射到 MITRE ATT&CK 的 检测结果,重建攻击时间线,并记录调查笔记 — 展示 SOC/威胁狩猎分析师的端到端工作流程。 ## 为什么做这个项目 这个作品集项目旨在展示: - 对真实 SIEM(Splunk / Sentinel / ELK)摄取的日志源的理解 - 检测工程:编写可解释的、基于规则的检测 - 将检测结果映射到 **MITRE ATT&CK** 框架 - 构建面向分析师的工具(查询接口、告警研判、案例笔记) - 从不同的日志源重建多阶段攻击 ## 内嵌的攻击场景 合成数据集(`data/generate_logs.py`)在约 1,500 行正常后台活动的基础上, 植入了一个真实的多阶段入侵: | 阶段 | 技术 | MITRE ID | 描述 | |---|---|---|---| | 1 | Phishing | T1566.001 | 恶意 Word 文档生成 PowerShell | | 2 | Execution | T1059.001 | 混淆/编码的 PowerShell 命令 | | 3 | C2 | T1071 | 从外部 IP 下载 Payload | | 4 | Credential Access | T1003.001 | LSASS 内存转储 (procdump) | | 5 | Brute Force | T1110 | 针对 `svc_sql` 的密码喷洒 | | 6 | Lateral Movement | T1021.002 | PsExec 风格的远程执行 | | 7 | C2 | T1071.004 | 固定间隔的 DNS Beaconing | | 8 | Exfiltration | T1041 | 向攻击者 IP 传出 245MB 数据 | 仪表盘的检测规则捕获了每个阶段 —— “攻击时间线”页面 按时间顺序重建了完整的杀伤链。 ## 功能 - **概览** — KPI 卡片、按严重程度/技术分类的发现、随时间变化的事件量 - **狩猎查询** — 跨身份验证/进程/网络日志的交互式过滤,支持 一键“快速狩猎”(编码的 PowerShell、Office→shell、罕见进程) - **检测** — 映射到 MITRE 的告警流,包含严重程度、证据和 调查/重新打开工作流;可导出为 CSV - **攻击时间线** — 按时间顺序重建入侵过程 - **案例笔记** — 针对每项发现的分析师笔记,展示调查工作流程 ## 技术栈 - **Streamlit** — UI/仪表盘框架 - **Pandas** — 日志解析和查询 - **Plotly** — 交互式图表 - 检测逻辑是纯 Python/Pandas —— 完全透明,没有黑盒 ## 项目结构 ``` threat-hunting-dashboard/ ├── data/ │ ├── generate_logs.py # synthetic log generator (run once) │ ├── auth_logs.csv │ ├── process_logs.csv │ └── network_logs.csv ├── detections/ │ └── rules_engine.py # 9 MITRE-mapped detection rules ├── app/ │ └── main.py # Streamlit application ├── requirements.txt └── README.md ``` ## 设置与运行 ``` # 1. 克隆 / 解压项目 cd threat-hunting-dashboard # 2. 安装依赖 pip install -r requirements.txt # 3. (可选)使用不同的 seed 重新生成 synthetic dataset python data/generate_logs.py # 4. 启动 dashboard streamlit run app/main.py ``` 应用将在 `http://localhost:8501` 打开。 ## 部署(用于您的简历链接) 此代码库可直接免费部署到 [Streamlit Community Cloud](https://streamlit.io/cloud): 1. 将此代码库推送到 GitHub 2. 访问 share.streamlit.io → 新建应用 → 指向 `app/main.py` 3. 在您的简历/LinkedIn 上分享公开的 URL ## 已实现的检测规则 | 规则 | MITRE 技术 | 来源 | |---|---|---| | 可疑的 PowerShell(编码/隐藏) | T1059.001 | 进程 | | Office 应用程序生成 Shell | T1566.001 | 进程 | | 凭据转储 (LSASS) | T1003.001 | 进程 | | 暴力破解 | T1110 | 身份验证 | | 暴力破解 → 成功登录 | T1110 → T1078 | 身份验证 | | 横向移动工具 (PsExec/WMI) | T1021.002 | 进程 | | DNS Beaconing(固定间隔) | T1071.004 | 网络 | | 数据外发(大量传输) | T1041 | 网络 | | 已知恶意 IP 连接 | T1071 | 网络 | ## 扩展本项目 进一步发展的想法(面试中很好的讨论点): - 将 CSV 摄取替换为实时的 **Elasticsearch** 或 **Splunk** 后端 - 为“已知恶意 IP”规则添加真实的威胁情报源(例如 AbuseIPDB API) - 添加一个评分/风险模型,将每个主机的多个发现聚合为 整体风险评分 - 使用 Docker + docker-compose 进行容器化,实现一键设置 - 添加用户身份验证,以实现多分析师案例管理视图 ## 免责声明 本项目中的所有数据均为**合成生成** —— 未使用任何真实日志、IP 或凭据。可安全公开发布。
标签:IP 地址批量处理, Kubernetes, OpenCanary, Python, Streamlit, 安全, 安全运营中心, 无后门, 网络映射, 访问控制, 超时处理, 逆向工具