fukusuket/THuntLab
GitHub: fukusuket/THuntLab
一站式 Docker 化威胁狩猎实验室,集成自动化执行、数据可视化、探索性分析与情报管理的完整工作流。
Stars: 2 | Forks: 0
# 🛡️THuntLab
一个综合性的威胁狩猎实验室环境,通过 Docker 容器集成了 Jenkins CI/CD、Streamlit 分析仪表板、用于数据探索的 Jupyter Notebook 以及 MISP 威胁情报平台。
## 架构
该平台由四个运行在 Docker 容器中的主要服务组成:
1. **Jenkins** (端口 8080): 执行自动化的威胁狩猎任务
2. **Streamlit App** (端口 8081): 提供交互式数据分析界面
3. **Jupyter Notebook** (端口 8082): 用于探索性数据分析 and 脚本编写
4. **MISP** (端口 80/443): 管理威胁情报数据

## 前置条件
- [Docker Engine/ Docker Compose](https://docs.docker.com/engine/install/)
- Git (用于子模块)
- Make
## 系统要求
- 最低 4GB RAM
- 最低 15GB 可用磁盘空间
## 快速开始
1. **克隆包含子模块的仓库:**
git clone --recurse-submodules https://github.com/fukusuket/THuntLab.git
cd THuntLab
2. **构建并启动所有服务:**
sudo make dev
3. **访问服务:**
- Jenkins: http://localhost:8080
- Streamlit 仪表板: http://localhost:8081
- Jupyter Notebook: http://localhost:8082
- MISP 平台: https://localhost
- (邮箱: admin@admin.test / 密码: admin)
## 截图
快速启动后,您可以访问以下仪表板:
## 可用命令
使用包含的 Makefile 轻松管理服务:
### 通用命令
- `make build` - 构建所有服务
- `make up` - 启动所有服务
- `make down` - 停止所有服务
- `make restart` - 重启所有服务
- `make logs` - 显示所有服务的日志
- `make status` - 检查服务状态
- `make clean` - 移除所有服务和卷
- `make dev` - 构建并启动所有服务
## 共享目录
`./shared` 目录作为公共工作区:
- `hunt.py`: 由 Jenkins 执行的示例威胁狩猎脚本
- `threatfeed-collector/ioc_collect.py`: 用于与 MISP 交互的示例脚本
- `streamlit.py`: Streamlit 仪表板应用程序
- 可以将额外的脚本和数据文件放在此处,以便跨服务访问
## 相关项目
- [ThreatfeedCollector](https://github.com/fukusuket/ThreatfeedCollector)
- 威胁研究源,过滤噪音,创建 MISP 事件,并生成 CSV 统计数据。
## 安全注意事项
**警告**:此配置专为实验室和教育目的而设计。它包含一些**不适合**生产环境的安全设置:
- Jenkins 认证已禁用
- CSRF 保护已禁用
- 匿名用户拥有完全的管理员访问权限
在生产环境中使用时,请实施适当的身份验证、授权和安全控制。
## 测试环境
- macOS M3
- Windows11 (WSL2 with Ubuntu 24.04.02 LTS)
## 开发
### 添加新的狩猎脚本
1. 将 Python 脚本放在 `./shared` 目录中
2. 创建新的 Jenkins 任务来执行它们
3. 使用 Streamlit 仪表板可视化结果
### 自定义仪表板
修改 `./shared/streamlit.py`,为您的威胁狩猎数据创建自定义可视化和分析界面。
### MISP 集成
配置 MISP,通过共享卷或 API 连接与您的狩猎脚本和仪表板共享威胁情报数据。
## 故障排除
- 检查容器日志:`make logs`
- 验证端口可用性 (8080, 8081, 8082, 80, 443)
- 确保 Docker 守护进程正在运行
## 许可证
本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0-only) 许可。有关完整的条款,包括作为网络服务运行修改版本时提供源代码的要求,请参阅 `LICENSE`。
## 致谢
此工具的实现得益于以下杰出的开源项目的维护者和贡献者。
- [MISP](https://www.misp-project.org/) 项目提供的威胁情报平台
- [Jenkins](https://www.jenkins.io/) 社区提供的自动化服务器
- [Streamlit](https://streamlit.io/) 团队提供的数据应用框架
- [Jupyter](https://jupyter.org/) 社区提供的交互式计算环境
## 可用命令
使用包含的 Makefile 轻松管理服务:
### 通用命令
- `make build` - 构建所有服务
- `make up` - 启动所有服务
- `make down` - 停止所有服务
- `make restart` - 重启所有服务
- `make logs` - 显示所有服务的日志
- `make status` - 检查服务状态
- `make clean` - 移除所有服务和卷
- `make dev` - 构建并启动所有服务
## 共享目录
`./shared` 目录作为公共工作区:
- `hunt.py`: 由 Jenkins 执行的示例威胁狩猎脚本
- `threatfeed-collector/ioc_collect.py`: 用于与 MISP 交互的示例脚本
- `streamlit.py`: Streamlit 仪表板应用程序
- 可以将额外的脚本和数据文件放在此处,以便跨服务访问
## 相关项目
- [ThreatfeedCollector](https://github.com/fukusuket/ThreatfeedCollector)
- 威胁研究源,过滤噪音,创建 MISP 事件,并生成 CSV 统计数据。
## 安全注意事项
**警告**:此配置专为实验室和教育目的而设计。它包含一些**不适合**生产环境的安全设置:
- Jenkins 认证已禁用
- CSRF 保护已禁用
- 匿名用户拥有完全的管理员访问权限
在生产环境中使用时,请实施适当的身份验证、授权和安全控制。
## 测试环境
- macOS M3
- Windows11 (WSL2 with Ubuntu 24.04.02 LTS)
## 开发
### 添加新的狩猎脚本
1. 将 Python 脚本放在 `./shared` 目录中
2. 创建新的 Jenkins 任务来执行它们
3. 使用 Streamlit 仪表板可视化结果
### 自定义仪表板
修改 `./shared/streamlit.py`,为您的威胁狩猎数据创建自定义可视化和分析界面。
### MISP 集成
配置 MISP,通过共享卷或 API 连接与您的狩猎脚本和仪表板共享威胁情报数据。
## 故障排除
- 检查容器日志:`make logs`
- 验证端口可用性 (8080, 8081, 8082, 80, 443)
- 确保 Docker 守护进程正在运行
## 许可证
本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0-only) 许可。有关完整的条款,包括作为网络服务运行修改版本时提供源代码的要求,请参阅 `LICENSE`。
## 致谢
此工具的实现得益于以下杰出的开源项目的维护者和贡献者。
- [MISP](https://www.misp-project.org/) 项目提供的威胁情报平台
- [Jenkins](https://www.jenkins.io/) 社区提供的自动化服务器
- [Streamlit](https://streamlit.io/) 团队提供的数据应用框架
- [Jupyter](https://jupyter.org/) 社区提供的交互式计算环境标签:CI/CD 安全, Docker, HTTP/HTTPS抓包, HTTP工具, IOC 管理, Jenkins, Kubernetes, NoSQL, PE 加载器, Python, Shodan, Streamlit, 人体姿态估计, 威胁情报, 安全实验室, 安全实验环境, 安全运营, 安全防御评估, 容器化安全, 开发者工具, 态势感知, 扫描框架, 攻击模拟, 数据投毒防御, 数据探索, 无后门, 网络安全, 网络安全审计, 访问控制, 请求拦截, 逆向工具, 隐私保护, 驱动签名利用