sagnik89/cowrie-honeypot-dashboard

GitHub: sagnik89/cowrie-honeypot-dashboard

一个端到端的 SSH 蜜罐威胁分析管道,通过部署 Cowrie 蜜罐捕获真实攻击活动,结合威胁情报富化与 Grafana 可视化来监控和分析恶意登录行为。

Stars: 1 | Forks: 0

# 🛡️ Cowrie SSH 蜜罐分析 一个端到端威胁监控 pipeline,在 AWS EC2 实例上部署 **Cowrie SSH 蜜罐**,收集真实世界的攻击者活动,使用 **AbuseIPDB API** 对数据进行丰富,将其存储在 **SQLite** 中,并通过交互式 **Grafana 仪表板**可视化攻击趋势。 ## 概述 本项目演示了如何在受控环境中使用蜜罐来收集和分析恶意的 SSH 登录尝试。 该 pipeline 包括: - 在 AWS EC2 上部署 Cowrie SSH 蜜罐 - 使用自定义的 Python ETL 脚本解析 Cowrie JSON 日志 - 移除重复事件 - 利用 AbuseIPDB 的威胁情报来丰富攻击者 IP - 将结构化数据存储在 SQLite 中 - 从 Grafana 查询数据库 - 实时可视化攻击统计信息 # 架构

# 功能 - 使用 Cowrie 部署的 SSH 蜜罐 - 使用 Python 自动解析日志 - 攻击去重过滤 - 使用 AbuseIPDB 进行威胁情报丰富 - 用于结构化存储的 SQLite 数据库 - 交互式 Grafana 仪表板 - 使用 Cron 每 10 分钟自动执行一次 # 技术栈 | 组件 | 技术 | |-----------|------------| | 蜜罐 | Cowrie | | 编程语言 | Python 3 | | 数据库 | SQLite | | 可视化 | Grafana | | 威胁情报 | AbuseIPDB API | | 云平台 | AWS EC2 | | 操作系统 | Ubuntu | | 自动化 | Cron | # 仪表板 Grafana 仪表板提供了捕获的攻击数据概览。

### 仪表板包含 - 攻击时间线 - 攻击总数 - 每个攻击者的平均攻击次数 - 独立攻击者 - 攻击概览 # 解析后的攻击数据 解析后,每次身份验证尝试都会在 SQLite 中转换为结构化记录。

捕获的信息包括: - 时间戳 - 源 IP - 源端口 - 用户名 - 密码 - 国家 - 滥用分数 - 协议 - 会话 ID # 项目结构 ``` . ├── README.md ├── dashboard │ └── dashboard.json # Exported Grafana dashboard ├── database │ └── schema.sql # SQLite database schema ├── docs │ └── architecture.png # Project architecture ├── logs │ └── parser.log # ETL execution logs ├── screenshots │ ├── dashboard.jpeg # Grafana dashboard │ ├── database.jpeg # Parsed attack records │ └── mid_row.png # Dashboard statistics └── scripts ├── cronjob.txt # Cron configuration └── logparser.py # Python ETL script ``` # 数据库 Schema 数据库由三个表组成: ### 攻击 存储每次 SSH 身份验证尝试。 存储的信息包括: - 时间戳 - 源 IP - 用户名 - 密码 - 国家 - ISP - AbuseIPDB 分数 - 协议 - 会话 ID ### sessions 存储每个攻击者会话的元数据。 包括: - 会话持续时间 - SSH 客户端版本 - HASSH 指纹 - 执行的命令 - 下载的文件 ### commands 存储攻击者在身份验证后执行的每条 shell 命令。 # 设置 ## 1. 克隆仓库 ``` git clone https://github.com//cowrie-honeypot.git cd cowrie-honeypot ``` ## 2. 安装依赖 ``` pip install -r requirements.txt ``` ## 3. 配置 Cowrie 安装 Cowrie 并确保它正在以下位置生成日志: ``` cowrie/var/log/cowrie/cowrie.json ``` ## 4. 配置解析器 更新 `scripts/logparser.py` 中的以下变量: - Cowrie 日志路径 - SQLite 数据库路径 - AbuseIPDB API Key ## 5. 初始化数据库 ``` sqlite3 honeypot.db < database/schema.sql ``` ## 6. 运行解析器 ``` python3 scripts/logparser.py ``` ## 7. 使用 Cron 实现自动化 Cron 示例条目: ``` */10 * * * * /usr/bin/python3 /home/cowrie/logparser.py >> /home/ubuntu/parser.log 2>&1 ``` ## 8. 导入仪表板 导入位于以下位置的仪表板: ``` dashboard/dashboard.json ``` 到 Grafana 中,并将其连接到 SQLite 数据库。 # 许可证 本项目旨在用于教育和研究目的。
标签:AWS, DPI, Grafana, SQLite, 代码示例, 威胁情报, 安全, 开发者工具, 数据分析, 蜜罐, 证书利用, 超时处理