Guiuii/ml-cyber-security-logs-analysis
GitHub: Guiuii/ml-cyber-security-logs-analysis
利用DBSCAN聚类与企业日志探索性分析,自动检测暴力破解、数据外泄和内部威胁等安全异常。
Stars: 0 | Forks: 0
# README:安全日志分析与异常检测
## 项目描述
对企业基础设施的 30 天匿名日志切片进行了分析(包括身份验证事件、工作站活动和网络连接)。目标在于寻找真实攻击的痕迹,并提出一套威胁检测系统。
## 任务
1. 探索性数据分析 (EDA)
2. 搜索可疑活动
3. 制定检测规则
4. 构建异常检测机制 (DBSCAN)
## 结构
- `solution.ipynb` - 包含完整分析与代码的 Jupyter Notebook
- `README.md` - 当前文件
- `requirements.txt` - 运行环境要求
## 方法论
### 1. 探索性数据分析
对数据结构进行了初步分析:日志来源(network、endpoint、auth)、用户、部门以及时间的分布情况。发现了基本规律:活动高峰期集中在 6:00-18:00 UTC,主要是 network 事件。同时也发现了数据质量问题:`geo_country`、`file_size_mb` 字段存在缺失值,以及 `event_id` 出现重复。
### 2. 搜索可疑活动
发现了 5 起异常安全事件:
| № | 用户 | 事件 | 风险 |
|---|-------------|----------|------|
| 1 | U0042 | 暴力破解:来自 3 个国家的 34 次失败尝试 → 成功登录 | 严重 |
| 2 | U0056 | 内部威胁:周末(周日)的 USB 拷贝行为 | 高 |
| 3 | U0017 | 活动激增:4 天内产生 5.3 GB 外部流量 | 严重 |
| 4 | U0056 | 向外部 IP 104.18.32.155 泄露 6.13 GB 数据 | 严重 |
| 5 | WS-ENG-017 | 外部流量异常激增(22:00 时分达到 5.3 GB) | 高 |
针对每起事件,都详细说明了可疑原因、确凿证据、风险等级以及供 SOC 参考的补充数据。
### 3. 检测系统
制定了 5 条威胁检测规则,包含逻辑说明、Python 实现示例以及对误报情况的分析:
1. 针对来自不同国家/地区失败登录的暴力破解
2. 外部流量激增(基于统计阈值)
3. 内部威胁活动(USB + 非工作时间)
4. “压缩包 -> 外部流量”攻击链
5. 用户活动激增(异常增长)
### 4. 异常检测 (DBSCAN)
选择 DBSCAN(基于密度的聚类算法)来进行异常检测。做出该选择的原因在于它不需要对数据分布进行假设、对异常值具有鲁棒性,并且能够发现任意形状的聚类。
**使用的特征 (9):**
- `total_events` - 每日事件总数(用于检测突发的活动激增)
- `external_traffic_mb` - 外部流量大小(数据泄露的直接指标)
- `external_connections` - 外部连接数量(批量外传的迹象)
- `archive_count` - 创建的压缩包数量(为数据泄露做准备)
- `usb_events` - USB 连接次数(内部威胁活动)
- `powershell_count` - PowerShell 执行次数(常用的攻击工具)
- `file_downloads` - 下载的文件数量(系统性的数据收集)
- `failed_logins` - 登录失败次数(暴力破解)
- `unique_countries` - 登录所在的不同国家/地区数量(异常的地理位置)
所有特征均基于在任务 2 中发现的真实异常情况挑选得出。
**DBSCAN 结果:**
- 总记录数(用户-天):约 2800
- 发现的异常:约 30(约占 1%)
- 确认了所有已知的安全事件:U0056、U0017、U0042
- 发现了需要进一步核查的新可疑用户
## 使用的库
- pandas - 数据处理
- numpy - 数值计算
- matplotlib, seaborn - 数据可视化
- scikit-learn - DBSCAN, StandardScaler, PCA
- datetime - 处理时间戳
## 结论
本次工作证实了日志中确实存在真实攻击的痕迹:暴力破解、数据泄露和内部威胁活动。所开发的检测规则和 DBSCAN 模型能够实现自动化检测,从事件流中发掘出已知及未知的异常情况。这些分析结果可直接用于配置安全监控中心 (SOC) 的监控系统。
标签:Apex, DBSCAN, NoSQL, Python, 安全数据分析, 异常检测, 数据探索分析, 无后门, 机器学习, 红队行动, 逆向工具