网络流量识别方法、系统、装置及计算机可读存储介质与流程

文档序号:18160848发布日期:2019-07-13 09:19阅读:215来源:国知局
网络流量识别方法、系统、装置及计算机可读存储介质与流程

本发明涉及计算机领域,特别涉及一种网络流量识别方法、系统、装置及计算机可读存储介质。



背景技术:

近年来,僵尸网络作为一种新型攻击方式,现已经成为互联网安全领域面临的重大威胁,僵尸网络是几十年发展起来的集木马,蠕虫和后门程序于一身的新型攻击方式。僵尸网络是由一批僵尸主机形成的网络,他们会被僵尸程序攻击后由僵尸主机远程操控,进行恶意软件分发,ddos攻击,钓鱼攻击,窃取用户身份,发送垃圾邮件等非法行为。

现阶段大多数研究者为了能够从大量的流量中检测到是否是恶意僵尸网络产生的流量去阻止它去危害网络安全,因此利用机器学习技术在僵尸网络检测领域对恶意僵尸网络流量进行分类,也获得广泛的应用,但是随着僵尸网络形态和命令控制机制不断变化,而人工选取特征工作量极大,十分复杂。

因此,需要一种僵尸网络流量识别的技术,无需人工选择特征,提高流量识别的效率。



技术实现要素:

有鉴于此,本发明的目的在于提供一种网络流量识别方法、系统、装置及计算机可读存储介质,提高流量识别的效率。其具体方案如下:

一种网络流量识别方法,包括:

获取网络流量数据,得到流量数据包;

利用所述流量数据包中的分组概要信息生成分组字节矩阵;

利用预先训练而成的僵尸流量识别模型对所述分组字节矩阵进行识别,判断所述分组字节矩阵对应的所述流量数据包是否为僵尸流量,得到分类结果;

其中,所述僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

可选的,所述获取网络流量数据,得到流量数据包的过程,包括:

获取网络流量数据;

对网络流量数据进行去噪,去除无用数据,得到所述流量数据包。

可选的,所述对网络流量数据进行去噪,去除无用数据,得到所述流量数据包的过程,包括:

利用wireshark分析网络流量数据中初始流量数据包的特征值;

根据每个初始流量数据包的特征值,筛选不满足预设的筛选条件的初始流量数据包,得到所述流量数据包。

可选的,所述利用所述流量数据包中的分组概要信息生成分组字节矩阵的过程,包括:

从所述流量数据包的头部信息和尾部信息中获取所述分组概要信息;

根据所述分组概要信息得到所述流量数据包中的初始分组数据;

根据每个初始分组数据的长度和预设的截断长度,对每个初始分组数据进行截断或补零,得到与所述截断长度相同的分组数据;

利用所有分组数据,生成初始化分组字节矩阵;

对所述初始化分组字节矩阵中的每个分组数据进行归一化处理,得到所述分组字节矩阵。

本发明还公开了一种网络流量识别系统,包括:

数据获取模块,用于获取网络流量数据,得到流量数据包;

矩阵生成模块,用于利用所述流量数据包中的分组概要信息生成分组字节矩阵;

分类识别模块,用于利用预先训练而成的僵尸流量识别模型对所述分组字节矩阵进行识别,判断所述分组字节矩阵对应的所述流量数据包是否为僵尸流量,得到分类结果;

其中,所述僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

可选的,所述数据获取模块,包括:

数据获取单元,用于获取网络流量数据;

数据去噪单元,用于对网络流量数据进行去噪,去除无用数据,得到所述流量数据包。

可选的,所述数据去噪单元,包括:

特征提取子单元,用于利用wireshark分析网络流量数据中初始流量数据包的特征值;

数据筛选子单元,用于根据每个初始流量数据包的特征值,筛选不满足预设的筛选条件的初始流量数据包,得到所述流量数据包。

可选的,所述矩阵生成模块,包括:

概要信息获取单元,用于从所述流量数据包的头部信息和尾部信息中获取所述分组概要信息;

分组数据获取单元,用于根据所述分组概要信息得到所述流量数据包中的初始分组数据;

分组数据处理单元,用于根据每个初始分组数据的长度和预设的截断长度,对每个初始分组数据进行截断或补零,得到与所述截断长度相同的分组数据;

初始矩阵生成单元,用于利用所有分组数据,生成初始化分组字节矩阵;

归一化处理单元,用于对所述初始化分组字节矩阵中的每个分组数据进行归一化处理,得到所述分组字节矩阵。

本发明还公开了一种网络流量识别装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如前述的网络流量识别方法。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的网络流量识别方法。

本发明中,一种网络流量识别方法,包括:获取网络流量数据,得到流量数据包;利用流量数据包中的分组概要信息生成分组字节矩阵;利用预先训练而成的僵尸流量识别模型对分组字节矩阵进行识别,判断分组字节矩阵对应的流量数据包是否为僵尸流量,得到分类结果;其中,僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

本发明将流量数据包进行处理,将其特征转换为分组字节矩阵,将分组字节矩阵充当二维图片,使得基于卷积神经网络,预先训练出僵尸流量识别模型,能够识别出分组字节矩阵,并从中提取出特征进行识别,最后输出包括分组字节矩阵是否对应僵尸流量数据包的分类结果,实现自动对网络中的流量数据包自动进行分类,无需人工分类,在确保准确性的前提下,大大提高了分类效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的另一种网络流量识别方法流程示意图;

图2为本发明实施例公开的另一种网络流量识别方法流程示意图;

图3为本发明实施例公开的另一种网络流量识别方法流程示意图;

图4为本发明实施例公开的一种分组字节矩阵示意图;

图5为本发明实施例公开的一种网络流量识别系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种网络流量识别方法,参见图1所示,该方法包括:

s11:获取网络流量数据,得到流量数据包。

具体的,本地设备进行网络通信期间,将会产生大量的网络流量数据,从网络流量数据中可以获取大量的流量数据包,以供后续依次输入至模型进行分类。

进一步的,部分数据包的特征已经被现有技术掌握,所以在获取流量数据包时,可以利用现有技术对网络流量数据进行筛选,从中提取出可能为僵尸流量的流量数据包。

其中,流量数据包获取时可以以pcap文件格式进行保存。

s12:利用流量数据包中的分组概要信息生成分组字节矩阵。

具体的,从流量数据包的头部和尾部可以提取出分组概要信息,分组概要信息中记载了流量数据包的分组数据,通过对分组数据进行处理,可以得到与流量数据包对应的填满有分组数据的分组字节矩阵,其中,由于分组概要信息中记载的分组数据长短可能不一致,因此,在转换为分组字节矩阵,可以预先进行格式的统一化处理,然后再利用所有分组数据生成分组字节矩阵。

s13:利用预先训练而成的僵尸流量识别模型对分组字节矩阵进行识别,判断分组字节矩阵对应的流量数据包是否为僵尸流量,得到分类结果。

具体的,分组字节矩阵相当于一个二维图片,因此,可以作为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的僵尸流量识别模型的输入,进行被识别,僵尸流量识别模型基于卷积神经网络算法,从分组字节矩阵中提取特征,根据提取的特征依据模型训练时得到的训练结果,判断出分组字节矩阵的分类结果,分类结果记载了该分组字节矩阵是否为僵尸流量数据包的分组字节矩阵还是正常流量数据包的分组字节矩阵。

其中,历史分组字节矩阵为预先经用户从网络数据中筛选出用于对原始僵尸流量识别模型进行训练的历史流量数据包的分组字节矩阵。

可见,本发明实施例将流量数据包进行处理,将其特征转换为分组字节矩阵,将分组字节矩阵充当二维图片,使得基于卷积神经网络,预先训练出僵尸流量识别模型,能够识别出分组字节矩阵,并从中提取出特征进行识别,最后输出包括分组字节矩阵是否对应僵尸流量数据包的分类结果,实现自动对网络中的流量数据包自动进行分类,无需人工分类,在确保准确性的前提下,大大提高了分类效率。

本发明实施例公开了一种具体的网络流量识别方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:

s21:获取网络流量数据;

s22:对网络流量数据进行去噪,去除无用数据,得到流量数据包。

可以理解的是,由于网络流量数据很多,为了加快识别速度,基于已知数据包类型的特征,可以快速筛选出非僵尸流量数据包,不对其进行识别,将其作为无用数据舍弃,从而得到可能为僵尸流量数据包的流量数据包,以供后续分析。

进一步的,s22可以进一步的包括s221和s222;其中,

s221:利用wireshark分析网络流量数据中初始流量数据包的特征值;

s222:根据每个初始流量数据包的特征值,筛选不满足预设的筛选条件的初始流量数据包,得到流量数据包。

具体的,利用wireshark可以分析出初始流量数据包各层特征值,特征值可以包括端点或mac地址等,通过这些特征值和预设的筛选条件,可以从多个初始流量数据包中筛选出满足筛选条件的流量数据包,当然筛选出的流量数据包可以为多个。

其中,获取网络流量数据时,同样可以采用wireshark获取。

s23:利用流量数据包中的分组概要信息生成分组字节矩阵;

s24:利用预先训练而成的僵尸流量识别模型对分组字节矩阵进行识别,判断分组字节矩阵对应的流量数据包是否为僵尸流量,得到分类结果。

其中,僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

具体的,僵尸流量识别模型的识别包括可以具体包括:

s241:利用输入层数据采用预处理后得到分组字节向量输入。

s242:卷积层通过指定不同窗口值提取分组字节数据矩阵rqn×n的不同特征信息,并通过不同卷积核提取数据中的不同特征hi。

式中,hi表示第i层的特征图(h0=rn×n),wi表示第i层卷积核的权值向量,运算符号表示卷积核与第i-1层图像或特征图进行卷积操作,bi为偏移向量,f(x)是非线性激励函数。

s243:为了对特征图进行降维,在一定程度上保持特征的尺度不变特性,池化层依据一定池化规则对特征图hi进行池化操作,提取特征映射中的重要特征hi+1。

hi+1=pooling(hi);

式中,pooling(x)表示池化规则,主要分为最大池化与均值池化两种。

s244:全连接层,全连接层中每个神经元与其前一层的所有神经元进行全连接,其可以整合卷积层或池化层中具类别区分性的局部信息。

式中,yl表示第l层全连接层的神经元向量,y0是由最后一个池化层所得特征图hn平铺得到的,wl表示第l层全连接层的权值向量,dl是屏蔽向量,运算符号表示元素相乘,bl为偏移向量,g(x)是神经元激励函数,表示采用正则化。

s245:输出层可以采用softmax作为分类器,从而实现对恶意僵尸流量和正常流量的识别与分类。

此外,本发明实施例还公开了一种网络流量识别方法,参见图3所示,具体的:

s31:获取网络流量数据,得到流量数据包;

s32:从流量数据包的头部信息和尾部信息中获取分组概要信息。

具体的,每个流量数据包的头部信息和尾部信息中记载的数据包的分组概要信息,特别是流量数据包以pcap格式进行存储。

s33:根据分组概要信息得到流量数据包中的初始分组数据。

具体的,分组概要信息中记载了数据包的多个分组数据,通过这些分组数据可以体现流量数据包的类型,因此,可以通过分组数据判断流量数据包是否为僵尸流量。

s34:根据每个初始分组数据的长度和预设的截断长度,对每个初始分组数据进行截断或补零,得到与截断长度相同的分组数据。

具体的,由于初始分组数据不尽相同,为了确保分组字节矩阵的统一性,以确保后续模型能够准确识别,减少变量,为此,根据每个初始分组数据的长度和预设的截断长度,对每个初始分组数据进行截断或补零,即,若初始分组数据的长度大于预设的截断长度,则以头部数据为起始截断多余的初始分组数据,若初始分组数据的长度小于预设的截断长度,则从初始分组数据的末尾进行补零,使其数据长度与截断长度一致,同时不改变数据记载内容。

s35:利用所有分组数据,生成初始化分组字节矩阵。

具体的,每个分组数据代表初始化分组字节矩阵中的一位,分组数据依次生成初始化分组字节矩阵,分组数据可以以16进制的形式保存在初始化分组字节矩阵中,如图4所示。

s36:对初始化分组字节矩阵中的每个分组数据进行归一化处理,得到分组字节矩阵。

具体的,为缩减计算量可以对初始化分组字节矩阵中的每个分组数据进行归一化处理,将每一个分组数据进行归一化,每个分组值为0~255,所以每个分组值均除以256。

s37:利用预先训练而成的僵尸流量识别模型对分组字节矩阵进行识别,判断分组字节矩阵对应的流量数据包是否为僵尸流量,得到分类结果。

其中,僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

相应的,本发明实施例还公开了一种网络流量识别系统,参见图5所示,该系统包括:

数据获取模块1,用于获取网络流量数据,得到流量数据包;

矩阵生成模块2,用于利用流量数据包中的分组概要信息生成分组字节矩阵;

分类识别模块3,用于利用预先训练而成的僵尸流量识别模型对分组字节矩阵进行识别,判断分组字节矩阵对应的流量数据包是否为僵尸流量,得到分类结果;

其中,僵尸流量识别模型为基于卷积神经网络算法,利用历史分组字节矩阵对原始僵尸流量识别模型进行训练而成的。

具体的,数据获取模块1,可以包括数据获取单元和数据去噪单元;其中,

数据获取单元,用于获取网络流量数据;

数据去噪单元,用于对网络流量数据进行去噪,去除无用数据,得到流量数据包。

进一步的,上述数据去噪单元,可以具体包括特征提取子单元和数据筛选子单元;其中,

特征提取子单元,用于利用wireshark分析网络流量数据中初始流量数据包的特征值;

数据筛选子单元,用于根据每个初始流量数据包的特征值,筛选不满足预设的筛选条件的初始流量数据包,得到流量数据包。

具体的,上述矩阵生成模块2,可以具体包括概要信息获取单元、分组数据获取单元、分组数据处理单元、初始矩阵生成单元、归一化处理单元;其中,

概要信息获取单元,用于从流量数据包的头部信息和尾部信息中获取分组概要信息;

分组数据获取单元,用于根据分组概要信息得到流量数据包中的初始分组数据;

分组数据处理单元,用于根据每个初始分组数据的长度和预设的截断长度,对每个初始分组数据进行截断或补零,得到与截断长度相同的分组数据;

初始矩阵生成单元,用于利用所有分组数据,生成初始化分组字节矩阵;

归一化处理单元,用于对初始化分组字节矩阵中的每个分组数据进行归一化处理,得到分组字节矩阵。

此外,本发明实施例还公开了一种网络流量识别装置,该装置包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序以实现如前述的网络流量识别方法。

另外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的网络流量识别方法。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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