ismailhalawa-ctrl/Endpoint-Log-Anomaly-Detection-Bot
GitHub: ismailhalawa-ctrl/Endpoint-Log-Anomaly-Detection-Bot
基于 Isolation Forest 和 K-Means 的 Windows 安全日志实时异常检测系统,提供风险分级、图分析和可视化 Dashboard。
Stars: 0 | Forks: 0
# 🛡️ Endpoint Log 异常检测 Bot
这是一个基于机器学习的 Endpoint 安全系统,使用 **Isolation Forest**、**K-Means Clustering**、**Graph Analysis** 和 **实时监控 Bot** 从 Windows Security Event Logs 中检测异常行为。
## 📌 概述
本项目分析原始的 Windows Security Event Logs,提取行为特征,并应用无监督机器学习技术来识别可疑活动。
该系统包含:
- Log 解析与预处理
- 特征工程
- 使用 K-Means 分配风险等级
- 使用 Isolation Forest 进行异常检测
- 基于 Graph 的 IP 关系分析
- 实时检测 Bot
- 用于数据可视化的 Streamlit Dashboard
## 🚀 功能
- ✅ 解析原始 Windows Security Event Logs (JSON)
- ✅ 清洗和预处理安全数据
- ✅ 用于行为分析的特征工程
- ✅ 使用 Isolation Forest 检测异常
- ✅ 使用 K-Means Clustering 分配低 / 中 / 高风险
- ✅ 识别高频可疑用户和 IP 地址
- ✅ 使用 NetworkX 进行 Graph 分析
- ✅ 使用 Watchdog 进行实时 Endpoint 监控
- ✅ 交互式 Streamlit Dashboard
- ✅ 自动安全告警
## 🛠️ 使用的技术
- Python
- Pandas
- NumPy
- Scikit-learn
- NetworkX
- Streamlit
- Watchdog
- Joblib
- Matplotlib
- Seaborn
## 📂 项目结构
```
Endpoint-Log-Anomaly-Detection-Bot/
│
├── SecurityProject.ipynb # Model training and analysis
├── SecurityAnalysisReport.docx # Project report
├── dataset/ # Windows Security Event Logs
├── models/ # Saved ML models
├── bot.py # Real-time monitoring bot
├── dashboard.py # Streamlit dashboard
├── requirements.txt
└── README.md
```
## ⚙️ 机器学习 Pipeline
```
Raw Windows Logs
│
▼
Log Parsing
│
▼
Preprocessing
│
▼
Feature Engineering
│
▼
Standard Scaling
│
▼
PCA
│
┌──────┴─────────┐
▼ ▼
K-Means Isolation Forest
▼ ▼
Risk Level Anomaly Score
│
▼
Security Alert
```
## 📊 风险分类
本项目使用 **K-Means** 将 Endpoint 事件分为三个聚类。
| Cluster | 风险 |
|----------|------|
| Cluster 0 | 🟢 低 |
| Cluster 1 | 🟡 中 |
| Cluster 2 | 🔴 高 |
## 🤖 实时检测
Bot 会持续监控传入的 Windows Security Logs。
对于每一个新事件,它会:
- 解析 Log
- 提取特征
- 应用预处理
- 运行 PCA
- 预测异常分数
- 分配风险等级
- 为可疑活动生成告警
## 🌐 Dashboard
Streamlit Dashboard 提供:
- 已处理事件总数
- 高风险告警
- 独立用户数
- 平均异常分数
- 近期告警
- 用户活动图表
- 异常分布
- 实时监控
## 📈 Graph 分析
利用 **NetworkX**,本项目构建了一个 IP 关系图,以识别:
- 高连接度的 IP
- 可疑的通信模式
- Degree Centrality
- Top 10 最具影响力的 IP 地址
## 🧠 使用的模型
### Isolation Forest
用于在无标签数据的情况下检测异常的 Endpoint 行为。
### K-Means Clustering
将相似的 Endpoint 活动分组到不同的风险类别中。
### PCA
在保留重要信息的同时进行降维。
## 📦 安装
克隆仓库
```
git clone https://github.com/ismailhalawa-ctrl/Endpoint-Log-Anomaly-Detection-Bot.git
```
进入项目
```
cd Endpoint-Log-Anomaly-Detection-Bot
```
安装依赖项
```
pip install -r requirements.txt
```
## ▶️ 运行
训练 / 分析
```
jupyter notebook Log Anomaly Detection Code.ipynb
```
## 📄 报告
完整的实现细节、方法论、实验和分析可在以下文件中查看:
**Log Anomaly Detection Report.pdf**
## 👨💻 作者
**Ismail Halawa**
GitHub:
https://github.com/ismailhalawa-ctrl
标签:Apex, Kubernetes, Windows事件日志, 安全运营, 异常检测, 扫描框架, 机器学习, 特权检测, 终端安全, 逆向工具