一种数据异常检测方法、系统及具有该系统的服务器与流程

文档序号:12468892阅读:247来源:国知局
一种数据异常检测方法、系统及具有该系统的服务器与流程

本发明属于机器学习技术领域,涉及一种检测方法及系统,特别是涉及一种数据异常检测方法、系统及具有该系统的服务器。



背景技术:

异常检测是机器学习领域的一个重要研究方向。在金融、网络安全等领域,通过学习大量历史数据,异常检测算法能够区分正常数据与异常数据,从而对于异常问题进行预警。异常检测通常采用支持向量机方法来解决。请参阅图1,显示为现有异常检测算法的检测结果的平面示意图。如图1所示,异常检测算法将检测数据映射至多维空间中,并使用超平面分别正常数据与异常数据。基于支持向量机的异常检测的训练数据中的大部分为正常数据,通过训练建立超平面。检测中映射至超平面之外的数据点为异常数据,如图1所示。2014年暴露的心脏出血漏洞(heartbleed bug)暴露了现有异常检测的缺陷:尽管在检测已知数据模式方面非常有效,其无法检测未知的数据模式。

概念漂移是异常检测需要面对的第一个挑战。由于数据在测试过程中,其特性、模式时刻在发生改变,正确分类数据的超平面也做出对应改变。请参阅图2,显示为现有异常检测算法随时间的变化发送超平面变化的示意图。如图2所示,随着测试时间,超平面T时刻在发生改变。基于已知数据模式训练的检测差平面其在检测完成后固定不变,无法做出实时的改变。对着测试时实际超平面的改变,概念漂移会导致检测失误,无法检测已知问题。

因此,如何提供一种数据异常检测方法、系统及具有该系统的服务器,以解决现有异常检测技术无法做出实时改变,若在测试时出现实际超平面发生改变的情况时,会产生概念漂移,而导致检测失误等种种缺陷,实已成为本领域从业者亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据异常检测方法、系统及具有该系统的服务器,用于解决现有异常检测技术无法做出实时改变,若在测试时出现实际超平面发生改变的情况时,会产生概念漂移,而导致检测失误的问题。

为实现上述目的及其他相关目的,本发明一方面提供一种数据异常检测方法,应用于电子设备,所述数据异常检测方法包括以下步骤:步骤一,基于预存的单阶支持向量机和已建立的运行数据模型,决策与运行数据模型对应的硬件结构的运行数据,以区分硬件结构的运行数据中的异常数据和正常数据;步骤二,对区分出的异常数据进行投票,以确定区分出的异常数据中是否存在将正常数据错误标记为异常数据,若是,将错误标记成异常数据的运行数据重新标记为正常数据。

于本发明的一实施例中,所述电子设备中硬件结构的运行数据包括运行数据的数据索引及运行数据的数据值。

于本发明的一实施例中,所述步骤一包括:使用运行数据的数据索引对其运行数据的数据值,及对应的运行数据模型的支持向量;读取已建立的运行数据模型的支持向量,根据所述单阶支持向量机中的决策函数的计算结果来决策与运行数据模型对应的硬件结构的运行数据。

于本发明的一实施例中,所述决策函数=其中,K(xi,z)为核心函数,i表示已建立的运行数据类型的数目,xi表示第i种已建立的运行数据模型的支持向量,z表示所述电子设备的硬件结构的运行数据,λi表示拉格朗日乘数,ρ表示偏移常量,sign表示符合函数,2σ表示宽度参数,||xi-z||2为第i种运行数据模型的支持向量与所述电子设备的硬件结构的运行数据之间的距离。

于本发明的一实施例中,当所述决策函数计算后的输出结果为1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之内,则区分出计算结果为1的硬件结构的运行数据为正常数据;当所述决策函数计算后的输出结果为-1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之外,则区分出计算结果为-1的硬件结构的运行数据为异常数据。

于本发明的一实施例中,所述对区分出的所述异常数据进行投票的步骤包括:以不同运行数据模型对应的超平面为基准,统计区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离和最小距离;计算区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与统计的区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离的距离比例;判断所述距离比例是否小于预置距离比例参数,若否,则表示该区分出的异常数据被错误标记,该区分出的异常数据应为正常数据。

于本发明的一实施例中,所述数据异常检测方法还包括:将区分出的正常数据进行缓存,并通过单阶支持向量机对区分出的正常数据进行训练,以形成新的运行数据模型;根据运行数据模型的建立时间,剔除最早时间的运行数据模型。

本发明另一方面提供一种数据异常检测系统,应用于电子设备,所述数据异常检测系统包括:决策模块,用于基于预存的单阶支持向量机和已建立的运行数据模型,决策与运行数据模型对应的硬件结构的运行数据,以区分硬件结构的运行数据中的异常数据和正常数据;数据汇总模块,用于对区分出的异常数据进行投票,以确定区分出的异常数据中是否存在将正常数据错误标记为异常数据,若是,将错误标记成异常数据的运行数据重新标记为正常数据。

于本发明的一实施例中,所述决策模块还用于读取已建立的运行数据模型的支持向量,根据所述单阶支持向量机中的决策函数的计算结果来决策与运行数据模型对应的硬件结构的运行数据。

于本发明的一实施例中,所述数据汇总模块还用于以不同运行数据模型对应的超平面为基准,统计区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离和最小距离;计算区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与统计的区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离的距离比例;判断所述距离比例是否小于预置距离比例参数,若否,则表示该区分出的异常数据被错误标记,该区分出的异常数据应为正常数据。

本发明又一方面提供一种服务器,所述服务器包括所述的数据异常检测系统;且所述服务器为基于FPGA的服务器。

如上所述,本发明的数据异常检测方法、系统及具有该系统的服务器,具有以下有益效果:

本发明所述的数据异常检测方法、系统及具有该系统的服务器可以达到与基于人工监督系统类似的准确度,大大高于经典异常检测的准确率,相较于基于人工监督的异常检测,应用本发明所提出的异常检测方法的服务器无需人为监督,大大降低了服务器的实用性。

附图说明

图1显示为现有异常检测算法的检测结果的平面示意图。

图2显示为现有异常检测算法随时间的变化发送超平面变化的示意图。

图3显示为本发明的数据异常检测方法于一实施例中的流程示意图。

图4显示为本发明的步骤S3的具体流程示意图。

图5显示为本发明的不同运行数据模型对应的超平面示意图。

图6显示为本发明的数据异常检测系统的原理结构示意图。

图7显示为本发明的服务器于一实施例中的硬件结构示意图。

元件标号说明

1 数据异常检测系统

11 接收模块

12 决策模块

13 数据汇总模块

2 服务器

21 RAM

22 ROM

23 PCI Express的总线接口

24 FPGA芯片

25 PCI Express的总线接口

3 芯片外内存

S1~S4 步骤

S31~S34 步骤

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例一

本实施例一种数据异常检测方法,应用于电子设备,所述数据异常检测方法包括以下步骤:

步骤一,基于预存的单阶支持向量机和已建立的运行数据模型,决策与运行数据模型对应的硬件结构的运行数据,以区分硬件结构的运行数据中的异常数据和正常数据;

步骤二,对区分出的异常数据进行投票,以确定区分出的异常数据中是否存在将正常数据错误标记为异常数据,若是,将错误标记成异常数据的运行数据重新标记为正常数据。

以下将结合图示对本实施例所提供的数据异常检测方法进行详细说明。本实施例所述的数据异常检测方法应用于电子设备,于本实施例中,该电子设备可以为使用含有心血漏洞的OpenSSL服务器,所述数据异常检测方法用于检测网络攻击,检测数据模型中对于心血漏洞未知。其中,所述心脏出血漏洞(Heartbleed bug),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的程序错误。该程序库广泛用于实现互联网的传输层安全(TLS)协议。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过度,即可以读取的数据比应该允许读取的还多。

请参阅图3,显示为数据异常检测方法于一实施例中的流程示意图。如图3所示,所述数据异常检测方法具体包括以下几个步骤:

S1,接收源于所述OpenSSL服务器的硬件结构的运行数据。在本实施例中,所述硬件结构为该OpenSSL服务器中RAM(RAM又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介)内存储的运行数据。

S2,基于预存的单阶支持向量机和已建立的运行数据模型,决策与运行数据模型对应的硬件结构的运行数据,以区分硬件结构的运行数据中的异常数据和正常数据。在本实施例中,所述电子设备中硬件结构的运行数据包括运行数据的数据索引及运行数据的数据值。

在本实施例中,所述预存的单阶支持向量机为一种分类算法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

步骤S2具体包括使用运行数据的数据索引对其运行数据的数据值,及对应的运行数据模型的支持向量;读取已建立的运行数据模型的支持向量,根据所述单阶支持向量机中的决策函数的计算结果来决策与运行数据模型对应的硬件结构的运行数据。在实施例中,所述已建立的运行数据模型为OpenSSL服务器中ROM内存储的运行数据。

在本实施例中,所述决策函数为:

其中,K(xi,z)为核心函数,核心函数为:

其中,i表示已建立的运行数据类型的数目,xi表示第i已建立的运行数种据模型的支持向量(于本实施例中,xi为ROM内存储的运行数据的支持向量),z表示所述电子设备的硬件结构的运行数据(于本实施例中,z表示RAM内存储的运行数据),λi表示拉格朗日乘数,ρ表示偏移常量,sign表示符合函数,2σ表示宽度参数(通过训练数据模型获得),||xi-z||2为第i种运行数据模型的支持向量与所述电子设备的硬件结构的运行数据之间的距离(于本实施例中,||xi-z||2为ROM内存储的运行数据的支持向量与RAM内存储的运行数据之间的距离)。

当所述决策函数的输入大于0,计算后的输出结果为1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之内,则区分出计算结果为1的硬件结构的运行数据为正常数据。

当所述决策函数的输入小于0,计算后的输出结果为-1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之外,则区分出计算结果为-1的硬件结构的运行数据为异常数据。

S3,对区分出的异常数据进行投票,以确定区分出的异常数据中是否存在将正常数据错误标记为异常数据,若是,将错误标记成异常数据的运行数据重新标记为正常数据;若否,返回步骤S3,继续进行投票。

请参阅图4,显示为步骤S3的具体流程示意图。如图4所示,所述步骤S3具体包括以下几个步骤:

S31,以不同运行数据模型对应的超平面为基准,统计区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离和最小距离。在本实施例中,所述不同运行数据模型对应的超平面参阅如图5所示的超平面示意图中的H1,H2,H3,以超平面H1,H2,H3来判断所区分出的异常数据为正常的异常数据,还是非正常的异常数据。在本实施例中,非正常的异常数据就是指由于概念漂移风险而产生的异常数据。概念漂移就是指初始训练好的数据模型可以检测当时的数据异常,随着时间流逝,正常数据的特性逐渐飘逸,所对应的超平面随之改变,在这种情况下,如果仍然用初始训练的数据模型进行异常检测,会将正常数据错误标记为异常数据。在本实施例中,区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离是指区分出的所述异常数据离H1的距离,记为dmax;区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离是指区分出的所述异常数据离H3的距离,记为dmin

S32,计算区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与统计的区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离的距离比例。在本实施例中,即

S33,判断所述距离比例是否小于预置距离比例参数,若否,则表明区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离之间距离较近,表示该区分出的异常数据被错误标记,该区分出的异常数据应为正常数据,并执行步骤S34,即将错误标记成异常数据的运行数据标记为正常数据。这种情况下,就认为该异常数据为概念漂移所dialing的运行数据的假异常,应将其标为正常数据。若是,则表明区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离之间距离较远,该异常数据为正常的异常数据,返回步骤S31,继续判断区分出的所述异常数据是否存在由于概念漂移所引起的误判断。

S4,将区分出的正常数据进行缓存,并通过单阶支持向量机对区分出的正常数据进行训练,以形成新的运行数据模型;根据运行数据模型的建立时间,剔除最早时间的运行数据模型。

本实施例所述的数据异常检测方法可以达到与基于人工监督系统类似的准确度,大大高于经典异常检测的准确率,相较于基于人工监督的异常检测,应用本实施例所提出的异常检测方法的服务器无需人为监督,大大降低了服务器的实用性。

实施例二

本实施例提供一种数据异常检测系统,应用于电子设备,于本实施例中,该电子设备可以为使用含有心血漏洞的OpenSSL服务器,所述数据异常检测方法用于检测网络攻击,检测数据模型中对于心血漏洞未知。请参阅图6,显示为数据异常检测系统的原理结构示意图。如图6所示,所述数据异常检测系统1包括数据接收模块11,决策模块12,及数据汇总模块13。

所述数据接收模块11用于接收源于所述OpenSSL服务器的硬件结构的运行数据。在本实施例中,所述硬件结构为该OpenSSL服务器中RAM内存储的运行数据。而RAM内存储的运行数据来源于芯片外内存。

与所述数据接收模块11连接的决策模块12用于基于预存的单阶支持向量机和已建立的运行数据模型,决策与运行数据模型对应的硬件结构的运行数据,以区分硬件结构的运行数据中的异常数据和正常数据。在本实施例中,所述电子设备中硬件结构的运行数据包括运行数据的数据索引及运行数据的数据值。

在本实施例中,所述决策模块12具体用于:使用运行数据的数据索引对其运行数据的数据值,及对应的运行数据模型的支持向量;读取已建立的运行数据模型的支持向量,根据所述单阶支持向量机中的决策函数的计算结果来决策与运行数据模型对应的硬件结构的运行数据。在实施例中,所述已建立的运行数据模型为OpenSSL服务器中ROM内存储的运行数据。

在本实施例中,所述决策函数为:

其中,K(xi,z)为核心函数,核心函数为:

其中,i表示已建立的运行数据类型的数目,xi表示第i已建立的运行数种据模型的支持向量(于本实施例中,xi为ROM内存储的运行数据的支持向量),z表示所述电子设备的硬件结构的运行数据(于本实施例中,z表示RAM内存储的运行数据),λi表示拉格朗日乘数,ρ表示偏移常量,sign表示符合函数,2σ表示宽度参数(通过训练数据模型获得),||xi-z||2为第i种运行数据模型的支持向量与所述电子设备的硬件结构的运行数据之间的距离(于本实施例中,||xi-z||2为ROM内存储的运行数据的支持向量与RAM内存储的运行数据之间的距离)。

当所述决策模块12中的所述决策函数的输入大于0,计算后的输出结果为1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之内,则区分出计算结果为1的硬件结构的运行数据为正常数据。当所述决策模块12中的所述决策函数的输入小于0,计算后的输出结果为-1时,表示该硬件结构的运行数据位于运行数据模型对应的超平面之外,则区分出计算结果为-1的硬件结构的运行数据为异常数据。

与所述决策模块12连接的数据汇总模块13用于对区分出的异常数据进行投票,以确定区分出的异常数据中是否存在将正常数据错误标记为异常数据,若是,将错误标记成异常数据的运行数据重新标记为正常数据;若否,继续进行投票。

具体地,所述数据汇总模块13用于以不同运行数据模型对应的超平面为基准,统计区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离和最小距离。在本实施例中,所述不同运行数据模型对应的超平面参阅如图5所示的超平面示意图中的H1,H2,H3,以超平面H1,H2,H3来判断所区分出的异常数据为正常的异常数据,还是非正常的异常数据。在本实施例中,非正常的异常数据就是指由于概念漂移风险而产生的异常数据。概念漂移就是指初始训练好的数据模型可以检测当时的数据异常,随着时间流逝,正常数据的特性逐渐飘逸,所对应的超平面随之改变,在这种情况下,如果仍然用初始训练的数据模型进行异常检测,会将正常数据错误标记为异常数据。在本实施例中,区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离是指区分出的所述异常数据离H1的距离,记为dmax;区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离是指区分出的所述异常数据离H3的距离,记为dmin

所述数据汇总模块13还用于计算区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与统计的区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离的距离比例。在本实施例中,即

在计算出所述距离比例后,所述数据汇总模块13还用于判断所述距离比例是否小于预置距离比例参数,若否,则表明区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离之间距离较近,表示该区分出的异常数据被错误标记,该区分出的异常数据应为正常数据,并将错误标记成异常数据的运行数据标记为正常数据。若是,则表明区分出的所述异常数据离不同运行数据模型对应的超平面的最小距离与区分出的所述异常数据离不同运行数据模型对应的超平面的最大距离之间距离较远,该异常数据为正常的异常数据,继续判断区分出的所述异常数据是否存在由于概念漂移所引起的误判断。

所述数据汇总模块13还用于将区分出的正常数据进行缓存,并通过单阶支持向量机对区分出的正常数据进行训练,以形成新的运行数据模型;根据运行数据模型的建立时间,剔除最早时间的运行数据模型。

本实施例还提供一种服务器2,请参阅图7,显示为服务器于一实施例中的硬件结构示意图。本实施例所述的服务器2为基于FPGA的服务器。如图7所示,所述服务器2包括RAM21和ROM22,即通过RAM21内存储的运行数据来源于芯片外内存3,通过ROM22内存储的运行数据(内存储已建立的运行数据模型)。ROM22外接一PCI Express的总线接口23。本实施例通过一FPGA芯片24完成上述数据异常检测系统1中决策模块12和数据汇总模块所具有的功能。FPAG芯片24之后再连接另一PCI Express的总线接口25。

综上所述,本发明所述的数据异常检测方法、系统及具有该系统的服务器可以达到与基于人工监督系统类似的准确度,大大高于经典异常检测的准确率,相较于基于人工监督的异常检测,应用本发明所提出的异常检测方法的服务器无需人为监督,大大降低了服务器的实用性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

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