背景与动机

异常检测是大规模系统事件管理的重要手段,其目的是及时发现系统的异常行为。及时的异常检测使系统开发人员(或操作人员)能够及时发现和解决问题,从而减少系统停机时间。日志系统几乎部署在所有现代计算机系统中,系统日志详细记录了系统运行时信息,支持各种系统管理和诊断任务,例如确保应用程序安全性、识别性能异常、诊断错误和崩溃等。与系统异常行为相关的日志往往存在固定模式,可以用来诊断系统问题的来源,以及预测潜在的系统问题。因此,在许多系统的开发和维护过程中,系统日志被广泛用作异常检测的数据源。基于系统日志的异常检测方法已成为学术界和工业界中具有实际意义的研究课题。由于现有日志异常检测方法不能相对充分地利用系统日志数据中的上下文语义信息和参数信息,给异常检测带来了困难,导致基于已有日志数据训练的异常检测模型性能下降。本文对这些问题展开了深入的研究,提出结合句嵌入和日志参数的异常检测方案。该方案在日志预处理时使用参数值标签替换包括文本和数值两种类型的日志参数,以保留参数值的语义信息。然后使用句嵌入技术提取系统日志句子级别的语义信息,生成日志表示,提高日志表示上下文语义信息完整性。同时,该方案使用长短期记忆网络构建基于序列建模方法的异常检测网络,结合句嵌入和数值参数,检测日志异常。该方案在HDFS(Hadoop Distributed File System)和BGL(IBM BlueGene/L)日志数据集上验证了性能,与基线方法的纵向对比实验分析表明,该方案取得了较高的F1-Score。横向对比实验分析验证了句嵌入和参数信息在日志异常检测中的有效性。

论文链接:https://ieeexplore.ieee.org/document/9865986

论文《DeepSyslog: Deep Anomaly Detection on Syslog Using Sentence Embedding and Metadata》发表在《IEEE Transactions on Information Forensics and Security》(TIFS)上。IEEE TIFS是信息安全领域最具影响力的国际顶级刊物之一,中国计算机学会(CCF)推荐A类期刊,中国密码学会(CACR)推荐A类期刊,中科院SCI一区TOP期刊。

方法

图1 结合句嵌入和日志参数的异常检测模型架构图

一、日志数据解析和预处理

系统日志数据是非结构化数据,由日志程序按照一定的规则和模式生成。所以,系统日志由日志程序语句中固定不变的文本和日志生成时填入的参数部分组成。系统日志样例如图3-2所示:

图2系统日志和解析示例图

二、句嵌入

基于平滑逆频率(SIF)的具体算法过程由算法1描述。SIF以单词向量的线性加权组合对句子进行编码,然后执行主成分移除,去除向量在其第一个主成分上的投影。实际上,日志数据集中的一组日志句子L包含许多相同的句子,因为日志在解析和预处理后为保留参数信息的日志模板。因此,假设不同的日志向量的数目为m,我们定义Φ=\{v_1,v_2,…,v_m \}作为不同的日志向量的集合。

三、序列检测网络

图3序列检测网络

本文基于长短期记忆网络进行日志异常检测,序列检测网络如图3所示。输入包括两个部分,第一部分的是日志窗口的句嵌入表示,第二部分为数值参数。第一部分输入到长短期记忆网络LSTM中,LSTM是一种循环神经网络的变体,能够记忆序列的长期依赖。对于要检测的目标日志,本文使用它之前出现的一定长度的历史日志窗口中的日志向量表示序列作为输入,使用LSTM提取序列特征,输出的向量可以视为日志序列文本的一种嵌入。我们将参数值视为另一种嵌入特征,将其与LSTM的输出向量进行拼接,拼接生成的向量同时包括系统日志的序列特征和基于参数值的数量特征,然后我们将拼接向量输入全连接层和Softmax函数组成的分类器进行分类,预测目标日志位置所有可能出现的日志向量的概率,并对概率进行排序,如果真实的目标日志向量属于设置的阈值内的向量,则检测结果为正常,否则检测结果为异常。

评价和结果

本文提出的结合句嵌入和日志参数的异常检测模型DeepSyslog在HDFS数据集和BGL数据集上的实验结果,并与基线方法进行纵向对比。

DeepSyslog在HDFS数据集上的实验结果如表1所示。可以看到,DeepSyslog在HDFS数据集上取得了较好的结果,获得了最高的Recall,F1-Score与最高的OES方案相同。在HDFS数据集上,PCA和OES取得的Precision最高。但是PCA的Recall较低,导致其F1-Score也较低。方案IM、Deeplog和LogAnomaly都取得了不错的性能,它们的F1-Score均高于0.9,但低于OES和DeepSyslog。

DeepSyslog在HDFS和BGL数据集上的实验结果如表1-2所示。可以看到,DeepSyslog在BGL数据集上取得了最高的性能,Precision和F1-Score均为0.98,Recall为0.99,综合表现高于所有的基线方法。IM方案在BGL数据集上的Recall与DeepSyslog相同,说明该方案也能检测到较多的异常日志,但其Precision相对较低。说明相比于DeepSyslog,该方案会错误地将更多的正常日志识别为异常,导致其F1-Score相对较低。DeepSyslog性能优于OES和LogAnomaly。因为LogAnomaly从单个日志条目中提取语义信息,而DeepSyslog从整个日志数据集中提取语义信息。并且LogAnomaly和OES忽略了可能携带系统状态重要信息的参数值。DeepSyslog将参数值视为基本特性,并将参数值数据与日志的顺序特征结合在一起。因此,即使日志模板索引序列正常,也可以检测到参数值反映的异常,提高模型检测性能。

表1 HDFS数据集上的实验结果

表2 BGL数据集上的实验结果

为了探究不同部分对模型性能的贡献程度,同时进行了消融实验,以评估了DeepSysLog不使用句嵌入和不使用参数值信息两种情形下的性能。消融实验在HDFS数据集和BGL数据集上的结果分别如图4和图5所示。

图4数据集上的消融实验结果图

图5 BGL数据集上的消融实验结果图

与DeepSyslog相比,不带参数值的DeepSyslog在HDFS数据集上的Recall低了3.61%,BGL数据集上的Recall低了1.87%。说明加入参数值信息后,DeepSyslog可以识别更多的异常。不带句嵌入的DeepSyslog在HDFS数据集上的Precision和Recall都低于DeepSyslog,说明使用句嵌入表示系统日志比使用日志模板索引的one-hot向量更好。在BGL数据集上,不带句嵌入的DeepSyslog具有更高的Precision。这意味着它比DeepSyslog造成更少的误报。然而,它的Recall远低于DeepSyslog,导致其F1-Score较低。说明句嵌入在BGL数据集上能够识别更多的异常,从而使最终结果更好。因此,在BGL数据集上,句嵌入仍然是有效的。综上,消融研究证明了句嵌入和参数值信息的有效性。

技术贡献

本研究的贡献包括:针对系统日志表示没有充分考虑上下文语义信息和忽略日志参数导致的检测精度不足问题,本文研究结合句嵌入和日志参数的异常检测方案。该方案在日志预处理时使用参数值标签替换包括文本和数值两种类型的参数值,以保留参数值的语义信息。使用句嵌入技术提取系统日志句子级别的语义信息,生成日志表示,解决日志表示上下文语义信息完整性问题。同时,该方案使用长短期记忆网络构建基于序列建模方法的异常检测网络,结合句嵌入和数值参数,检测日志异常。该方案在HDFS和BGL日志数据集上验证了性能,与基线方法的纵向对比实验分析表明,该方案的F1-Score超越了目前主流的大多数系统日志异常检测方案。横向对比实验分析验证了句嵌入和参数信息的有效性。

详细内容参见

J. Zhou, Y. Qian, Q. Zou, P. Liu and J. Xiang, "DeepSyslog: Deep Anomaly Detection on Syslog Using Sentence Embedding and Metadata," IEEE Transactions on Information Forensics and Security, vol. 17, pp. 3051-3061, 2022, doi: 10.1109/TIFS.2022.3201379.

Source Code: https://github.com/qyjcode/deepsyslog

作者介绍

周俊伟,博导、教授,人工智能专业负责人,计算机与人工智能新技术中心主任,楚天学者。于2007年获得湖南大学软件工程专业学士学位;2011年获得深圳大学计算机应用技术硕士学位;2015年在香港城市大学电子工程系获得博士学位;美国宾夕法尼亚州立大学博士后。曾担任香港城市大学研究助理,并作为访问学者访问意大利都灵理工大学电子系参与卫星图像加密算法的研究。周俊伟为电气与电子工程师学会(IEEE)、美国计算机协会(ACM)和中国计算机协会(CCF)会员,曾任HKIE Transactions副主编,ISSRE分论坛主席,ACL、Coling、EMNLP等会议程序委员。主要从事计算机视觉与系统安全等方向的研究,申办武汉理工大学数据科学与大数据技术、人工智能专业,承担计算机视觉、大数据技术与数据挖掘等课程教学。