APP下载

基于GRU和K-means算法的入侵检测模型与方法研究

2022-04-01昊,郝宽,姜

企业科技与发展 2022年11期
关键词:特征提取聚类对象

李 昊,郝 宽,姜 伟

(哈尔滨师范大学 计算机科学与信息工程学院,黑龙江 哈尔滨 150025)

0 引言

随着互联网及网络应用的飞速发展,人们的生产生活已经深度依赖网络,人们从互联网中获取信息也变得极为便利,这就难以避免海量的数据信息通过网络进行传播。互联网提高了人们的生活生产效率与质量,但同时,一系列网络安全问题也相应产生,比如网络入侵,不论是个人、企业,还是政府、军队的信息,一旦被不法分子窃取、篡改,极有可能造成无法弥补的损失。

传统的基于防火墙等的静态安全防范技术已然无法满足当前网络安全的需求,为了更好地应对当前的网络安全问题,现在更多应用主动防御的网络入侵检测系统。但是随着网络攻击智能化,网络入侵检测系统也面临着巨大的挑战,需要对入侵检测技术进行不断研究。

在网络流量中,恶意的网络攻击往往隐藏在大量的正常行为中。它在网络流量中表现出高度的隐身性和模糊性,使得网络入侵检测系统难以保证检测的准确性和及时性。研究机器学习和深度学习在入侵检测问题上的应用,提出了一种结合GRU网络和K-means的算法模型进行入侵行为检测。首先,利用GRU网络对网络行为进行信息特征提取,实现全面有效的特征学习。其次,使用K-means算法对前置输入进行聚类,对于那些暂时无法进行属性判断的流量行为,再次进行特征提取后使用K-means算法进行分类,有效减少传统二分类入侵检测对于暂时无法判断的流量行为的误判动作。

1 相关知识

1.1 GRU网络

CHO等[1]提出了门控循环单元(gated recurrentunit,GRU)。相比于长短期记忆网络(LSTM,Long Short-Term Memory),GRU网络具有更为简洁的模型,GRU中去除了细胞状态,有重置门和更新门两个门限结构,重置门确定如何将前一时刻的记忆与新的输入信息相结合,表示前一时刻信息的忽略程度,值越大代表忽略的信息程度越小。更新门代表前一时刻信息对当前状态的倾向程度,用于控制前一时刻的状态信息被带入到当前状态中的程度,值越大代表影响越大[2]。GRU结构在多种场景下被证实有效,具有计算方便、训练速度更快的特点,同时可以很好地将长距离的信息进行依赖保存,有效解决梯度问题。循环神经网络(Recurrent Neural Network,RNN)用于分析或预测顺序数据[3],这使得它成为入侵检测的一个可行的候选对象,因为网络流量数据本质上是顺序的[3]:

上式中,zt代表更新门,rt代表重置门,tanh为双曲正切函数,σ为Sigmoid函数,w为t时刻的权值矩阵。

基于这些特点,本研究采用GRU网络结构如图1所示。

图1 GRU网络结构图

1.2 K-means算法

聚类算法一般分为划分聚类和层次聚类,K-means算法是Macqueen在1967年提出的一种划分聚类算法[4]。K-means算法是一种基于划分的无监督的聚类算法,利用数据对象间的距离作为相似性的评价指标[5]。传统的K-means算法如下:对给定包含n个对象的数据集x:x={x1,x2,x3,…,xn},其中每个对象都具有m个维度的属性,依据对象间的相似性,最终将n个对象聚集到指定的k个类簇中,每个对象属于且仅属于一个聚簇类,这个对象到这个类簇中心距离为最小。

K-means算法的实现步骤。①初始化k个聚类中心:{C1,C2,C3,…,Ck},1

图2 K-means算法流程图

2 基于K-means算法的入侵检测模型与方法

2.1 入侵检测算法整体流程

构建的基于GRU网络和K-means算法的入侵检测方法,其整体流程主要包括两大部分:一部分为预处理数据,使用GRU网络对数据特征进行提取;另一部分为使用K-means算法对上步骤输入的数据进行聚类划分。

在进行特征提取之前,需要先对所选数据进行预处理,在这个阶段,主要工作是将数据集中的字符型特征使用One-hot进行数值化转换,再划分训练集、测试集。采用Train_Test_Split()函数划分数据集来尽量平均划分数据样本,减少人为主观原因带来的误差。Train_Test_Split()是交叉验证中常用的函数,对目标数据集的划分具有随机的、按比例的功能,将目标数据集划分为训练数据集(Train Data) 和测试数据集(Testdata)。

2.2 基于GRU网络的特征提取

待检测的网络输入数据复杂度一般较高,导致RNN网络的结构较为复杂,容易出现梯度消失等问题。在GRU的单元结构中,无须考虑循环神经网络中的隐藏层的细胞状态,LSTM网络中的输入门和遗忘门被替代,减少了相应网络的参数数量,提高了模型收敛性能,降低了时间复杂度。同时,网络流量数据是具有时序特征的序列数据,例如DDos攻击,就是使用短时间内对某服务大量访问的手段达到使被攻击服务不可用的目的,而GRU能对具有时序特征的数据进行很好的处理。融合GRU网络的部分主要对数据进行特征提取及数据降维处理。主要步骤如下:①将上一层的输入进行整合;②对数据进行长距离依赖特征提取;③将特征张量化后输出;④对下一层边界域中数据进行处理(如图3所示)。

图3 GRU网络特征提取示意图

3 实验与结果分析

3.1 数据集

在真实的网络环境中,每时每刻产生的数据流量都是巨大的,并且具有分布不均的特点。仿真实验使用的数据9数据集中冗余和重复的样本,样本分布较KDDCup 99更合理。KDD99产出于1999年第三届国集为NSLKDD,NSL-KDD是KDDCup 99的改进版本[6],主要是消除了KDDCup 9际知识发现和数据挖掘工具大赛。此数据集共有大约500万条数据,共收集了9个星期。

3.2 实验环境

本实验使用的机器配置如下。处理器:11th Gen Intel(R)Core(TM)i5-11320H@3.20 GHz;内存:16.0 GB(单通道);硬盘:512GB(SSD)。

软件环境及版本如下。操作系统:Windows 10家庭中文版21H2;集成开发环境:PyCharm 2021.1;编程语言:Python 3.6。

3.3 评价指标

实验评价指标是入侵检测中常用的评价指标,分别为:准确率(Accuracy)、召回率(Recal)l、精确率(Precision)、F1 (F1-score)。

准确率(Accuracy)表示模型对给定样本判别能力:

召回率(Recall)表示真实攻击样本在所有攻击样本中的比例:

精确率(Precision)表示真实攻击样本在被预测为攻击样本中的比例:

F1(F1-score)表示整体指标及Recall与Precision两项指标:

以上指标中,TP为预测为非入侵的正样本;TN为预测为入侵的负样;FN为预测为入侵的正样本;FP为预测为非入侵的负样本。

3.4 实验分析与结果

对同一数据集,用随机函数选出训练数据集,进行5次共得到5组随机训练集,在每组数据集上进行3轮训练,取平均值,各指标见表1。

表1 不同训练集模型检测效果

除了已提出的模型,作为对照实验,使用同一数据集在不同模型进行相关的实验,结果对比见表2。

表2 不同模型检测效果

通过横向和纵向对比,可以得出算法模型具有一定的优势。但是在实验过程中也发现,对于流量相对较小的攻击,无法充分学习其特征,从而导致检测结果并不理想。在实际的环境中,攻击行为越来越隐蔽且方式新奇,对于如何更好地及时检测出这种攻击行为,提高模型泛化能力仍是未来研究的重点。

4 结语

机器学习与深度学习逐渐和入侵检测领域交叉结合,取得了较好的效果。对入侵检测进行了深入研究与设计,在神经网络方面选取了结构更为简洁的GRU网络,提出了一种结合GRU网络及K-means算法的混合入侵检测方法,在兼顾检测效率、精度及可靠性的同时,尽量控制成本。实验结果表明,提出的方法为入侵检测方法模型拓展了思路,具有一定的可行性,值得继续深入研究。

猜你喜欢

特征提取聚类对象
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
基于K-means聚类的车-地无线通信场强研究
基于Daubechies(dbN)的飞行器音频特征提取
攻略对象的心思好难猜
Bagging RCSP脑电特征提取算法
基于高斯混合聚类的阵列干涉SAR三维成像
基于熵的快速扫描法的FNEA初始对象的生成方法
区间对象族的可镇定性分析
一种层次初始的聚类个数自适应的聚类方法研究
基于MED和循环域解调的多故障特征提取