SpoorthiPai/hybrid-log-anomaly-detection

GitHub: SpoorthiPai/hybrid-log-anomaly-detection

一个结合机器学习、规则和域自适应Transformer的跨系统日志异常检测框架,用于自动化识别网络安全威胁。

Stars: 1 | Forks: 0

# 跨系统日志异常检测的混合域自适应框架 一个以网络安全为重点的日志异常检测框架,该框架结合了机器学习、基于规则的检测、混合异常分析以及域自适应Transformer架构,用于在异构系统日志中检测可疑行为。 本项目是作为PES大学信息安全、取证与网络弹性中心实习/研究工作的一部分开发的。 # 项目概述 现代计算基础设施(如Linux服务器、云平台、分布式系统、企业环境和超级计算机)持续生成海量的运行时日志。这些日志包含有关认证事件、系统异常行为、登录失败尝试、未授权访问、权限提升和安全事件的重要信息。 手动检查此类大规模日志效率低下且困难。本项目实现了一个统一的混合与域自适应框架,用于自动化日志异常检测,采用: - 基于机器学习的序列分析 - 基于规则的网络安全检测 - 混合异常检测 - 基于Transformer的序列学习 - 使用梯度反转层的域自适应 该框架专注于识别可疑活动,例如: - 暴力破解登录攻击 - 无效用户枚举 - 过度使用sudo命令 - 认证异常 - 跨系统日志异常 # 重要说明 本代码库包含一个简化的、可复现的基于Linux的日志异常检测工作流实现。 完整的研究工作包括: - 大规模数据集 - 高级预处理管道 - HDFS、BGL、Windows和Linux日志实验 - 基于Transformer的异常检测 - 使用梯度反转层的域自适应学习 - 跨域迁移学习实验 最终完整的实验实现未能完全恢复。然而,本代码库包含了可复现的基于Linux的实现、笔记本实验、项目报告以及记录完整方法和结果的研究论文。 # 主要特性 - Linux认证日志解析 - 使用结构化事件ID进行事件抽象 - 滑动窗口序列生成 - 基于频率的异常检测 - 基于规则的网络安全告警生成 - 混合机器学习 + 基于规则的检测框架 - 受DeepLog启发的序列学习 - 基于Transformer的序列日志建模 - 基于梯度反转层的域自适应 - 跨系统异常检测实验 - 使用准确率、精确率、召回率、F1分数、ROC曲线和混淆矩阵进行评估 # 使用的数据集 | 数据集 | 描述 | 用途 | |---|---|---| | HDFS | Hadoop分布式文件系统日志 | 序列学习与Transformer实验 | | BGL | 蓝色基因/L超级计算机日志 | 跨域迁移评估 | | Windows事件日志 | Windows安全/系统日志 | 跨系统泛化 | | Linux认证日志 | auth.log及Linux LogHub数据集 | 实际的网络安全异常检测 | # Linux日志事件映射 Linux认证日志被转换为结构化事件ID以便进行序列学习。 | 事件ID | 含义 | |---|---| | E0 | 正常/后台/未分类事件 | | E1 | 密码认证失败 | | E2 | 成功登录 | | E3 | sudo命令使用 | | E4 | 无效用户尝试 | | E5 | 会话关闭 | | E6 | 连接关闭 | | E7 | PAM认证事件 | # 方法论 ## 1. 日志文件加载 原始Linux认证日志从以下位置加载: - `/var/log/auth.log` - Linux LogHub数据集 - 自定义的Linux安全日志 示例: ``` with open("linux.log", "r") as file: logs = file.readlines() ``` ## 2. 事件解析与抽象 原始日志行通过基于关键字的模式匹配被转换为结构化事件ID。 示例: ``` if "failed password" in line: return "E1" elif "accepted password" in line: return "E2" elif "sudo" in line: return "E3" elif "invalid user" in line: return "E4" else: return "E0" ``` 这种抽象降低了文本复杂性,并使得高效序列建模成为可能。 ## 3. 序列生成 使用滑动窗口技术生成固定长度的事件序列。 示例: ``` Event Stream: E2 → E3 → E1 → E1 → E4 → E2 → E3 Generated Sequences: [E2, E3, E1] [E3, E1, E1] [E1, E1, E4] [E1, E4, E2] [E4, E2, E3] ``` 这使得模型能够学习事件之间的时间关系。 ## 4. 基于机器学习的异常检测 实现了一个基于频率的序列学习模型。 该模型: - 学习观察到的事件序列的概率 - 识别低概率序列 - 将罕见或可疑序列标记为异常 低频事件模式被视为异常行为。 ## 5. 基于规则的网络安全检测 实现了一个规则引擎来检测已知的攻击特征。 ### 包含的规则 ### 暴力攻击检测 当连续发生重复的密码尝试失败时触发。 ### 用户枚举检测 当检测到多个无效用户尝试时触发。 ### 过度sudo使用检测 当观察到异常的sudo活动或权限提升行为时触发。 ## 6. 混合检测框架 混合框架结合了: - 机器学习预测 - 基于规则的告警 如果满足以下任一条件,序列将被分类为异常: - 机器学习模块检测到低概率序列,或 - 规则引擎检测到可疑模式 这提高了整体的异常覆盖率和检测平衡性。 # 系统架构 所提出的框架包含以下主要模块: 1. 数据收集 2. 日志预处理 3. 事件提取 4. 序列生成 5. 机器学习模块 6. 基于规则的检测模块 7. 混合检测框架 8. 基于Transformer的序列学习 9. 使用GRL的域自适应Transformer 10. 评估与可视化 # 域自适应Transformer框架 项目的高级阶段专注于基于深度学习的跨系统异常检测。 ## Transformer组件 - 嵌入层 - 位置编码 - 多头自注意力 - 层归一化 - 前馈网络 - Sigmoid分类层 ## 梯度反转层 集成了梯度反转层用于域自适应。 GRL使模型能够学习: - 域不变表示 - 共享的异常模式 - 跨系统行为关系 这提高了在异构日志系统之间的迁移学习能力。 # 跨域实验 进行的实验包括: - HDFS → BGL - HDFS → Windows - 跨HDFS、BGL和Windows的多域训练 基于GRL的域自适应Transformer显著提高了跨系统泛化能力。 # 基于Linux的模型结果 | 模型 | 准确率 | 精确率 | 召回率 | |---|---:|---:|---:| | 仅ML频率模型 | 0.715 | 0.214 | 0.068 | | 基于规则的模型 | 0.920 | 1.000 | 0.668 | | 混合模型 | 0.876 | 0.745 | 0.737 | # 结果分析 ## 仅ML模型 仅ML模型成功学习了正常序列行为,但在处理未见过的异常和罕见攻击模式时遇到困难。 这导致召回率较低。 ## 基于规则的模型 基于规则的模型达到了非常高的精确率,因为网络安全规则是确定性和高度特异性的。 然而,它可能会遗漏与预定义攻击特征不匹配的异常。 ## 混合模型 混合框架通过结合以下两者实现了平衡的检测性能: - ML的适应性 - 基于规则的可靠性 这在保持高精确率的同时提高了异常覆盖率。 # 基于Transformer的跨域结果 | 模型设置 | F1分数 | 观察结果 | |---|---:|---| | 普通Transformer:HDFS → BGL | 0.15 | 严重的域偏移失败 | | 正则化Transformer:HDFS → BGL | 0.20 | 少许改进 | | 使用GRL的域自适应Transformer | 0.93 | 强大的跨域泛化能力 | | 域自适应Transformer:HDFS → Windows | 0.97 | 取得的最佳结果 | # 使用的技术 - Python - Scikit-learn - TensorFlow / Keras - NumPy - Pandas - Matplotlib - Jupyter Notebook - Linux日志 - LogHub数据集 - Transformer模型 - 梯度反转层 - 机器学习 - 基于规则的网络安全检测 # 代码库结构 ``` hybrid-log-anomaly-detection/ │ ├── README.md ├── requirements.txt ├── main.py ├── .gitignore ├── LICENSE │ ├── docs/ │ ├── Report-Final.docx │ └── Internship Research Paper.pdf │ ├── notebooks/ │ └── hdfs-log-anomaly-detection.ipynb │ ├── results/ │ └── result images │ ├── diagrams/ │ └── architecture diagrams │ └── sample-data/ └── sample-auth.log ``` # 如何运行 ## 1. 克隆代码库 ``` git clone https://github.com/your-username/hybrid-log-anomaly-detection.git cd hybrid-log-anomaly-detection ``` ## 2. 安装依赖 ``` pip install -r requirements.txt ``` ## 3. 运行Linux日志检测脚本 ``` python main.py ``` ## 4. 运行笔记本 打开: ``` notebooks/hdfs-log-anomaly-detection.ipynb ``` 并执行单元格以研究基于HDFS的异常检测工作流。 # 示例输出 ``` Total logs: 20 ML Detected Anomalies: Anomaly detected due to low-probability sequence RULE-BASED ALERTS: Brute Force Attack Detected User Enumeration Attack Detected Excessive Sudo Usage / Possible Privilege Escalation Detected ``` # 可视化结果 该项目包含: - 系统架构图 - Linux日志解析工作流 - 滑动窗口序列生成 - 性能比较图表 - 混淆矩阵 - ROC曲线比较 - 域自适应Transformer架构 # 局限性 - 部分异常标签是使用启发式逻辑生成的。 - 未实现实时流式部署。 - Linux ML模块使用基于频率的序列学习。 - 日志数据集高度不平衡。 - 跨域性能在很大程度上依赖于预处理质量。 - 最终的实验代码版本未能完全恢复。 # 未来展望 - 实时流式异常检测 - 与Splunk或Elastic SIEM的SIEM集成 - Docker部署 - 在AWS/Azure上的云部署 - Transformer-LSTM混合架构 - 自监督日志表示学习 - 联邦异常检测 - 实时SOC仪表板集成 # 结论 本项目表明,稳健的日志异常检测需要整合多种互补的方法。 - 基于规则的系统为已知攻击提供高精确率 - 机器学习实现自适应异常识别 - 混合框架提高平衡检测性能 - 域自适应Transformer提高跨系统泛化能力 所提出的框架为异构计算环境中的网络安全监控、SOC运营、SIEM分析和自动化威胁检测提供了一个可扩展且实用的基础。 # 关键词 日志异常检测,网络安全,SOC,SIEM,机器学习,深度学习,Transformer,梯度反转层,域自适应,Linux日志,HDFS日志,BGL日志,Windows事件日志,混合检测,DeepLog,威胁检测
标签:AMSI绕过, Apex, NoSQL, sudo滥用检测, TCP/UDP协议, Transformer模型, 云计算, 企业安全, 分布式系统, 响应大小分析, 域自适应, 威胁检测, 子域名暴力破解, 序列分析, 异常检测, 无效用户枚举检测, 日志挖掘, 日志预处理, 暴力登录攻击检测, 机器学习, 梯度反转层, 深度学习, 混合框架, 网络安全, 网络资产管理, 自动化检测, 规则引擎, 认证异常分析, 跨域迁移学习, 跨系统日志, 逆向工具, 隐私保护