法律状态公告日
法律状态信息
法律状态
2022-09-16
实质审查的生效 IPC(主分类):G06F21/57 专利申请号:2022106891004 申请日:20220617
实质审查的生效
技术领域
本发明属于安全技术领域,具体的说是涉及一种基于LDA主题特征的日志异常检测方法。
背景技术
在系统安全领域,通过日志来检测软件或系统异常是一种常用的安全防护手段。从简单小型的软件系统到大型复杂的软件系统,以及分布式文件系统和高性能的云计算管理平台,都不可避免的存在漏洞,这就可能导致系统本身运行的异常。此外,攻击者也可能利用软件和系统的漏洞发起危险性攻击来入侵破坏系统。因此,及时、准确的检测出这些异常对于构建安全可信的系统来说至关重要。但是现有异常检测方法无法准确的学习正常和异常日志之间的语义差异特征,导致异常检测方法的泛化能力较差,在实际的应用中并没有取得很好的效果。
日志几乎是所有计算机系统中异常检测方法常见且主要的数据源,它记录了一系列描述软件和系统运行状态的重要事件。现有分析系统日志以实现异常检测方法可以被概括为四个种类:基于主要组件分析(PCA)的日志数据计数检测方法,基于变量挖掘(IM)捕捉日志复现模式的检测方法,基于工作流的检测方法以及基于深度学习的方法。前三种类型的方法在特定应用场景下能够取得很好的效果,但并不能用以检测不同的攻击。最后一类深度学习的方法使用日志模板进行分类以学习日志序列内的行为模式。目前基于深度学习的方法无法准确学习日志间的语义关系特征,并且对于新日志模板的注入,方法稳定性会受到较大的影响,方法实现模型可能会失效;此外,方法查准率、查全率、调和分数等相关性能还需进一步提高,以适应复杂多变的软件和系统。
发明内容
为了能够更加准确的学习日志间的语义关系特征以及更有效地通过非结构化的日志记录检测出进程或系统的异常行为,本发明提出了一种基于LDA主题特征的日志异常检测方法。
为了达到上述目的,本发明是通过以下技术方案实现的:
本发明是一种基于LDA主题特征的日志异常检测方法主要包含两个阶段:一是模型训练阶段,通过提取日志数据的模板主题特征,构建训练样本,进而训练生成异常检测模型;二是异常检测阶段,利用异常检测模型实现针对进程日志的检测。
模型训练阶段:
(1)获取系统日志数据L={log
(2)对日志模板K进行预处理,将预处理数据输入预设主题集合为T={t
(3)初始化日志模板主题映射字典TD,使用LDA-CM模型计算K中每一个日志模板k
(4)根据P中的进程,对日志三元组集合D进行处理,并利用TD建立P中各进程对应的日志模板主题序列,构成的序列集合记为S={S
(4a)根据P中各进程的ID,即日志三元组中的pid,将D划分为若干子集,并根据时间戳ts对各子集中的日志三元组进行排序,从而为每个进程p
(4b)对于P中每个进程p
(5)利用滑动窗口机制,对S中的每个进程p
(5a)初始化滑动窗口长度为h,滑动步长为1,训练样本集合TP为空;
(5b)对S中的每个进程p
(6)利用TP中的训练样本训练LSTM模型,生成基于LSTM的进程日志异常检测模型LSTM-ADM。
异常检测阶段:
(1)对于待检测进程p的日志序列为L
(2)利用日志模板主题映射字典TD,将K
(2a)初始化S
(2b)依次处理K
(3)利用滑动窗口机制,对S
(3a)初始化滑动窗口长度为h,滑动步长为1,日志模板主题窗口集合W
(3b)判断S
(3c)通过移动滑动窗口,构造与S
(3d)对于DP中的每一个检测对(w
(3e)当DP中的所有检测对均处理完毕,均未检测到异常,则进程p无异常,检测结束。
本发明的有益效果是:
本发明首次提出了基于LDA主题特征的日志异常检测方法,该方法能够将日志进行特征提取并转换为日志模板主题,弥补了现有基于日志模板的异常检测方法的不足。
该方法使用的LDA主题模型是一种无监督模型,仅需要日志模板数据作为语料并且指定主题数量,无须标签即可完成训练获得LDA-CM主题分类模型,易于实现;
此外,LDA-CM主题分类模型能够将新增日志模板匹配到最相关的日志模板主题,从而解决了现有方法对于新日志模板注入的模型鲁棒性问题。
附图说明
图1为本发明日志数据预处理图。
图2为本发明基于LDA主题特征的日志异常检测方法的整体框架流程图。
具体实施方式
以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。
如图2所示,本发明是一种基于LDA主题特征的日志异常检测方法,包括两个阶段:
模型训练阶段:在所述模型训练阶段,首先利用日志解析器将系统日志解析为日志模板集合和日志三元组集合,日志模板集合用以训练LDA模型,得到日志模板主题分类模型LDA-CM;然后,利用LDA-CM模型将日志三元组转换为进程日志模板主题,进而利用滑动窗口机制构造训练样本,最后将训练样本输入LSTM模型,训练生成日志异常检测模型LSTM-ADM;
异常检测阶段:在所述异常检测阶段,首先将待检测的进程日志转换为对应的模板主题序列,然后输入步骤1中的LSTM-ADM模型,实现针对进程日志的异常检测。
下面结合附图1-2进一步说明本发明。
本发明提出的基于LDA主题特征的日志异常检测方法,包括如下步骤:
在模型训练阶段:
(1)获取系统日志数据L={log
(2)对日志模板K中每个日志模板进行单词拆分,得到单词列表WL,对WL每个单词进行小写转换、过滤停用词和无语义标识符,最后使用磁带模型将单词列表转化为语料添加到语料列表CL,将语料CL输入预设主题集合为T={t
(3)初始化日志模板主题映射字典TD,使用LDA-CM模型计算K中每一个日志模板k
(4)根据P中的进程,对日志三元组集合D进行处理,并利用TD建立P中各进程对应的日志模板主题序列,构成的序列集合记为S={S
(4a)根据P中各进程的ID,即日志三元组中的pid,将D划分为若干子集,并根据时间戳ts对各子集中的日志三元组进行排序,从而为每个进程p
(4b)对于P中每个进程p
(5)利用滑动窗口机制,对S中的每个进程p
(5a)初始化滑动窗口长度为h,滑动步长为1,训练样本集合TP为空;
(5b)对S中的每个进程p
(6)利用TP中的训练样本训练LSTM模型,生成基于LSTM的进程日志异常检测模型LSTM-ADM。
在异常检测阶段:
(1)对于待检测进程p的日志序列为L
(2)利用日志模板主题映射字典TD,将K
(2a)初始化S
(2b)依次处理K
(3)利用滑动窗口机制,对S
(3a)初始化滑动窗口长度为h,滑动步长为1,日志模板主题窗口集合W
(3b)判断S
(3c)通过移动滑动窗口,构造与S
(3d)对于DP中的每一个检测对(w
由此可见,基于LDA主题特征的异常检测方法具有较好的鲁棒性和可实现性。
以上所述仅为本发明的实施方式而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理的内所作的任何修改、等同替换、改进等,均应包括在本发明的权利要求范围之内。
机译: 基于改进LDA模型的在线互联网主题挖掘方法
机译: 基于深度递归神经网络的时序日志数据的上下文感知特征嵌入和异常检测
机译: 基于深度递归神经网络的时序日志数据的上下文感知特征嵌入和异常检测