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安全, 会话分析, 准确率, 召回率, 孤立森林, 异常检测, 攻击分类, 数据清洗, 机器学习, 模型评估, 混淆矩阵, 特征工程, 特征聚合, 精度, 网络安全, 蜜罐, 行为聚类, 证书利用, 逆向工具, 隐私保护