发明内容
为解决现有技术的固定密码容易导致密码泄露的安全问题的技术问题。
为实现上述技术目的,本公开提供了一种流量监测方法,所述方法包括:
在网络中抓取预设时长的网络流量形成数据文件;
对抓取的所述数据文件进行特征构建,形成二维矩阵形式的数据集;
对所述数据集进行特征筛选得到筛选后的数据;
利用预设的模型对所述筛选后的数据进行分类。
进一步,所述对抓取的所述数据文件进行特征构建具体为:
对抓取的所述数据文件通过流动构建和/或细分构建的方式进行特征构建。
进一步,所述流动构建的过程具体包括:
通过五元组信息将抓取的网络流量分成不同的流,统计流中与时间相关的特征,得到流构建的特征。
进一步,根据接收到的包中带有FIN标志或者相邻两个包的接收间隔超过阈值,对所述抓取的网络流量进行流划分。
进一步,所述细分构建的过程具体包括:
将具有相同源地址的包聚合为分组,在分组中计算不同协议类型的包的统计信息,得到细分构建的特征。
进一步,所述对所述数据集进行特征筛选得到筛选后的数据具体包括:
对所述数据集进行去重处理;
对去重处理后的数据集中的数据进行方差过滤;
对所述方差过滤后的数据进行随机森林的平均精确率减少和递归特征消除法进行特征选择。
进一步,所述预设的模型具体通过如下方式训练获得:
利用随机森林和迭代算法在训练集上训练得到基学习器;
将所述训练集输入所述基学习器得到的预测结果作为新生成的训练集;
利用逻辑回归模型在所述新生成的训练集上进行模型训练。
为实现上述技术目的,本公开还能够提供一种流量监测装置,包括:
数据抓取模块,用于在网络中抓取预设时长的网络流量形成数据文件;
特征提取模块,用于对抓取的所述数据文件进行特征构建,形成二维矩阵形式的数据集;
数据筛选模块,用于对所述数据集进行特征筛选得到筛选后的数据;
数据分类模块,用于利用预设的模型对所述筛选后的数据进行分类。
为实现上述技术目的,本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的流量监测方法的步骤。
为实现上述技术目的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的流量监测方法的步骤。
本公开的有益效果为:
本公开采用flow方式与segmentation方式进行特征构造,flow方式需要选择窗口的大小,这对数据的质量会产生影响,因为不同的攻击需要的窗口大小不同。而且由于pcap文件大小不同,在文件的末尾会丢失一些信息。因此选择segmentation的特征构造方式,在pcap中进行源ip地址的聚合,特征会包含主机的信息,而不仅仅是flow特征。在特征选择阶段采用多种特征选择方法,将各种特征选择方法都认为重要的特征进行融合,很大程度上可以保证选择的特征的重要性。在模型构造上,采用堆叠法的模型融合方式融合了三种机器学习模型,模型融合可以很好的结合每个模型预测的优势,提高了预测准确性。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在附图中示出了根据本公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
实施例一:
如图1所示:
本公开提供了一种流量监测方法,所述方法包括:
S101:在网络中抓取预设时长的网络流量形成pcap文件;
S102:对抓取的所述pcap文件进行特征构建,形成二维矩阵形式的数据集;
S103:对所述数据集进行特征筛选得到筛选后的数据;
S104:利用预设的模型对所述筛选后的数据进行分类。
进一步,所述S102中所述对抓取的所述pcap文件进行特征构建具体为:
对抓取的所述pcap文件通过流动构建和/或细分构建的方式进行特征构建。
进一步,所述流动构建的过程具体包括:
通过五元组信息将抓取的网络流量分成不同的flow,统计flow中与时间相关的特征,作为流动构建的特征。
进一步,根据接收到的包中带有FIN标志或者相邻两个包的接收间隔超过阈值,对所述抓取的网络流量进行流划分。
进一步,所述细分构建的过程具体包括:
将具有相同源地址的包聚合到一起作为细分构建得到的特征。
Flow特征通过五元组{源地址,目的地址,源端口,目的端口,协议}将抓取的流量分成不同的flow,统计flow中与时间相关的特征,如(包的数量,大小,包中的数据等);Segmentation特征通过将相同sourceIP的包聚合到一起,他考虑到通信主机的信息,而不是flow。例如DDoS攻击,在segmentation中计算发送包比例比在flow中计算更容易被识别,因在flow中整体背景流量和攻击流量交叉到一起使得攻击并不明显。
Flow是由一系列具有相同五元组{源地址,目的地址,源端口,目的端口,协议}的包形成的,在网络流中存在正向flow和反向flow,提取与每个网络流相关的特征。
我们利用特征构建程序生成带有方向的flow,flow的方向由第一个包的方向决定,计算与flow相关的统计特征。Flow中的协议分为TCP协议和UDP协议,基于TCP的flow以三次握手作为开始,以收到的包中带有FIN标志或者超过阈值时间还没有收到包作为结束标志。基于UDP的flow则是以超过阈值时间没有信息交互作为结束标志。本发明根据接收到的包中是否带有FIN标志或者相邻两个包之间的接收间隔超过阈值对抓取到的网络流量进行flow划分,如图5所示。在flow中进行subflow的划分,设置theoldtime值,如果flow中发包间隔超过theoldtime但未超过flow的超时时间,一次进行subflow的划分。
如图2所示:
以下为flow构造的部分特征:
a. Flow的持续时间
b. Flow(forwardflow,backwardflow)中两个数据包之间的发送时间(min,mean,max,std)
c. Flow中subflow的数量
d. Flow进入空闲状态之前的活跃时间(min,mean,max,std)
e. Flow进入活跃状态之前的空闲时间(min,mean,max,std)
f. Flow(forwardflow,backwardflow)中packets数量,每个packets字节数(min,mean,max,std)
g. Flow中每秒发送的packets数量
h. Flow中每秒发送的字节数
Segmentation的特征构造方式,根据每个包的源地址进行聚合分组,在每组中计算包中TCP,UDP,DNS,HTTPS的统计信息。以下为segmentation的特征构造:
a. TCP中每个分组包含flags数量占当前分组包数量的比例
b. 分组中包含TCP或UDP或DNS协议包数量占当前分组包总数的比例
c. DNS协议中Question、Answer RRs、Authority RRs、Additional RRs数量与分组中包数量的比例
d. 包长度小于32的数量与分组中包数量的比例
e. 分组中,DNS包中引用的域名中字符数,点的数量,连字符的数量,数字数量与总的域名数量的比例
f. 发送的DNS资源记录的报文中,ttl的和与总记录数量的比例
g. 已建立的连接数量占包中含有SYN,ACK数量的比例
h. 在HTTP的发送包中user agent的数量,以及user agent的字符数总和与总user agent数量的比例,和利用HTTP协议发送的包数量
进一步,所述对所述数据集进行特征筛选得到筛选后的数据具体包括:
对所述数据集进行去重处理;
对去重处理后的数据集中的数据进行方差过滤;
对所述方差过滤后的数据进行随机森林的平均精确率减少和递归特征消除法进行特征选择。
如图3所示:
在特征筛选阶段,首先进行去重操作,重复的样本会影响分类器,导致过拟合,即使数据集中重复样本的数量较少,也需要进行删除。然后进行方差过滤,方差过滤将变化比较小的特征删除,当特征值的变化较小,对分类的作用不大。然后分别进行随机森林的平均精确率减少和递归特征消除法进行特征选择。
随机森林的平均精确率减少方法,该方法直接度量每个特征对模型精确率的影响,打乱每个特征的特征值顺序,并且度量顺序变动对模型精确率的影响。对于不重要的特征,打乱顺序并不会影响模型的精确率,但是对于重要的特征,打乱顺序就会影响模型的精确率。
递归特征消除法,通过反复的构建模型,根据系数选出最好的特征,将该特征提取出来,利用剩下的特征重复该过程,L2正则化对于特征选择来说是一种稳定的模型,对于特征理解来说更加有用,表示能力强的特征对应系数为非零。最后将平均精确率减少方法和递归特征消除法选择出的特征进行融合。
进一步,所述预设的模型具体通过如下方式训练获得:
利用随机森林和迭代算法在训练集上训练得到基学习器;
将所述训练集输入所述基学习器得到的预测结果作为新生成的训练集;
利用逻辑回归模型在所述新生成的训练集上进行模型训练。
在模型选择阶段采用堆叠法,首先在训练集上采用RandomForest、Adaboost和XGBoost训练出基学习器,使用RandomForest、Adaboost、XGBoost模型的预测结果作为新的训练集,利用LogisticRegression模型在新生成的训练集上进行模型训练,用于组织利用基学习器的答案,也就是将基层模型的答案作为输入,让LogisticRegression逻辑回归学习模型给基层模型的答案分配权重。采用多模型融合可以综合多个模型的优点,提高准确率。在预测时,首先通过RandomForest、Adaboost、XGBoost模型得到预测结果,然后通过LogisticRegression对上述三个模型的预测结果进行二次预测。具体如图4所示。
实施例二:
如图5所示,
本公开还能够提供一种流量监测装置,包括:
数据抓取模块201,用于在网络中抓取预设时长的网络流量形成数据文件;
特征提取模块202,用于对抓取的所述数据文件进行特征构建,形成二维矩阵形式的数据集;
数据筛选模块203,用于对所述数据集进行特征筛选得到筛选后的数据;
数据分类模块204,用于利用预设的模型对所述筛选后的数据进行分类。
其中,本公开所述数据抓取模块201依次与所述特征提取模块202、所述数据筛选模块203以及所述数据分类模块204相连接。
其中,所述特征提取模块202中具体对抓取的所述数据文件通过流构建和/或细分构建的方式进行特征构建;
具体地,所述流构建的过程具体包括:
通过五元组信息将抓取的网络流量分成不同的流,统计流中与时间相关的特征,得到流构建的特征;
所述细分构建的过程具体包括:
将具有相同源地址的包聚合为分组,在分组中计算不同协议类型的包的统计信息,得到细分构建的特征。
其中,所述数据筛选模块203具体用于:
对所述数据集进行去重处理;
对去重处理后的数据集中的数据进行方差过滤;
对所述方差过滤后的数据利用随机森林的平均精确率减少方法和递归特征消除法进行特征选择。
其中,所述数据分类模块204中所述预设的模型具体通过如下方式训练获得:
利用随机森林和迭代算法(AdaBoost和XGBoost)在训练集上训练得到基学习器;
将所述训练集输入所述基学习器得到的预测结果作为新生成的训练集;
利用逻辑回归模型在所述新生成的训练集上进行模型训练
实施例三:
本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的流量监测方法的步骤。
本公开的计算机存储介质可以采用半导体存储器、磁芯存储器、磁鼓存储器或磁盘存储器实现。
半导体存储器,主要用于计算机的半导体存储元件主要有Mos和双极型两种。Mos元件集成度高、工艺简单但速度较慢。双极型元件工艺复杂、功耗大、集成度低但速度快。NMos和CMos问世后,使 Mos存储器在半导体存储器中开始占主要地位。NMos速度快,如英特尔公司的1K位静态随机存储器的存取时间为 45ns。而CMos耗电省,4K位的CMos 静态存储器存取时间为300ns。上述半导体存储器都是随机存取存储器(RAM),即在工作过程中可随机进行读出和写入新内容。而半导体只读存储器 (ROM)在工作过程中可随机读出但不能写入,它用来存放已固化好的程序和数据。ROM 又分为不可改写的熔断丝式只读存储器──PROM和可改写的只读存储器EPROM两种。
磁芯存储器,具有成本低,可靠性高的特点,且有20多年的实际使用经验。70年代中期以前广泛使用磁芯存储器作为主存储器。其存储容量可达10位以上,存取时间最快为300ns。国际上典型的磁芯存储器容量为 4MS~8MB,存取周期为1.0~1.5μs。在半导体存储快速发展取代磁芯存储器作为主存储器的位置之后,磁芯存储器仍然可以作为大容量扩充存储器而得到应用。
磁鼓存储器,一种磁记录的外存储器。由于其信息存取速度快,工作稳定可靠,虽然其容量较小,正逐渐被磁盘存储器所取代,但仍被用作实时过程控制计算机和中、大型计算机的外存储器。为了适应小型和微型计算机的需要,出现了超小型磁鼓,其体积小、重量轻、可靠性高、使用方便。
磁盘存储器,一种磁记录的外存储器。它兼有磁鼓和磁带存储器的优点,即其存储容量较磁鼓容量大,而存取速度则较磁带存储器快,又可脱机贮存,因此在各种计算机系统中磁盘被广泛用作大容量的外存储器。磁盘一般分为硬磁盘和软磁盘存储器两大类。
硬磁盘存储器的品种很多。从结构上,分可换式和固定式两种。可换式磁盘盘片可调换,固定式磁盘盘片是固定的。可换式和固定式磁盘都有多片组合和单片结构两种,又都可分为固定磁头型和活动磁头型。固定磁头型磁盘的容量较小,记录密度低存取速度高,但造价高。活动磁头型磁盘记录密度高(可达1000~6250位/英寸),因而容量大,但存取速度相对固定磁头磁盘低。磁盘产品的存储容量可达几百兆字节,位密度为每英寸6 250位,道密度为每英寸475道。其中多片可换磁盘存储器由于盘组可以更换,具有很大的脱体容量,而且容量大,速度高,可存储大容量情报资料,在联机情报检索系统、数据库管理系统中得到广泛应用。
实施例四:
本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的流量监测方法的步骤。
图6为一个实施例中电子设备的内部结构示意图。如图6所示,该电子设备包括通过系统总线连接的处理器、存储介质、存储器和网络接口。其中,该计算机设备的存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种流量监测方法。该电设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种流量监测方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
该电子设备包括但不限于智能电话、计算机、平板电脑、可穿戴智能设备、人工智能设备、移动电源等。
所述处理器在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器内的程序或者模块(例如执行远端数据读写程序等),以及调用存储在所述存储器内的数据,以执行电子设备的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器以及至少一个处理器等之间的连接通信。
图6仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对所述电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。
可选地,该电子设备还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本公开的范围由所附权利要求及其等价物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。