一种异常检测方法及装置与流程

文档序号:22544987发布日期:2020-10-17 02:13阅读:196来源:国知局
一种异常检测方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种异常检测方法及装置。



背景技术:

随着网络的不断发展,处于信息爆炸时代的我们面临着一个严峻的问题,就是如何维护网络安全。对网络异常行为的检测能够较好的解决该问题,即通通过记录系统运行时信息的日志,以对异常行为进行检测。异常检测旨在实时发现异常行为,开发人员能够及时发现并解决问题,减少系统停机时间或者减少将造成的损失。

但是目前开发人员基本都是通过关键字搜索和预先定义的规则匹配来手动检查日志。而由于系统的大规模以及并行性使得系统行为变得复杂,并且开发人员通常只熟悉其中的某个子组件,对整个系统行为并不完全了解,致使现有方法难以识别整个系统的日志,从而不能对网络进行有效的异常检测。



技术实现要素:

本发明提供了一种异常检测方法及装置,以解决现有技术中不能有效对网络进行异常检测的问题。

第一方面,本发明提供了一种异常检测方法,该方法包括:对获取的日志数据进行分析,从所述日志数据中提取得到特征,并对所述特征进行处理;基于处理以后的特征,通过支持向量机svm算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行检测,得到检测结果;根据所述检测结果进一步训练所述异常检测模型;其中,所述日志数据包括以下中的一种或多种:文件操作日志数据、网络连接日志数据、进程日志数据和人机交互状态日志数据。

可选地,所述通过所述异常检测模型对异常行为进行检测,包括获取预设时间段内的日志数据;基于获取的所述预设时间段内的日志数据,通过所述异常检测模型对异常行为进行检测;其中,所述预设时间段为根据异常行为的共性行为特征的数据量以及所要求检测结果的准确度进行设置。

可选地,从所述日志数据中提取得到特征,并对所述特征进行处理,包括:从所述日志数据中提炼出安全场景及异常场景下的共性行为特征,将提炼出来的共性行为特征的数值缩放至预设置信区间内,并对缺省的共性行为特征的数值进行赋值;

基于处理以后的特征,通过支持向量机svm算法训练生成异常检测模型,包括:基于缩放以及赋值后的共性行为特征,通过svm算法训练生成所述异常检测模型。

可选地,所述将提炼出来的共性行为特征的数值缩放至预设置信区间内,包括:将提炼出来的共性行为特征的数值转换到均值为0且标准差为1的范围内。

可选地,对缺省的共性行为特征的数值进行赋值,包括:根据缺省的共性行为特征所对应的内容,对缺省的共性行为特征的数值进行赋值。

可选地,所述根据所述检测结果进一步训练所述异常检测模型,包括:将每次异常检测模型得到结果作为训练集,以获取所述异常检测模型的更合理的惩罚系数和核函数。

可选地,所述得到检测结果之后,该方法还包括:设定异常行为的共性行为特征的数据检测阈值;根据所述检测结果中异常行为的共性行为特征的数值与所述数据检测阈值的差异程度,对所述检测结果中的异常行为的异常程度进行量化显示。

可选地,所述对获取的日志数据进行分析之前,该方法还包括:对获取的日志数据进行数据清洗。

第二方面,本发明提供了一种异常检测装置,包括:处理单元,用于对获取的日志数据进行分析,从所述日志数据中提取得到特征,并对所述特征进行处理,其中,所述日志数据包括以下中的一种或多种:文件操作日志、网络连接日志、进程日志和人机交互状态日志;检测单元,用于基于所述处理单元处理以后的特征,通过支持向量机svm算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行检测,得到检测结果,并根据所述检测结果进一步训练所述异常检测模型。

第三方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有信号映射的计算机程序,所述计算机程序被至少一个处理器执行时,以实现上述任一种所述的异常检测方法。

本发明有益效果如下:

本发明是综合获取全面的日志数据,从获取的日志数据中提取特征,对该特征进行处理,基于处理以后的特征,通过svm算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行自动检测,同时将检测结果进一步训练异常检测模型,以获得更准确的模型,最终实现地对异常行为进行检测,也就是说,本发明是基于全面的日志数据,并通过不断进化学习后的异常检测模型来对网络进行异常检测,从而实现准确检测异常行为,继而有效解决了现有技术中不能有效对网络进行异常检测的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明第一实施例提供的一种异常检测方法的流程示意图;

图2是本发明第一实施例提供的另一种异常检测方法的流程示意图;

图3是本发明第一实施例提供的支持向量与间隔之间的关系示意图;

图4是本发明第二实施例提供的一种异常检测装置的结构示意图。

具体实施方式

本发明实施例针对现有技术中不能有效对网络进行异常检测的问题,通过综合获取网络的全面的日志数据,并通过不断进化学习后的异常检测模型来实现对网络的异常行为进行准确检测,继而有效解决了现有技术中不能有效对网络进行异常检测的问题。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本发明第一实施例提供了一种异常检测方法,参见图1,该方法包括:

s101、对获取的日志数据进行分析,从所述日志数据中提取得到特征,并对所述特征进行处理;

本发明实施例中所述日志数据包括文件操作日志数据、网络连接日志数据、进程日志数据和人机交互状态日志数据。

即,本发明实施例是对用户的行为进行实时且全面的采集,具体采集的数据包括网络日志行为日志、文件行为日志、开关机行为日志、进程应用日志等等,具体实施时,本领域技术人员可以根据实际需要进行任意设定,本发明对此不作具体限定。

具体实施时,本发明实施例所述的方法在对日志数据进行分析之前,还包括:对采集的日志数据进行数据清洗。

具体来说,本发明实施例是通过安装在各个服务器或者主机上的客户端收集流量日志数据,明确网络日志中字段的定义。因为网络访问中很多日志是重复的、对于分析结果是没有太大意义的,同时为了能减少服务器对数据的处理量,所以本发明实施例在对日志数据进行分析之前,需要根据分析需求对网络日志进行数据清洗。

例如以下为部分日志清洗策略:

对于发送端5分钟内记录的所有发送连接,按目标ip分组,对每一个ip的所有连接去重,得到包含源ip、目的ip、源端口、目的端口的记录。

过滤常用端口号,若源端口号或目标端口号为常用端口号,则对应目标端口号或源端口号无意义,则记为空。

对目的ip和目的端口号做聚合,对源ip源端口号做聚合。对于某一个源ip源端口对应的目的ip目的端口集合d,如果集合d的数量大于1,则认为目的该目的端口无意义,反之也成立。

具体实施时,本领域技术人员可以根据实际需要来设置各种清洗方法,并对日志数据进行数据清洗,本发明对此不作具体限定。

s102、基于处理以后的特征,通过支持向量机(supportvectormachine,svm)算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行检测,得到检测结果;

具体来说,本发明实施例是基于全面的日志数据,并由svm算法来训练生成异常检测模型,然后通过该异常检测模型自动对异常进行检测。

具体实施时,本发明实施例所述根据所述检测结果进一步训练所述异常检测模型,包括:将每次异常检测模型得到结果作为训练集,以获取所述异常检测模型的更合理的惩罚系数和核函数,从而使得异常检测的结果更准确。

s103、根据所述检测结果进一步训练所述异常检测模型。

即,本发明实施例是基于异常检测模型的输出结果来进一步训练异常检测模型,通过人工智能的持续学习、自我进化能力来实现对异常行为进行准确检测。

也就是说,本发明实施例是通过不断进化学习后的异常检测模型来对网络进行异常检测,从而实现准确检测异常行为,继而有效解决了现有技术中不能有效对网络进行异常检测的问题。

现有技术中开发人员通常是通过关键字搜索和预先定义的规则匹配手动检查日志。然而由于系统的大规模以及并行性使得系统行为变得复杂,开发人员通常只熟悉其中的某个子组件,对整个系统行为则并不完全了解,导致现有技术难以识别整个系统的日志。同时,现代系统以50gb/小时的速度生成日志,在如此巨大的日志量中进行关键字搜索异常困难,无法做到实时异常检测,这样的检测缺乏实用性。另外大规模的系统通常有冗余数据来构建容错机制,在这种情况下采用关键字搜索和规则匹配来提取可疑日志将产生误报,大大增加了人工检查的工作量。因此,海量的日志使得传统的人工检测变得不可行。再者,随着人类社会信息化程度的不断深入,信息系统产生的数据也在呈几何级数增长。对这些数据的深入分析可以得到很多有价值的信息。由于数据量太大以及数据属性的多样性,导致现有的统计分析方法已经无法对网络进行准确的异常检测。

基于上述问题,本发明实施例通过综合获取全面的日志数据,从获取的日志数据中提取特征,对该特征进行处理,基于处理以后的特征,通过svm算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行自动检测,同时将检测结果进一步训练异常检测模型,以获得更准确的模型,最终实现地对异常行为进行检测。

总体来说,本发明实施例是基于全面的日志数据,并通过不断进化学习后的异常检测模型来对网络进行异常检测,从而实现准确检测异常行为,继而有效解决了现有技术中不能有效对网络进行异常检测的问题。

系统异常检测在现代大规模分布式系统的管理中起着重要作用,记录系统运行时信息的日志广泛用于异常检测。本发明实施例就是从企业安全办公这个场景出发,对企业主机和服务器等终端从不同的维度收集大量的系统行为和用户行为信息。通过分析企业服务器和办公主机上的关键数据流转、用户访问和操作行为等,感知数据安全的态与势,对潜在的风险实时预警、主动防御,从而建立面向用户的可信运行环境,保证企业的数据资产安全,真正发挥大数据的价值。

进一步地,本发明实施例所述通过所述异常检测模型对异常行为进行检测,包括:获取预设时间段内的日志数据;基于获取的所述预设时间段内的日志数据,通过所述异常检测模型对异常行为进行检测;其中,所述预设时间段为根据异常行为的共性行为特征的数据量以及所要求检测结果的准确度进行设置。

即,本发明实施例是获取一定时间内的日志数据,通过对日志数据进行处理,得到其对应的特征,并将特征带入异常检测模型以实现对异常行为的检测。

所述预设时间段为根据网络的异常行为特征进行设置,具体实施时,本领域技术人员可以根据当前需要来设置具体所针对的异常行为特征,以使检测结果更准确。即,本发明实施例可以根据需要来选择具体检测的时间维度,从而实现更为准确且更广泛的检测异常的作用。

具体来说,本发明实施例是获取一定时间段内的日志数据,并对该日志数据进行分析,从日志数据中提取得到特征,将提取的特征带入异常检测模型,通过异常检测模型实现对异常行为进行检测。

具体地,本发明实施例是通过设置异常检测模型对应的日志维度和时间维度,以使得本发明的方法可以适应各种检测场景,从而扩大了异常监控的范围。

本发明实施例中,从所述日志数据中提取得到特征,并对所述特征进行处理,包括:从所述日志数据中提炼出安全场景及异常场景下的共性行为特征,将提炼出来的共性行为特征的数值缩放至预设置信区间内,并对缺省的共性行为特征的数值进行赋值;

具体来说,本发明实施例是将提炼出来的共性行为特征的数值缩放至某一区间,从而使得所有特征都是等同重要的,例如,将特征的数值转换到均值为0,标准差为1的范围内,并对缺省特征采用单独表示,如通过众数,平均值等方式进行赋值,以从整体上防止某个特征对算法产生的影响过大或者过小。

以及根据缺省的共性行为特征所对应的内容,对缺省的共性行为特征的数值进行赋值。例如有些特征可能因为无法采样或者没有观测值而缺失,例如距离特征,用户可能禁止获取地理位置或者获取地理位置失败,此时需要对这些特征做特殊的处理,赋予一个缺省值。缺省值如何赋予,也有很多种方法。例如单独表示,众数,平均值等。

然后基于缩放以及赋值后的共性行为特征,通过svm算法训练生成异常检测模型,以使检测结果更真实可靠。

如图2所示,因为数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。特征工程的目的是最大限度地从原始数据中提取特征以供算法和模型。本发明实施例通过对各种特征进行分析,最后将确定的特征代入模型,例如:主动访问端口总频次、发送字节总数、进程名等。在特征较多时,认为这些特征是等同重要的,为了防止某个特征对算法产生的影响过大,需要将特征数据缩放至某一区间,这样比较起来才有意义,并且可以减少程序的计算量,加快速度。例如发送字节总数和进程名对于异常评判同等重要,但是由于发送字节总数的数值会数十倍大于进程名数值而且度量也不一样,这样发送字节总数对结果的影响可能较大,需要对这些特征缩放到同一个区间,这样每一个特征的对结果的影响就相同了。特征缩放采用标准化这种方式,即将数值转换到均值为0,标准差为1的范围内。缺省值处理有些特征可能因为无法采样或者没有观测值而缺失,例如距离特征,用户可能禁止获取地理位置或者获取地理位置失败,此时需要对这些特征做特殊的处理,赋予一个缺省值。缺省值如何赋予,也有很多种方法。例如单独表示、众数以及平均值等,具体本领域技术人员可以根据实际情况进行设定。

进一步地,本发明实施例是通过机器学习算法对数据进行分析,作出异常判断和相关异常等级评分。该模块选用svm算法,通过对已知标签的数据进行训练、生成模型,并对模型结果进行评分。本发明实施例中的模型具有自学习能力,每一次模型得到结果又将作为模型的规则训练集。从而影响模型阈值,让模型的判断越来越准确。算法可以通过主机的行为作出异常检测,例如:常见的永恒之蓝病毒,可以通过统计一段时间内主机445端口被扫描的频次来判定。当然算法也可以基于用户的行为做出的判断和分析,例如:基于用户在上班时间使用的进程时间和进程网络流量总数可以做出异常判断,假设用户使用腾讯视频这个运用产生了大量的流量那么可判定为异常。一切对于用户的分类对于算法而言都是可行的,对于用户按组分类,那么算法就可以做相应的按组计算检测异常。例如:研发a组的主机以前从来不访问研发b组c组的开发服务器,但是某天a组某台机器突然访问了b组c组的服务器,可判为异常。

经过算法模型的计算得到一个异常数据检测阈值,这个阈值用于判断网络日志是否异常,如果超出阈值则触发报警,并作出相关制止措施。结合可视化的界面我们会将结果和相关信息以图形的方式展示给使用者,并对异常按不同类型分类,相同类型按危险评估分数降序展示。例如:研发部10台主机,每台主机每日访问ftp服务器的流量平均是1g,如果某台主机某日访问ftp的流量为50g那么算法模型便会判断为异常,并且向后台管理者发起异常告警,告诉管理者是那台主机在什么时间从ftp服务器下载了什么内容,同时阻断该台主机继续访问ftp服务器和主机的所有外设的连接。

具体来说,本发明实施例所述得到检测结果之后,该方法还包括:设定异常行为的共性行为特征的数据检测阈值,该数据检测阈值即为上述模型计算得到的结果;

通过根据所述检测结果中异常行为的共性行为特征的数值与所述数据检测阈值的差异程度,对所述检测结果中的异常行为的异常程度进行量化显示,以便于用户直观的查看检测结果,从而大大提升了用户体验。

总体来说,比起传统的通过关键字搜索和预先定义的规则匹配手动检查日志的方式而言,本发明实施例可以大大降低工作复杂程度,同时能够实时的对异行为进行拦截和阻断。相比于传统的规则引擎,只能发现已知的异常和病毒,通过人工智能持续学习、自我进化能力实现无特征检测,真正洞察威胁本质,能够更有效的鉴定未知异常和病毒。

可供大数据分析使用的算法有很多,但不是都适用于面向安全的应用场景。原因是日志和行为日志都属于低维度数据,面向高维度数据的算法基本不适用,同时网络异常行为数据不同于一般的数据集,分类的类别只有两种,即正常和异常。因此只有相似性分析、关联分析以及分类等,那么总的来说网络异常行为分类其实就是一个二分类问题。分类算法适合在足够训练数据的情况下使用,因为我们的客户端能抓取全量的终端网络日志,所以日志的获取对我们来说比较容易。在众多的分类算法中经过测试与比较我们最终选择了svm算法。下面对svm进行简单的数学原理推导:

在样本空间中,划分超平面可通过如下线性方程来描述:

(1.1)

其中为法向量,决定了超平面的方向;为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被法向量和位移确定,下面我们将其记为。样本空间中任意点到超平面的距离可写为

(1.2)

假设超平面能将训练样本正确分类,即对于,若,则有;若,则有。令

(1.3)

如图3所示,距离超平面最近的这几个训练样本点使式(1.3)的等号成立,它们被称为“支持向量”(supportvector),两个异类支持向量到超平面的距离之和为

(1.4)

它被称为“间隔”(margin)

欲找到具有“最大间隔”(maximummargin)的划分超平面,也就是要找到满足式(1.3)中约束的参数,使得最大,即

(1.5)

显然,为了最大化间隔,仅需最大化,这等价于最小化。于是,式(1.5)可重写为

(1.6)

这就是svm算法的基本型。

本发明实施例通过式(1.6)来得到大间隔划分超平面所对应的模型

,(1.7)

式(1.6)是一个含有不等式约束的凸二次规划(convexquadraticprogramming)问题,可以对其使用拉格朗日乘子法得到其“对偶问题”(dualproblem)。具体来说,对式(1.6)的每条约束添加拉格朗日乘子,则该问题的拉格朗日函数可写为

,(1.8)

其中。令的偏导为零可得

(1.9)

(1.10)

将式(1.9)代入(1.8),即可将中的消去,再考虑式(1.10)的约束,就得到式(1.6)的对偶问题

(1.11)

使用序列最小优化(sequentialminimaloptimization,smo)算法解出后,求出即可得到模型

(1.12)

前面的推导都是假设满足kkt(karush-kuhn-tucker)条件,即要求

(1.13)

对于任意训练样本,总有。若,则该样本将不会在式(1.12)的求和中出现,也就不会对有任何影响;若,则必有,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

算法训练和调参:svn分类器的性能好坏很大程度取决于参数的设置,其中最重要的参数就是惩罚系数和核函数。

因此,本发明实施例通过将每次异常检测模型得到结果作为训练集,以获取所述异常检测模型的更合理的惩罚系数和核函数,从而最终获得更准确的检测结果。

总体来说,本发明实施例的核心思想就是从日志维度和时间维度上对异常行为进行监测,并对异常进行量化展示,从而提高异常监测的准确率。

本发明第二实施例提供了一种异常检测装置,参见图4,该装置包括:

处理单元,用于对获取的日志数据进行分析,从所述日志数据中提取得到特征,并对所述特征进行处理,其中,所述日志数据包括以下中的一种或多种:文件操作日志、网络连接日志、进程日志和人机交互状态日志;

即,本发明实施例是对用户的行为进行实时且全面的采集,具体采集的数据包括网络日志行为日志、文件行为日志、开关机行为日志、进程应用日志等等,具体实施时,本领域技术人员可以根据实际需要进行任意设定,本发明对此不作具体限定。

检测单元,用于基于所述处理单元处理以后的特征,通过支持向量机svm算法训练生成异常检测模型,并通过所述异常检测模型对异常行为进行检测,得到检测结果,并根据所述检测结果进一步训练所述异常检测模型。

具体来说,本发明实施例是基于全面的日志数据,并由svm算法来训练生成异常检测模型,基于异常检测模型的输出结果来进一步训练异常检测模型,通过人工智能的持续学习、自我进化能力来实现对异常行为进行准确检测。以获取所述异常检测模型的更合理的惩罚系数和核函数,从而使得异常检测的结果更准确。

具体实施时,本发明实施例所述检测单元还用于,通过所述异常检测模型对异常行为进行检测,包括:获取预设时间段内的日志数据;基于获取的所述预设时间段内的日志数据,通过所述异常检测模型对异常行为进行检测;其中,所述预设时间段为根据异常行为的共性行为特征的数据量以及所要求检测结果的准确度进行设置。

其中,从所述日志数据中提取得到特征,并对所述特征进行处理,包括:从所述日志数据中提炼出安全场景及异常场景下的共性行为特征,将提炼出来的共性行为特征的数值缩放至预设置信区间内,并对缺省的共性行为特征的数值进行赋值;

基于处理以后的特征,通过支持向量机svm算法训练生成异常检测模型,包括:基于缩放以及赋值后的共性行为特征,通过svm算法训练生成所述异常检测模型。

所述将提炼出来的共性行为特征的数值缩放至预设置信区间内,包括:将提炼出来的共性行为特征的数值转换到均值为0且标准差为1的范围内。

具体地,对缺省的共性行为特征的数值进行赋值,包括:根据缺省的共性行为特征所对应的内容,对缺省的共性行为特征的数值进行赋值。

进一步地,本发明实施例中所述检测单元还用于,所述根据所述检测结果进一步训练所述异常检测模型,包括:将每次异常检测模型得到结果作为训练集,以获取所述异常检测模型的更合理的惩罚系数和核函数。

同时所述检测单元还用于,在得到检测结果之后,设定异常行为的共性行为特征的数据检测阈值;根据所述检测结果中异常行为的共性行为特征的数值与所述数据检测阈值的差异程度,对所述检测结果中的异常行为的异常程度进行量化显示。

进一步地,本发明实施例中所述处理单元还用于,在对获取的日志数据进行分析之前,对获取的日志数据进行数据清洗。

总体来说,本发明实施例是通过不断进化学习后的异常检测模型来对网络进行异常检测,从而实现准确检测异常行为,继而有效解决了现有技术中不能有效对网络进行异常检测的问题。

本发明实施例的相关内容可参见本发明第一实施例进行理解,在此不做详细论述。

本发明第三实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有信号映射的计算机程序,所述计算机程序被至少一个处理器执行时,以实现本发明第一实施例中任一种所述的异常检测方法。

本发明实施例的相关内容可参见本发明第一实施例和第二实施例进行理解,在此不做详细论述。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

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