发明内容
为解决现有技术的固定密码容易导致密码泄露的安全问题的技术问题。
为实现上述技术目的,本公开提供了一种流量监测方法,所述方法包括:
在网络中抓取预设时长的网络流量并存储进数据库中;
对所述数据库中的流量数据进行特征提取得到特征数据;
对所述特征数据进行特征筛选得到筛选后的数据;
利用预设的模型对所述筛选后的数据进行分类。
进一步,所述分类的结果包括:
所抓取的网络流量属于非加密的正常网络流量或VPN加密的网络流量。
进一步,所述对所述数据库中的流量数据进行特征提取得到特征数据的过程具体为:
对所述流量数据中的一系列具有相同五元组信息的数据进行提取得到网络流数据;
对所述网络流数据的统计特征进行特征提取得到所述特征数据。
进一步,所述统计特征至少包括以下特征之一:
网络流的提取时间、网络流的包大小和/或网络流的包的数量。
进一步,所述对所述数据集进行特征筛选得到筛选后的数据具体包括:
对所述数据集进行方差过滤处理;
对所述方差过滤后的数据利用平均精确率减少和稳定性选择两种方式进行特征选择;
将选择得到的特征进行融合,得到所述筛选后的数据。
进一步,所述预设的模型具体通过如下方式训练获得:
将正常的网络流量和VPN加密的网络流量存储到增量式数据库中;
从所述增量式数据库的数据进行特征提取得到作为训练数据的特征数据;
对所述特征数据进行筛选;
利用梯度提升决策树GBDT对所述筛选后的特征数据进行处理,得到新的离散特征向量;
把所述离散特征向量输入逻辑回归LR模型进行训练。
进一步地,所述VPN加密的网络流量包括公有数据集和仿真环境生成的数据集。
为实现上述技术目的,本公开还能够提供一种流量监测装置,包括:
数据抓取模块,用于在网络中抓取预设时长的网络流量并存储进数据库中;
特征提取模块,用于对所述数据库中的流量数据进行特征提取得到特征数据;
数据筛选模块,用于对所述特征数据进行特征筛选得到筛选后的数据;
数据分类模块,用于利用预设的模型对所述筛选后的数据进行分类。
为实现上述技术目的,本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的流量监测方法的步骤。
为实现上述技术目的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的流量监测方法的步骤。
本公开的有益效果为:
本公开通过建立增量式数据库为系统增加了增量式学习能力,使得系统能够及时更新机器学习算法,学习新的VPN流量特征,增加检测准确性。利用特征构建程序对收集到的网络流量进行特征构建,实现特征提取自动化,并且得到固定格式的特征,在模型训练和线上运行时,保证格式的统一性,方便模型后续流程的流畅。在特征筛选阶段,本公开利用方差过滤法先过滤方差变化较小的特征,减少数据维度,有利于后续流程时间性能的提高,并且利用特征重要度进行特征选择,融合mean decrease accuracy 和 stability select两种特征选择方式筛选出的特征,这样有利于保证特征的有效性,而且可以大幅度减少特征维度,有利于时间性能的提高。在模型训练上,首先利用XGBoost模型自动进行特征组合和离散化,将特征传入LR模型进行分类,可以发现和利用有效特征和特征组合。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在附图中示出了根据本公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
实施例一:
如图1所示:
本公开提供了一种流量监测方法,所述方法包括:
S101:在网络中抓取预设时长的网络流量并存储进数据库中;
S102:对所述数据库中的流量数据进行特征提取得到特征数据;
S103:对所述特征数据进行特征筛选得到筛选后的数据;
S104:利用预设的模型对所述筛选后的数据进行分类。
进一步,所述分类的结果包括:
所抓取的网络流量属于非加密的正常网络流量或VPN加密的网络流量。
进一步,所述对所述数据库中的流量数据进行特征提取得到特征数据的过程具体为:
对所述流量数据中的一系列具有相同五元组信息的数据进行提取得到网络流数据;
对所述网络流数据的统计特征进行特征提取得到所述特征数据。
进一步,所述统计特征至少包括以下特征之一:
网络流的提取时间、网络流的包大小和/或网络流的包的数量。
网络流Flow是由一系列具有相同五元组{源地址,目的地址,源端口,目的端口,协议}的包形成的,在flow中存在正向网络流和反向网络流,从每个网络流中提取时间、包大小、数量等相关的统计特征。
我们利用程序生成带有方向的网络流,flow的方向由第一个包的方向决定,网络流中的协议分为TCP协议和UDP协议,基于TCP的flow以三次握手作为开始,以收到的包中带有FIN标志或者超过阙值时间还没有收到包作为结束标志。基于UDP的flow则是以超过阙值时间没有信息交互作为结束标志。本发明根据接收到的包中是否带有FIN标志或者相邻两个包之间的接收间隔超过阈值对抓取到的网络流量进行flow划分,如图2所示。在flow中进行subflow的划分,设置theold值,如果flow中发包间隔超过theold但未超过flow的超时时间,一次进行subflow的划分。
从flow中提取的部分特征如下所示:
a. Flow的持续时间
b. Flow(forwardflow,backwardflow)总共的包数量
c. Flow(forwardflow,backwardflow)包的长度特征(min,mean,max,std)
d. Flow中每秒的发包数和每秒的字节数
e. Flow(forwardflow,backwardflow)发包间隔时间特征(min,mean,max,std)
f. Flow中FIN,SYN,RST,PSH,URG标志的数量
g. Subflow中包的数量和字节数量的平均值
进一步,所述对所述数据集进行特征筛选得到筛选后的数据具体包括:
对所述数据集进行方差过滤处理;
对所述方差过滤后的数据利用平均精确率减少和稳定性选择两种方式进行特征选择;
将选择得到的特征进行融合,得到所述筛选后的数据。
在特征筛选阶段首先将训练集经过方差过滤,将变化比较小的特征删除。因为方差小说明特征的数值变化不大,这样的特征对分类的作用不大。然后分别经过平均精确率减少和稳定性选择两种方式进行特征选择,最后将选择的特征进行融合。流程如图3所示。
平均精确率减少的方法,就是直接度量每个特征对模型精确率的影响,打乱每个特征的特征值顺序,度量每个特征的顺序变动对模型精确率的影响。对于不重要的特征来说,打乱顺序对模型的精确率影响不大,但是对于重要的特征来说,打乱顺序会降低模型的精确率。
稳定性选择是一种二次抽样和选择算法相结合的算法,在不同的特征子集和数据子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,统计某个特征被认为是重要特征的频率,被选为重要特征的次数除以所在子集被测试的次数,一般重要特征的得分接近1,次重要的为非零数,不重要的特征接近零。
进一步,所述预设的模型具体通过如下方式训练获得:
将正常的网络流量和VPN加密的网络流量存储到增量式数据库中;
从所述增量式数据库的数据进行特征提取得到作为训练数据的特征数据;
对所述特征数据进行筛选;
利用梯度提升决策树GBDT对所述筛选后的特征数据进行处理,得到新的离散特征向量;
把所述离散特征向量输入逻辑回归LR模型进行训练。
增量式数据库主要是为了应对VPN种类的迭代更新,使得模型保持VPN加密流量检测的准确性,为系统添加增量式的学习能力。
增量式数据库中的数据主要有正常的网络流量和VPN加密的网络流量,正常的网络流量是通过传统的流量检测设备检测出的正常流量;VPN加密流量包括公有数据集和仿真环境生成的数据集。公有数据集是采集于公开数据集,仿真环境生成的数据集是从搭建的虚拟网络中模拟的VPN加密流量数据。
该数据集会进行定期更新,会利用传统设备为其采集正常流量,并且会及时发现公开样本集,并进行采集;对新出现的VPN加密方式会在虚拟网络环境中进行实现,并抓取VPN加密流量,以此方式进行数据库的更新。
增量式数据库可以定期增加新样本,并且将以前的样本进行保存,这样既能从新的样本中学习新的知识,还能保存大部分以前学习到的知识。这种方式非常适合网络中VPN加密流量的检测,根据VPN加密方式的更新进行数据库的更新。建立增量式数据库,为系统增加了增量学习能力,使得系统能够及时更新机器学习算法,增加检测的准确性。
该模型利用GBDT自动进行特征筛选和组合,进而生成新的离散特征向量,再把该特征向量当做LR模型的输入,由此产生最终的预测结果。原理如图4所示。
GBDT全称梯度提升决策树,在传统机器学习算法里面是对真实分布拟合较好的算法之一。通过采用加法模型,基函数的线性组合,不断减小训练过程产生的误差来达到将数据分类或者回归的算法,通过多轮迭代,每轮迭代会产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。GBDT对弱分类器的要求一般比较简单,低方差高偏差,训练的过程是通过降低偏差来不断提高最终分类器的精度。
LR全称是逻辑回归,在线性回归的基础上加了一个Sigmoid函数映射,逻辑回归通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。
训练时,GBDT建树的过程相当于自动进行特征组合和离散化,然后从根节点到叶子节点的这条路径就可以看成是不同特征进行的特征组合,用叶子节点可以唯一的表示这条路径,并作为一个离散特征传入LR进行二次训练。
预测时,会先走GBDT的每棵树,得到某个叶子节点对应的一个离散特征(即一组特征组合),然后把给特征以one-hot形式传入LR进行线性加权预测。
实施例二:
如图5所示,
本公开还能够提供一种流量监测装置,包括:
数据抓取模块201,用于在网络中抓取预设时长的网络流量并存储进数据库中;
特征提取模块202,用于对所述数据库中的流量数据进行特征提取得到特征数据;
数据筛选模块203,用于对所述特征数据进行特征筛选得到筛选后的数据;
数据分类模块204,用于利用预设的模型对所述筛选后的数据进行分类。
其中,本公开所述数据抓取模块201依次与所述特征提取模块202、所述数据筛选模块203以及所述数据分类模块204相连接。
实施例三:
本公开还能够提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时用于实现上述的流量监测方法的步骤。
本公开的计算机存储介质可以采用半导体存储器、磁芯存储器、磁鼓存储器或磁盘存储器实现。
半导体存储器,主要用于计算机的半导体存储元件主要有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,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。本公开的范围由所附权利要求及其等价物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。