中国科技核心期刊      中国指挥与控制学会会刊     军事装备类重点期刊
多模态信息融合

基于改进孤立森林算法的Linux日志异常检测方法

  • 赵海涛 1 ,
  • 李红烨 2
展开
  • 1 海装上海局驻上海第一军事代表室, 上海 201913
  • 2 中国舰船研究院, 北京 100101

赵海涛(1978—),男,高级工程师 研究方向为信息系统、武器系统。

李红烨(1986—),女,高级工程师。

Copy editor: 张培培

收稿日期: 2024-01-06

  修回日期: 2024-02-28

  网络出版日期: 2024-10-10

Linux log anomaly detection method based on improved isolated forest algorithm

  • ZHAO Haitao 1 ,
  • LI Hongye 2
Expand
  • 1 The First Military Representative Office of the Naval Equipment Shanghai Bureau in Shanghai, Shanghai 201913
  • 2 China Ship Research Academy, Beijing 100101, China

Received date: 2024-01-06

  Revised date: 2024-02-28

  Online published: 2024-10-10

摘要

为高效、正确地识别Linux日志中的异常行为,提出一种基于改进孤立森林算法的Linux日志异常检测方法。该方法在孤立森林算法的基础上引入注意力机制,在处理日志数据时能够动态地调整关注的特征和样本点,并根据样本的异常程度动态调整关注的程度。实验结果表明,该方法相较于传统方法,在精确率、性能等方面均有显著提升。

本文引用格式

赵海涛 , 李红烨 . 基于改进孤立森林算法的Linux日志异常检测方法[J]. 指挥控制与仿真, 2024 , 46(5) : 114 -118 . DOI: 10.3969/j.issn.1673-3819.2024.05.015

Abstract

In order to efficiently and correctly identify abnormal behaviors in Linux logs, this paper proposes a Linux log anomaly detection method based on the improved isolated forest algorithm. The method introduces an attention mechanism on the basis of the isolated forest algorithm, which can dynamically adjust the attention features and sample points when processing log data, and dynamically adjust the degree of attention according to the degree of abnormality of the samples. Experimental results show that the method achieves high efficiency in the Linux log anomaly detection task compared with traditional methods, and can effectively discover potential security threats and abnormal behaviors.

作为一种开源的操作系统,Linux在服务器、嵌入式系统等多个领域都有广泛的应用。Linux系统会产生大量的日志数据,包含系统运行状态、用户活动、网络通信等重要信息。这些日志数据对于监控系统的运行状态、发现潜在问题、及时处理异常行为、确保系统安全稳定等方面起到了至关重要的作用。
随着Linux系统规模和复杂性的增加,日志数据的数量呈指数级增长,传统的手动分析和处理方法已经无法满足实时监测和异常检测的需求。因此,自动化的异常检测方法已经形成一种趋势。经过多年发展,机器学习算法在异常检测领域取得了显著的进展,其中,孤立森林算法利用样本在树中的孤立性来识别异常点,因而在异常检测中取得了良好的效果。但传统的孤立森林算法在处理大规模复杂的Linux日志数据时,对所有特征赋予同样的权重,缺乏对重要特征的关注度,因而异常检测的精确率较低,性能表现较差。
为了解决上述问题,本文提出了一种基于改进孤立森林算法(Isolated Forest Algorithm Based on Attention Mechanism, IF-AM)的Linux日志异常检测方法。该方法在孤立森林算法的基础上,引入注意力机制,这样在处理日志数据时能够动态地调整关注的特征和样本点,赋予重要特征更大的权重,在大规模数据集下更为灵活,提高了Linux日志异常检测的效率。

1 研究现状

Linux日志异常检测研究在近些年来已经取得了很大的进展,这些研究主要分为传统的异常检测算法与基于机器学习的异常检测算法。其中,传统检测方法主要依赖于先验知识和专业经验,而机器学习算法是从数据中学习而不需要人工定义。
在Linux日志异常检测的传统方法中,通常采用统计学、基于规则和模式匹配的技术[1]。统计学方法通过对数据的统计特征进行分析来识别偏离正常行为的异常,例如均值、方差等;基于规则的方法通过对比于事先定义的规则来发现异常,但这种方法仅在特定场景下具有较好的解释性和可控性,适应性相对较弱;模式匹配则通过事先确定的模式来识别数据中的异常行为。这些传统的异常检测方法虽然简单且容易处理,但面对Linux日志数据的大规模增长时,会有更多的时间消耗。这些局限性和不足之处推动了基于机器学习的Linux日志异常检测的发展。
在基于机器学习的异常检测方法中,研究者们致力于提高模型的性能、适应性和实用性。Sadikin[2]等人提出一种采用混合方法的新型入侵检测系统(IDS),以检测已知攻击以及潜在的新型攻击。James[3]等人采用增强决策树 (BDT) 和简单前馈神经网络相结合的算法来进行异常检测。Brown[4]等人提出了循环神经网络(RNN)语言模型,该模型提高了Linux系统日志异常检测的效率。Duan等人[5]提出一种基于Q-learning的日志异常检测,该方法可以根据异常发生的严重程度排序。Studiawan[6]等人提出了一种自动检测操作系统访问控制日志异常的新方法,该方法采用改进聚类算法进行异常检测,提高了异常检测的准确率。这些算法虽然具有一定的效果,但是在异常检测中,可能会出现小样本问题和过拟合问题。
针对上述研究的不足,众多学者使用孤立森林算法进行异常检测。徐东[7]等人提出了一种基于模拟退火算法改进孤立树的森林构建,在清除冗余孤立树的同时,对孤立树进行了数据异常检测,从而实现了对孤立森林的改进。杨晓晖等人[8]提出一种基于多粒度级联孤立森林算法,该算法通过多粒度扫描机制构建孤立森林,从而提高异常检测的效率和稳定性。Weng等人[9]考虑了数列的时间序列统计特征,提出了一种基于孤立森林的数列异常检测算法,该算法可以有效地检测时间序列数据的异常数列。整体而言,孤立森林算法作为一种高效的无监督学习算法,不需要对所有数据进行遍历,对异常样本的敏感性更高。
综上所述,传统的异常检测方法面对数据量庞大复杂的日志数据时具有局限性。而在机器学习算法中,聚类算法、决策树算法、神经网络算法等存在小样本问题与过拟合问题;而孤立森林通过构建随机的孤立树,利用样本在树中的孤立性来识别异常点,不受异常样本影响,在异常检测中较为高效。但是传统的孤立森林算法与改进的孤立森林算法在对数据进行处理时,没有聚焦重要特征,对特定类型的异常点缺乏针对性。

2 基于改进孤立森林算法的Linux日志异常检测方法

针对上述研究,本文采用孤立森林算法进行异常检测,而针对Linux日志数据动态变化的特点,提出一种基于改进孤立森林算法的Linux日志异常检测方法,该方法引入注意力机制,对特征进行动态加权,从而提高异常检测的效率。

2.1 注意力机制的设计

注意力机制[10-11]作为一种机器学习中的技术,用于模拟人类的注意力过程。它允许模型在处理输入数据时动态地分配不同部分的注意力或权重,使模型能够更好地处理复杂的数据结构,而Linux日志数据通常包含大量信息,其中,某些信息可能在不同时刻重要性不同。通过引入注意力机制,模型可以动态调整对不同特征的关注度,使得在异常检测任务中更为重要的特征能够获得更高的权重,并有助于异常检测模型更专注于对异常行为有代表性的特征。
在Linux日志异常检测中,本文引入注意力机制对Linux日志特征进行动态加权,使得模型能够更关注对异常检测任务更为重要的特征,以下详细描述注意力机制的设计过程。
1)特征嵌入:对于Linux系统日志数据,提取有意义的特征,例如时间戳、用户ID、系统调用类型、文件路径等,并形成Linux数据集X,确保这些特征具有代表性,可以用于后续的异常检测。之后确定Linux日志数据的向量维度,初始化W和偏置b,对每个原始特征xi进行线性变换,将其映射到嵌入空间,如下表示:
E(xi)=Wxi+b
其中,E(xi)是xi在嵌入空间的表示。
2)计算注意力权重:使用注意力机制计算每个特征的注意力权重,如下式:
A(xi)=softmax(W(tanh(E(xi))))
对计算得到的注意力权重进行归一化,确保其总和为1,如下式:
N(xi)= A ( x i ) j = 1 n A ( x j )
3)加权特征表示:将嵌入的特征向量与计算得到的注意力权重相乘,得到加权的特征表示。如下式:
W(xi)=E(xi)*N(xi)
将加权后的特征表示输入后续的孤立森林异常检测模型中,使得模型能够动态调整特征的关注度,更灵活地适应不同的上下文和异常模式。

2.2 基于注意力机制的孤立森林算法

孤立森林作为一种无监督学习算法,通过构建随机的孤立树,利用样本在树中的孤立性来识别异常点,即正常点在数据集中通常需要较长的路径才能被找到,而异常点则相对较短。而引入注意力机制,对于孤立森林算法的输入,可以赋予不同特征不同的权重,动态地调整特征的重要程度。基于注意力机制的孤立森林算法(IF-AM)具体步骤如下:
1)初始化:对于Linux日志数据集X,确定树的最大深度m_depth、子集最小样本数阈值min_sample_slipt
2)构建随机孤立树
①从数据集中随机选择一个样本,并随机选择一个特征f和一个阈值t,对选择的特征根据注意力机制的设计,进行特征加权,阈值t位于选定特征f的最小值和最大值之间,即t f m i n, f m a x;
②根据选定的特征f和阈值t,将数据集X划分为左右两个子集,左子集包含特征值小于等于阈值的样本,其中left subset={x|x[f]≤ t;右子集包含特征值大于阈值的样本,其中right subset={x|x[f] > t
这样,数据集被分成了两个子集,分别包含根据选定的特征和阈值进行划分的样本。这个过程是构建随机孤立树的一部分,其中通过反复进行这样的划分,递归地构建了整个树结构。在每个节点,都会选择一个随机特征和阈值来划分数据,直到满足停止条件为止。这样的随机性使得孤立森林能够更容易地将异常点与正常点分离出来。
③对左右子集分别递归地执行步骤②,直到树的最大深度或子集的样本数小于min_sample_slipt
3)随机孤立树的集成
重复上述步骤2),构建多棵随机孤立树为孤立森林,这些树可以独立构建,也可以并行构建以提高效率。
4)计算样本点异常分数
①对于每个样本,通过在孤立森林中的平均路径长度E(h(x))为
E(h(x))= 1 t i = 1 thi(x)
②根据样本点的平均路径长度,可得样本点的异常分数为
Score(x)= 2 - E ( h ( x ) ) c
其中,c是平均路径长度的期望,可以通过在建树过程中调整参数来得到。
③基于异常分数,可以设定一个阈值,超过这个阈值的样本被认为是异常点。通过这个过程,孤立森林将每个样本映射为一个异常分数,该分数表示样本在数据集中的相对孤立程度。异常分数越高,表示样本越可能是异常点。

3 仿真实验

3.1 实验数据与实验评价指标

本文采用ADFA-LD[12](Australian Defence Force Academy-Linux Dataset)数据集、BGL(Blue Gene/L)数据集[13]、Syslog数据集[13]三个公开数据集对所提出的方法进行评估。其中,ADFA-LD数据集包含Linux环境中生成的系统日志,记录了系统的各种事件,包括登录、文件访问、进程启动等。BGL数据集一个用于日志异常检测的常用数据集,该数据集是由IBM收集,目的是帮助研究人员开发和评估日志分析和异常检测算法。Syslog 作为一种记录系统事件的标准协议,Syslog 数据集包含从各种系统中收集的Syslog事件,这个数据集提供了广泛的系统日志信息,适用于异常检测的研究。
为了评估本文所提出的基于注意力机制的孤立森林算法(IF-AM),我们采用精确率(Precision)、召回率(Recall)、F1分数(F1 Score)、曲线下面积(AUC Area Under the Curve X)作为评价指标,这四个指标能够全面评估模型的性能。其中,精确率表示在模型预测为正例的情况下,实际上有多少样本是真正例;召回率表示模型正确预测为正例的情况下,实际有多少样本为正例样本;F1分数综合考虑了这两个方面;而AUC适用于类别不平衡的情况,可以全面地评估模型的性能。AUC是指ROC 曲线下的面积,AUC范围为[0,1],AUC数值越大,说明模型性能越好。具体计算如下表示:
Precision= T P T P + F P
Recall= T P T P + F N
F1= 2 * P r e c i s i o n * R e c a l l P r e c i s i o n + R e c a l l
AUC表示ROC曲线下的面积,即曲线与横轴之间的面积。ROC曲线的横轴表示假正例率(FPR),纵轴表示真正例率(TPR)。其中:
FPR= F P F P + T N
TPN= F P T P + F N

3.2 基于注意力机制的孤立森林算法评估

基于注意力机制的孤立森林算法评估主要分为两部分。第一部分是通过AUC性能指标进行决策树、神经网络、孤立森林、IF-AM的对比,从而整体评估IF-AM算法的整体分类性能。如表1所示,在三个数据集上,本文中IF-AM算法的AUC指标高于其他三个算法,说明IF-AM算法具有良好的分类性能,在Linux日志检测中,性能表现优异。
表1 AUC指标对比结果

Tab.1 AUC index comparison results

数据集 决策树 神经网络 孤立森林 IF-AM
ADFA-LD 0.894 0.923 0.948 0.973
BGL 0.896 0.915 0.955 0.966
Syslog 0.913 0.921 0.943 0.987
第二部分是采用精确率、召回率、F1分数的对比来评估IF-AM算法,如图1图2图3所示分别为在三个数据集上IF-AM算法与其他三个算法的精确率对比、召回率对比、F1分数对比。实验结果表明:IF-AM算法与其他三个算法相比,在三个数据集上精确率、召回率、F1分数都有所提高,说明本文方法在精确率、召回率、F1分数上具有良好的性能表现。
图1 精确率对比

Fig.1 Accuracy comparison

图2 召回率对比

Fig.2 Recall rate comparison

图3 F1分数对比

Fig.3 Comparison of F1 scores

表2为IF-AM算法与决策树、神经网络、孤立森林算法在平均精确率、评价召回率、平均F1分数的对比。实验结果表明,IF-AM算法较决策树算法,平均精确率提高了2.9%,评价召回率提高了 2.63%,评价F1分数提高了 0.027;较神经网络算法,IF-AM算法的平均精确率提高了2.1%,评价召回率提高了1.63%,评价F1分数提高了 0.018;较孤立森林算法,IF-AM算法的平均精确率提高了1.64%,评价召回率提高了0.83%,评价F1分数提高了 0.1。
表2 四种算法检测性能对比

Tab.2 Comparison of detection performance of four algorithms

算法 平均精确率 平均召回率 平均F1
决策树 93.4% 94% 0.937
神经网络 94.2% 95% 0.946
孤立森林 94.9% 95.8% 0.954
IF-AM 96.3% 96.63% 0.964

4 结束语

为了提高Linux日志异常检测的效率,本文提出一种基于改进孤立森林算法的Linux日志异常检测方法。首先,对Linux日志进行预处理,提取关键特征,然后,在孤立森林算法的基础上,引入注意力机制,对特征进行动态加权并构建异常检测模型。实验结果表明,该方法可以有效提高Linux日志检测的精确率与召回率,具有良好的性能表现。
[1]
史方旭. 面向系统日志的异常检测方法研究与实现[D]. 北京: 北京邮电大学, 2023.

SHI F X. Research and implementation of anomaly detection method for system log[D]. Beijing: Beijing University of Posts and Telecommunications, 2023.

[2]
SADIKIN F, KUMAR S. ZigBee IoT intrusion detection system: a hybrid approach with rule-based and machine learning anomaly detection[C]// Proceedings of the 5th International Conference on Internet of Things, Big Data and Security, Prague, 2020.

[3]
ZHANG J, VUKOTIC I, GARDNER R. Anomaly detection in wide area network mesh using two machine learning anomaly detection algorithms[J]. Future Generation Computer Systems, 2018, 23(7): 93.

[4]
BROWN A, TUOR A, HUTCHINSON B, et al. Recurrent neural network attention mechanisms for interpretable system log anomaly detection[C]// Proceedings of the First Workshop on Machine Learning for Computing Systems, Tempe, 2018: 1-8.

[5]
DUAN X Y, YING S, YUAN W L, et al. QLLog: a log anomaly detection method based on Q-learning algorithm[J]. Information Processing & Management, 2021, 58(3): 102 540.

[6]
STUDIAWAN H, PAYNE C, SOHEL F. Graph clustering and anomaly detection of access control log for forensic purposes[J]. Digital Investigation, 2017(21): 76-87.

[7]
徐东, 王岩俊, 孟宇龙, 等. 基于Isolation Forest改进的数据异常检测方法[J]. 计算机科学, 2018, 45(10): 155-159.

DOI

XU D, WANG Y J, MENG Y L, et al. Improved data anomaly detection method based on isolation forest[J]. Computer Science, 2018, 45(10): 155-159.

DOI

[8]
杨晓晖, 张圣昌. 基于多粒度级联孤立森林算法的异常检测模型[J]. 通信学报, 2019, 40(8): 133-142.

DOI

YANG X H, ZHANG S C. Anomaly detection model based on multi-grained cascade isolation forest algorithm[J]. Journal on Communications, 2019, 40(8): 133-142.

DOI

[9]
WENG Y, LIU L. A sequence anomaly detection approach based on isolation forest algorithm for time-series[C]// International Workshop on HPC Supported Data Analytics for Edge Computing, Singapore: Springer, 2019: 198-207.

[10]
尹春勇, 冯梦雪. 基于注意力机制的半监督日志异常检测方法[J]. 计算机工程与科学, 2023, 45(8): 1 405-1 415.

YIN C Y, FENG M X. A semi-supervised log anomaly detection method based on attention mechanism[J]. Computer Engineering & Science, 2023, 45(8): 1 405-1 415.

[11]
周丰丰, 张金楷. 具有局部和全局注意力机制的图注意力网络学习单样本组学数据表征[J]. 吉林大学学报(理学版), 2023, 61(6): 1 351-1 357.

ZHOU F F, ZHANG J K. Graph attention network with local and global attention mechanism to learn single-sample omic data representation[J]. Journal of Jilin University(Science Edition), 2023, 61(6): 1 351-1 357.

[12]
陈仲磊. 基于系统调用数据的容器入侵检测技术研究[D]. 郑州: 战略支援部队信息工程大学, 2023.

CHEN Z L. Research on container intrusion detection technology based on system calls[D]. Zhengzhou: Information Engineering University, 2023.

[13]
OLINER A, STEARLEY J. What supercomputers say: a study of five system logs[C]// 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07), Edinburgh, 2007: 575-584.

文章导航

/