基于属性分类建模的入侵检测方法
2022-04-21王加梁
王加梁
(四川旅游学院 基建处,四川 成都 610100)
0 引 言
随着网络入侵现象的加剧,如蠕虫病毒、DDoS等网络攻击造成了十分恶劣的影响,也让信息安全成为社会关注的焦点[1]。为使系统资源免受网络攻击的威胁,网络安全专家提出了防火墙、用户认证、入侵检测系统(intrusion detection system,IDS)等解决方案。
IDS是网络安全系统的重要组成部分,实现判断和识别非授权访问、数据更改、信息摧毁[2]等功能,也被认为是继防火墙后的“第2个安全门”[3]。但网络攻击方和防御方在技术、成本、时间上都存在严重的不对等,使得现有的入侵检测系统无法防御所有攻击,只能通过提升性能最大限度地对网络攻击进行防御。
流量数据由多种属性组合表示,IDS的检测机理是将数据各属性通过机器学习方法构建成检测模型,待检测流量数据通过检测模型后将会被判定为正常或异常。随着机器学习模型和优化方法的改进提升,入侵检测效率大幅提高,但始终存在:①不关注数据特征表示而使得具有代表性的特征未得到有效挑选;②为提高精确度将机器学习算法任意结合而引起时间复杂度高等问题。随着深度学习的深入研究和计算能力的不断提升,常通过“硬件加速+深度学习”的方式自动且快速地学习数据特征,提升了IDS性能,但也出现了过程不可解释以及数据依赖等问题。
1 相关研究
入侵检测的概念由Anderson[4]提出,入侵检测系统的设计灵感则源自20世纪80年代提出的通用入侵检测系统框架,该框架收集网络中各节点关键信息进行分析以识别网络中存在的恶意活动,做出响应并采取相应措施[5]。
传统入侵检测方法大多基于主机或网络收集到的流量数据进行统计分析,构建相关异常模式。随着机器学习、神经网络等方法在各领域的广泛应用,研究人员也将其融入到IDS中[6]。学者多将入侵检测当作一个分类问题来处理,常用的分类算法包括朴素贝叶斯、Logistic回归、决策树、支持向量机等,常用的神经网络包括RNN、LSTM等,此外还将一些数据处理方法(如:降维)与分类算法结合来提升检测效果。
高忠石等[7]设计了一种基于PCA优化LSTM网络的入侵检测模型,使用PCA对样本数据进行去噪,利用LSTM的记忆功能和序列数据能力进行学习,通过调参进行模型分析,实验结果表明该模型比传统模型准确率更高;池亚平等[8]针对IDS在数据量大时误报率高、泛化能力弱等问题,设计了基于SVM和Adaboost算法的入侵检测系统,该系统利用PCA对提取的特征进行降维,将SVM-Adaboost集合算法作为检测引擎,在NSL-KDD数据集进行训练和测试,取得了不错的效果;Wang等[9]提出具有增强特征的SVM入侵检测系统,使用LMDRT将数据集转换为新数据集后与SVM进行结合,实现了入侵检测效率的提升;AI-Yaseen等[10]在KDD1999数据集上使用改进后的K-means减少训练集中的特征数量,将标准化的数据进行预处理后应用SVM和极限学习机,从而构造了SVM和极限学习机相结合的多级入侵检测模型,实验结果表明该模型具有较高的攻击检测效率。
通过对传统IDS存在的问题进行分析,结合对前文相关工作研究发现,机器学习方法将产生可解释的结果,且对真实环境下训练数据的依赖低于深度学习。再结合流量数据由不同类型的属性构成及机器学习中针对不同属性的数据进行处理的方法不尽相同等特点,设计了一种对流量数据按属性分类建模的入侵检测方法,并在NSL-KDD数据集上进行训练与测试。
将训练集按属性划分为离散和连续两类属性集合。针对离散属性,定义最长最大支持度项集(max length maximum support item set,M2IS)表示最能代表某类别离散属性的模式;又M2IS定义较为脆弱,易受真实环境下数据波动和噪声的影响而使其长度变短,故定义M2IS的稳定性进行加权,即:以关联规则挖掘算法为基础提取各类别的M2IS,并结合M2IS的稳定性共同构成离散属性判定模型。针对数据的连续属性,由于离散属性判定模型输出为待测数据与各类别的相似度结果,为便于两种属性的判定结果有效融合,选择成熟的Softmax分类器训练后作为连续属性判定模型。待检测数据经过两个模型判定后分别生成属于各类别的概率,由于两个模型判定结果对最终输出产生的影响不尽相同,将两个概率值进行线性组合以生成最终的判定结果。在NSL-KDD数据集仿真实验,结果表明本文提出的方法较传统的机器学习方法在精确率、召回率及F值方面都有更好的表现。
2 基于属性分类建模的入侵检测方法
目前入侵检测领域的研究主要集中在融合不同机器学习算法以改善模型性能、高维数据特征提取等方面。融合多种不同机器学习算法时,在损失最小化的规则驱动下建立性能更优的模型,但也将带来更大的时间和空间开销;对高维数据进行特征提取是选择对数据表达有重要意义的属性,而丢弃原始数据中不太重要的属性,这势必会造成信息的损失。相较以时空开销为代价换来小幅性能的提升,或以损失原始数据信息换来概率性的性能提升而言,保留单个机器学习算法的性能并有效利用原始数据的所有属性信息,可以作为提升入侵检测性能的一个有效方法。
通过对入侵检测数据集分析发现:数据由协议等离散属性和持续时间等连续属性共同构成。传统IDS在构建模型时大多将离散属性直接数值化,忽略了离散属性本身的特征信息。为保留数据集中所有属性并充分利用不同属性的特征信息,本文提出基于属性分类建模的入侵检测方法(attibutes classification-based modeling IDS,ACBM-IDS)。该方法将数据集按属性划分为离散和连续两类后分别构建判定模型,待检测流量数据经过两个模型后分别生成判定结果,再将两个判定结果进行组合形成最终的判定结果。
有数据集D=[d1,d2,…,dm],D∈m×n,分为离散属性和连续属性两个集合,其中Ddiscont∈m×n1、Dcont∈m×n2,且n1+n2=n。待检测数据的离散属性和连续属性分别表示为:且n1+n2=n。
2.1 离散属性判定模型构建及判定
关联规则挖掘是一种在大规模数据集中寻找特殊关系的任务,这种关系可用频繁项集或关联规则表示[11]。离散属性判定模型的构建实质就是为每一个类别的离散属性找到一个频繁项集,该项集可以最大限度代表该类别数据的离散特征。基于此做出如下定义:
定义1 设第i个类别数据的离散属性存在频繁项集Itemi=[itemi,1,itemi,2,…,itemi,n],其支持度为1,若同时满足:①任意子集支持度为1;②任意超集支持度均不为1,则称Itemi为类别i的最长最大支持度项集(M2IS)。
若离散属性Ddiscont共包含k个类别,以i类别为例,其M2IS挖掘流程如下:
(1)定义固定支持度为1;
(4)重复步骤(3)至没有新的项集产生;
由定义一可知,一个类别的M2IS是指该类别中每条数据均包含的最长项集,长度越长则其离散属性特征越明显。通过对各类别离散属性分析发现:大部分类别的M2IS呈现随数据量增大而长度变短的趋势,原因主要有数据量增多导致属性候选项增多、噪声数据影响等。基于此,定义稳定性对M2IS进行加权。
(1)
其中,μ为Pi的期望。stablei是对各类别M2IS长度波动情况的衡量,stablei越大则该类别中各长度为n1+1的项集占比越不均衡,则其对噪声数据的抗干扰能力也就越强,其M2IS稳定性也越好。各类别的M2IS及其稳定性共同构成离散属性判定模型。
i∈{1,…k}
(2)
2.2 连续属性判定模型构建及判定
入侵检测数据集中包括如:“duration”、“src_bytes”等连续属性,但取值范围不尽相同,使用式(3)进行(0,1)标准化使各属性的值处于同一范围内[12]
(3)
考虑到离散属性判定模型的输出是离散属性与各类别的相似度结果,将其归一化后便对应于各类别的概率值。便于将两个判定结果进行融合,选用较为成熟的Softmax多分类器作为连续属性判定模型。
(4)
wc为类别c对应权重向量,样本决策函数为
(5)
其中,WT表示各个类别权重向量共同构成的权重矩阵,样本决策函数表示从k个类别中选择出判定概率值最大的类别。在整个数据集上使用交叉熵损失函数作为风险函数,即
(6)
(7)
(8)
2.3 ACBM-IDS入侵检测模型
传统入侵检测与机器学习算法结合时常将所有属性统一处理,忽略了各属性的特征意义及属性间的关联关系。ACBM-IDS基于流量数据由离散、连续两种属性共同构成这一观察,基于不同类别的流量数据具有不同“固有模式”这一假设进行设计。算法流程如图1所示。
图1 ACBM-IDS流程
从图1可以看出,ACBM-IDS方法的实现主要包括以下几个步骤:
(1)已知流量数据划分:将已知流量数据集划分成离散属性数据集Ddiscont和连续属性数据集Dcont;
(2)离散属性判定模型构建:针对离散属性数据集Ddiscont,按定义一中的流程挖掘各类别最长最大支持度项集(M2IS),即:I=[Item(1),Item(2),…,Item(k)],再使用式(1)计算各类别M2IS的稳定性,由各类别的M2IS及其稳定性共同构成离散属性判定模型;
(3)连续属性判定模型构建:针对连续属性数据集Dcont,使用(0,1)标准化处理各属性使得取值在同一数量级内,再依据式(4)~式(6)训练出式(7)对应的Softmax模型作为连续属性判定模型;
(7)判定结果融合:由于Scont为概率而Sdiscont仅为相似度计算结果,使用式(9)将Sdiscont中各个值转化为概率值,即
(9)
假定最终的判定结果仅由离散属性判定模型和连续属性判定模型共同决定,将Scont和Sdiscont′构建如式(10)所示的线性组合
Y=α×Sdiscont′+(1-α)×Scont
(10)
(8)判定结果输出:依据式(10)得到待测数据属于各类别的判定概率,概率值最大项对应下标在类别标签中的对应类别即为最终判定结果。
3 实验仿真
3.1 实验环境及数据集
仿真实验环境:Windows 10系统,Intel(R)Core(TM)i5-7200 2.50 GHz,4 GB。基准分类器采用Weka 3.8.3实现,本文方法的开发工具为PyCharm Community,开发语言为Python3.7。
数据集:NSL-KDD数据集是UCI机器学习资源库的一个基准数据集[14],包含两种格式(.txt和.arff)的8个子数据集。由于.txt格式的子数据集中“class”标签包括如“normal”、“neptune”、“smurf”等详细流量类型,为便于执行多分类任务,选用“KDDTrain+.txt”作为训练集、“KDDTest+.txt”作为测试集,其分别包含125 972和22 544条数据。其中训练集和测试集的类别标签共分为Normal和4大类攻击(39个小类),数据量分别为:①Normal:67 342条;②Dos:45 927条;③Probe:11 656条;④R2L:995条;⑤U2R-52条。4大类攻击又包含39个小类,在训练集中出现了一部分攻击类型,为便于测试模型的泛化能力,部分攻击又作为新增类型出现在了测试集中。
3.2 评价指标
入侵检测实际上是一个分类过程,分类结果主要包括真阳性(TP)、真阴性(TN)、假阳性(FP)、假阴性(FN)这4种,若TP和TN尽量大、FP和FN尽量小,则分类效果越好。本文选择将4种分类结果综合考量后的精确率、召回率以及F值作为评价指标,其各自定义如下:
精确率:分类模型预测为Positive的结果中模型预测对的比重,计算如式(11)所示
(11)
召回率:真实值为Positive的结果中模型预测正确的比重,计算如式(12)所示
(12)
为将精确率和召回率结合起来综合衡量分类器效果,定义了F值指标,如式(13)所示
(13)
3.3 实验设计及结果分析
ACBM-IDS构建离散属性判定模型时,不仅定义M2IS作为某类数据离散属性的代表特征,还定义稳定性对M2IS进行加权,因此首先对稳定性加权的必要性进行验证。仅使用M2IS作为离散属性判定模型和使用“M2IS+稳定性”的组合作为离散属性判定模型时的性能如图2所示。
图2 离散属性判定模型性能对比
由图2可以看出,在M2IS的基础上结合稳定性加权后,模型性能小幅度提升,其原因是数据集中的部分类别存在属性分布不均衡的情况,使得这些类别的M2IS受小样本属性的影响而长度变短,进而影响最终的模型性能。稳定性加权后使得离散属性判定模型的抗干扰能力加强,实现了模型性能的提升。
ACBM-IDS构建连续属性判定模型时,使用数据集中的连续属性(32维)训练Softmax多分类器,再将连续属性判定模型与其它基准分类器进行性能比较。基准分类器主要基于Weka3.8.3仿真实现,包括:朴素贝叶斯、SVM、Logistic、KNN、Decision Tree、Random Forest。性能对比结果如图3所示。
图3 连续属性判定模型性能对比
从图3可以看出,仅使用连续属性构建分类器时,Softmax的性能较随机森林、决策树、KNN、SVM都要差。究其原因是,决策树在不用任何参数假设的情况下可快速转化为分类规则,且能处理有缺失属性的数据;而随机森林是对决策树的一种集成学习方式,是对决策树性能的一种优化;而KNN以时间为代价使每条数据都将与其它数据进行运算,也保证了较高的分类性能;相较而言,Softmax分类器作为Logistic分类器在多分类问题上的扩展,在数据集上学习模型参数来构建分类器,这将受到数据集质量的巨大影响,而训练集中诸多属性存在取值为0的情况,这将对参数学习产生影响,进而影响最终性能。
ACBM-IDS算法实现过程中,假定其最终判定结果仅由这两个模型的输出决定,而两个模型的输出对最终判定结果产生的影响不尽相同,因此还需要决定参数α的值。将α从0开始、以0.1为步长依次增加至1.0,模型性能见表1。
表1 不同α时模型性能
从表1可以看出:参数α实现了两个模型输出对最终判定结果的权重分配,具有重要的意义。当α=0时表示仅使用连续属性判定模型生成最终判定结果,此时模型性能较好,这是因为Softmax作为一个成熟的多分类器且使用高质量数据进行训练,进而得到了较好的分类效果;随着α的递增而补充了离散属性信息使得模型性能增加,当α=0.3时性能最优;但α的继续递增使得离散属性对最终判定结果的影响越来越大,模型性能也因此受到影响;当α=1时表示仅使用离散属性判定模型,此时模型性能最差,这是因为训练数据集中部分类别数据量大且离散属性取值分散,使得这些类别的M2SI长度短、稳定性差,进而影响最终的判定结果。
为验证ACBM-IDS模型的性能,使用数据集上全部属性(41维)构建分类器、超参数选取α=0.3时与其它分类器进行对比,对比的基准分类器与连续属性判定模型采用的基准分类器一致,此外还包括连续属性判定模型。对比结果如图4所示。
图4 ACBM-IDS模型性能对比
从图4可以看出,诸如NB、SVM、KNN、决策树以及随机森林的性能均有微量提升,这是因为离散属性的加入为模型带来了新信息,但各分类器均直接将离散属性数值化而未保留所携带的领域意义,因而带来的提升是有限的。Logistic回归分类器既可以处理离散属性也可以处理连续属性,且不需要对特征进行缩放和调整就能得到较好的预测概率,因而离散属性的加入大大提升了Logistic回归分类器的性能,与此同时也促进了Softmax分类器性能的提升。ACBM-IDS方法在Softmax分类器的基础上结合离散属性带来的特征信息,再为离散、连续属性对判定结果的重要性确定最优权重,取得了较其它分类器更优的性能。
4 结束语
针对传统入侵检测与机器学习结合时忽略属性特征这一现象,提出了基于连续属性和离散属性分别构建判定模型的ACBM-IDS方法。离散属性判定模型基于关联挖掘算法并结合定义的稳定性概念共同构成,连续属性则由高质量数据集训练的Softmax分类器构成,将两个模型的判定结果线性组合后作为最终结果。实验结果表明,ACBM-IDS方法与传统入侵方法相比,在精确率、召回率、F值上均有所提升,实现了入侵检测性能的提升。但本文提出的方法中,离散属性判定模型对数据分布不均衡的情况较为敏感,这也将是未来继续研究的内容。