itscalledfreefall/honeypot-threat-intelligence-pipeline
GitHub: itscalledfreefall/honeypot-threat-intelligence-pipeline
一个基于 Cowrie 蜜罐的端到端威胁情报管道,实现从日志采集、事件标准化、IOC 提取、威胁情报富化到可视化展示和自动化响应的完整工作流。
Stars: 0 | Forks: 0
# 蜜罐威胁情报管道
本仓库是 COMP490/498 毕业设计项目的实现空间:一个自主蜜罐网络与威胁情报管道。
## 项目简介
蜜罐是一种旨在吸引攻击者的诱饵系统。蜜罐并不试图预先阻止每一次攻击,而是让我们能够安全地观察恶意行为并收集有用的遥测数据,例如:
- 攻击者 IP 地址
- 登录尝试
- 获取访问权限后输入的命令
- payload 下载尝试
- 连接模式
本项目的长期目标是:
1. 在受控环境中部署一个或多个蜜罐
2. 收集并集中处理生成的日志
3. 将日志标准化为一致的事件格式
4. 利用威胁情报 API(如 AbuseIPDB 和 VirusTotal)丰富攻击者数据
5. 自动执行响应操作,如防火墙封禁
6. 在仪表盘中可视化活动
## 当前范围
本仓库从最安全、最实用的第一步开始:
1. 从文件中读取蜜罐日志事件
2. 将其标准化为结构化 schema
3. 提取简单的失陷指标 (IOC)
4. 对观察到的攻击行为进行分类
5. 导出结构化记录和批次摘要以供后续分析
这是正确的第一步,因为所有后续功能都依赖于可靠的事件解析。
## 初始架构
- `src/honeypot_pipeline/models.py`
定义整个管道中使用的标准化事件结构。
- `src/honeypot_pipeline/cowrie.py`
解析并标准化 Cowrie JSON 日志行。
- `src/honeypot_pipeline/ioc.py`
提取 IP 地址、用户名、密码、命令和 URL 等指标。
- `src/honeypot_pipeline/classification.py`
为每个事件分配简单的攻击类别和严重性。
- `src/honeypot_pipeline/cli.py`
小型命令行入口点,用于标准化 Cowrie 日志文件并导出结果。
- `src/honeypot_pipeline/dashboard.py`
运行一个只读的 Web 仪表盘,用于查看处理后的事件记录和摘要。
- `tests/`
用于解析器、分类、丰富和输出辅助工具的自动化测试。
## 为什么首选 Cowrie
Cowrie 是一款广泛使用的 SSH/Telnet 蜜罐。它能生成结构化的 JSON 日志,并直接符合项目需求。从这里开始可以使首次实现保持简单且切题。
## 项目路线图
### 阶段 1
针对 Cowrie 事件的本地解析器和标准化 schema。
### 阶段 2
威胁情报丰富:
- AbuseIPDB 查询
- VirusTotal 查询
- 恶意评分
### 阶段 3
存储与可视化:
- 保存标准化事件
- 保存丰富结果
- 构建仪表盘
### 阶段 4
自动化响应:
- 防火墙黑名单生成
- 封禁前的安全审查工作流
- 实验室环境中的可选自动执行
## 快速开始
创建虚拟环境并安装包:
```
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
运行包含的示例:
```
PYTHONPATH=src python3 -m honeypot_pipeline.cli examples/cowrie.sample.ndjson
```
运行测试:
```
PYTHONPATH=src python3 -m unittest discover -s tests -v
```
## 重要安全提示
1. 将所有捕获的数据视为不可信。
2. 不要执行攻击者的 payload。
3. 测试时不要暴露真实的生产系统。
4. 将 API 密钥保留在环境变量中,不要放入源代码版本控制。
## 下一步构建内容
在此脚手架之后的下一个编码步骤是 API 丰富:
1. 获取一个标准化事件
2. 提取攻击者 IP
3. 查询威胁情报提供商
4. 将结果附加到事件中
5. 保存丰富后的输出
该管道现在还支持:
1. 基于规则的攻击分类
2. 将处理后的事件写入 JSONL 输出文件
3. 写入批次摘要 JSON 文档
该项目现在还包括:
1. 用于浏览处理后蜜罐事件的本地 Flask 仪表盘
2. 按 IP、事件类型、攻击类别和协议进行事件过滤
3. 用于查看丰富信息和原始事件检查的详细视图
4. 可选的自动刷新,用于在追加新记录时进行实时演示
5. 安全的操作输出,如可下载的黑名单和 Markdown 报告
6. 基于 Docker 的 Cowrie 实验室路径和用于实时演示的辅助脚本
## 环境变量
将 `.env.example` 中的值复制到你的 Shell 或本地环境中:
```
export ABUSEIPDB_API_KEY="your-key-here"
export VIRUSTOTAL_API_KEY="your-key-here"
```
在启用丰富功能的情况下运行 CLI:
```
PYTHONPATH=src python3 -m honeypot_pipeline.cli \
examples/cowrie.sample.ndjson \
--enrich-abuseipdb
```
同时使用两个提供商运行 CLI:
```
PYTHONPATH=src python3 -m honeypot_pipeline.cli \
examples/cowrie.sample.ndjson \
--enrich-abuseipdb \
--enrich-virustotal
```
将处理后的记录写入磁盘:
```
PYTHONPATH=src python3 -m honeypot_pipeline.cli \
examples/cowrie.sample.ndjson \
--output-file exports/cowrie.records.jsonl \
--summary-file reports/generated/cowrie.summary.json
```
持续跟踪并追加实时 Cowrie 日志文件的处理记录:
```
PYTHONPATH=src python3 -m honeypot_pipeline.cli \
/path/to/cowrie.json \
--follow \
--poll-interval 1 \
--output-file exports/cowrie.records.jsonl \
--summary-file reports/generated/cowrie.summary.json
```
根据已保存的输出运行仪表盘:
```
honeypot-dashboard \
--records-file exports/cowrie.records.jsonl \
--summary-file reports/generated/cowrie.summary.json
```
然后打开 `http://127.0.0.1:5000`。
要进行实时演示,请在事件页面 URL 中添加 `?refresh=3`,以每 3 秒自动刷新一次。
从已保存的输出生成报告包:
```
honeypot-report \
--records-file exports/cowrie.records.jsonl \
--summary-file reports/generated/cowrie.summary.json \
--output-dir reports/generated/demo-bundle
```
## 实时实验室演示
本仓库现在包括:
- 位于 [docker-compose.yml](/home/fe/honeypot-threat-intelligence-pipeline/docker/cowrie/docker-compose.yml) 的 Cowrie Docker 配置
- 位于 [lab-demo.sh](/home/fe/honeypot-threat-intelligence-pipeline/scripts/lab-demo.sh) 的实验室辅助脚本
- 位于 [live-lab-demo.md](/home/fe/honeypot-threat-intelligence-pipeline/docs/live-lab-demo.md) 的完整演练指南
简要流程:
```
scripts/lab-demo.sh up-cowrie
scripts/lab-demo.sh pipeline
scripts/lab-demo.sh dashboard
```
然后,从另一台机器上:
```
ssh -p 2222 root@
```
打开:
`http://127.0.0.1:5000/events?refresh=3`
标签:CISA项目, IP 地址批量处理, SOC工具, 失陷标示提取, 威胁情报, 安全仪表盘, 安全可视化, 安全编排与自动化响应, 安全遥测, 实时日志分析, 开发者工具, 恶意IP分析, 情报关联, 攻击行为分析, 攻击诱骗, 日志解析, 时序数据库, 毕业设计, 漏洞发现, 网络信息收集, 网络安全, 自动化响应, 蜜罐网络, 证书伪造, 请求拦截, 逆向工具, 防御加固, 隐私保护