本发明涉及异常网络行为检测技术领域,尤其涉及一种网络行为的检测方法、装置、计算机设备和存储介质。
背景技术:
近年来,全世界不断发生网络安全事件,网络安全问题日益突出。随着相关数据量呈爆炸式增长的趋势,网络攻击模式也越来越复杂多变,在防御方面,目前针对已知威胁的发现和处置游刃有余,而面对未知威胁往往办法不多,大多需要依靠安全人员的经验和已有工具或产品来分析,而这些方式已经无法满足业界需求。
同时,人工智能技术飞速发展,机器学习及其分支深度学习技术在计算机视觉、语音识别和自然语言处理等领域取得了巨大突破。学术界和工业界越来越多的人开始利用人工智能技术尝试解决网络安全中的问题。人工智能可凭借自动化、智能化及大规模运算能力等优势,快速检测百万、千万甚至上亿次事件,以发现安全威胁。
在现有技术中,基于人工智能进行异常网络行为的检测时,通常是根据人工经验抽取网络行为的特征,具体包括专家利用经验从ip、域名、ua、时间等多种维度定义特征,抽取后拼接为特征向量,人工智能模型基于该特征向量来进行网络行为的检测。
但是该检测网络不仅非常耗费人力成本,而且由于行为模型和安全事件不断变化,人工经验有一定的滞后性,往往覆盖不全,应对未知威胁能力较差,使得对未知异常行为的检出准确度并不高。
因此,提供一种网络行为的检测方法、装置、计算机设备和存储介质,提升对未知异常行为检测的准确度,成为本领域亟需解决的技术问题。
技术实现要素:
本发明的目的是提供一种网络行为的检测方法、装置、计算机设备和存储介质,用于解决现有技术中上述的技术问题。
一方面,为实现上述目的,本发明提供了一种网络行为的检测方法。
该网络行为的检测方法包括:获取待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组;将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像;以及根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为。
进一步地,根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为的步骤包括:将待检测图像输入至行为检测模型,以确定待检测网络行为是否为异常行为。
进一步地,根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为的步骤包括:提取待检测图像的特征向量,得到待检测特征向量;以及根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为。
进一步地,提取待检测图像的特征向量的步骤包括:建立初始自编码器,其中,初始自编码器包括输入层、编码层、反编码层和输出层;获取训练行为图像,并将训练行为图像分别作为初始自编码器的输入层的输入和输出层的输出,对初始自编码器进行训练,得到目标自编码器;获取验证行为图像,将验证行为图像作为目标自编码器的输入层的输入,得到目标自编码器的输出层的输出;通过验证行为图像与目标自编码器的输出层的输出进行比对,判断目标自编码器是否满足要求;当目标自编码器满足要求时,将待检测图像作为目标自编码器的输入层的输入,获取目标自编码器的编码层的输出,以得到特征向量。
进一步地,该网络行为的检测方法还包括:在连续s个待检测单位时间窗内,具有r个待检测单位时间窗内目标主体网络行为为异常行为时,产生报警,其中,r≤s。
进一步地,行为数据包括行为对端、行为属性和行为时间,行为属性为目标主体与行为对端之间产生的网络行为的属性,将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像步骤包括:针对每条行为数据,将行为对端映射为预设模板图像中点的位置坐标,将行为属性映射为点的形态属性,在位置坐标处显示形态属性的点,得到行为数据对应的图像点;在关联点之间设置连接线,其中,行为时间满足预设关联关系的两条行为数据对应的图像点互为关联点。
进一步地,关联点为行为时间相邻的两条行为数据对应的图像点;连接线为向量,向量的方向表征关联点对应的行为时间的先后。
进一步地,将行为数据组按照预设的映射规则映射为图像的步骤还包括:统计行为数据组对应的相同关联点的数量;将数量映射为线的形态属性,在关联点之间设置连接线的步骤包括:在关联点之间按照线的形态属性设置连接线。
进一步地,将行为对端映射为预设模板图像中点的位置坐标的步骤包括:在预设模板图像中预设多个点的位置坐标;通过按序分配、随机分配或最远距离分配,将预设多个点的位置坐标分配一个端标识,建立位置坐标与端标识之间的一一对应的第一映射关系;根据行为对端的端标识和第一映射关系,确定行为对端对应的位置坐标。
进一步地,预设模板图像为具有n*n个像素的图片,其中,n=(2k-1)*m,点为包括m个像素,相邻的点之间间隔m个像素,同一个点的各像素的rgb值相同,点的形态属性为点的像素的rgb值,将行为属性映射为点的形态属性的步骤包括:确定行为属性的编号i;确定像素的rgb值范围,其中,像素的r值的范围为0~r,像素的g值的范围为0~g,像素的b值的范围为0~b;采用以下公式计算编号i对应的十六进制数
进一步地,线的形态属性为线的像素的rgb值,将数量映射为线的形态属性的步骤包括:将数量由十进制数转换为十六进制数;将十六进制数的每两位转为十进制数,得到线的像素的rgb值。
另一方面,为实现上述目的,本发明提供了一种网络行为的检测装置。
该网络行为的检测装置包括:获取模块,用于获取待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组;映射模块,用于将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像;以及检测模块,用于根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的网络行为的检测方法、装置、计算机设备和存储介质,预设将行为数据映射为行为图像的映射规则和用于检测网络行为的行为检测模型,基于此,对待检测单位时间窗内目标主体的网络行为进行检测时,获取该待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组,然后将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像,最后根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为,通过本发明,在检测网络行为时,将表征网络行为的行为数据图像化,通过处理图像的方式进行检测,无需依靠专家经验即可对未知异常行为进行检测,提升了对未知异常行为检测的准确性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的网络行为的检测方法的流程图;
图2为本发明实施例二提供的异常行为检测系统的工作流程图;
图3为本发明实施例二提供的预设模板图像的示意图;
图4至图5为本发明实施例二提供的网络数据处理为图像的效果图;
图6为本发明实施例四提供的网络行为的检测装置的框图;
图7为本发明实施例五提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提升对未知异常行为检测的准确度,本发明提供了一种网络行为的检测方法、装置、计算机设备和存储介质,在该检测方法中,在对一个目标时间段内目标主体的网络行为进行检测时,将该时间段作为一个待检测单位时间窗,获取该待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组,然后将该待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像,最后根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为,从中可以看出,本发明实现了一种自动化的网络行为的检测方法,在该方法中先将行为数据组映射为图像,能够基于对图像的识别处理方法,通过预设的行为检测来实现异常行为的检测,该过程无需依靠专家经验,可对未知的异常行为进行检测,相对现有技术中基于经验的检测能够提升对未知异常行为检测的准确度。
关于本发明提供的网络行为的检测方法、装置、计算机设备和存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种网络行为的检测方法,通过该方法,将网络数据中表征网络行为的行为数据图像化,基于对图像进行识别和处理,确定待检测网络行为是否为异常行为,无需依靠专家经验,可对未知的异常行为进行检测,提升了对未知异常行为检测的准确度,具体地,图1为本发明实施例一提供的网络行为的检测方法的流程图,如图1所示,该实施例提供的网络行为的检测方法包括如下的步骤s101至步骤s103。
步骤s101:获取待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组。
当需要检测某一个目标主体在一段时间内的网络行为是否异常时,将该段时间作为待检测单位时间窗,获取该待检测单位时间窗内目标主体网络行为的行为数据,将获得的行为数据作为一个待检测行为数据组,可选地,每一次网络行为对应一条行为数据,若该待检测单位时间窗内目标主体具有多次网络行为时,待检测行为数据组包括多条行为数据。例如,检测某个ip地址在某一天内的网络行为是否正常时,获取该天内该ip地址网络行为的行为数据。
网络行为是指在通信网络中,由目标主体向其他主体发起的网络行为,可选地,行为数据可包括网路行为的接收端(也即行为对端)和网络行为的行为属性,行为对端具体可以为接收端的标识、编号、地址等可以唯一标识接收端的信息,行为属性为网络行为的属性。网络行为包含但不限于连接、登录、查询、写入、发邮件等涉及数据交互的动作。
可选地,在获取待检测单位时间窗内目标主体网络行为的行为数据时,可通过获取待检测单位时间窗内网络流量数据以及网络日志数据等网络数据,对网络数据中表征网络行为的数据进行提取来获取行为数据。具体地,可通过抓包、读取日志等方式获取网络数据。
步骤s102:将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像。
在该步骤s102中,将待检测行为数据组按照映射规则映射为行为图像,也即将行为数据图像化,通过图像上的特征来体现行为数据,从而能够通过识别图像的方式实现对网络行为的识别。在本申请中,将待检测行为数据组映射得到的行为图像定义为待检测图像。
步骤s103:根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为。
设置行为检测模型,将待检测图像的图像数据本身或者提取出的特征向量数据输入该行为检测模型,以确定出待检测网络行为是否为异常行为。
在该实施例提供的网络行为的检测方法中,预设将行为数据映射为行为图像的映射规则和用于检测网络行为的行为检测模型,基于此,对待检测单位时间窗内目标主体的网络行为进行检测时,获取该待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组,然后将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像,最后根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为,采用该实施例提供的网络行为的检测方法,在检测网络行为时,将表征网络行为的行为数据图像化,通过处理图像的方式进行检测,无需依靠专家经验即可对未知异常行为进行检测,提升了对未知异常行为检测的准确性。
可选地,在一种实施例中,根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为的步骤包括:将待检测图像输入至行为检测模型,以确定待检测网络行为是否为异常行为。
具体地,预先训练行为检测模型,使得将图像输入该行为检测模型,即可确定该图像对应的网络行为是否为异常行为,具体可将图像的像素数据输入行为检测模型。在进行检测时,将待检测图像输入至行为检测模型,即可确定待检测网络行为是否为异常行为。其中,训练行为检测模型的过程描述如下:获取目标主体的网络数据,该网络数据为目标主体的历史网络数据;提取网络数据中的行为数据组,其中,行为数据组包括单位时间窗内目标主体的网络行为的行为数据,该单位时间窗的时长与待检测单位时间窗的时长相等;将行为数据组按照映射规则映射为行为图像,得到训练行为图像;标记训练行为图像的类别,其中,当单位时间窗内的网络行为不存在异常行为时,标记训练行为图像的类别为第一类别,当单位时间窗内的网络行为存在异常行为时,标记训练行为图像的类别为第二类别;建立初始行为检测模型,其中,初始行为检测模型包括输入层、中间层和输出层,将训练行为图像作为初始行为检测模型的输入层的输入,将训练行为图像的类别作为初始行为检测模型的输出层的输出,对初始行为检测模型进行训练,即可得到行为检测模型。
可选地,在一种实施例中,根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为的步骤包括:提取待检测图像的特征向量,得到待检测特征向量;以及根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为。
具体地,预先训练行为检测模型,使得将由图像提取到的特征向量输入该行为检测模型,即可确定图像对应的网络行为是否为异常行为,其中,提取图像的特征向量可以采用现有技术中的图像特征提取方法。在进行检测时,对待检测图像进行特征向量的提取,将提取到的特征向量输入至行为检测模型,即可确定待检测网络行为是否为异常行为。
例如,行为检测模型为一种概率分布模型,在根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为时,构建正常网络行为的概率分布模型,然后计算待检测特征向量符合概率分布模型的概率,当概率小于预设概率阈值时,确定待检测网络行为属于异常行为。
又如,行为检测模型为一种聚类模型,在根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为时,通过聚类模型对多个待检测特征向量进行聚类,得到若干簇,当簇的向量数量小于预设向量阈值时,确定簇对应的待检测网络行为属于异常行为。
又如,行为检测模型为一种自编码模型,在根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为时,将待检测特征向量输入至预设的正常行为模型(也即能够对正常网络行为进行自编码的模型),得到验证特征向量,其中,正常网络行为对应的真实特征向量输入至正常行为模型得到理论特征向量,真实特征向量与理论特征向量的误差小于或等于预设误差阈值;判断待检测特征向量与验证特征向量的误差是否大于预设误差阈值;当待检测特征向量与验证特征向量的误差大于预设误差阈值时,确定待检测网络行为属于异常行为。
又如,行为检测模型为一种基于特征向量的分类模型,在根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为时,将待检测特征向量输入至预设的行为分类模型;根据行为分类模型输出的结果判断待检测网络行为是否属于异常行为。
可选地,在一种实施例中,提取待检测图像的特征向量的步骤包括:建立初始自编码器,其中,初始自编码器包括输入层、编码层、反编码层和输出层;获取训练行为图像,并将训练行为图像分别作为初始自编码器的输入层的输入和输出层的输出,对初始自编码器进行训练,得到目标自编码器;获取验证行为图像,将验证行为图像作为目标自编码器的输入层的输入,得到目标自编码器的输出层的输出;通过验证行为图像与目标自编码器的输出层的输出进行比对,判断目标自编码器是否满足要求;当目标自编码器满足要求时,将待检测图像作为目标自编码器的输入层的输入,获取目标自编码器的编码层的输出,以得到特征向量。
具体地,自编码器是一种无监督的数据维度压缩和数据特征表达方法。它是一种神经网络,经过训练能将数据压缩并近似复原,可选地,该实施例中的自编码器可以为卷积自编码器,卷积自编码器利用了传统自编码器的无监督的学习方式,通过引入卷积和池化等操作实现特征提取的一种深层神经网络。
在该实施例中,自编码器的输入层接收输入的图像,编码层对输入图像进行编码压缩,反编码层再对编码层输出的数据进行反编码,并在反编码后通过输出层输出。训练行为图像为表征一个主体(可以为目标主体,也可以为其他主体)在一段时间(可以等于单位时间窗的时长,也可以不等于单位时间窗的时长)内网络行为对应的行为数据组所映射得到的行为图像,将训练行为图像作为训练样本,对初始自编码器进行训练,使得自编码器学习到对图像进行压缩并近似复原的能力。针对训练后得到的目标自编码器,获取验证行为图像对目标自编码器进行验证,如果目标自编码器能够将验证行为图像进行压缩并近似复原,也即向目标自编码器输入的验证行为图像与目标自编码器的输出层的输出进行比对时偏差较小,表明目标自编码器满足要求,能够将网络行为对应的行为数据组所映射得到的图像压缩并近似复原。
在进行待检测图像的特征提取时,将待检测图像作为目标自编码器的输入层的输入,获取目标自编码器的编码层的输出,编码层用于对检测证图像进行编码和压缩,编码层的输出能够表征待检测图像的特征,因而可以作为待检测图像的特征向量,分别得到待检测图像的特征向量。
可选地,在一种实施例中,该网络行为的检测方法还包括:在连续s个待检测单位时间窗内,具有r个待检测单位时间窗内目标主体网络行为存在异常时,产生报警,其中,r≤s。
具体地,在该实施例中,r和s均可以为预设值,r是可容忍的异常观测单位时间窗数。如果业务要求单个单位时间窗检测出异常就需要告警,那么r=1;如果虽然单个单位时间窗检测出异常,但是基于正常的数据波动以及业务需要等,可并不立即告警,而是继续考察多个单位时间窗,那么r>1。通过该实施例,根据实际需要设置r和s的值,避免在网络数据波动较大的场景误报警,又能够在连续多个待检测单位时间内多次出现异常行为时,也即目标主体出现异常行为的概率较大时产生报警。
可选地,在一种实施例中,行为数据包括行为对端、行为属性和行为时间,行为属性为目标主体与行为对端之间产生的网络行为的属性,将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像步骤包括:针对每条行为数据,将行为对端映射为预设模板图像中点的位置坐标,将行为属性映射为点的形态属性,在位置坐标处显示形态属性的点,得到行为数据对应的图像点;在关联点之间设置连接线,其中,行为时间满足预设关联关系的两条行为数据对应的图像点互为关联点。
具体地,行为对端是指目标主体发出的网络行为的接收端,行为数据中包括的行为对端具体可包括接收端的标识、编号、地址等可以唯一标识接收端的信息;行为属性是指该网络行为的属性,包括连接方式、数据传输协议等;行为时间是指网络行为的产生时间。对行为数据组按照预设的映射规则映射为图像,也即将网络行为图像化。映射规则包括在行为对端(本申请中是指标识行为对端的信息)与预设模板图像的点的位置坐标之间建立的映射关系,通过该映射关系,针对每条行为数据,将行为对端映射为预设模板图像中点的位置坐标,需要说明是,该处的位置坐标可以为在一种坐标系中标识点位置的数据,例如直角坐标系中通过横纵坐标标识点位置的数据,又如极坐标系中通过极角和极径标识点位置的数据;也可以为通过序号等标识点位置的数据,例如通过图像中像素的序号标识点位置的数据等,本申请对此并不进行限定,所有能够在图像中标识出点位置的数据均属于本申请中的位置坐标,以实现通过在预设模板图像中不同位置的点来表征不同行为对端的目的。
映射规则还包括在行为属性与预设模板图像的点的形态属性之间建立的映射关系,通过该映射关系,针对每条行为数据,将行为属性映射为预设模板图像中点的形态属性,需要说明是,该处的行为属性可以为网络行为的单个属性,例如网络连接的连接方式,也可以为网络行为的多个属性的组合,例如网络连接的连接方式和数据传输协议的组合,该处的点的形态属性可以为点的大小、形状和/或颜色,也可以为点的其他参数,所有能够在图像中体现出点的差异的特性均属于本申请的点的形态属性,以实现通过在预设模板图像中点的不同形态属性来表征不同行为属性的目的。
行为数据组包括多条行为数据,每条行为数据对应一个网络行为,行为数据组表征目标主体在一段时间内发起的多个网络行为的数据。可根据实际需要预设基于行为时间的关联关系,在该行为数据组中,定义行为时间满足预设关联关系的两条行为数据对应的图像点互为关联点,例如,将间隔时间满足预设时长的两条行为数据对应的图像点互为关联点,通过在关联点之间显示连接线,实现上述关联关系的图像化,也即,通过图像信息体现哪些网络行为之间满足关联关系。针对行为数据组,将每条行为数据映射到预设模板图像上的同时,在关联点之间设置连接线,能够通过图像体现网络行为的关联关系。
在该实施例提供的网络行为的检测方法中,行为数据包括网络行为的行为对端以及网络行为的行为属性,将行为对端映射为预设模板图像中的点的位置坐标,将行为属性映射为点的形态属性,通过在位置坐标出显示该形态属性的点,得到行为数据对应的图像点,行为数据还包括行为时间,行为时间的关联关系通过关联点之间设置的连接线体现,实现了网络行为的图像化。
可选地,在一种实施例中,关联点为行为时间相邻的两条行为数据对应的图像点。
采用该实施例提供的网络行为的检测方法,将关联点定义为行为时间相邻的两条行为数据对应的图像点,关联点之间的连接线能够表征出哪些网络行为是相邻的网络行为,一方面,增加了图像表示网络行为信息的量,另一方面,对于一些安全威胁,相邻的网络行为之间具有特定的特征,因此,基于具有相邻网络行为表征的图像进行网络行为的检测,能够实现对这类型安全威胁的准确检测。
可选地,在一种实施例中,连接线为向量,向量的方向表征关联点对应的行为时间的先后。
采用该实施例提供的网络行为的检测方法,对于行为时间相邻的两条行为数据对应的图像点,不仅在两个图像点(也即关联点)之间显示连接线,而且将连接线设置为具有方向的线,也即将连接线设置为向量,通过向量的方向来表征行为时间的先后,从而当图像为体现多个网络行为的图像时,能够通过图像表征出网络行为发起端发起的网络行为的路径,也即图像表征出网络行为链,表征出系列行为的先后关系,从而能够基于行为上下关系进行网络行为的判断。
可选地,在一种实施例中,将行为数据组按照预设的映射规则映射为图像的步骤还包括:统计行为数据组对应的相同关联点的数量;将数量映射为线的形态属性,在关联点之间设置连接线的步骤包括:在关联点之间按照线的形态属性设置连接线。
具体地,将关联点表征的两条行为数据作为一个行为数据单元,当行为数据组对应有相同关联点时,也即行为数据组中包括相同的行为数据单元,在该实施例提供的网络行为的检测方法中,针对某一关联点,对行为数据组中该关联点表征的行为数据单元的数量进行统计,如果行为数据组中包括n个此行为数据单元,则该关联点的数量为n。预先设置数量与线的形态属性之间的映射关系,在确定一个关联点的数量后,基于该映射关系可将确定的数量映射为线的形态属性,然后在关联点之间显示连接线时,按照映射到的线的形态属性来设置。该处的线的形态属性可以为线的形状、粗细和/或颜色,也可以为线的其他参数,所有能够在图像中体现出线的差异的特性均属于本申请的线的形态属性,以实现通过在预设模板图像中线的不同形态属性来表征关联点数量的目的。
采用该实施例提供的网络行为的检测方法,将关联点的数量映射为关联点之间连接线的形态属性,从而关联点之间的连接线在表征出哪些网络行为之间满足关联关系的同时,还能够表征出这些网络行为的多少,增加了图像表示网络行为信息的量。
可选地,在一种实施例中,将行为对端映射为预设模板图像中点的位置坐标的步骤包括:在预设模板图像中预设多个点的位置坐标;通过按序分配、随机分配或最远距离分配,将预设多个点的位置坐标分配一个端标识,建立位置坐标与端标识之间的一一对应的第一映射关系;根据行为对端的端标识和第一映射关系,确定行为对端对应的位置坐标。
具体地,在预设模板图像中预设多个点的位置坐标时,可以随机设置多个点,也可以按照一定规律设置多个点;在将预设模板图像中的点与行为对端之间建立映射关系时,可以按序将点的位置坐标分配给一个行为对端,针对多个行为对端,将各个行为对端进行排序,然后按照在某一方向上的顺序将每个点分配给一个行为对端,或者将每个点随机分配给一个行为对端,或者也可以将一个点分配给一个行为对端后,再计算确定一个与该点距离最远的点,将该距离最远的点分配给下一个行为对端,以此类推,直到所有的行为对端都对应有一个点,形成位置坐标与行为对端之间的一一对应的第一映射关系,在将一个确定的行为对端映射为预设模板图像中点的位置坐标时,在第一映射关系中查找该行为对端所对应的位置坐标。
可选地,在一种实施例中,预设模板图像为具有多个像素的图片,一个点包括若干个像素,位置坐标根据像素的位置确定,点的形态属性根据像素的rgb值确定。
具体地,点的位置坐标可以为该点所包括的一个像素的位置坐标,或者也可以为一个像素的序号等。点的形态属性为点的颜色,具体根据像素的rgb值确定,采用该实施例提供的网络行为的检测方法,点的位置坐标和形态属性均可以根据图片中的像素确定。
可选地,在一种实施例中,同一个点的各像素的rgb值相同,使得一个点整体的颜色均匀,有利于图像识别和图像处理,进而有利于网络行为的识别和处理,且在设置行为属性与点的形态属性的映射关系时,点的形态属性简化为一个rgb值,映射关系简单。
可选地,在一种实施例中,不同点包括的像素的数量相同,也即不同点的大小相同,有利于图像识别和图像处理,进而有利于网络行为的识别和处理。
可选地,在一种实施例中,各点在图片上均匀设置,也即各相邻的点之间的距离相等。
可选地,在一种实施例中,预设模板图像为具有n*n个像素的图片,其中,n=(2k-1)*m,点为包括m个像素,相邻的点之间间隔m个像素,同一个点的各像素的rgb值相同,点的形态属性为点的像素的rgb值,将行为属性映射为点的形态属性的步骤包括:确定行为属性的编号i;确定像素的rgb值范围,其中,像素的r值的范围为0~r,像素的g值的范围为0~g,像素的b值的范围为0~b;采用以下公式计算编号i对应的十六进制数
具体地,对于所有行为数据中不同种类的行为属性进行编号,并且确定像素的rgb值范围,该rgb值范围为预设图像模板上可显示的rgb值的范围,则r*g*b为预设图像模板上可显示的颜色种类数量,去除预设图像模板的一种背景颜色,r*g*b-1为预设图像模板上可显示的点的颜色种类数量,也即预设图像模板上可表征的行为属性的种类数量,c为实际行为属性的种类数量,通过公式
可选地,在一种实施例中,线的形态属性为线的像素的rgb值,将数量映射为线的形态属性的步骤包括:将数量由十进制数转换为十六进制数;将十六进制数的每两位转为十进制数,得到线的像素的rgb值。
具体地,将一种关联点的数量(前述行为数据单元的数量)映射为线的形态属性时,将数量映射为线对应的rgb值,也即线的颜色,使点的形态属性和线的形态属性均为像素的rgb值。
实施例二
本发明实施例二提供了一种优选地网络行为的检测方法,与上述实施例一中的相同的技术特征和技术效果可相互参考。在该实施例中,网络行为的检测方法通过一种异常行为检测系统实现,具体地,图2为本发明实施例二提供的异常行为检测系统的工作流程图,如图2所示,该实施例提供的异常行为检测系统包括数据处理模块、行为表示模块、异常行为训练模块和异常行为预测模块。
数据处理模块的输入为原始网络数据,该原始网络数据可以为原始网络流量或日志数据,凡是包含由来源方(发起端)到目的方(接收端)的网络行为的数据都在本发明涉及的技术范围内。来源方是网络行为的发起方,例如:源ip、服务器账号、员工编号、邮箱等。目的方是行为的接收方,例如:目的ip、主机名、数据库、业务系统、邮箱等。网络行为包含但不限于连接、登录、查询、写入、发邮件等涉及数据交互的动作。
数据处理模块在对原始网络数据进行处理时,执行的是网络行为的检测方法中行为数据的获取步骤,主要步骤包括抽取数据、统计并做规范化处理。首先从原始网络数据中抽取每一个来源方的行为序列,该行为序列也即行为数据组,行为数据组中的行为数据可包括:日期、时间、来源方、目的方,还可包括登录方式、协议、端口等附加的行为属性。行为属性可以是一种,也可以是多种。在该实施例中,以tcp连接的网络行为举例,来源方位来源ip,目的方为目的ip,行为属性为连接协议,实际场景中也可以根据需求定义不同的目的方和行为属性。以某一来源方(如客户端ip10.70.1.11)为例,抽取的数据和生成的序列如表1所示:
表1数据抽取样例
关于上表1,是指ip为10.70.1.11的客户端在2019-01-0100:08:00通过http方式访问了目的ip10.11.11.5,在2019-01-0100:09:30通过ssh方式访问了目的ip10.11.11.6……以此类推。
随后,对表1中的数据进行统计和归并。对于每两次相邻的网络行为,按时间先后,将时间早者的目的方记为前一目的方,将时间晚者的目的方记为后一目的方,并记下各自的行为属性。还应记下观测时间范围内(如1天)的四元组(前一目的方,后一目的方,前一属性,后一属性)出现的次数。注意,为便于表述和实际的效果,下文观测时间范围的最小单位为1天,但在实际使用时,该取值可大于或小于1天。
数据处理模块的输出为处理后的数据,格式如表2所示:
表2数据统计并处理后数据样例
行为表示模块的输入为数据处理模块的输出结果,如上表2所示样例。行为表示模块在进行行为表示时,具体包括如下的步骤:
定义一张n*n(n=(2k-1)*8,k为正整数)的图片(也即预设模板图像),颜色范围为rgb=(255,255,255)。用直径为8像素的圆点表示目的方,此方法可表示k*k个目的方,如图3所示。每个圆点与目的方的对应关系可以有不同设定方式,如:按序分配、随机分配或最远距离分配或其他通过数学计算得到的分配方式,其中,按序分配包括按照从左至右或从上至下的顺序分配,或者按照蛇形顺序分配,或者按照回形顺序分配等。如图3所示,用圆点的颜色表示行为属性,因为除去图片背景色rgb=(255,255,255)外,可用的r、g、b值最多可表示256*256*256-1=16777215种不同属性。先为行为属性编号,再将点的颜色映射到各个行为属性,方法是取
表3对属性编号并赋予颜色样例
前后两个目的方的跳转关系(也即上文中的关联关系)用两个圆点(也即关联点)之间的连接线表示,线的rgb值表示出现次数(也即关联点的数量)。将十进制的出现次数转为十六进制数,取该十六进制数的每两位转为十进制分别为r、g、b的值。次数与颜色的映射关系如表4所示。若次数大于16777214,均用rgb=(255,255,254)表示。
表4出现次数与线颜色的映射关系
依上述方法步骤,每个来源方(如ip或人)在每个观测时间范围(如1天)的行为可以用一张图片来表示。依然以表1和表2的行为数据为例,其转化后的效果图如图4所示,需要说明的是,图4中的10.11.11.5等ip信息和网格线只是为了便于说明,实际图片中并不包括ip信息和网格线本身。
每个来源方(如ip或人)在多个观测时间范围(如多天)的行为可以表示为多张图片的集合,具体效果图如图5所示。
通过上述方法得到行为图像数据后,如图2所示,根据实际需求,目标主体的历史行为图像以训练异常行为模型。行为图像是大小为n*n*3(n=(2k-1)*8,k为正整数),3为rgb通道数量,同时对每一张训练所用的该行为图像进行标注,根据图像所表征的网络行为是否正常或异常,将行为图像判别为“正常”或“异常”两类中的某一类,以通过图像分类方法实现对网络行为的分类,在进行图像分类时,可使用卷积神经网络cnn,或者其他的分类方法,例如vgg、inception、resnet或densenet等网络均可使用。无论使用哪种方法,将行为图像数据作为模型的输入,将对应的类别作为模型的输出,对模型进行训练。
在训练完成后,得到异常行为模型(也即行为检测模型),将待预测行为图像输入至异常行为模型,即可实现针对待预测行为图像的预测,得到结果为“正常”或“异常”两类中的某一类,并输出属于“正常”类的置信度pi(0≤pi≤1)。
第i天的行为异常度为:
si=1-pi
设m是可容忍的异常观测天数。当m=1时,若si大于预设阈值,则告警。当m>1时,若m天内有r天si大于预设阈值(r≤m),则告警。
实施例三
本发明实施例三提供了一种优选地网络行为的检测方法,与上述实施例一和实施例二中的相同的技术特征和技术效果可相互参考。在该实施例中,网络行为的检测方法通过一种异常行为检测系统实现,具体地,该实施例提供的异常行为检测系统包括数据处理模块、行为表示模块、特征抽取训练模块、特征抽取模块、异常行为训练模块和异常行为预测模块。
其中,关于数据处理模块和行为表示模块,具体可参考上述实施例二的相关内容,该处不再赘述。
通过数据处理模块和行为表示模块得到行为图像数据后,特征抽取训练模块获取该行为图像数据作为训练行为图像,对初始自编码器通过特征抽取器训练模块进行训练,可选地,初始自编码器为一个cnn自编码器。cnn自编码器的输入图像和预测目标是同一张图片,中间的卷积层作为编码层,相当于在做自动化的压缩编码,压缩结果再经过反卷积或上采样处理(相当于反编码层),输出层最终恢复到与输入层的输入图片相同大小的维度,训练完cnn自编码器之后,得到目标自编码器,获取上述行为图像数据作为验证行为图像进行测试,如果输出层结果与输入层图像极为相似,那么可认为该目标自编码器效果显著,中间的压缩编码层可用于输入图像的压缩编码表示,通过特征抽取训练模块得到能够进行特征向量提取的特征抽取器。
如上所述,使用大量行为图像数据训练好目标自编码器后,特征抽取模块向目标自编码器输入某一行为图像,经过输入层和编码层的计算后,取出编码层输出的压缩编码结果即为提取出的特征向量。
对目标主体的网络行为进行检测之前,获取目标主体的网络数据,通过上述数据处理模块和行为表示模块得到行为图像数据后,再通过上述目标自编码器得到对应每张行为图像的特征向量,利用异常行为训练模块对异常行为模型进行训练,具体地,特征向量为l*1维列向量,同时对每一张训练所用的该行为图像抽取的特征向量进行标注,根据图像所表征的网络行为是否正常或异常,将特征向量判别为“正常”或“异常”两类中的某一类,以通过基于特征向量的分类方法实现对网络行为的分类,在进行分类时,可使用卷积神经网络cnn,或者其他的分类方法,例如vgg、inception、resnet或densenet等网络均可使用。无论使用哪种方法,将由行为图像抽取的特征向量作为模型的输入,将对应的类别作为模型的输出,对模型进行训练。
在训练完成后,得到异常行为模型(也即行为检测模型),对待预测行为图像进行特征向量的抽取后,将抽取到的特征向量输入至异常行为模型,即可实现针对待预测行为图像的预测,得到结果为“正常”或“异常”两类中的某一类,并输出属于“正常”类的置信度pi(0≤pi≤1)。第i天的行为异常度为:
si=1-pi
设m是可容忍的异常观测天数。当m=1时,若si大于预设阈值,则告警。当m>1时,若m天内有r天si大于预设阈值(r≤m),则告警。
实施例四
对应于上述实施例一,本发明实施例四提供了一种网络行为的检测装置,相关技术特征和技术效果可参考上述,此处不再赘述。图6为本发明实施例四提供的网络行为的检测装置的框图,如图6所示,该装置包括:获取模块301、映射模块302和检测模块303。
其中,获取模块301用于获取待检测单位时间窗内目标主体网络行为的行为数据,得到待检测行为数据组;映射模块302用于将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像;以及检测模块303用于根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为。
可选地,在一种实施例中,检测模块303在根据待检测图像和预设的行为检测模型确定待检测网络行为是否为异常行为时,具体执行的步骤包括:将待检测图像输入至行为检测模型,以确定待检测网络行为是否为异常行为。
可选地,在一种实施例中,检测模块303包括提取单元和确定单元,其中,提取单元用于提取待检测图像的特征向量,得到待检测特征向量;以及确定单元用于根据待检测特征向量和行为检测模型确定待检测网络行为是否属于异常行为。
可选地,在一种实施例中,提取单元在提取待检测图像的特征向量时,具体执行的步骤包括:建立初始自编码器,其中,初始自编码器包括输入层、编码层、反编码层和输出层;获取训练行为图像,并将训练行为图像分别作为初始自编码器的输入层的输入和输出层的输出,对初始自编码器进行训练,得到目标自编码器;获取验证行为图像,将验证行为图像作为目标自编码器的输入层的输入,得到目标自编码器的输出层的输出;通过验证行为图像与目标自编码器的输出层的输出进行比对,判断目标自编码器是否满足要求;当目标自编码器满足要求时,将待检测图像作为目标自编码器的输入层的输入,获取目标自编码器的编码层的输出,以得到特征向量。
可选地,在一种实施例中,网络行为的检测装置还包括:报警模块,用于在连续s个待检测单位时间窗内,具有r个待检测单位时间窗内目标主体网络行为为异常行为时,产生报警,其中,r≤s。
可选地,在一种实施例中,行为数据包括行为对端、行为属性和行为时间,行为属性为目标主体与行为对端之间产生的网络行为的属性,映射模块302在将待检测行为数据组按照预设的映射规则映射为行为图像,得到待检测图像时,具体执行的步骤包括:针对每条行为数据,将行为对端映射为预设模板图像中点的位置坐标,将行为属性映射为点的形态属性,在位置坐标处显示形态属性的点,得到行为数据对应的图像点;在关联点之间设置连接线,其中,行为时间满足预设关联关系的两条行为数据对应的图像点互为关联点。
可选地,在一种实施例中,关联点为行为时间相邻的两条行为数据对应的图像点;连接线为向量,向量的方向表征关联点对应的行为时间的先后。
可选地,在一种实施例中,映射模块302将行为数据组按照预设的映射规则映射为图像时,具体执行的步骤还包括:统计行为数据组对应的相同关联点的数量;将数量映射为线的形态属性,在关联点之间设置连接线时,在关联点之间按照线的形态属性设置连接线。
可选地,在一种实施例中,映射模块302将行为对端映射为预设模板图像中点的位置坐标时,具体执行的步骤包括:在预设模板图像中预设多个点的位置坐标;通过按序分配、随机分配或最远距离分配,将预设多个点的位置坐标分配一个端标识,建立位置坐标与端标识之间的一一对应的第一映射关系;根据行为对端的端标识和第一映射关系,确定行为对端对应的位置坐标。
可选地,在一种实施例中,预设模板图像为具有n*n个像素的图片,其中,n=(2k-1)*m,点为包括m个像素,相邻的点之间间隔m个像素,同一个点的各像素的rgb值相同,点的形态属性为点的像素的rgb值,映射模块302将行为属性映射为点的形态属性时,具体执行的步骤包括:确定行为属性的编号i;确定像素的rgb值范围,其中,像素的r值的范围为0~r,像素的g值的范围为0~g,像素的b值的范围为0~b;采用以下公式计算编号i对应的十六进制数
可选地,在一种实施例中,线的形态属性为线的像素的rgb值,映射模块302将数量映射为线的形态属性时,具体执行的步骤包括:将数量由十进制数转换为十六进制数;将十六进制数的每两位转为十进制数,得到线的像素的rgb值。
实施例五
本实施例五还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图7所示。需要指出的是,图7仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的网络行为的检测装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如网络行为的检测方法等。
实施例六
本实施例六还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储网络行为的检测置,被处理器执行时实现实施例一的网络行为的检测方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。