一种基于孤立森林的日志异常检测系统的制作方法

文档序号:34306840发布日期:2023-05-31 19:15阅读:63来源:国知局
一种基于孤立森林的日志异常检测系统的制作方法

本发明属于数据处理,具体涉及一种基于孤立森林的日志异常检测系统。


背景技术:

1、用户异常行为是如今网络面临的巨大威胁之一,用户异常行为指的是用户在访问网络过程中对网络运行环境造成影响的行为,常见的用户异常行为有ddos攻击、xxs攻击和重放攻击等。这些异常行为危害了网络安全,降低了网络的服务质量,提高了运维成本。用户日志异常检测系统在实时发现用户异常行为中扮演着极其重要的角色。用户日志异常检测系统包含日志收集、日志存储和日志分析等多个模块,它能够实时地采集用户在访问服务器过程中产生的行为日志,对日志在线检测,从而及时发现用户的异常行为。通过这种方式,维护人员能够及时发现网络中存在的风险,做出对应的措施,规避可能造成的损害。

2、然而,目前大部分的日志异常检测系统基于统计学方法来判断日志是否合法。这种检测方式语义清楚、实现简单,但是它难以检测出复杂的异常行为,这会降低检测的准确率。由于这些问题的存在,基于统计学方法的检测系统存在着巨大的安全隐患,甚至会造成公司巨大的经济损失。提出一种高准确率的日志异常检测系统已经是一件迫在眉睫的事情。

3、近年来,随着硬件性能的不断提升,机器学习越来越受到工业界的欢迎,在日志检测领域显示出了巨大的潜力。机器学习本质上就是让计算机自己在数据中学习规律,并根据所得到的规律对未来数据进行预测。它通过大数据训练模型,能够从数据中提取出有效特征,自动生成检测规则。这些规则以参数的形式保存在训练好的模型中,不需要人为进行干预。使用机器学习不仅提高了系统的检测准确率,而且大大降低了开发难度。

4、机器学习技术和日志检测系统的结合是一个比较经典的领域,国内外已经有许多相关的技术,deeplog是这些技术中非常经典的一种。机器学习主要可以分为无监督、有监督和半监督三种。有监督学习和半监督学习模型准确率往往比无监督学习要高,但是需要对数据集进行人工标注,这会增加人工成本。同时有监督学习和半监督学习计算复杂度更高,训练模型和检测过程耗费的时间相对更长。deeplog的核心是基于有监督学习,无法避免上述有监督学习中所存在的问题。相比与有监督学习,无监督学习的优势更加满足本方案需要解决的问题场景。

5、本发明借鉴了无监督中的孤立森林技术来实现一种高准确率、实时的用户日志异常检测系统。


技术实现思路

1、本发明的目的在于提供一种基于孤立森林的日志异常检测系统,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种基于孤立森林的日志异常检测系统,包括以下模块:

3、日志收集模块,所述日志收集模块负责对用户访问过程中生成的用户日志进行接收、整合并存储在本地;

4、日志过滤模块,所述日志过滤模块从日志收集模块中获取用户日志,通过对日志进行模式匹配,提前处理掉能够被模式匹配检测出的异常日志,输出被模式匹配检测为正常的日志;

5、日志处理模块,所述日志处理模块在训练场景下输入为用户日志数据集,在检测场景下输入为需要检测的用户日志,输出是编码后的用户日志;

6、模型训练模块,所述模型训练使用经过了日志处理模块的用户日志数据集作为输入,输出是训练模型;

7、通过孤立森林算法训练模型:包括以下步骤:

8、a)、从训练数据中随机选择n个点作为样本子集,放入树的根节点;

9、b)、随机指定一个样本特征,在当前节点数据中随机产生一个切割点 p;

10、c)、以此切割点生成一个超平面,然后将当前节点数据空间划分为2个子空间:

11、把指定特征中小于 p 的数据放在当前节点的左子节点,把大于等于 p 的数据放在当前节点的右子节点;

12、d)、在子节点中递归步骤b)和c),不断构造新的子节点,直到子节点中只有一个数据或子节点已到达限定高度;

13、e)、循环a)至d),直至生成 t 个孤立树;

14、f)、获得t个孤立树之后,孤立森林训练结束,然后进入数据的预测阶段。对于每一个数据点 x,令其遍历每一颗孤立树得到路径长度h(x),计算数据点x异常值分数的公式如下所示:

15、                                (2)

16、公式中e(h(x))表示点 x在多颗孤立树的平均路径长度,c(n)表示用n条数据构建的二叉树的平均路径长度,做归一化;

17、从异常分值的公式看,若数据 x 在多棵孤立树中的平均路径长度越短,得分越接近 1,表明数据 x 越异常;若数据 x 在多棵孤立树中的平均路径长度越长,得分越接近0,表示数据 x 越正常;若数据 x 在多棵孤立树中的平均路径长度接近整体均值,则得分接近0.5;

18、模型预测模块,将处理好的待检测日志输入模型预测模块得到运算结果,根据结果判断是不是异常日志,输出1表示日志是异常日志,输出0表示日志是正常日志(如图1所示)。

19、优选的,所述日志收集模块采用轻量的、在工业界常用的日志收集器filebeat,日志共包含10个字段,字段涉及到操作系统层面、网络层面、应用层面(如图2所示)。

20、优选的,所述日志处理模块分为日志裁剪和日志编码两个步骤,

21、所述日志裁剪:在训练场景下,日志处理模块的输入为用户日志数据集,日志的字段和字段的含义如表格1所示:

22、 长度 字段 描述 32字节 用户名name 标识访问服务的用户 32字节 用户组group 标识用户归属的用户组 128字节 ip 用户访问使用的内网ip地址 不限 url 用户访问的url网址 4字节 时间戳time 用户访问时间

23、表1日志的字段和含义

24、所述日志编码:通过日志裁剪,得到合适的日志字段,对日志进行了编码处理,编码的具体过程如图4所示,分为四步:

25、第一步:将用户名从字符串映射为标签,每一个数字代表一个标签种类,如bob代表类型0用户,alice代表类型1用户;

26、第二步:将用户组从字符串映射为标签,每一个数字代表一个标签种类,如groupa代表类型0用户组,groupb代表类型1用户组;

27、第三步:将url中的域名提取出来,通过dns解析成ip地址;

28、第四步:将时间中的小时字段提取出来,其他内容丢弃,将用户访问频率固定到小时的粒度。

29、优选的,所述模型训练模块包括参数设置和模型训练,其中所述参数设置负责选用合适的超参数,使用数据集对模型进行训练,让算法检测效率达到最优,分类器的参数说明和设置数值如表2所示

30、 字段 说明 值 n_estimators 指定该森林中生成的孤立树数量 100 max_samples 用来训练孤立树的样本数量,即子采样的大小 auto,表示全部样本 contamination 表示异常数据占给定的数据集的比例 0.1 max_features 指定从样本中抽取来训练每棵树的特征数量 1

31、表2 孤立森林分类器参数设置

32、所述模型训练从日志处理模块得到了编码之后的用户日志数据集,将这些数据集输入到孤立森林模型中进行训练,保存模型参数得到训练模型。

33、优选的,所述模型预测模块包括设定基准线和模型预测;

34、所述基准线为判断日志是否异常的分数分界线,每条日志经过模型之后均得到一个异常分数作为输出,若日志的异常分数大于等于基准线表示是异常日志,若分数小于基准线表示是正常日志,根据孤立森林的异常分数计算公式可以知道:若输入数据的分值在靠近0.5,表示日志在多棵孤立树中的平均路径长度接近整体均值,因此基准线设置为0.5;

35、所述模型预测:从日志处理模块得到了待检测的用户日志后,将上述日志作为模型的输入和模型中的参数进行运算得到输出,输出为日志的异常分数;然后将异常分数和基准线进行对比,若分数大于等于基准线表示日志是异常日志,若分数小于基准线表示日志是正常日志。

36、本发明的技术效果和优点:

37、1. 本发明在日志异常检测系统中引入了模式匹配技术,它能够提前筛选掉部分容易被识别出来的异常日志,减少后续经过模型的损耗,提高了系统的检测速度。

38、2. 本发明在日志异常检测系统中引入了机器学习中的孤立森林技术,它能够在占用较低的计算资源的前提下提高系统的检测准确率,且相比有监督和半监督的机器学习减少了人工标注的成本,提高了系统的安全性。

39、3. 本发明提出使用多源的数据集训练模型,这有利于训练出一个更加鲁棒和准确的模型。

40、4. 本发明是基于机器学习中的孤立森林算法,同时结合了模式匹配技术,提出了一种高准确率、实时的用户日志异常检测系统;孤立森林技术的引入大大提高了检测系统的检测准确率,提高了系统的安全性。模式匹配技术的引入进一步提高了检测系统的检测速度,提高了系统的实时性。

41、5.当网络环境中出现新的异常行为时,只需要管理员重新训练模型然后替换原有模型即可,节约了大量的开发成本;丰富了机器学习的应用生态,对机器学习日志领域的发展起到了非常大的推动作用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1