Page 330 - 《软件学报》2020年第10期
P. 330
3306 Journal of Software 软件学报 Vol.31, No.10, October 2020
时间段内可能有人进行暴力破解密码的行为;
• 情景 1:流量序列中占据异常最重要比重的日志类型是 T 11 (同上)和 T 6 (pam_unix(sshd:auth): check pass;
user unknown).该种异常日志流量模式表明,此时间段内出现大量登录的行为,并且检测通过了,说明系
统密码可能已经被攻破;
• 情景 2:流量序列中占据异常最重要比重的日志类型是 T 7 (同上)和 T 2 (pam_unix(sshd:session): session
opened/closed for user).该种异常日志流量模式表明时间段内会话数量突然增多;
• 情景 3:流量序列中占据异常最重要比重的日志类型是 T 1 (connection closed by 〈IP〉)和 T 11 (failed
password for root from 〈IP〉 port 〈port〉 ssh2).该种异常日志流量模式表明,此时间段内可能有人进行暴
力破解密码的行为;
• 情景 4:流量序列中占据异常最重要比重的日志类型是 T 1 (同上)和 T 28 (usr1: TTY=pts/0; PWD=〈PATH〉;
USER=root; COMMAND=/bin/tail -f /var/log/messages).该种异常日志流量模式表明,该时间段内用户
使用的命令突然增多;
• 情景 5:流量序列中占据异常最重要比重的日志类型是 T 11 (同上)和 T 7 (同上).该种异常日志流量模式与
情景 1 相同,但是出现的数量比情景 1 高出很多.
需要指出的是:由该方法得出的日志流量异常模式仅代表由机器辅助分析得出的流量异常情况,并不等同
于该时间片内发生了实际的用户非法行为或系统错误.具体是否存在需要处理的异常状况,仍需要人工判断.但
该方法可以自动缩小异常状况的观测范围,极大地减小了人工处理所需的工作量.
4.3 算法效率方面的分析评价
本小节统计出进行日志异常检测算法时在早、晚、深夜这 3 个不同时间段的不同操作中各个步骤所用的
时间,并对结果进行分析与对比.上述讨论中,半年的日志数据在不同时间段进行检测时各个阶段所用时间详见
表 9.
Table 9 Time spent in each stage of the test in different time periods
表 9 不同时间段在进行检测的各个阶段所用时间
时段 时间/占比 异常处理 异常流量筛选 层次聚类 类别选择 总时间(s)
时间(s) 33.58 86.14 2041.88 39.04
白天 2 200.64
占比(%) 1.52 3.91 92.86 1.71
时间(s) 18.59 50.87 656.05 24.92
晚上 750.43
占比(%) 2.48 6.78 87.18 3.56
时间(s) 25.15 53.05 731.75 28.15
夜里 838.10
占比(%) 3.00 6.33 87.31 3.36
由表 9 我们可以分析得出如下结论.
(1) 通过总时间的纵向对比我们可以发现,本文系统在处理白天产生的流量数据所用的时间明显多于晚
上和夜里.这说明从总体来看,白天访问高性能计算环境的人数较多,进行的操作也较多,因此容易出
现异常流量;
(2) 通过不同检测阶段的横向对比我们可以看出,层次聚类步骤消耗的时间较多.因为层次聚类算法本身
2
的时间复杂度是 O(n logn)(这里的 n 代表待聚类序列的数量),同时,我们选择的距离度量基于最长公
共子序列算法,该算法仅需得到子序列长度,无需构造出最长公共子序列,其时间复杂度是 O(mn)(这
里的 m 和 n 分别代表待比较的两个序列的长度).根据以上分析我们可以看出,层次聚类模块处理流量
数据时受到待分析日志的数量以及每个流量序列的长度影响较大.对比白天和晚上层次聚类算法的
占比也可以看出:当总时间较长时(白天>晚上),层次聚类所用时间的占比也会变大.
需要指出的是:虽然本文介绍的方法在计算时较为费时,但是该方法所进行的异常流量判别可以得到各个
异常流量的情景,该步骤属于异常流量情景数据建模.当建模结束后即可得到各种异常流量情景,此时即可根据