Page 325 - 《软件学报》2020年第10期
P. 325

王晓东  等:多节点系统异常日志流量模式检测方法                                                         3301


         异常模式提取的思想就是在异常时间片内找到同一个主机产生的日志类型的关联规则,然后得到异常日志流
         量模式.
             (1)  异常流量筛选
             将日志时间片向量带入上一小节中介绍的方法,即可得到日志流量中对应的异常时间片.我们统计出正
         常、异常时间片中不同类型日志出现数量的分布,计算出其对应正常、异常日志和出现数量的中位数来进行后
         续比较.根据比较的差值来得出正常、异常时间片主要差异的日志类型.
             为了将时间片内所有的日志类型序列得到,我们单独将每个异常时间片进行抽离.对于每个单独的异常时
         间片,根据不同节点将对应的日志类型序列记录下来.比如某个时间片内出现了异常,我们将时间片内的全部日
         志提取出来,根据这些日志数据得到所有节点名,之后根据节点名单独挑选出每个节点在对应时间片内的所有
         日志类型,组成一个日志类型序列.这些序列中有许多并非异常流量的数据,因此我们根据两个规则进行异常类
         型序列的筛选,具体规则如下.
             A   该主机日志数量超过给定阈值 HTN(host threshold number);
             B   该主机日志的类型包含前面检测出的主要差异的日志类型.
             选择机制 A 的主要原因是:如果时间片内出现的日志数量比较少,则说明该节点并没有发生流量异常现象,
         因此可以不予考虑.选择机制 B 的主要原因是,根据正常异常类型分布得到的是最能区别出正常与异常的日志
         类型.
             例如:检测出的某一个异常时间片内出现的日志见表 2,则根据节点名得到 3 个不同的日志类型序列:Node1
         产生的序列 S 1 =T 1 ,T 3 ,T 1 ,Node2 产生的序列 S 2 =T 0 ,T 2 ,T 1 ,Node3 产生的序列 S 3 =T 3 ,T 1 .假如设定的阈值为 HTN=2,
         根据中位数得到的异常比正常多的日志类型为 T 3 ,则根据过滤规则 A 将会把 S 3 过滤掉,根据过滤规则 B 将会把
         S 2 过滤掉,这样过滤后留下的日志类型序列是 S 1 .
             使用这两种过滤机制筛选后,依然可以得到大量的异常流量类型序列.其中,各个序列之间有大量重复的流
         量序列特征,因此需要对这些日志类型序列进行模式分类,建立异常日志流量模式库.
             (2)  基于最长公共子序列距离度量的层次聚类方法进行异常流量分类
             层次聚类法是一种基于距离度量的聚类算法,其特点是可以根据距离阈值的变化得到原始数据的分类数
         目,因其显示效果和解释效果好,而在机器学习中非常常用.我们使用基于最长公共子序列的相似度算法对两个
         日志类型序列计算距离,然后将上一小节得到的大量异常流量类型序列进行层次聚类.使用最长公共子序列度
         量两条日志类型序列,是因为日志类型的有序排列可以决定一个节点的异常日志流量模式.在实际运算时,我们
         认为最长公共子序列匹配的日志类型数目越大,则代表两条日志序列匹配的效果越好.为了使得两个类型序列
         的相似度越高,距离越近,我们以如下方法定义两条日志类型序列的距离.
             设两个待比较日志类型的序列为 S 1 和 S 2 ,通过最长公共子序列得到匹配的类型序列为 S,则距离计算公
         式为
                                  ⎧ | S 1  |  +  | S 2  | , | | 0S >
                               d = ⎨ ⎪  ||S  | |S  ,其中 ,| |S 代表类型序列 S的长度 .
                                  ⎪
                                  ⎩ | S +  1  | | S 2  |,  | | 0S =
             例如,有两条日志类型序列分别是 S 1 =T 7 ,T 11 ,T 7 ,T 11 ,T 3 ,T 2 ,T 1 和 S 2 =T 7 ,T 11 ,T 7 ,T 11 ,T 2 ,则对这两条日志类型序列
         进行最长公共子序列比较后的结果见表 4.

                            Table 4    Comparison results of the longest common subsequence
                                        表 4   最长公共子序列比较结果
                                   T 7    T 11   T 7    T 11   T 3    T 2    T 1
                            T 7    +1     +1     +1     +1     +1     +1     +1
                                   +1     +2     +2     +2     +2     +2     +2
                           T 11
                            T 7    +1     +2     +3     +3     +3     +3     +3
                           T 11    +1     +2     +3     +4     +4     +4     +4
                                   +1     +2     +3     +4     +4     +5     +5
                            T 2
   320   321   322   323   324   325   326   327   328   329   330