Farooq-Syed/host-based-behavioral-monitoring-and-anomaly-detection
GitHub: Farooq-Syed/host-based-behavioral-monitoring-and-anomaly-detection
结合规则引擎与多种机器学习算法,对主机遥测数据进行异常行为检测和勒索软件早期预警的实验性分析框架。
Stars: 0 | Forks: 0
# 基于主机的行为监控与异常检测
本项目通过分析主机遥测数据窗口,检测与勒索软件行为、破坏性脚本和资源滥用相关的可疑行为。它结合了基于规则的检测和机器学习方法,以比较不同方法在相同遥测数据流上的表现。
## 功能
- 从 CSV 文件进行主机遥测监控
- 基于规则的可疑活动评分
- `Isolation Forest` 异常检测
- `Local Outlier Factor` 异常检测
- 有标签可用时使用 `Random Forest` 监督分类
- 跨方法的集成投票
- 指标、图表和基于 Notebook 的分析
## 项目结构
```
.
|-- monitor.py
|-- requirements.txt
|-- .gitignore
|-- LICENSE
|-- data/
| `-- sample_host_telemetry.csv
|-- assets/
| |-- disk_writes_vs_renames_sample.png
| |-- method_comparison_sample.png
| |-- f1_comparison_sample.png
| `-- ensemble_confusion_matrix_sample.png
|-- results/
| |-- sample_metrics.json
| `-- sample_summary.json
`-- notebooks/
`-- host_behavior_analysis.ipynb
```
## 安装
```
python -m pip install -r requirements.txt
```
## 用法
运行示例数据集:
```
python monitor.py
```
使用不同的异常比例:
```
python monitor.py --contamination 0.15
```
## 输出
脚本会输出:
- `output/alerts_report.csv`
- `output/summary.json`
- `output/metrics.json`
- `output/plots/disk_writes_vs_renames.png`
- `output/plots/method_comparison.png`
- `output/plots/f1_comparison.png`
- `output/plots/ensemble_confusion_matrix.png`
## 遥测特征
示例数据集包括:
- CPU 使用率
- 内存使用率
- 磁盘写入量
- 文件写入次数
- 文件重命名次数
- 网络连接数
- 子进程数
- 未签名二进制文件执行
- 可疑扩展名更改
- 熵值分数
- 卷影副本活动
## 检测逻辑
### 基于规则的检测
基于规则的方法会标记出同时具备高 CPU、大量磁盘写入、批量文件重命名、扩展名更改、高熵值、卷影副本篡改以及未签名二进制文件特征的窗口。
### Isolation Forest 和 LOF
这些模型用于检测异常的主机行为,而无需依赖精确的特征签名。
### Random Forest
当有标签可用时,监督模型将通过交叉验证预测进行评估,以估计遥测数据区分良性与可疑活动的效果。
### 集成
最终的警报使用了基于规则检测器和三种机器学习方法的简单投票。
## 示例结果
内置的示例数据集是合成的,旨在模拟良性活动、类似勒索软件的行为、破坏性脚本和高资源滥用。这对于验证管道和展示不同方法的比较结果非常有用。
`results/sample_metrics.json` 中的指标:
| Method | Precision | Recall | F1-score | Accuracy |
| --- | --- | --- | --- | --- |
| Rule-based | 1.00 | 0.53 | 0.70 | 0.83 |
| Isolation Forest | 1.00 | 0.53 | 0.70 | 0.83 |
| Local Outlier Factor | 1.00 | 0.53 | 0.70 | 0.83 |
| Random Forest | 1.00 | 1.00 | 1.00 | 1.00 |
| Ensemble | 1.00 | 0.80 | 0.89 | 0.93 |
这些结果展示了该项目的一个有用模式:
- 无监督和基于规则的方法能够捕捉最强烈的可疑窗口
- 监督模型能更清晰地区分合成样本
- 集成方法在保持高精度的同时,提高了无监督方法的召回率
## 示例图表
磁盘写入与文件重命名:

方法比较:

F1 比较:

集成混淆矩阵:

## 本项目的意义
本项目旨在更倾向于基于主机的检测工程,而不仅仅是一个基础的系统监控器。它专注于与安全相关的资源和文件活动模式,这使得它在勒索软件早期预警和可疑进程监控方面非常有用。
## 后续步骤
- 将合成样本替换为更大的端点遥测数据
- 添加跨相邻窗口的时间序列序列建模
- 添加进程信誉或签名者丰富信息
- 使输入管道适应 Sysmon 风格的遥测数据
标签:AMSI绕过, Apex, DNS 反向解析, Matplotlib, NoSQL, Python, Scikit-learn, 云计算, 勒索软件检测, 威胁检测, 孤立森林, 安全运营, 局部异常因子, 异常检测, 恶意脚本检测, 扫描框架, 无后门, 机器学习, 端点安全, 端点遥测, 网络安全, 行为监控, 补丁管理, 规则引擎, 资源滥用, 逆向工具, 遥测数据分析, 随机森林, 隐私保护, 集成学习