面向网络攻击检测与分类的联邦学习框架中的差分隐私随机森林-论文阅读
Random forest with differential privacy in federated learning framework for network attack detection and classification(面向网络攻击检测与分类的联邦学习框架中的差分隐私随机森林)
1.摘要
通信网络是任何智慧城市数字基础设施中的关键组成部分。随着计算机网络使用的增加,网络安全问题愈发严峻,每个组织都需要采取预防措施来保护其重要数据和业务流程。由于城市基础设施的分布式特性及其资源和数据的关键性,网络攻击检测需要分布式、高效且隐私保护的解决方案。在本文中,我们扩展了一个基于联邦学习框架的随机森林方法,用于网络攻击检测和分类。此前,该框架仅用于攻击检测,并在四个知名入侵检测数据集(KDD、NSL-KDD、UNSW-NB15和CIC-IDS-2017)上进行评估。本文进一步扩展了对攻击分类的评估,同时探讨了在随机森林中加入差分隐私这一额外保护机制对框架性能的影响。结果显示,该框架在攻击检测和分类方面均优于客户端上的独立随机森林的平均性能。正如预期,差分隐私的加入会对随机森林的性能产生一定的负面影响,但所提出的框架相比独立的本地模型仍具备优势。为保证透明性并促进研究社区的复现性,本文所用代码已公开。
2.介绍
通信网络是任何智慧城市数字基础设施中的核心部分,对于公共部门、企业和公民等利益相关者而言,识别网络中的异常和入侵行为至关重要。这些网络通常是异构的,包含大量多样化的传感节点,周期性地收集数据并将其传输到各种协调和决策服务。将这些网络中的数据集成到不同的平台上、为特定利益相关者提供基于访问权限的视图,以及基于数据得出智能结论,是任何智慧城市框架的关键活动。
计算机网络的广泛使用也带来了许多网络安全问题,每个组织都需要实施预防措施,以防止其宝贵数据和资产受到威胁。在日益增长的网络安全威胁中,针对智慧城市基础设施的有组织攻击和个人入侵已成为公共部门的重大隐患之一。入侵检测系统(IDS)是一种必要的防护机制,近年来已成为一个备受关注的研究领域。IDS是一种软件或硬件系统,监控计算机系统或网络中发生的事件,并分析这些事件以检测入侵迹象或安全策略的违规情况。
近年来,人工智能技术在网络安全领域得到了广泛应用,特别是用于入侵检测。机器学习算法可以从数据中学习如何区分正常和异常行为,这一能力已被证明对开发可靠的入侵检测系统非常有效。
3.相关工作
3.1 联邦学习
联邦学习(FL)是一种机器学习环境,其中计算设备以协作方式学习任务,而无需将数据共享给集中式服务器。例如,机器学习算法可以在分布式数据环境中跨多个设备和服务器进行训练。FL通过聚合一组在多设备上本地训练的模型,逐轮训练出一个全局模型。在每轮训练中,选定的一组设备接收服务器上的当前全局模型版本,然后每个设备使用本地数据训练该模型的局部版本,并将更新后的版本返回服务器。服务器将所有本地版本聚合并重复此过程,直到达到预期性能。在许多领域中,各种机器学习算法已适应于FL环境,例如工业工程、医疗保健、计算机视觉和金融等。
FL特别适合用于训练和部署网络入侵检测系统,因为它可以减少中央服务器的计算负载、降低通信带宽(数据保留在本地)并实现数据隐私。有关利用FL进行网络入侵检测的各种机器学习方法的综述见相关研究文献。大多数研究使用深度学习技术,例如神经网络(NN)、卷积神经网络(CNN)、生成对抗网络(GAN)或循环神经网络(RNN)。相比之下,一些研究展示了基于梯度的决策树在FL中的实现和效率。在网络入侵检测任务中,FL的梯度提升决策树(GBDT)方法被认为比深度学习方法更具解释性,同时能达到相似的预测性能。由于相同的原因,本研究也选择了树模型方法用于网络入侵检测。
在医疗领域,研究还探索了联邦随机森林(RF)方法。在一些研究中,RF在本地训练的森林之间进行加权组合,以增强分类性能。研究表明,联邦RF在本地模型的预测性能方面具有优势。
3.2 联邦学习与隐私保护技术
尽管FL通过设计实现了数据隐私保护,但本地模型上传到服务器后,仍可能被用于重构私密信息。为解决这一问题,提出了多种隐私技术,如k-匿名性、数据加密和差分隐私(DP)。隐私保护技术的目标是控制从数据中可以学习到的内容。差分隐私是通过在机器学习算法的输出中添加校准噪声来保护数据隐私的一种严谨定义。在FL中,差分隐私被用于增强随机森林模型的隐私性,确保攻击者无法通过模型提取私密信息。
3.3 差分隐私随机森林
已有文献综述了在差分隐私下的树模型方法,例如决策树和随机森林。研究表明,在决策树节点分裂和叶节点输出中添加噪声通常会降低算法的准确性。为解决这一问题,一些研究提出了混合决策树算法,以平衡隐私保护和分类准确性。一些方法通过控制添加噪声的数量来限制差分隐私对性能的影响。此外,一些研究使用了指数机制,允许决策树叶节点返回多数类标签,而不是具体的类别计数,从而增强隐私保护。
在本研究中,我们采用了前人使用的指数机制,以实现随机森林中的差分隐私,并在联邦学习环境中对其进行了扩展。
4. 随机森林与差分隐私的联邦学习框架
4.1 随机森林
随机森林(Random Forest, RF)通过组合不同决策树(Decision Tree, DT)算法的预测结果来获得最终预测。决策树是一种用于分类或回归的机器学习算法。本文聚焦于分类任务,因为这是入侵检测研究领域的主要目标。决策树的示例如图所示百度网盘分享,提取码:7568可以看到,决策树由决策节点和叶节点组成。决策节点选择数据集中最相关的特征,作为条件将数据集划分为子集。如果节点不再继续划分,则称为叶节点,它包含最终的预测结果。选择最相关特征的方法多种多样,本文使用以下两种方法:
Gini指数:试图从数据中找到并分离出最大的同质类。计算公式如下:
对于特征 $( F )$ 的 Gini 指数(GI)计算公式为:
$$
GI(D|F) = \sum_{f \in F} \left( \frac{|D|_{F=f}}{|D|} \times GI(D|F=f) \right)
$$其中,
$$
GI(D|F=f) = 1 - \sum_{c \in C} P(C=c, F=f)^2
$$- $( D )$ 表示整个数据集;
- $( F )$ 是某一特征,$( f )$ 是该特征的一个取值;
- $( |D|_{F=f} )$ 是特征 $( F )$ 取值为 $( f )$ 的实例数量,$( |D| )$ 是数据集中的总实例数;
- $( P(C=c, F=f) )$ 表示在选择 $( F=f )$ 时属于类别 $( c )$ 的概率。
计算所有特征的 Gini 指数后,选择指数最小的特征作为父节点,然后按照相同原则进行进一步的划分。
信息增益(entropy):试图最小化组内的多样性。具体通过计算信息增益(IG)来实现,其公式如下:
$$
IG(D, F) = E(D) - E(D|F)
$$其中:
$$
E(D|F) = \sum_{f \in F} \left( \frac{|D|_{F=f}}{|D|} \times E(D|F=f) \right)
$$$$
E(D|F=f) = \sum_{c \in C} P(C=c, F=f) \times \log_2(P(C=c, F=f))
$$上述公式中,$( D )$ 表示整个数据集,$( D|F )$ 表示通过特征 $( F )$ 划分后的数据集,$( f )$ 是 $( F )$ 的某一取值,$( c )$ 是所有类别中的一个类别,$( P(C=c, F=f) )$ 表示在选择 $( F=f )$ 时属于类别 $( c )$ 的概率。
在随机森林模型中使用多个决策树。为了构建这些决策树,需要使用不同的数据子集,因为相同的数据集会生成完全相同的决策树。数据子集的划分是随机完成的,占据整个数据集的一定比例。
随机森林最终通过集成或聚合多个决策树的预测结果来生成最终预测。本文中使用了两种集成方法:
- 简单投票(Simple Voting, SV):使用多数投票来确定预测类别。
- 加权投票(Weighted Voting, WV):使用多数投票,但为每个决策树的预测结果赋予加权,权重为该决策树对所有类别的平均准确性。
架构如图:百度网盘分享,提取码:7568
4.2 差分隐私
差分隐私(Differential Privacy, DP)确保数据集个体的隐私,防止敏感信息被未经授权提取。差分隐私的一种常见机制是添加噪声,使得算法输出符合差分隐私的定义。拉普拉斯机制(Laplacian mechanism)是其中一种机制,通常用于保护决策树输出中的隐私。在决策树中,叶节点通过返回类别计数来预测数据的类别标签,拉普拉斯机制通过在这些计数中添加噪声来实现差分隐私。
另一种方法是使用指数机制(Exponential mechanism),以返回具有最高计数的类别为目标,而不是具体的类别计数,公式如下:
$$
\Pr(f(x) = z) \propto \exp\left( \frac{\epsilon \cdot u(z, x)}{2 \cdot \Delta(u)} \right)
$$
- 其中,$( u(z, x) )$ 表示输出 $( z )$ 相对于数据 $( x )$ 的评分函数,$( \Delta(u) )$ 是 $( u )$ 的灵敏度,即输入不同产生的偏差,$( \epsilon )$ 是隐私强度的参数。
将差分隐私集成到随机森林中,使用指数机制保护隐私,并在联邦学习环境下应用。
4.3 联邦学习框架下的差分隐私随机森林
在本文中,随机森林在联邦学习(FL)设置下运行,每个客户端接收不同的数据并独立训练。各客户端独立训练的随机森林被传送至服务器,服务器在此基础上生成一个全局随机森林,将其分发给各客户端。每个参与联邦的决策树均根据其分类结果对最终决策作出贡献。该框架的创新点在于将差分隐私引入到每个随机森林中,同时提供了不同的策略用于在服务器端生成全局模型,并将其分发至不同客户端。
在选择纳入全局随机森林的决策树时,使用了以下两个方法来评估每棵决策树的表现:
- 准确率(Accuracy, A):决策树在验证集上的总体准确率。
- 加权准确率(Weighted Accuracy, WA):决策树在验证集上的总体准确率乘以该树在验证集中所有类别的平均准确率,从而优先选择在多个类别上表现较好的决策树。
在服务器上生成的全局随机森林被返回给客户端,以便后续使用。
5. 实验
5.1 数据集
实验使用了四个公开的数据集,它们是入侵检测(ID)领域最常用的数据集(Random forest with diff…)。这些数据集通过在正常和不同类型的网络攻击下记录网络流量生成,流量数据以网络数据包的形式记录,并经过预处理形成特征,每个数据包用特定的特征描述,并标记为正常或某种类型的网络攻击。每个数据集的基本信息如表1所示。
5.2 数据集预处理
在每个数据集中,选择特定部分用于实验(见表1最后一列),并移除CIC-IDS-2017中小于800例的类别。所有数值特征经过标准化处理,范围为0到1,类别型特征进行one-hot编码,二进制特征保持不变。攻击分类实验中,输出标签编码为数值;在攻击检测中,正常实例标记为0,其他为1。
数据集划分为训练集、验证集和测试集,比例为70%-10%-20%。然后数据按某一特征进行划分,形成HFL(水平联邦学习)设置:KDD和NSL-KDD用“协议”特征,UNSW-NB15用“服务”,CIC-IDS-2017用“目标端口”。不满足50个正常或恶意实例的子集被剔除,最终分别得到3、3、6和14个子集。划分后的数据集信息如表2所示。
5.3 实验设置
实验在预处理后的数据上进行四种实验,目标为解决两个问题:攻击检测(AD)和攻击分类(AC)。实验使用Python编程语言,决策树分类器采用sklearn库实现(Random forest with diff…)。差分隐私由IBM的差分隐私库diffprivlib实现(Random forest with diff…)。代码已公开于GitHub(Random forest with diff…)。
每个实验(EXP)的说明如下:
EXP 1 - 随机森林超参数选择:在数据划分为子集之前进行,以找到适合每个数据集和问题的最佳随机森林超参数组合。测试的超参数包括决策树数目(1到100之间的奇数)、分裂规则(Gini或entropy)和集成方法(简单投票或加权投票)。最优组合在后续实验中使用。
EXP 2 - 独立随机森林的客户端评估:在每个客户端上使用其子集数据训练独立的随机森林模型,使用EXP 1中的最佳超参数组合。每个数据集的子集数决定了客户端数目(见表2)。测试了不同的划分方法:
EXP 2.1:使用特定特征作为划分依据(见4.2节说明)。
EXP 2.2:随机分配数据至每个客户端,每个客户端数据量相同。
EXP 2.3:随机分配数据,每个客户端数据量与EXP 2.1中一致。
对于EXP 2.1,测试了两种数据集:一种仅包含子集内数据,另一种包含整个测试集的数据。对于EXP 2.2和EXP 2.3,使用整个测试集进行测试。
EXP 3 - 基于联邦学习的全局随机森林:将独立随机森林组合为全局模型,使用四种不同的合并方法(RF_S_DTs_A、RF_S_DTs_WA、RF_S_DTs_A_All和RF_S_DTs_WA_All),并调整决策树数量。测试集覆盖整个数据集,并将全局随机森林与独立随机森林的表现进行比较。
EXP 4 - 基于联邦学习和差分隐私的全局随机森林:在每个客户端上使用差分隐私训练独立的随机森林,使用四个不同的 $\epsilon$ 值进行测试:0.1、0.5、1 和5。将最佳合并方法与决策树数量的组合应用于全局随机森林。
6.结果
6.1 实验1 - 随机森林超参数选择
如第3节所述,决策树中有一个重要的超参数(分裂规则),而在随机森林中则有两个超参数(树的数量和集成方法)。AD(攻击检测)和AC(攻击分类)的组合结果分别见图5和图6。首先要说明的是,不同方法之间的差异很小。UNSW-NB15数据集中最差和最好组合的准确性差异为0.7个百分点,无论解决的是何种问题。
在AD中(图5),可以观察到“entropy”是KDD、UNSW-NB15和CIC-IDS-2017的最佳分裂方法,而在NSL-KDD中“gini”更优。集成方法之间没有显著差异,不同分裂规则的曲线交叉频繁。AC(图6)中,“entropy”在所有数据集上表现更佳,集成方法之间也没有明显优势。此外,在树的数量上,0到15-30棵树的增长带来显著提升(具体数量取决于数据集和问题类型),但之后的性能提升较少。
每个数据集和问题类型的最佳超参数组合汇总在表3中,这些值将在接下来的实验中使用。
6.2 实验2 - 不同客户端上独立随机森林的评估
在本节中,我们通过三种方式将数据划分给不同客户端:按表2中特定特征划分(实验2.1)、将数据随机分配给客户端使每个客户端数据量相同(实验2.2)、以及将数据随机分配但保持数据量与实验2.1一致(实验2.3)。
在实验2.1中,每个客户端使用不同数据训练独立的随机森林,随后在两种测试集中测试这些森林:(1)仅包含来自训练子集的信息的测试集;(2)包含所有子集信息的完整测试集。表4显示了实验2.1的结果。无论是AD还是AC,且不论是哪一个数据集,随机森林在子集内测试数据上的准确性都高于在完整测试集上的表现。这表明随机森林在测试中缺失了一些信息,从而无法有效分类。
这一结论在实验2.2和2.3中得到验证。数据随机划分给不同客户端,没有特定特征作为划分标准。独立随机森林的性能见表5。在AC和AD中,随机森林的性能在两个实验中都表现优异,因为每个客户端可以访问全范围的数据,没有缺失信息。这进一步表明,服务器上生成的全局随机森林能够在不泄露数据的情况下,将不同客户端的信息共享。
6.3 实验3 - 基于联邦学习的全局随机森林
本实验旨在确定服务器上构建全局随机森林的最佳超参数组合。我们评估了四种不同的合并方法(RF_S_DTs_A、RF_S_DTs_WA、RF_S_DTs_A_All、RF_S_DTs_WA_All)和不同的决策树数量。对于前两种方法,评估了1到最大决策树数量的所有可能数目;对于后两种方法,按客户端数量的倍数增加树的数量,直到达到最大数量。CIC-IDS-2017数据集的最大决策树数为500。全局随机森林在所有四个数据集上进行了AD和AC的完整测试集性能评估。
图7展示了全局随机森林在AD中的准确性对比。可以看出,先合并所有决策树再从中选择最佳决策树的方法在三个数据集(KDD、NSL-KDD、UNSW-NB15)中表现更优;仅在CIC-IDS-2017数据集中,逐个选择最佳决策树的方法表现更佳。不同的排序方法(A和WA)差异不大,但在KDD中,使用A方法的表现明显更好,准确率提高约30个百分点。
图8和图9展示了AC中全局随机森林的准确性和F1分数对比。在KDD中,当树的数量较低时,RF_S_DTs_WA_All显著优于其他方法。在NSL-KDD中,RF_S_DTs_A_All的表现整体优于RF_S_DTs_WA_All,但在某一峰值时RF_S_DTs_WA_All表现最佳,比RF_S_DTs_A_All高约5个百分点。对于UNSW-NB15,RF_S_DTs_WA_All优于其他方法,而在CIC-IDS-2017中,各方法准确性相似。F1分数显示准确性稍低,仅在CIC-IDS-2017中差异显著,为约10个百分点。
表6和表7分别给出了AD和AC中每个数据集的最佳全局随机森林超参数组合以及其达到的准确性和F1分数。如多个组合具有相同准确性,则根据以下标准选择最佳组合:(1)选择F1分数最高的组合;(2)若F1分数也相同,则选择决策树数最少的组合;(3)若决策树数也相同,则选择速度最快的方法。
表8和表9显示了全局随机森林在完整测试集上的表现与独立随机森林的最大、平均、最小准确性的对比。对于AD,全局随机森林在KDD和NSL-KDD数据集上提升了独立随机森林的最大准确性,并接近UNSW-NB15。在CIC-IDS-2017上略低于最大值,但仍优于平均准确性。对于AC,全局随机森林在四个数据集中的三个数据集上提升了独立随机森林的最大准确性,仅在CIC-IDS-2017上略低于最大值,但接近平均值。F1分数对比的结论相同(见表10)。
6.4 实验4 - 基于差分隐私的联邦学习全局随机森林
本节测试了在各决策树中加入差分隐私后的效果,AD和AC的结果分别见表11和表12。首先,测试了隐私参数(\epsilon)对算法性能的影响。测试结果显示,(\epsilon)的值对结果影响不大,除了NSL-KDD数据集的AD和AC差异较大。
其次,将决策树合并为全局随机森林后,全局模型在大多数情况下优于客户端中最佳随机森林的表现,除AC中的CIC-IDS-2017和NSL-KDD表现稍差。此外,在CIC-IDS-2017的AD中,独立和全局随机森林的结果相似。若考虑AC的F1分数(表13),除KDD外,全局随机森林带有差分隐私时的表现优于独立随机森林,但仍接近最大值。
若将结果与无差分隐私的情况对比(见表8和表9),可以看到差分隐私会降低所有数据集AC的结果。而在AD中,NSL-KDD和UNSW-NB15的表现受到影响,KDD和CIC-IDS-2017的表现反而有所提高。这两个数据集实例较多,可能表明加入噪声可以使树更具通用性,有助于提升效果。