Dhivyashri-26/Honeypot-attack-detection
GitHub: Dhivyashri-26/Honeypot-attack-detection
一个基于机器学习的SSH蜜罐日志分析系统,用于检测和分类恶意攻击会话。
Stars: 0 | Forks: 0
# 蜜罐异常检测
基于机器学习分析 SSH 蜜罐 (Cowrie) 日志,使用隔离森林与 KMeans 聚类检测和分类攻击会话。
## 概述
本项目分析蜜罐认证日志以识别恶意 SSH 会话。它结合使用异常检测(隔离森林)和行为聚类来对攻击者模式进行分类。
**核心结果:**
- F1 分数:0.9273(调优后模型)
- 准确率:99.72%
- 召回率:95.26%
- 精确率:90.32%
## 功能
- **数据清洗**:处理缺失值、重复数据、时间戳验证
- **特征工程**:基于会话级别的聚合与行为指标
- 登录尝试与成功率
- 命令多样性与关键词
- 时间模式(小时、星期几)
- 会话持续时间与活动速率
- **聚类分析**:K-means 分段用于行为画像
- **异常检测**:隔离森林配合优化的阈值调参
- **可视化**:PCA 投影、混淆矩阵、聚类分析
## 安装说明
### 前置条件
- Python 3.8+
- Jupyter Notebook (可选,用于交互式分析)
### 安装步骤
```
git clone https://github.com/yourusername/honeypot-detection.git
cd honeypot-detection
pip install -r requirements.txt
```
## 数据格式
需要 Cowrie JSON 日志(JSONL 格式),包含以下字段:
- `timestamp`: ISO 8601 格式
- `session`: 唯一会话 ID
- `eventid`: 事件类型 (cowrie.login.success, cowrie.login.failed, cowrie.command.input)
- `peerIP` 或 `src_ip`: 源 IP 地址
- `username`: SSH 用户名
- `password`: SSH 密码
- `input`: 执行的命令
## 用法
### 交互模式(Notebook)
```
jupyter notebook Honeypot.ipynb
```
然后在单元格 2 中更新数据路径:
```
log_dir = Path("path/to/your/logs")
```
### 性能
完整流水线执行时间:约 40 秒(在典型硬件上)
- 数据加载与清洗:约 8 秒
- 特征工程:约 35 秒
- 聚类与异常检测:约 10 秒
- 模型评估:约 10 秒
## 项目结构
```
honeypot-detection/
├── Honeypot.ipynb # Main analysis notebook
├── requirements.txt # Python dependencies
├── .gitignore # Git ignore file
└── README.md # This file
```
## 结果解读
### 异常分数
- **负数分数**:异常可能性越高
- **调优阈值**:-0.098311(针对 F1 分数优化)
- 预测:低于阈值的会话 → 恶意
### 聚类分析
- KMeans 自动选择最优聚类数 (k=2-8)
- 每个聚类显示不同的行为模式
- 每个聚类的恶意率有助于识别攻击类型
### 分类报告
- **IsolationForest_Default**:标准 contamination=0.05 阈值
- **IsolationForest_Tuned**:通过在训练集上进行 F1 分数扫描进行优化
## 注意事项
- 假设 Cowrie 蜜罐日志结构
- 基于时间划分训练/测试集以防止数据泄漏
- 特征缩放使用 StandardScaler 以保证距离度量公平
- 聚类指标随机化使用 1 万样本以提升速度
- 所有操作使用 NumPy 向量化以提高效率
## 许可证
MIT
## 作者
作为蜜罐安全分析项目创建
标签:Apex, Cowrie蜜罐, F1分数, JSON日志, K均值聚类, NoSQL, PCA投影, SSH安全, 会话分析, 准确率, 召回率, 孤立森林, 异常检测, 攻击分类, 数据清洗, 机器学习, 模型评估, 混淆矩阵, 特征工程, 特征聚合, 精度, 网络安全, 蜜罐, 行为聚类, 证书利用, 逆向工具, 隐私保护