ansarimohammad/ai-ssh-honeypot-threat-intel
GitHub: ansarimohammad/ai-ssh-honeypot-threat-intel
一套基于 Flask 和 Scikit-learn 的全栈 SSH 蜜罐威胁情报分析平台,通过无监督和监督式机器学习将原始蜜罐日志转化为可操作的安全情报和可视化仪表盘。
Stars: 0 | Forks: 0
# 🛡️ AI 驱动的 SSH 蜜罐威胁情报系统
[](https://www.python.org/)
[](https://flask.palletsprojects.com/)
[](https://aisshhoneypot-80qj.onrender.com/)
一个专为 SOC (安全运营中心) 分析师和研究人员设计的高级全栈安全分析平台。该系统利用无监督聚类、异常检测和监督式风险评分,将原始的 SSH 蜜罐日志转化为可操作的情报。
## 🚀 在线部署
**在此访问仪表盘:** [https://aisshhoneypot-80qj.onrender.com/](https://aisshhoneypot-80qj.onrender.com/)
## ✨ 核心功能
### 1. 📊 SOC 概览 (管理仪表盘)
- **实时 KPIs**:监控总会话数、高风险威胁、检测到的异常和唯一来源国家。
- **活动监控**:通过双轴折线图随时间可视化攻击趋势。
- **最高风险优先级排序**:即时洞察最危险的活动会话。
### 2. 🧠 行为智能 (无监督 ML)
- **聚类**:使用 **MiniBatchKMeans** 根据行为对攻击者进行分组。
- **异常检测**:使用 **IsolationForest** 识别零日攻击或异常攻击。
- **2D 投影**:通过 **PCA** 将高维行为数据投影到 2D 空间,以便直观可视化。
- **攻击者画像**:雷达图对比行为聚类(持续时间 vs 命令 vs 体量)。
### 3. 🛡️ ML 风险引擎 (监督式 ML)
- **预测性评分**:使用 **RandomForest** 分类器为每个会话分配 0-100 的风险评分。
- **性能透明度**:实时显示模型的准确率、精确率和召回率。
- **攻击向量分析**:会话特征的详细雷达图细分(失败登录次数、命令多样性等)。
### 4. 🌍 地理与内部威胁情报
- **全局地图**:使用 **Leaflet.js** 的交互式世界地图,追踪攻击来源。
- **内部网络安全**:私有 IP 范围的专用视图,识别横向移动和内部风险热点。
- **ASN 分析**:按 ISP 和自治系统对威胁进行分类,以实现更好的归因。
## 📸 屏幕截图
| SOC 概览 | 行为智能 |
| :---: | :---: |
|  |  |
| ML 风险引擎 | 地理威胁地图 |
| :---: | :---: |
|  |  |
## 🛠️ 技术栈
### 后端与 ML
- **框架**:Flask (Python)
- **数据科学**:Pandas, NumPy
- **机器学习**:Scikit-learn (RandomForest, IsolationForest, MiniBatchKMeans, PCA, StandardScaler)
- **地理位置**:GeoIP2
### 前端
- **UI 框架**:Bootstrap 5 (深色 SOC 主题)
- **可视化**:Chart.js (KPIs、柱状图、雷达图、散点图、环形图)
- **地图**:Leaflet.js
- **图标**:FontAwesome 6
### DevOps 与 Pipeline
- **日志摄取**:针对 Cowrie JSON 日志的内存优化流式解析器。
- **自动化**:Systemd 定时器,用于定期批处理。
- **部署**:Gunicorn (WSGI 服务器)。
## ⚙️ 安装与设置
### 1. 前置条件
- Python 3.8 或更高版本
- [Cowrie 蜜罐](https://github.com/cowrie/cowrie) (可选,用于获取实时数据)
### 2. 克隆仓库
```
git clone https://github.com/ansarimohammad/ai-ssh-honeypot-threat-intel.git
cd ai-ssh-honeypot-threat-intel
```
### 3. 安装依赖
```
pip install -r requirements.txt
```
### 4. 运行仪表盘
```
python app.py
```
在浏览器中访问 `http://localhost:5000`。
### 5. (可选) 运行数据 Pipeline
处理原始 Cowrie 日志并更新仪表盘数据集:
```
python pipeline.py
```
## 🖥️ 服务器部署 (Pipeline 与仪表盘)
### 1. 📂 Pipeline 配置 (`pipeline.py`)
在蜜罐服务器上部署 pipeline 之前,请确保在 [pipeline.py](pipeline.py) 顶部正确设置了以下路径:
```
COWRIE_LOG_PATH = "/home/youruser/cowrie/var/log/cowrie/cowrie.json"
OUTPUT_CSV_PATH = "/home/youruser/ai-ssh-honeypot/data/attacks.csv"
DASHBOARD_UPLOAD_URL = "https://your-dashboard-url.com/upload"
```
### 2. ⚙️ 自动化执行 (Systemd)
要在 Linux 服务器上每 10 分钟自动运行一次 pipeline:
1. **复制服务文件:**
sudo cp cowrie-pipeline.service /etc/systemd/system/
sudo cp cowrie-pipeline.timer /etc/systemd/system/
2. **更新服务文件:**
编辑 `/etc/systemd/system/cowrie-pipeline.service` 以匹配您服务器的用户和路径:
- `User=youruser`
- `Group=youruser`
- `WorkingDirectory=/path/to/ai-ssh-honeypot`
- `ExecStart=/path/to/venv/bin/python3 pipeline.py`
3. **启用并启动:**
sudo systemctl daemon-reload
sudo systemctl enable cowrie-pipeline.timer
sudo systemctl start cowrie-pipeline.timer
4. **监控状态:**
# 检查计时器是否处于活动状态
systemctl list-timers --all | grep cowrie-pipeline
# 查看实时 pipeline 日志
journalctl -u cowrie-pipeline -f
## 📂 项目结构
- `app.py`:主 Flask 应用程序和 API endpoints。
- `pipeline.py`:用于日志处理的增量 ETL 和 ML pipeline。
- `static/`:前端资产(JavaScript 模块、CSS、自定义图标)。
- `templates/`:每个仪表盘视图的 Jinja2 HTML 模板。
- `data/`:用于存放处理后的 `final_dashboard_dataset.csv` 的目录。
标签:Apex, Flask, IP 地址批量处理, MiniBatchKMeans, PCA降维, PFX证书, Python, SOC分析平台, SSH蜜罐, 人工智能, 威胁情报, 孤立森林, 开发者工具, 开源安全工具, 异常检测, 攻击检测, 无后门, 无监督学习, 有监督学习, 机器学习, 用户模式Hook绕过, 网络安全, 蓝军防守, 进程注入, 逆向工具, 逆向工程平台, 随机森林, 隐私保护