1.27 Network Anomaly Detection by Using a Time-Decay Closed Frequent Pattern
摘要
传统机器学习方法中关注网络异常检测,忽略对用户异常行为的检测。本文提出基于时间衰减的封闭频繁模式的异常检测模型解决行为检测问题,并提供更新策略。该模型从每个用户的网络流量中挖掘出封闭的频繁模式,并使用时间衰减因子来区分当前和历史网络流量的比重。
0x01 介绍
- 目前有两种主流的检测方法:Machine Learning和Data Mining。两者目的和方法有不同,ML重点是分类和预测,DM重点是发现数据中的未知属性
- 传统上的异常方法有三大类:
- 误用检测
- 利用以前所知的知识定义异常,对于已知的异常,有很好检测效果且误报率低
- 缺点在于无法识别0day攻击和其他未知异常
- 异常检测
- 通过将网络流量与预定义的常态模型进行比较来识别异常情况
- 混合检测
- 使用误用检测和异常检测的混合检测方式
- 误用检测
- 现有研究现状缺陷
- 有的忽略了用户行为异常;
- 有的忽略了用户行为的概念偏移,如随着时间推移而改变;
- 这些方法不能为异常情况提供可解释性的解释
- 本文贡献:
- 提出了一个框架,可以从用户网络流量中挖掘频繁模式来代表用户网络行为。使用频繁模式来构建用户行为模型以进行异常检测。此外,对频繁模式应用了时间衰减因子,以区分当前网络流量和历史网络流量之间的权重。
- 为了应对用户行为的变化,在异常检测框架中提供了一个检测模型更新策略。
- 所提出的方法所取得的网络异常检测性能与最先进的方法(受限玻尔兹曼机和支持向量机(RBM+SVM)[14]和非对称深度自动编码器(NDAE)[15])相似,并明显优于基线方法(K-近邻(K-NN),支持向量机(SVM)和C4.5决策树)
- Restricted Boltzmann Machine(RBM,受限玻尔兹曼机):是一种可通过输入数据集学习概率分布的随机生成神经网络。受限玻兹曼机在降维、分类、协同过滤、特征学习和主题建模中得到了应用。根据任务的不同,受限玻兹曼机可以使用监督学习或无监督学习的方法进行训练。
- non-symmetric deep auto-encoder(NDAE,非对称深度自编码器):AE是一类在半监督学习和非监督学习中使用的人工神经网络ANN,其功能是通过将输入信息作为学习目标,对输入信息进行表征学习(representation learning) 。NADE为其特殊形式。自编码器包含编码器(encoder)和解码器(decoder)两部分。自编码器具有一般意义上表征学习算法的功能,被应用于降维(dimensionality reduction)和异常值检测(anomaly detection)。包含卷积层构筑的自编码器可被应用于计算机视觉问题,包括图像降噪(image denoising)、神经风格迁移(neural style transfer)等。
0x02 相关工作
2.1 网络异常检测
- 基于误用的检测:将检测的和已知的进行对比
- 基于异常的检测:侧重于正常模式的描绘,建立正常的“活动档案”,通过比较,识别未知攻击
- RBM+SVM:可解释性强。(Garg, S.; Kaur, K.; Kumar, N.; Rodrigues, J.J. Hybrid Deep Learning-based Anomaly Detection Scheme forSuspicious Flow Detection in SDN: A Social Multimedia Perspective. IEEE Trans. Multimed. 2019, 21, 566–578.)
- 遗传算法:决策树(DTs)与进化技术相混合以产生检测规则。(Papamartzivanos, D.; Mármol, F.G.; Kambourakis, G. Dendron: Genetic trees driven rule induction fornetwork intrusion detection systems. Future Gener. Comput. Syst. 2018, 79, 558–574.)
- NADE+RF(随机森林):其中NDAE被用来学习网络流量的表现形式,RF被用来将这些表现形式分类为正常活动或网络攻击。(Shone, N.; Ngoc, T.N.; Phai, V.D.; Shi, Q. A deep learning approach to network intrusion detection.IEEE Trans. Emerg. Top. Comput. Intell. 2018, 2, 41–50. )
- GAN:在训练过程中可以从复杂的高维数据空间学习编码器到潜伏空间,基于学习到的特征的重建误差被用来识别样本是否异常(Zenati, H.; Romain, M.; Foo, C.S.; Lecouat, B.; Chandrasekhar, V. Adversarially Learned AnomalyDetection. In Proceedings of the 2018 IEEE International Conference on Data Mining (ICDM), Singapore,17–20 November 2018; doi:10.1109/icdm.2018.00088. )
不足
- 误用检测对0day检测能力不足
- 异常检测忽略了用户行为的异常性
2.2 用户异常行为检测
- 将用户活动转化为树状结构文件,将历史活动与最近活动进行比较(Legg, P.A.; Buckley, O.; Goldsmith, M.; Creese, S. Automated insider threat detection system using user androle-based profile assessment. IEEE Syst. J. 2015, 11, 503–512.)
- 收集带有时间戳的进程时间,将其转换为离散时间信号。通过比较异常得分和阈值,检测异常行为。(Fawaz, A.M.; Sanders, W.H. Learning process behavioral baselines for anomaly detection. In Proceedings ofthe 2017 IEEE 22nd Pacific Rim International Symposium on Dependable Computing (PRDC), Christchurch,New Zealand, 22–25 January 2017; pp. 145–154)
- PCA子空间异常检测DDoS攻击,分析网络服务日志,如客户端IP字段、URL字段和时间字段(Najafabadi, M.M.; Khoshgoftaar, T.M.; Calvert, C.; Kemp, C. User behavior anomaly detection for applicationlayer ddos attacks. In Proceedings of the 2017 IEEE International Conference on Information Reuse andIntegration (IRI), San Diego, CA, USA, 4–6 August 2017; pp. 154–161.)
- 无监督学习模型检测,通过分析时间适应性的局部离群因子和通信特征作为用户行为,将结果可视化。(Cao, N.; Shi, C.; Lin, S.; Lu, J.; Lin, Y.R.; Lin, C.Y. Targetvue: Visual analysis of anomalous user behaviors inonline communication systems. IEEE Trans. Vis. Comput. Graph. 2015, 22, 280–289. )
- 一个半监督网络:该检测方法包括离线和在线阶段。在离线阶段,使用集群调整方法创建初始检测模型。在在线阶段,使用半监督的增量学习方法来更新分类模型。(Noorbehbahani, F.; Fanian, A.; Mousavi, R.; Hasannejad, H. An incremental intrusion detection systemusing a new semi-supervised stream classification method. Int. J. Commun. Syst. 2017, 30, e3002. )
- Adaptive Intrusion Detection Model(AIDM,自适应入侵检测模型):研究不同的增量机器学习分类器,它可以实时学习网络流量而不需要重新部署检测基础设施。(Mohamed, M.R.; Nasr, A.A.; Tarrad, I.F.; Abdulmageed, M.Z. Exploiting Incremental Classifiers for theTraining of an Adaptive Intrusion Detection Model. IJ Netw. Secur. 2019, 21, 275–289.)
- 检测时间序列异常的Recurrent Neural Networks(RNNs,循环神经网络)(Saurav, S.; Malhotra, P.; TV, V.; Gugulothu, N.; Vig, L.; Agarwal, P.; Shroff, G. Online anomaly detection with concept drift adaptation using recurrent neural networks. In Proceedings of the ACM India JointInternational Conference on Data Science and Management of Data, Goa, India, 11–13 January 2018;pp. 78–87)
不足
- 更新欠缺,不能更新训练好模型。在网络流量行为改变后,性能下降
- 模型更新透明,网络管理员无法理解模型中的哪些行为模式被改变了
0x03 频繁模式
3.1 封闭频繁模式
- 常见的节约挖掘成本的压缩方法:Closed frequent pattern(封闭频繁模式)、Maximal frequent pattern(最大频繁模式)和Top-K frequent pattern(TOP-K频繁模式) 。最大频繁模式法和top-k频繁模式法可以达到比封闭频繁模式法更好的压缩性能。然而,高压缩性能的代价是,在最大频繁模式和top-k频繁模式中可能会丢失一些信息。
- 相关要素:
- 置信度
- 频繁模式
- 封闭算子
- 封闭频繁模式
3.2 基于时间衰减的封闭频繁模式
在真实场景中,用户行为随时间变化,这可能会影响检测结果。因此,我们在异常检测模型中使用时间衰减因子来减少历史交易的影响。我们通过时间衰减因子强调当前的网络交易比历史交易更重要。我们提出了一种时间衰减的CloStream(TDCloStream)算法,该算法受到CloStream算法[23]和TDMCS算法[24]的启发。通过使用时间衰减因子,当前网络流量交易的重要性和历史网络流量交易的累积效应都被同时考虑。
- CloStream
- TDMCS:TDM-Based Closed Frequent Pattern Mining on Data Stream
0x04 框架
- 输入的数据包含网络流量和用户信息,这些数据来自校园网络计费系统(审计记录器)。用户信息包括UserID、IP和时间戳。在数据处理过程中,我们应用nDPI库,基于用户信息的UserID被添加到每个交易中。处理后的交易被存储在Redis数据库中。封闭的频繁模式被挖掘出来以代表用户的网络行为。在建模阶段,我们提取正常网络流量的频繁模式,为每个用户构建检测模型。在检测阶段,我们从每个用户的交易中挖掘出频繁模式,并通过计算挖掘出的模式和检测模型之间的相似度来识别异常模式。如果一个流量包括异常模式,就会触发警报。
0x05 算法
5.1 TDCloStream算法
三种数据结构:
-
ClosedTable:用于维护封闭模式,由4个字段组成,每条记录代表一个封闭模式的信息。
- Cid:唯一标识符,用于识别每个封闭模式
- CP:确定的封闭模式存储在CP字段中
- SC:支持数存储在SC字段中
- Flag:更新支持计数的标志字段
-
CidList:用于维护项目及其CidSets的信息。CidSet字段存储每个项目对应的Cid集
-
TransTable:用于存储新交易到来后的潜在封闭模式,它包含两个字段
-
TempCP:满足如下项目集
\[NewTransactions\cap t_{i},t_{i}\in CloseTable \] -
Cid:同CloseTable
-
由于用户行为随时间变化,代表用户行为的频繁模式也随之变化。为了区分历史网络流量交易和当前网络流量交易的权重,使用时间衰减因子t f来更新ClosedTable中封闭模式的支持数
TDCloStream包括两个功能部分,TDCloStreamADD()函数和修剪部分。TDCloStreamADD()用于处理新的交易,而剪枝部分用于随着时间的推移剪除ClosedTable中不经常出现的模式。其伪代码如下:
在TDCloStreamADD()函数中,有两个阶段:
- 在第一阶段,对于新交易中的每个项目,其对应的CidList中的Cid集被存储在SET({tnew})中,其中CidSet(i)是第i个的Cid集。该函数在新交易tnew和Cid在SET({tnew})中的封闭模式的交集处寻找潜在模式,并将潜在模式存入TransTable。
- 在第二阶段,该函数更新潜在模式的支持数并更新CidList。
TDCloStreamADD()的整个过程如算法2伪代码所示:
5.2 异常检测和模型更新
异常检测和模型更新的算法如算法3所示。该算法检测异常情况,然后更新检测模型。从第3行到第17行,该算法计算P中每个封闭的频繁模式与异常检测模型之间的相似度S,并通过一个预定义的阈值φ确定该模式是否是异常的。从第18行到第24行,该算法通过用正常模式集Nor更新旧模式M来生成新的检测模式M。
0x06 评价
在本节中,我们讨论了所提出的方法在用户行为异常和网络异常方面的异常检测性能。首先,我们对实验中使用的数据集进行了讨论。然后,我们比较了拟议的TDCloStream算法与基线方法在两个数据集上的检测性能,以及最先进的算法[14,15]在KDD99数据集上的检测性能。实验结果在本节中给出并讨论。实验结果表明,所提出的算法可以检测到用户行为的异常和网络的异常。我们在一台拥有32G内存的英特尔至强(R)E5-2609 v3 CPU服务器上进行实验,使用CentOS7作为操作系统。所有的算法都是用C++和Python编码的。
6.1 数据集
-
主要采用了BUCT和KDD99两个数据集
-
BUCT数据集是一个真实的网络流量数据集,是由北京化工大学图书馆采集的。BUCT数据集的网络流量是由274个用户和两个webservers产生的。我们采集了3天的网络流量:2天的数据用于构建用户行为模型,1天的数据则用于测试。由于BUCT数据集不包括异常信息,我们使用Scapy为BUCT数据集生成SYN-flood攻击流量。
-
KDD99集包含以下:
- DOS:拒绝式攻击,如SYN-ACK泛洪攻击
- R2L:未授权的远程访问,如爆破密码
- U2R:未授权的本地权限提升,如提权操作
- Probing:监视和数据搜集,如端口扫描
-
KDD99仍有一些问题,包括:冗余的记录和不合理的训练和测试记录的数量。解决方法是:非一次性检测所有的记录,而是随着时间的推移检测异常并更新用户行为模型
-
为了评估检测性能,我们将KDD99数据集分为异常类别和正常类别。两个数据集的细节见表1。
- 此外,拟议的检测方法通过比较当前网络流量的模式和基于频繁模式的用户行为模型来检测网络异常。如果一个网络流量模式与模型相差甚远,就会被认定为异常情况。尽管所选择的数据集并不包括所有类型的网络攻击,但所提出的方法在理论上可以检测到与检测模型不一致的异常情况。
6.2 特征(预处理)
-
为了在BUCT数据集中挖掘封闭的频繁模式,我们用开源的深度包检测库nDPI将原始网络流量转化为交易。nDPI可以识别具有五元组[30]{源IP、目的IP、源端口、目的端口、协议}的流量,并将网络流量转化为交易。为了将网络交易与用户联系起来,我们通过将交易与审计记录器进行匹配,为每个交易添加用户信息(UserID)。在这个过程中,TDCloStream从用户交易中挖掘出封闭的频繁模式。BUCT数据集的交易特征如表2所示
-
对于KDD99数据集,每个交易都由四种类型的特征描述:连接基本特征、连接内容特征、基于时间的流量特征和基于主机的流量特征。我们从KDD99数据集的41个特征中选出13个特征。这些特征如表3所示
- 对这些特征进行了预处理,因为这些特征是不同类型的。例如,IP和标志是离散的,而流量大小是连续的。这些连续的特征被离散化,以满足拟议算法的要求。
6.3 衡量标准
本文使用的指标是准确性、精确性、召回率和F-measure,这些都是异常检测的典型指标。对于分类,数据可能有四种状态中的任何一种:真阳性(TP)、假阳性(FP)、真阴性(TN)和假阴性(FN)。
- TP:归类为异常交易的异常流量交易。
- FP:归类为异常交易的正常流量交易。
- TN:归类为正常交易的正常流量交易。
- FN:归类为正常交易的异常流量交易。
准确率
精确率
召回率
F-Measure
6.4 结果
6.4.1 挖掘频繁模式
采用FP-Growth算法进行挖掘,挖掘频繁模式、封闭频繁模式和最大频繁模式。
6.4.2 用户异常模式挖掘
本节中模拟账户被劫持事件,以评估用户异常行为检测的性能。
在这个实验中,我们随机选择了100个用户的行为模型作为检测模型,并将其流量交易作为正常的测试数据。对于每个检测模型,使用一个不同的用户流量交易作为异常测试数据,以模拟账户劫持,即一个用户账户被另一个用户使用来访问互联网或其他网络资源。此外,我们还评估了时间衰减因子的影响。如果时间衰减因子等于1,闭合频繁模式的支持度就不会受到时间衰减因子的影响,而提出的TDCloStream算法就会转变为CloStream算法。
最小支持度=0.1,异常阈值=0.2
与其他异常检测方法相比,封闭式频繁模式可以为异常现象提供可解释的解释。在检测之后,所有封闭的频繁模式都可以被网络管理员进一步分析。由于长模式比短模式包含更多的信息,我们从两个随机用户中选择了一些包含7个以上特征的长模式,并将其列在表5。如果有一个特征不包含在频繁模式中,我们就把这个特征值设置为空。
从表5中的频繁模式,我们可以推断出用户1和用户2通常使用网络来浏览网页,他们的网络行为是相似的。此外,用户2的网络行为包括一些UDP流数据访问。与100∼1000个包的网络行为模式相比,用户1的模式的支持率大于用户2的模式,这表明这两个人的网络行为是不同的。
6.4.3 网络异常探测
为了评估网络异常情况,我们使用Scapy模拟了BUCT数据集的网络异常情况。我们用Scapy生成SYN-flood数据包,分别以1 M/s、5 M/s、10 M/s、15 M/s和20 M/s的速率攻击库中的两个网络服务器。攻击源地址在10.47.0.1∼10.69.255.254范围内随机生成,攻击源端口也是随机生成。两台服务器的平均网络速度为0.9 M/s,峰值速度为7 M/s,异常阈值φ被设置为0.2。图4显示了不同算法在BUCT数据集上的准确性、精确度和召回率。从实验结果来看,在不同的攻击率下,所提出的方法在准确性、精确性和召回率方面都比其他算法有更好的检测性能。由于BUCT的测试数据是时间序列数据,基于时间衰减的拟议方法取得了比Clostream更好的检测性能。
由于KDD99数据集不包含用户ID信息,我们无法确定这些记录属于哪个用户。我们使用一个代表KDD99数据集正常网络行为的行为模型来检测异常情况。在这种情况下,这个网络行为模型可以被看作是一组用户的集合检测模型。我们选择了20万条正常记录作为训练子集,同时选择了70万条正常记录和300万条异常记录作为测试子集。图5显示了不同算法在KDD99数据集上的准确性、精确度和召回率。从图5a来看,TDCloStream、CloStream、K-NN、SVM、C4.5、RBM+SVM[14]和NDAE[15]的准确率分别为97.7%、97.3%、77.1%、81.1%、90.1%、99.98%和93.9%。图5b、c分别显示了这些方法的精度和召回率。根据实验结果,提出的方法所取得的网络异常检测性能与最先进的方法相似,并明显优于基线方法。由于KDD99的测试数据不是时间序列数据,TDCloStream和CloStream取得了类似的检测性能。
表6显示了BUCT数据集的一些正常网络模式和异常网络模式。当网络攻击(SYN-flood)发生时,特征6(数据包计数)、特征7(流量大小)、特征8(最大数据包大小)、特征11(第一个有效数据包大小)和特征12(第二个有效数据包大小)的值出现了明显的变化。所有的变化值都比正常模式的值小。这一现象表明,黑客在有限的资源下尽可能多地发动攻击。
同样,表7显示了KDD99数据集的一些正常模式和异常模式。通过分析,我们发现特征2、特征4、特征5、特征7、特征8和特征9可以帮助网络管理员判断网络是否发生异常。在TCP异常的情况下,特征5(src_bytes)的值在0∼100之间,明显小于正常模式下特征5的值;特征4(Flag)的值为S0,代表连接的错误状态;特征7(logged_in)的值为0,代表登录失败。在ICMP异常的情况下:特征5(src_bytes)的值在1000∼1100之间;特征8(count)的值在510∼520之间,代表与当前连接有相同目标主机的连接数,特征9(srv_count)的值在510∼520之间,代表与当前连接有相同服务的连接数。 特征8和特征9的大值表明许多连接都指向一个具有相同服务的目标主机。
6.4.4 参数评估
在这一节中,我们评估了超级参数,如窗口大小N,最小支持度θ,时间衰减因子f,以及异常阈值φ。
因为在TDCloStream中使用了时间衰减因子,所以频繁模式的支持数要比原始支持数小。根据公式(7),在时间衰减设置下,支持数有最大的限制。因此,我们设定时间衰减因子的值,其最大极限等于窗口大小的值,即:
不同任务的检测性能受窗口大小N的影响,如图6所示。对于用户异常行为检测,当N在4000-6000范围内时,F值高于0.860。对于KDD99的异常检测,当N为5000时,F-measure最高,为0.978。对于BUCT的异常检测,当N为5500时,最高的F-measure为0.976。因此,在本文的评估实验中,我们将N设置为5000。时间衰减因子t fis的值基于N,所以t f为0.9998。
用户异常行为检测的优化。我们应用F-measure来评估BUCT数据集上用户异常行为检测的最佳最小支持度θ和异常阈值φ。图7的实验结果表明,随着最小支持度和异常阈值的增加,F-measure也在增加。当最小支持度θ在0.1到0.25之间,异常阈值φ在0.15到0.3之间时,检测率最好。然后,随着最小支持度和异常阈值的增加,F-measure会下降。通过3.1节的定义,频繁模式的数量与最小支持度θ成反比。当频繁模式的数量大时,有太多的无用信息。当频繁模式的数量小时,检测模型中的有用信息很少。
网络异常检测优化。F-measure也被用来评估网络异常检测中的最优最小支持度θ和异常阈值φ。在BUCT数据集上进行的超参数评估实验中,我们随机选择了200万个正常数据并模拟了200万个异常数据。同样,从KDD99数据集中随机选择了90万个正常数据和90万个异常数据进行实验。实验结果显示在图8中。当最小支持度θ在0.1到0.3的范围内,异常阈值φ在0.1到0.25的范围内时,实现了最佳检测率。
0x07 结论
本文提出了一个基于时间衰减封闭频繁模式的异常检测模型。该模型从每个用户的网络流量中挖掘出封闭的频繁模式,并利用时间衰减因子来区分当前网络流量和历史网络流量的权重。由于用户网络行为的动态性质,静态的学习模型随着时间的推移会降低检测性能。为了应对网络行为的变化,异常检测框架中提供了一个模型更新策略,以提高用户异常行为检测的稳健性。所提出的模型不仅可以检测用户行为的异常,还可以检测网络的异常。根据实验结果,所提出的方法实现的网络异常检测性能与最先进的方法相似,并明显优于基线方法。此外,封闭的频繁模式可以为异常现象提供可解释的解释。
然而,在未来的工作中,还有一些问题需要考虑。例如,我们在框架中使用的实验数据的规模远远小于校园网络出口数据的规模,计算成本将随着数据量的增加而明显增加。为了处理大的网络数据,并行算法是潜在的解决方案之一。在我们未来的工作中,我们将研究基于频繁模式的并行异常检测模型,并提供并行模型的更新策略。另一点是,数据集不包含移动设备产生的网络流量,所以我们没有分析该模型是否适用于无线和移动网络。我们计划在未来捕获校园网络的WiFi流量。此外,我们将进一步研究时间衰减对网络异常检测和用户行为异常检测的影响。
总结
- 数据挖掘,频繁模式挖掘,FP-Growth算法,行为检测,流量检测
- 研究创新性:弥补传统机器学习对行为检测的缺陷,在行为检测中引入时间衰减Time-Decay的因素调整相关权重
- 训练数据集:BUCT、KDD99
- 缺点:算法单一,应对大量数据增加成本;对无线和移动网络的运用未知;KDD99数据集存在过时和数据缺失问题
- 新知识点:RBM、NADE、CloStream、TDMCS

浙公网安备 33010602011771号