近日,“谛听”团队方宇珊撰写的论文《A Feature Selection Based on Genetic Algorithm for Intrusion Detection of Industrial Control Systems》被国际期刊《Computer & Security》录用。(点击阅读原文可查看论文)
Computer & Security 是一本专注于计算机与网络安全领域前沿研究的学术期刊。它为学术界提供了一个重要的国际交流平台,涵盖了广泛的主题,包括网络安全、信息安全、系统安全、隐私保护、数据保护、安全管理等。该期刊旨在推动学术界和行业界在计算机与网络安全领域进行深入研究,促进理论、实证研究、实验分析和实际部署等多个方面的交流与探索。
文章引用方式:
Fang Y, Yao Y, Lin X, et al. A Feature Selection Based on Genetic Algorithm for Intrusion Detection of Industrial Control Systems[J]. Computers & Security, 2023: 103675.
论文内容介绍
1 研究背景
工业控制系统(ICS)能够处理复杂的数据并安全地执行设计任务,广泛应用于电力、水利、石油化工、冶金、汽车、航空航天等诸多现代工业,其中超过80%的涉及国计民生的关键基础设施。在ICS的一些实际场景中,攻击者入侵某些特定的智能设备,并能够通过网络注入虚假数据和命令,这可能导致设备异常运行并造成灾难性后果。随着信息技术和网络技术的迅猛发展,工业控制系统中信息化程度越来越高,通用软硬件和网络设施的广泛使用,打破了工业控制系统与信息网络的“物理隔离”,为网络犯罪分子利用系统漏洞发起网络攻击提供了机会。多种针对ICS的攻击事件已经被报道并引起了研究人员的广泛关注,例如Stuxnet ,BlackEnergy 以及TRITON。这些潜在危险使得ICS入侵检测的任务尤为重要。
为了防止这种灾难性事件,实施新颖的安全设计方法是至关重要的,机器学习的进步已经被广泛用于开发防火墙和入侵检测系统(IDS)来识别攻击。但都必须处理传感器物理数据/网络流量数据的高维性问题,因为高维数据使数据在超空间中稀疏,这限制了不同的算法缩放和泛化能力。然而,当IDS需要在实时环境中做出决策时,问题严重程度也会呈指数级增长。解决此问题的解决方案之一是使用特征选择技术来降低数据的维度。特征选择是从大型特征集中选择最佳特征子集的过程,以提高提取特征的分类准确性、性能和成本。
目前针对入侵检测的特征选择方法和分类模型已经被大量报道,然而这些方法大多不是针对ICS进行设计的,首先这些方法无法有效的减少冗余特征数目,然而在ICS中,特征之间具有较高的冗余度。此外,现有的特征选择方法并没有考虑到ICS中数据不均衡的问题,投入使用时会产生较低的准确率和较高的误报性。最后,现有的特征选择方法很少考虑到构建分类模型时的时间复杂度,然而ICS系统要求能够实时对数据流进行分析并产生决策,这需要构建的分类器具有低复杂度。针对以上问题,本文设计了一种基于遗传算法的ICS特征选择方法。该方法在遗传算法中引入特征排序融合机制来消除冗余特征,利用生长树聚类思想提高全局寻优速度,并设计了新的 ICS 特征适应度函数。在实际的 ICS 数据集上验证了该方法的有效性和先进性。
2 关键技术
本文的主要贡献可以概括为以下几点:
(1)针对工控稳定性要求,本文采用一种增强的二进制遗传算法进行特征选择,降低特征维数,并从性能和效率方面分析各种分类模型,从而为我们的适应度函数选择最优模型。
(2)考虑到工控特征冗余和不平衡数据的特点,本文将分类准确率、特征冗余度和F1值作为三个变量用于计算适应度,探索了更适合工控数据的分类模型。
(3)针对工控系统的实时性要求,减少不必要的特征计算和分析。在遗传算法中,我们采用生长树聚类策略增强多样性,并利用多特征评估算法和秩聚集策略设计进化和进化操作,指导算法寻找最优特征。采用了多种评价方法的融合,增强收敛和优化能力,提高所选特征的稳定性和可靠性。
(4)本文使用工控水处理SWaT和WADI数据验证了我们的算法,证明了所提出的方法优于常见的特征选择和进化算法,并证明算法是高效的、可扩展的。
3 方法介绍
整体框架
本方法主要包括种群初始化、特征评估、交叉和变异、进化和淘汰四部分。
(1)种群初始化:本文方法首先算法初始化N个个体,每个个体对应的染色体随机分配0或者1两个值,表示该染色体对应的特征是否被选择(在图中用深浅不同的颜色表示)。
(2)特征评估:我们设计了包含7个特征评估器的多维特征评估方法,用于评估每个个体中染色体的性能,这些特征评估结果利用特征排序融合方法生成统一的排名列表,得到当前迭代中最优染色体位置和最差染色体位置,并将位置信息进行保存。
(3)交叉和变异:随后我们进行选择、基于生长树聚类的交叉和变异操作,增加算法收敛速度,并增强全局寻优能力。
(4)进化和淘汰:最后我们增加了进化和淘汰流程,我们设置了进化概率和淘汰概率,根据特征排序融合结果有概率的将染色体设置为1或者0,从而实现加速算法寻优效率,减少冗余特征和最终的特征子集中特征数量的目的。
特征排序融合算法
特征排序融合可以将多个评价者对特征的评价结果融合在一起,生成一个统一的排序列表。这种方法对于产生公正客观的统一排名是有效的。虽然有研究报道了特征排序融合的优点,但由于不能有效处理原始数据的噪声,这些方法并不完全适用于融合来自不同评价者的特征评价结果。在本方法中,我们采用了一种新的鲁棒秩聚合(RRA)方法,该方法在特征偏好列表之间以及特征偏好列表内部不相关的零假设下,检测出高于期望秩的特征,并为每个特征分配一个显著性分数,该分数由小到大排序,从而获得最终的特征排名。算法底部的概率模型对异常值、噪声和误差具有鲁棒性。RRA的核心概念是承认在不同的输入列表之间存在潜在的差异和不确定性,并寻求找到一个在所有列表中表现良好的综合排名。最初,RRA方法通过计算每个特征在不同输入排名列表中的位置,为每个特征分配一个初始“分数”。这些分数通常基于每个列表中特征的排名位置,在排名中出现较早的特征得分较高。本文中我们分别采用L1正则化,L2正则化,线性回归,稳定性选择,随机森林和相关系数,作为特征评估方法。每个个体经过特征评估集合后生成对应的特征排名向量,我们将这些向量共同输入到特征排序模型中,最终得到一个经过特征融合排序后的最终列表_RankList_。
生长树聚类交叉
在传统的遗传算法中,选择和交叉过程通常以最佳个体为基准进行,这种方法限制了种群的多样性,不利于差异个体的共同繁殖,降低了算法的效率和寻优过程。因此我们根据生长树聚类的思想,优化了遗传算法的选择和交叉过程。具体来说,我们首先采用生长树聚类算法将种群划分为k个家族,然后不同家族之间分别进行最优个体的评估,随后交叉过程在不同家族的适应度值较高的个体中进行。本文方法既能够保留优秀个体,又能够有效保证种群多样性。
具有进化和淘汰机制的遗传算法
考虑到原始遗传算法所能够保留的特征数目与随机初始化种群具有密切关系,且在算法的选择、交叉和变异过程中很难有效的降低特征数目,因此我们引入了RFE模块嵌入到遗传算法的迭代过程中,具体来说,本方法对变异后的最优个体进行进一步的评估,根据所采用的机器学习模型执行特征评估操作,对每一个可能被选择的特征,利用分类器评估其重要性,并进行排序,对于处于排序末端的染色体,我们认为其对分类器的贡献具有交叉,因此在接下来的操作中,该染色体将被淘汰。
算法将多种评估结果融合后的特征排序列表进行保留,并记录最佳染色体位置B_p_和最差染色体位置W_p_。这个列表在迭代中每轮更新,并且有一定概率_p_指导染色体的进化,具有一定概率_q_指导染色体淘汰,即根据排序融合结果淘汰排名末端的染色体(将对应位置染色体设置为0),并保留最佳的染色体(将对应位置染色体设置为1)。
其中_p_和_q_是一个动态参数,用于约束进化概率,为了平衡全局搜索和局部最优状态,需要保证前期具有较高的进化和淘汰概率,后期具有较小的进化和淘汰概率,实验中我们设置进化概率概率_p = rand(0,0.5)*g/G_,淘汰概率_q = rand(0.5,1)*(g/G)_其中_g_为当前迭代次数,_G_为总体迭代次数。
适应度函数的设置
标准GA算法和一些启发式算法中,适应度的计算通常采用给定分类器的分类准确率。为了避免特征子集中融入过多的冗余特征,并且考虑到ICS数据十分不均衡,通常大多数流量数据为正常数据,仅有少量为异常数据,而设计的算法应该能够更准确的捕捉到数据的异常。因此,我们改进了算法的适应度函数计算方式,将特征子集自相关系数,分类准确率和F1值共同监督算法的进化方向。首先,我们定义了特征子集自相关系数corr,其计算方式是该特征子集中所有特征的间相互系数之和的平均值
因此改进的适应度Fitness计算方式为:
其中acc为给定分类器的五折交叉验证分类准确率均值,f1为采用权重平均方式进行加权平均,实验中采用神经网络作为分类器。其中γ(a,b)为评价指标的随机扰动,通过随机产生从a到b的随机数来保证搜索过程的随机性。
4 实验评估
我们在水处理数据SWaT和WADI数据上对本方法进行了评估。
分类器评估
我们在SWaT和WADI数据集上测试五种常用分类器的性能,以确定ICS的最佳分类器。分类器包括决策树(DT)、朴素贝叶斯(NB)、随机森林(RF)、逻辑回归(LR)和神经网络(NN),其中所有分类器都使用Scikit-learn默认参数,分类器在完整数据集上运行,数据后预处理,没有特征选择。我们使用五倍分层交叉验证的平均分类精度和分类器的平均运行时间作为评估指标。
结论:根据从SWaT数据集获得的结果,LR和NN模型在分类精度方面表现出了出色的能力。NN模型表现最好,比DT模型提高34.71%,比NB模型提高56.64%,比RF模型提高25.24%,比LR模型提高1.42%。需要注意的是,尽管NB模型在算法复杂度方面具有优势,但其分类精度在所有分类器中是最差的,这使得其在实践中难以应用。在分类精度优异的两种分类器中,NN的时间复杂度比LR低24.07%,因此我们认为神经网络分类器在SWaT数据集上表现最好。
根据从WADI数据集获得的结果,我们观察到类似的趋势。在评估的4种模型中,神经网络模型的分类性能最好。
实验指标
本文展示了所提出的方法在SWaT和WADI数据集上的实验结果,其中在算法完成迭代后保留了六个特征以供进一步的数据分析。我们在特征选择的数据集上计算了四个评估指标,包括分类精度(Acc)、精度(Pre)、召回率(Rec)和F1值,其中每个评估指标使用神经网络作为分类器。考虑到样本的不平衡性,采用五重交叉验证的评价指标均值作为最终结果,其中F1值采用平均加权支持度计算方法计算。
结论:该方法在SWaT数据集上的分类精度为0.9860,其中Pre为0.9757,Rec为0.9677,F1为0.9717。与未进行特征选择的原始数据集相比,本文方法的分类准确率提高了0.0452(0.9408)。在随后的分析中,我们还比较了时间复杂度的变化,提出的方法可以显著降低算法的时间复杂度。在WADI数据集的结果中,我们提出的方法实现了0.9825的分类精度。此外,我们的方法获得了精度评价指标(Pre)值0.9871,召回评价指标(Rec)值0.9889和F1评价指标值为0.9880。与传统的特征选择方法相比,该方法的分类准确率提高了0.0979。此外,使用我们选择的特征构建的模型对不平衡数据集进行了有效的分类,其他评价指标也证明了这一点。
特征分析
我们分析了所提出的方法所选择的特征,包括来自SWaT数据集的'FIT101', 'P101', 'FIT201', 'MV304', 'FIT501'和'PIT501',以及来自WADI数据集的'1_AIT_002_PV','1_AIT_004_PV', '1_FIT_001_PV', '2_MCV_007_CO','2_PIT_001_PV'和' total_con_required_flow ' (TCRF)。所选特征子集的冗余度是检验特征子集的重要指标之一,特别是在ICS数据中。我们使用Pearson相关系数作为评价标准来分析特征子集中的特征相关性。
结论:从图中可以看出,所有的特征都没有强相关性。
与传统特征选择方法的分类准确率比较
本文将所提出的方法与传统的特征选择方法进行比较。这些比较的特征选择方法包括相关系数(Corr)、决策树(DT)、额外树(ET)、L1正则化(Lasso)、逻辑回归(LR)、L2正则化(Ridge)、稳定性选择(Stab)和随机森林(RF)。实验中使用神经网络作为分类器,并在比较方法中保留相同的6个特征,以保证比较的公平性。我们统计了每种方法的五折交叉验证的平均分类准确率。
结论:可以看出,在SWaT数据集中本文方法的分类准确率(0.9880)优于所有比较的传统特征选择方法,与基准方法的最优结果相比,我们的方法的分类准确率提高了1.65%。WADI数据集的结果可以看出,所提出的特征选择方法优于所有比较的特征选择方法,与基准方法的最优结果相比,我们的方法提高了2.31%。
与传统特征选择方法的F1值比较
为了证明我们的方法对于不同类型的样本都具有较高的检测率,我们还对F1指标进行了比较。
结论:在SWaT数据集上我们的方法比Corr方法提高5.41%,比DT方法提高5.88%,比ET方法提高3.50%,比Lasso方法提高8.11%,比LR方法提高0.92%,比Ridge方法提高5.88%,比Stab方法提高3.83%,比RF方法提高1.17%。这证明了我们的方法的有效性。在WADI数据集上的结果如图12所示。可以看到,在所有对比方法中,我们的方法在F1指标上优于其他方法,平均提升12.92%。这进一步证实了上述结论。
与先进最优化算法比较
为了证明该方法的先进性,我们将该方法与二进制遗传算法、二进制差分进化算法和二进制粒子群算法进行了比较。所有比较方法的迭代次数设置为500。当达到此迭代次数时,所有算法选择的特征数量及其对应的分类精度和F1如表所示。
结论:在SWaT数据集上可以看出,本文方法可以有效地减少特征数量,仅使用6个特征,分类准确率达到0.9869。特征数量减少76.92%,分类准确率提高0.94%。该方法具有与二元差分进化算法几乎相同的分类精度。然而,特征的数量减少了33.33%。在WADI数据集上,观察到类似的结果。本文方法的特征约简效果较好,仅使用6个特征,分类准确率达到0.9713。这相当于特征数量减少了86.36%,分类精度提高了2.89%。在分析中,我们观察到我们提出的方法不仅显著减少了所需的特征数量,而且在分类精度和F1分数方面也有了明显的提高。这突出了特征选择的重要性,并强调了我们的方法在保持高精度的同时降低计算复杂度和模型训练时间的能力。特别是与其他基于优化的特征选择方法相比,我们的方法显示出更高的效率和有效性。
我们比较了本文方法与其他算法的收敛曲线和特征个数变化情况。
结论:传统的二元遗传算法收敛速度较慢。然而,它可以超越局部最优来寻找全局最优,证明了遗传算法的优势。然而,传统的二值遗传算法难以有效地减少特征的数量。最终,尽管分类精度相对稳定,但如何去除冗余特征以进一步提高分类精度是一个挑战。二元粒子群算法和二元差分进化算法在搜索过程中严格遵循精英策略。他们只在找到更好的特征子集时更新解决方案。因此,与遗传算法不同,这些方法在特征计数和分类精度方面没有显着变化。然而,无论是二元粒子群算法还是二元差分进化算法,一旦趋于收敛,都难以大幅减少特征数量,往往无法达到最优的分类精度。相比之下,我们提出的方法仍然比这些方法具有显著的优势。该方法在特征数量较少的情况下,也能有效地减少特征数量并搜索出更优的特征子集。这不仅保证了较高的分类精度,而且提高了分类模型的性能和效率。
分类结果进一步分析
尽管神经网络模型在特征选择任务中表现良好,但考虑到ICS数据的不平衡特征,我们建议使用LightGBM作为特征选择后的分类模型。分类模型应该对异常数据更加敏感。LightGBM具有快速高效、内存消耗低、精度高、支持并行和大规模数据处理、对不同标签赋予不同权重的能力等特点,更适合ICS数据特点,部署在真实的ICS环境中。该方法不使用LightGBM作为特征选择的分类模型。原因是LightGBM需要迭代训练,并且将作为Wrapper方法的分类器不断迭代和重复训练,从而导致高时间复杂度。但作为特征选择后的最终决策分类器是可行的。
为了证明LightGBM作为最终分类器的有效性,我们首先使用六个选定的特征在SWaT数据集上进行了实验。为了保证数据集划分的公平性,我们对训练集和测试集使用分层抽样。我们按照3:1:1的比例进行培训、验证和测试。
结论:LightGBM作为分类器的分类精度为0.9833,F1值为0.9844。然而,与神经网络相比,分类精度下降了0.36%,F1值提高了1.46%。因此,LightGBM在不平衡数据集,特别是对异常数据敏感的ICS数据中具有更好的性能。我们还给出了LightGBM预测所选六个特征上不同类别标签的详细结果,可以看出,LightGBM在所有异常数据上都取得了很好的效果,在所有10,708个异常数据(排除Normal数据)上共检测到10,091个异常,占94.24%。
总结
工业控制网络通常由大量设备和子系统组成,网络规模庞大,系统复杂。产生了大量的网络流量和物理数据,而其中只有一小部分与入侵行为相关。特征选择可以缩减特征空间,提高工控入侵检测算法的计算效率和可扩展性。本文提出了一种基于遗传算法的特征选择方法,用于工业控制系统(ICS)数据,致力于减少不必要的特征计算和分析,提高算法的实时性和响应速度,达到工业控制系统对于实时性和稳定性的要求。同时,为了更好地适应工控数据中不平衡样本的特点和高特征冗余度,本文提出了针对不平衡数据的适应度函数,并在遗传算法中加入了进化和淘汰机制来减少冗余特征。引入了生长树聚类的交叉策略,以加快遗传算法的收敛速度和全局搜索能力。实验结果证明,本文方法在针对工控不平衡数据上有较好的效果,并对入侵检测的效率和稳定性都有很大的提高。
第一作者:方宇珊
东北大学博士研究生,主要从事工业控制网络入侵检测,资产识别等方面。
指导教师:姚羽
东北大学教授,“谛听”团队创始人,复杂网络系统安全保障技术教育部工程研究中心主任。