1 引 言
网络入侵的早期特征是影响网络入侵早期检测效果的关键. 面向网络入侵检测的特征选择是对高维的入侵特征数据集进行选择,得到较低维度的、能够反映入侵行为本质的特征组合,以降低构建入侵检测模型的复杂度,提高入侵检测率.基于神经网络的入侵检测是智能化入侵检测的重要技术,它采用入侵特征数据集训练神经网络模型,利用神经网络模型进行入侵检测. 与传统的入侵检测技术相比,基于神经网络的入侵检测具有良好的可拓展性及自适应能力. 然而,由于入侵行为的多样化与复杂性,入侵特征提取一直是基于神经网络的入侵检测技术发展的瓶颈. 现有的基于神经网络的入侵检测研究绝大多数基于 KDD99 入侵特征数据集进行实验.但基于 KDD99 的入侵检测因受限于其复杂的预处理过程而无法实现在线检测,为此我们开展了网络入侵早期检测方法研究[1],提出一组可支持在线实时提取的入侵早期行为特征,这组特征共计 39 维. 基于这组早期特征,构建基于 SOM神经网络的入侵检测模型,不仅实现了基于神经网络的在线入侵检测,而且能够在入侵发生的早期( 异常流的前 N 个包)实施检测. 但是这组早期特征集的维数较多,建立入侵检测模型消耗的时间较大. 同时,冗余特征也会缩小入侵特征向量间的差别,从而影响入侵早期检测的准确率.本文以降低入侵检测建模代价、提高入侵早期检测率为目标,在基于 SOM 神经网络的入侵早期检测研究的基础上,进一步开展入侵早期特征选择研究. 2 相关工作
面向入侵检测的特征选择方法有两种模式: filter 模式和wrapper 模式[2]. filter 模式利用特征向量本身的特质作为衡量准则,选出特征相关性最小的组合. wrapper 模式以机器学习算法作为评价模型,直接通过检测率选出最优特征组合. 朱永宣采用 Relief 算法去除原始特征中与分类无关的特征,然后再利用主成分分析法( PCA) 变换提取适当个数的特征[3].Sutton 等人采用独立主成分分析法( ICA) 进行的特征选择研究,独立主成分分析法是对主成分分析法和因子分析的一种拓展[4]. 陈友 等人进行了基于信息增益及基于关联特征( CFS) 的特征选择操作,通过衡量特征子集的信息量及特征间关联程度进行取舍[5]. 以上研究都是基于 filter 模式的特征选择方法,其操作速度较快,但其评价结果与真实的机器学习检测率的误差较大,效果不佳. 遗传算法作为启发式搜索算法,在面向入侵检测的 wrapper 特征选择中应用较广泛. GStein 等人使用遗传算法作为搜索策略,使用决策树作为分类器进行了基于 KDD99 的入侵检测实验[6]. K Gim 等人将遗传算法与 SVM 结合,同时将遗传算法运用在特征选择和 SVM参数优化中[7]. 基于遗传算法与机器学习的 wrapper 模式特征选择方法计算量较大,同时其优化的特征子集的检测率也较高. 但是遗传算法作为重要的优化方法本身也具有一定缺陷.遗传算法是一种通过模拟达尔文进化论及遗传基因理论,搜索最优解的计算模型[8]. 遗传算法的迭代过程可以被描述为一个马尔科夫链,通过对马尔科夫链的分析[9],得到结论: 1) 遗传算法不能以概率 1 收敛到全局最优解. 2) 在逐代的进化过程中,保留最优解,以交叉和变异作为随机化算子,则当进化代数趋向于无穷时,遗传算法将以概率 1 收敛至全局最优解.以上结论说明遗传算法在追求种群向目标函数整体进化的过程中,种群模式趋于单一化,基因多样性具有局限性,容易陷入局部最优解. 另外,作为一种随机搜索算法,遗传算法具有不确定性. 即使是采用相同的初始种群及其他参数,优化结果也不一定相同. 为了获得更具稳定性的优化结果,克服遗传算法的局部收敛问题,本文提出一种结合频率筛选的遗传算法( Genetic Algorithm with Frequency-based Selection,以下简称 GAFS) ,该算法以 SOM 神经网络作为评价模型,通过多次运行遗传算法,改善种群基因多样性,增强了搜索的全局收敛效果,从而大幅度提高了搜索结果的稳定性. 基于该方法,本文对网络入侵的早期特征集进行了特征选择实验,得到一组较小维度的网络入侵早期特征优化组合,适用于基于神经网络的入侵早期检测. 3 基于 GAFS 的特征选择方法
面向入侵检测的特征选择由搜索与评价组成. N 维特征集合具有 2N1优子集. 评价是指根据统一标准对搜索到的特征子集进行评分,依据评分确定下一步的搜索方向或当特征子集达到停止准则终止搜索. 面向入侵检测的特征选择方法,常使用入侵检测准确率作为正确性评价标准[10].单次的遗传算法是从某个随机的初始种群出发,由选择、交叉、变异产生子代,利用神经网络的入侵检测准确率作为评价的依据,经过逐代的进化,得到最优解,即单次遗传算法优化的特征子集. 基于 GAFS 的特征选择流程如图 1 所示,它通过多次运行遗传算法,统计多个最优解中特征出现的频率,利用频率筛选过程淘汰被选频率低于某一频率阈值的特征,重新组合得到原始特征集的最优子集. 图 1 中特征选择停止准则可以是遗传算法的迭代次数或特征选择算法的执行时间.3. 1 适应度函数遗传算法依据适应度函数评价个体的优劣. 为将优秀基因遗传至下一代,会选择适应度高的个体作为父代参与下一代的遗传操作,所以适应度函数是决定下一步搜索方向的重要依据. 本文采用基于 SOM 神经网络的入侵检测准确率及漏1基于神经网络的入侵检测通过自学习建立数学模型,实现数据分类及数据预测等功能. 通过对预测结果的统计,可以得到入侵检测率( DR) 和系统漏报率( FAR) 两个性能指标,这两个指标的定义如下:【1】
其中,TPi表示正确检测到的异常 i 的样本数; FPi表示被误报为该异常而非该异常的样本数; TTP 表示正确检测到的所有异常样本数; FN 表示被检测为正常的异常样本数.由于不同种类的网络入侵对同样定义的特征敏感度不同. 所以适应度函数的定义需要综合特征子集对多种入侵的检测效果,是一个多目标遗传优化问题. 同时,训练样本数量直接影响神经网络的学习效果,所以本文根据训练数据集中各异常样本的比例,计算各异常检测率及系统漏报率的加权平均值,将多目标转化为单目标来进行遗传算法优化. 适应度函数的定义如下:【2】
其中,j 表示训练数据集中异常的种类; ti表示训练数据集中异常 i 的样本数; tnormal表示训练数据集中正常数据样本数; t 表示训练数据集样本总数.3. 2 选择、交叉与变异本文采用二进制编码[11]方法将问题的解映射为串,0 代表不选择该特征,1 代表选择该特征. 每个串为一个个体,若干个体构成一个种群. 随机产生 N 个二进制串构成一个初始种群.选择是从当前种群里依据概率挑选出优秀个体作为父代将基因遗传子代. 为了保证优质个体不因概率选择而流失,最优个体不会因为选择、交叉、变异操作而被破坏,本文采用带有精英保留策略的轮盘赌选择操作[12]. 将种群中最优个体直接选入下一代,再进行赌轮盘操作,选出 n 个父代个体.另外,采用单点交叉算子及单点变异算子进行遗传算法的交叉和变异操作.3. 3 频率筛选频率筛选是依据单次遗传算法优化的最优解中特征出现的频率,重新组合得到最优特征组合的过程. 假设 Y( y1,y2,…,ym) 表示多次运行遗传算法得到的最优解集,yi表示第 i个最优解,m 表示遗传算法的运行次数,n 表示原始特征集维度,按照遗传算法的二进制编码规则:【3】
最后,选出 Zj中所有为 1 的特征,得到最优特征组合. 对于公式( 6) 中频率阈值 Th 的选择需注意: 频率阈值过低,不能完全去除冗余特征; 而频率阈值过高,则会导致有用信息的丢失. 频率阈值可通过实验分析的方式获取. 4 基于 GAFS 的特征选择算法描述
输入: 原始入侵早期特征数据集 Data输出: 最优特征组合( SF)参数: group,重复运行遗传算法的次数; N,初始种群大小; generation,最大计算代数; q,交叉概率; p,变异概率; Th,频率阈值;1: FOR k = 1: group2: SF←φ;3: 生成初始种群 SSNP( 0) ;4: OptSF←GA( SSNP,generation,p,q) {5: FOR i = 1: generation6: FOR j = 1: N7: 生成训练数据集( Data,SSNP( i)j) ;8: 生成测试数据集( Data,SSNP( i)j) ;9: DR,FDR←SOM( 训练数据集,测试数据集) ;10: fitnessj111: END FOR12: Best( SSNP( i) ,fitness) ;13: Select( SSNP( i) ,fitness,N) ;14: Crossover ( SSNP( i) ,q) ;15: Mutation( SSNP( i) ,p) ;16: 添加第 i 代最优个体至 SSNP( i + 1) ;17: END FOR18: OptSF←最后一代种群 SSNP( generation) 的最优个体;120: SF←SF∪OptSF;21: END FOR22: SF←Sort( SF,Desc) ;23: SF←SF-频率筛选( SF,频率 < Th) ;5 实验及结果分析本文在基于神经网络模型的网络入侵早期检测研究[1,13-14]的基础上,对入侵早期特征集进行了特征选择实验,从已有研究确定的高维入侵早期特征集中提炼出更有效的优化特征组合.原始入侵早期特征集共计 39 维: { Abytes,Bbytes,Apack-ets,Bpackets,meanApktl,meanBpktl,pclt _ svr,bclt _ svr,Apack-ets1,Bpackets1,meanApktl1,meanBpktl1,Apackets2,Bpackets2,meanApktl2,meanBpktl2,Apackets3,Bpackets3,meanApktl3,meanBpktl3,protocol,service,src_port,dst_port,flow_state,syn_count,syn_rate,ack_rate,rst_count,rst_rate,same_srv_rate,same_src_count,same_src_rate,same_dst_count,same_dst_rate,same_srv_same_dstip_rate,same_srv_diff_dstip_rate,diff_port_same_dstip_rate,diff_srcip_same_srv_rate} ,按顺序包含 5 类: 1) 基于应用层交互行为的早期特征,共计 20 个. 这类特征通过捕获一个流的前 N 个流数据回合( FDR) ,统计基于 FDR 的特征,它是由前 N 个 FDR 的特征和第 1 ~ N 个单个 FDR 的特征组成,其中前 N 个 FDR 的特征为 8 个,包括前 N 个 FDR 中双向通信的数据分组数、字节数、平均分组大小、双方通信的分组数之比、及双方发送的字节数之比; 单个 FDR 特征为 4 个,包括每个 FDR 中双向通信的数据分组数和平均数据分组大小,N 取值为 3,共计可提取 12 个. 2) 传输层基本特征. 共计 4 个,包括协议类型、服务类型、源端口号、目的端口号; 3) 流状态特征. 共计 1 个,是指早期统计周期结束时流的状态; 4) 传输层控制信息统计特征. 共计 5 个,包括 TCP 流的多种控制信息占整个流的比例; 5) 流量关联统计特征. 共计 9 个,包括与当前流有着相同服务的流占所有流的比值等特征,用于描述应用流之间的关联.【4】
我们在局域网中搭建了入侵检测实验环境,图 2 是实验网络环境部署图. 两个集线器级联,其中一个集线器上连接基于神经网络的入侵检测服务器、应用服务器、多个用户终端;另一个集线器上连接模拟攻击终端.我们利用软件 Blade IDS Informer 模拟了600 多种攻击. 在改变参数反复模拟后,总共采集了 2 万 8 千多条网络攻击流.对每一条网络流分别提取包含 39 维的早期入侵向量数据,形成优化前的原始实验数据集( 包括训练及测试数据集) . 通过对优化前的实验数据集按照优化的特征子集进行压缩,同时保留了实验数据的数目,形成优化后的实验数据集.入侵检测实验中所选用的攻击类型、训练数据数目、测试数据数目如表 1 所示.【5】
本文使用优化前和优化后的实验数据集,基于 SOM 神经网络入侵检测方法进行了入侵检测实验,实验结果如表 2 所示. 使用39 维的原始实验数据集进行入侵检测实验,入侵的检测率如表中第二列所示; 我们用遗传算法进行多次特征选择,得到多个特征子集,并分别构造多个优化后的实验数据集进行入侵检测实验,表中第三列为多次遗传算法优化后所获得的检测率均值; 进一步使用 GAFS 算法进行特征选择,得到 GAFS 算法优化后的特征子集,并形成 GAFS 算法优化后的实验数据集进行入侵检测实验,实验中我们令频率阈值 Th 分别取 30%—50% 进行多次实验,实验结果表明频率阈值设为 40% 入侵检测效果最佳,表中第四列为 GAFS 算法优化后所获得的最佳检测率.【6】
GAFS 算法优化后的特征子集包括 29 个特征: { protocol,service,src_port,flow_state,syn_count,syn_rate,rst_count,same_srv_rate,same_src_count,same_src_rate ,same_dst_count,same_dst_rate,same_srv_same_dstip_rate,same_srv_diff_dstip_rate,diff_ srcip _ same _ srv _ rate,Abytes,Bbytes,Apackets,Bpackets,meanBpktl,pclt_svr,bclt_svr,Apackets1,meanApktl1,meanBpk-tl1,Apackets2,Bpackets2,meanBpktl2.原始特征集实验结果中,nmap 的检测率偏低,通过对检测过程跟踪发现大部分的 nmap 攻击被误报成 flood 攻击. 这是由于 nmap 攻击和 flood 攻击在某些基于 FDR 的行为上发生了雷同. 经遗传算法优化过后,去除某些冗余特征,nmap 的检测率明显提高,其他入侵的检测率也有 1% ~ 5% 的提高.从表 2 中不难发现,经过 GAFS 算法优化的特征子集,比遗传算法优化的特征子集更精确,更有效的区分了不同入侵的早期行为,取得了更好的入侵检测效果.同时,神经网络学习算法的效率与数据向量维数直接相关. 使用相同数量的原始训练数据集,特征向量集为优化前的39 维时,模型训练时间为 80. 23s; 特征向量集为优化后的 29维时,模型训练建模时间为 37. 68s. 由此可见,经过 GAFS 算法进行特征选择后,大幅度缩小了神经网络建模的复杂度,提高了神经网络学习算法效率. 6 结 语
本文结合基于神经网络的入侵早期检测的实际问题,为进一步改进早期检测效果,基于遗传算法对网络入侵早期特征选择方法进行了研究. 提出一种 wrapper 模式的、以 SOM 神经网络作为评价模型的基于 GAFS 的网络入侵早期特征选择方法.在局域网环境下模拟网络入侵,收集正常及各种入侵流量的特征数据集,进行了基于 SOM 神经网络的入侵早期检测实验. 通过基于 GAFS 的特征选择方法,将原始 39 维网络入侵早期特征优化至 29 维. 实验结果对比分析表明,优化的特征组合对各类入侵的入侵检测率提高了 5% ~15%. 同时,大幅度减少了神经网络模型的建模时间,提高了学习效率,达到预期效果.通过加权平均值将多目标问题转换为单目标,虽然简化了遗传算法处理过程,但并不是最佳的对多目标问题的处理方法. 未来的研究中,可以采用多目标遗传算法进行优化,再结合频率选择开展网络入侵早期特征选择方法的进一步研究. References:
[1]Liu Bai-lu,Yang Ya-hui,Chen Qing-ni,et al. Study and implementa-tion of early network intrusion detection method[J]. Computer Engi-neering,2013,39( 7) : 1-6. [2]Kohavi R,John G H. Wrappers for feature subset selection[J]. In Ar-tificial Intelligence Journal Special Issue on Relevance,1997,97 ( 1-2) : 273-324. [3]Zhu Yong-xuan. Research on intrusion detection based on pattern rec-ognition[D]. Beijing: Beijing University of Post and Telecommunica-tion,2006. [4]Sutton C,Rohanimanesh K,McCallum A. Dynamic conditional ran-dom fields: factorized probabilistic models for labeling and segmentingsequence data[C]. Proceedings of the Twenty-first International Con-ference on Machine Learning. ACM,2004: 99. [5]Chen You,Cheng Xue-qi,Li Yang. Lightweight intrusion detectionsystem based on feature selection[J]. Journal of Software,2007,18( 7) : 1639-1651.