Finding Anomalies in Network System Logs with Latent Variables

Big-DAMA '18 Proceedings of the 2018 Workshop on Big Data Analytics and Machine Learning for Data Communication Networks

研究点的提出

系统日志可以帮助网络管理员识别网络上的异常内容,但是往往因为海量日志及其多样性的特征使得分析十分困难。在此提出了一种不需要特征提取和预处理的日志异常事件处理机制。

传统工作

首先按照消息类型(即日志模板)对日志进行分类,然后将它们视为统计时间序列,以便稍后通过统计分析进行处理。

传统基于特征选取,考虑环境,不适用于新环境

对比实验

知识点

自动编码器

  • 无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。

  • 可以用于特征降维

  • 变分编码器:生成模型,

  • 条件变分自编码器

论文内容

定义异常行为:时间序列行为偏离日志时间序列中的正常或通常状态

通过使用潜在变量将大量不同的数据嵌入隐藏状态

key idea: model log time series characteristics based on the latent variables

  • 训练阶段通过使用条件变分自动编码器(CVAE)将对数时间序列特征嵌入到变量中。为了减轻从设备处理各种时间序列的难度,我们为CVAE提供了日志消息类型作为条件标签。
  • 检测阶段通过聚类算法突出显示潜在变量分布的异常。

论文阅读:Finding Anomalies in Network System Logs with Latent Variables

数据集

日本教育网的日志

实验内容

  1. 每天的日志(long log)——data point
  2. 使用CVAE生成原始向量(latent variable)
  3. 训练CVAE模型:代表潜在的时序行为特征
  4. 聚类发现异常

x input,z:latent variable

normal:基于最大似然函数的重构误差(一般研究使用重构(从经过变换的数据中恢复出原始数据)误差)
存在问题:

  • 重构过程随机,MLH正态分布
  • MLH受原始数据影响大

456 天的日志数据

log message -> Log templates,不包括IP信息等。从每个设备根据时间戳提取出时间序列,产生1789个唯一的log templates,
识别了每天456个事件;选取120个事件(周期性、突发性、稀疏性)

  • 为每个事件每天(即数据点)构建每分钟的日志出现次数的对数时间序列。
  • 将原始日志数据分类为每个设备的日志类型
  • 先计算每分钟的日志出现次数
  • 然后,按每天拆分它们(1440分钟)
  • 基于事件标签构建的条件标签来连接日志时间序列
  • 条件标签120维(one-hot编码)
  • 最终得到120×456 = 54,720个数据点和条件标签

encoder + decoder:4层
输入:120+1440维
encoder:512, 256, 128 and 64
latent variable:10
output:1440
dropout:30%
epoch:50
对于每个事件序列计算KLD

相关文章: