利索能及
我要发布
收藏
专利号: 2023104789970
申请人: 南京信息工程大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-09-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:包括以下步骤S1、日志收集:收集来自不同系统产生的日志数据集,按照6:1:3的比例将其分为训练集、验证集以及测试集;

S2、数据预处理和日志解析:对每个原始日志条目进行拆分并对日志事件进行日志解析,获得日志条目对应的日志模板;

步骤S2中,数据预处理和日志解析包括以下步骤

S2.1、将日志条目根据日志框架确定的字段进行分割,提取出日志条目的有效信息,有效信息包括与日志条目相对应的时间戳、日志消息等级以及日志事件;

S2.2、对日志事件进行日志解析,将描述系统事件的日志关键字部分和日志参数部分进行分离;利用正则表达式将日志事件中的日志公共变量分别替换成相关标记,能够保留所述日志公共变量的部分语义信息,同时筛选出不符合规则的变量,将其与正常模板区分;

所述日志公共变量包括IP地址、端口号、八进制数以及日期;

步骤S2.2中,日志解析的方法包括以下步骤

S2.2.1、对每个日志事件进行分隔并形成一组单词标记;

S2.2.2、根据引入的字典将所有单词标记进行字典化,将字典中存在的单词标记识别为有效单词并放入单词集中;对于非字典中的单词标记,对其进行筛选,去除包含特殊字符的词,并引入基于wiki百科语料的频率分词的外部包wordninja,同时加入由有效词生成的连接词;

S2.2.3、将日志事件根据单词集进行集群,将具有相同单词集并且每个单词词频相同的日志事件被归为同一簇,并使用最长公共序列提取该簇现有模板的公共子序列;

S2.2.4、将所有不同集群获得的模板按照顺序对所有单词集进行排序并生成前缀树,最后生成最终的模板;

S3、语义向量化:通过BERT词嵌入模型对日志模板进行向量化;BERT词嵌入模型包括12层Transformer编码器,每个Transformer均包括768个隐藏单元;

进行语义向量化前,首先对BERT词嵌入模型进行预训练,BERT词嵌入模型分别通过掩码语言建模和下句预测模型进行预训练;

BERT词嵌入模型在进行预训练时,掩码语言建模在序列中掩盖部分单词并使用[MASK]替换,然后利用掩码后的序列让模型预测被掩码的词,以此来训练模型;下句预测模型通过将标签[CLS]加入第一个句子开头并用标签[SEP]连接第二个句子,来预测第二个句子是否是第一个句子的下一个句子;

S4、日志分组:基于日志时间戳和日志条目特定数据项将日志序列重排,使用固定窗口大小将所有日志条目分为日志序列,并结合步骤S3中语义向量化的方法得到日志序列语义向量;

对于每个日志序列,将其中每个日志对应的模板语义向量进行整合,作为每个日志序列的语义向量;

S5、日志序列聚类:通过HDBSCAN聚类算法将日志训练集中的所有日志序列聚类到不同的簇,并给出每条日志条目对应标签概率;

S6、异常检测:将日志序列语义向量输入带有残差块的双向Bi‑TCN网络进行训练,得到训练好的模型BTCNLog,在测试阶段使用该训练好的模型BTCNLog对日志测试集进行异常检测;

双向Bi‑TCN网络包括4层Bi‑TCN残差块,每层的卷积核大小k为3,dropout设置为0.2;

Bi‑TCN残差块由膨胀卷积、非线性映射、WeightNorm、Dropout以及残差连接组成;双向Bi‑TCN网络的每层中使用膨胀卷积和0‑padding技术来保证输入序列和输出序列具有相同的长度,padding=(k‑1)*d/2;

膨胀卷积计算公式如下所示:

padding=(k‑1)*d/2

其中,d表示膨胀率,以2的指数增长;k表示卷积核的大小;

步骤S6中,向Bi‑TCN网络中输入给定序列V={v1,v2,...,vn‑1,vn},并生成与给定序列长度相同的输出序列Y={y1,y2,...,yn‑1,yn};通过Bi‑TCN网络对日志上下文的相关性的特征提取后,使用全局平均池化来平均Bi‑TCN网络中最后一个卷积层的输出特征;最后经过全连接层和Softmax分类器对日志序列是正常还是异常进行判定。

2.根据权利要求1所述的一种基于双向时间卷积网络的半监督日志异常检测方法,其特征在于:所述步骤S5中,采用FastICA算法降低日志序列语义向量的维度,并使用基于密度群集的HDBSCAN聚类算法将训练集中的所有日志序列聚类到不同的簇,最后聚类结果给每个日志序列分配一个0到1区间的分数;

日志序列聚类包括以下步骤

S5.1、将日志序列语义向量作为图的顶点,日志序列之间的相互可达度量距离作为顶点之前边的权重,构建一个带权连通无向图,相互可达度量距离如下式所示,dmreach‑m(a,b)=max{corem(a),corem(b),d(a,b)}其中,dmreach‑m(a,b)表示日志序列样本a和b的相互可达度量距离,corem(a)表示日志序列样本a与第m个最近邻样本点的核心距离,corem(b)表示日志序列样本b与第m个最近邻样本点的核心距离,d(a,b)是两个日志序列样本a和b之间的直接距离;

S5.2、通过Prim算法构建带权连通无向图的最小生成树,根据最小生成树,通过按距离升序排列树的边,对于每条边连接的两个顶点,将它们所属的聚类合并为一个新的聚类;

S5.3、基于聚类的相对密度,使用单链接聚合策略将生成的聚类分层,并形成一个连接组件层次结构;

S5.4、根据预设的最小簇数值,将连接组件层次结构缩减为一个包含更少连接组件节点的树形图;

S5.5、根据每个簇的稳定性值,从压缩树中提取出稳定的簇,簇的稳定性公式如下所示,scluster=∑p∈cluster(λp‑λbirth)

其中,λ=1/distance,λbirth表示当节点被分裂成两个子节点时,对应断开边的长度的倒数;λp表示样本点p因为分裂离开该节点时,对应断开边长度的倒数;

S5.6、HDBSCAN聚类结果给每个日志序列分配一个0到1区间的分数score,score用于表示每个日志序列属于该簇的不确定性,score越小表示该日志序列越接近该簇的中心,将该分数转化为日志序列属于正常或异常的概率,若预测日志序列位于正常日志序列簇,则伪标签如下式所示:其中,P(normal)表示日志序列为正常的概率,P(anomalous)表示日志序列为异常的概率。