可解释模型-网络流量篇(九)

发表时间:2021(CCF-A)

发表会议:Transactions on Information Forensics & Security

一、概述 

文章提出一个基于可解释人工智能的入侵检测系统(IDS),用于检测DNS over HTTPS (DoH) 协议下的恶意流量。作者采用CIRA-CIC-DoHBrw-2020数据集,构建Balanced Stacked Random Forest(平衡堆叠随机森林)模型,对以下三类网络流量进行分类:

  1. Non-DoH(非DoH流量)

  2. Benign-DoH(正常DoH流量)

  3. Malicious-DoH(恶意DoH流量)

在模型解释部分,作者采用SHAP(Shapley Additive Explanations)方法分析各特征对模型预测结果的贡献,提供决策透明度。

二、研究的问题

近年来,随着网络隐私保护需求的增强,DNS over HTTPS(DoH)协议因其将DNS查询封装于HTTPS加密通道中而被广泛采用,成为提升用户匿名性与抗审查能力的重要手段。然而,该特性也为攻击者隐藏其恶意行为提供了便利,导致DoH逐渐成为绕过传统基于明文DNS检测机制的攻击通道之一。

国内外已有研究相继关注DoH流量中的恶意行为检测问题,提出了包括基于统计特征分析、深度学习分类、时间序列建模等多种方法。例如,Vekshin等人通过流量时序特征训练机器学习模型识别DoH;Banadaki等使用随机森林与XGBoost等算法对CIRA-CIC-DoHBrw-2020数据集进行分类实验,并取得了较高的准确率;Ramakrishnan等则尝试构建轻量化神经网络用于快速响应攻击。

然而,现有研究普遍存在以下不足:

(1)没有通用的框架,不能在不同的环境用同样的框架:早期的研究,如Aiello等人使用的主成分分析(PCA)和互信息(MI),虽然提出了新的度量指标,但由于DNS服务器的大小或DNS隧道中封装流量的不同情况,导致度量值表现不稳定。因此,阈值只能通过合法流量和恶意流量之间的MI值的非重叠情况来确定,缺乏足够的灵活性和通用性,无法适应不同的网络环境。

(2)缺乏对统计特征、时间特征和有效载荷方面的考量:一些研究在进行DNS流量分析时,主要关注的是预测DNS信息的有效性,即是否可以从DNS流量中判断出合法的查询。然而,这些研究没有充分考虑到恶意活动的DNS数据正常DNS流量在多个方面的差异,特别是在统计特征时间特性有效载荷方面的差异。恶意活动的DNS数据通常与正常流量有显著不同,比如恶意DNS流量可能包含特定的时间模式、异常的流量统计值或不同的有效载荷内容。

(3)无法防御主域名攻击:一些最近的研究则专注于使用各种机器学习技术分析和检测恶意和加密的DNS流量。文献[9]的研究主要关注使用主域名作为过滤器来分类DNS流量,而不是查询。特征从多个子域中提取。作者使用了监督学习来检查DNS流量,并过滤出良性和恶意域名。然而,这种方法存在一个局限性,即无法检测主域名中的恶意查询,而仅仅依靠子域名不足以检测其他类型的攻击。

(4)预处理和优化不明确:一些使用机器学习技术进行恶意DNS流量检测的研究(如Banadaki等)在预处理和优化阶段的细节不明确,影响了方法的可重复性和可扩展性。

(5)特征选择和准确性问题:基于神经网络(NN)的入侵检测系统(如Ramakrishnan等的方案)虽然能够快速响应攻击,但在使用的特征数量和准确性上有很大的限制,且报告的平均准确率为90%,这表明该方法存在一定的性能瓶颈。

(6)缺乏评估指标的全面性:Jafar等的研究虽然尝试了多种机器学习方法(如逻辑回归、随机梯度下降、决策树和随机森林等),但只报告了准确度和计算时间,而未详细说明类内准确度和其他评估指标,缺乏全面的性能评估。

针对上述问题,本文构建了一种结合平衡训练策略与堆叠集成机制的可解释入侵检测模型,采用CIRA-CIC-DoHBrw-2020数据集,通过SMOTE方法与子模型划分实现类别平衡训练,利用Stacked Random Forest结构提升模型性能,并引入SHAP解释机制实现对每个特征贡献度的透明化分析,进一步部署可交互仪表盘用于可视化模型决策过程,从而提升检测系统在准确率、可解释性与可用性方面的综合表现。

三、研究思路

3.1 数据处理

文章使用的数据集是来自加拿大网络安全研究所(CIC)的公开数据集CIRA-CIC-DoHBrw-2020。

该数据集采用了两层方法来捕捉良性和恶意的DoH流量以及非DoH流量。在第一层中,通过访问不同的Web服务器生成了非DoH活动。DoH流量的收集使用了多个DNS隧道工具,如DNSCat2、Iodine和dns2tcp[12],[14]。在第二层数据收集中,恶意DoH流量是使用上述隧道工具生成的,这些工具将TLS加密的HTTPS数据发送到DoH服务器(如Adguard、Cloudflare、Google、Quad9)的DNS查询中。

3.1.1 特征分析

这篇文章的特征有很多,可以把特征进行分类。作者为了了解DoH和非DoH特征的差异,将特征值的分布用核密度估计图进行分析。

KDE是一种非参数方法,能够平滑地估计数据的概率密度函数,而不需要假设数据服从某种特定的分布形式。这使得KDE特别适合用于探索性数据分析,尤其是在处理复杂或未知分布的数据时。

具体来说,使用KDE进行特征分析的优点包括:

(1)KDE可以生成平滑的概率密度函数图形,比直方图更能清晰地揭示数据的分布形态。它能够展示不同类别流量(如恶意DoH、良性DoH和非DoH流量)在特征空间中的分布差异。

(2)KDE不假设数据的分布形态,因此能够有效地捕捉到数据中的复杂结构或尾部特征。在这种场景下,DNS流量的特征可能并不完全符合常见的分布类型(如正态分布、均匀分布等),而KDE能够灵活地适应这些复杂的数据模式。

(3)KDE不需要事先假定数据的分布模型。对于某些复杂的数据,基于假设的分布模型可能无法有效拟合数据,而KDE的非参数性质使其在这种情况下更加有效。

(4)KDE能够展示各特征之间的相对关系和分布情况。通过对不同类别流量的特征分布进行KDE分析,作者能够直观地看到哪些特征对于区分不同流量类别有显著作用,从而帮助他们选择最重要的特征。

  • 横坐标(X轴):表示特征值的范围。

  • 纵坐标(Y轴):表示概率密度。它显示了在给定的特征值(横坐标)下,该值出现的概率密度,即该值出现的相对频率。概率密度越高,表示该特征值在数据集中越常见。

(a) FlowBytesReceived(接收的字节数)

  • 接收字节数是衡量流量大小的直接指标。图中的分布显示,恶意DoH流量(用红色表示)相较于良性DoH流量(绿色)和非DoH流量(蓝色)有显著更多的接收字节。恶意DoH流量的KDE分布曲线明显更宽且更高,说明它通常涉及更多的数据传输。

  • 对比良性DoH和非DoH流量,恶意流量的字节数较大,这表明恶意DoH流量可能通过较大的数据包进行通信,这为分类模型提供了一个明显的特征。

(b) IncomingPacketMean(入站数据包的平均长度)

  • 良性DoH流量恶意DoH流量的均值分布相对较为集中,而非DoH流量的分布更为分散。

  • 恶意DoH流量的入站数据包平均长度比良性DoH流量非DoH流量的长,且其曲线集中在较大的包长范围。这可能意味着恶意DoH流量在通信时使用了不同的传输方式,导致数据包更大。

(c) IncomingPacketVariance(入站数据包的方差)

  • 这里,恶意DoH流量的方差较大,这意味着恶意DoH流量的数据包大小波动较大,有时会有小的数据包和大的数据包交替出现。相比之下,良性DoH流量的方差较小,表明其数据包大小较为一致。

  • 这种波动性可能反映了恶意流量的非一致性,例如,它们可能会通过不同的方式编码数据或隐藏其真实通信特征。

 3.1.2 训练集划分

数据集中的类别不平衡是指不同类别样本数量的不均衡。本文中的数据集,非DoH流量的样本量远大于良性DoH恶意DoH流量。为了解决这个问题,作者使用了SMOTE来对训练集进行修改。

SMOTE具体操作过程如下:

 (1)从训练数据中选择属于少数类的样本。在不平衡数据集中,少数类样本数量较少,而多数类样本数量较多。SMOTE主要聚焦于少数类样本,通过生成新的样本来增加其数量。

(2)对于每一个少数类样本,SMOTE会计算其在特征空间中的最近邻(一般选择k个最近邻)。最近邻是指在特征空间中距离当前样本最小的其他少数类样本。一旦找到最近邻样本,SMOTE就会从当前少数类样本与其选定的最近邻之间进行插值生成新的样本。

  • 随机选择一个最近邻。

  • 计算当前样本与该最近邻之间的差异(即特征向量的差)。

  • 按照该差异在特征空间中生成一个新的样本,该新样本的特征值在当前样本与最近邻之间的线性插值。

  • 通过这种方式,SMOTE可以生成多个新的少数类样本。

(3)通过以上步骤,可以生成一定数量的合成少数类样本。通过重复该过程,SMOTE可以生成足够的少数类样本,直到数据集中的少数类样本数量与多数类样本接近,从而实现数据平衡。

3.1.3 超参数调优

 接着对数据进行归一化处理。处理完成后进行超参数调优。文章采用GridSearchCV这个超参数网格搜索方法,通过遍历所有可能地超参数组合来寻找最佳的模型参数。

为了防止模型在训练集上过拟合,在网格搜索的过程中会使用交叉验证。就是把数据分为10份,9份训练集和1份验证集。

(不过这种方法搜索会不会很慢?)

3.2 模型实现

3.2.1 构建基础分类器-随机森林

随机森林被广泛认为是目前最准确的监督学习方法之一。它通过多个弱学习器(决策树)结合来形成一个强学习器,有效地提高了分类准确性。单棵决策树容易过拟合数据,但通过集成多棵树,随机森林能够有效地减少过拟合。每棵树的训练数据和特征都不同,使得它们的错误相互独立,从而降低整体模型的偏差和方差。在特征空间较高的情况下,随机森林能够有效工作,因为它采用了随机选择特征的方式,使得每棵树都从不同的角度进行学习。这对于高维数据(如网络流量数据)非常有用。

因此,文章使用随机森林作为基础分类器对三类网络流量进行分类,三类分别是:

  • Non-DoH 流量:普通的非DoH(DNS over HTTPS)网络流量,通常是常规HTTPS通信。

  • Benign-DoH 流量:正常的、合法的DoH通信,例如使用Chrome或Firefox浏览器进行的DNS加密解析。

  • Malicious-DoH 流量:利用DoH协议进行恶意活动的流量,如数据隧道传输、远程控制等(使用工具如dns2tcp、iodine等模拟)。

3.2.2  平衡且堆叠的分类器

为了解决多类别流量分类任务中性能不足的问题,提出的一种基于堆叠集成学习的方法。他的目标是:

  • 综合多个子模型的学习能力;

  • 构建一个更强大的预测模型;

  • 同时保持训练效率;

  • 并且具备良好的泛化能力和可扩展性。

 作者将整个分类模型设计为一个两层结构

(1)第一层:多个子分类器

  • 全部为Random Forests,每个随机森林包含 numTrees = 10,且限制最大树深为5max_depth = 5),目的是为了降低推理时的计算开销。

  • 每个子分类器是在不同平衡子集上训练的(见前文的 SMOTE 和三子集划分策略),从而捕捉到更多关于数据的多样性和边界信息。

(2)第二层:元分类器 

  • 使用一个逻辑回归(Logistic Regression)模型作为元分类器。

  • 它不直接使用原始特征,而是使用第一层所有子分类器对样本做出的预测输出(通常是类别概率或得分)作为新的输入特征进行再训练。

  • 这使得元分类器学会“如何融合多个子模型的判断”。

这样做的目的是为了增强模型的泛化能力。 单一模型容易在某些类别上过拟合或欠拟合,而堆叠可以综合多个模型的“判断特征”,从而提升整体的泛化性能。通过将训练数据划分为多个平衡子集,并对每个子集训练不同的随机森林子模型,可以获得多个在不同特征子空间上有差异的“视角”。各子模型在某些类别上的强弱互补,元分类器可以通过训练学习哪些子模型在特定情况下更可靠,从而动态加权融合

3.2.3 算法描述

总的来说,整个过程如下:

(1)特征预处理

        首先对数据集进行归一化处理,消除特征之间的量纲差异。

(2)生成平衡数据子集+SMOTE过采样

(3)构建基础分类器层

        首先初始化子模型,每个子模型是一个随机森林(RF),由10棵决策树组成,并限制树的深度为5。

(4)训练多个子模型

        对三个不用的数据子集分别训练三个随机森林子模型。

(5)对每个样本进行初步预测

        每个子模型都对训练集的样本进行预测,得到一组预测标签或概念分布,作为堆叠层的输入

(6)交叉验证+参数调优

        在每个子模型上进行交叉验证并使用网格搜索办法进行参数调优。

(7)堆叠训练分类器

        收集子模型对每个样本的预测结果,并将这些结果作为新的特征向量,训练一个逻辑回归模型作为元分类器。目的就是为了让逻辑回归学习“如何最优地组合多个子模型的判断”,提升整体预测性能。

(8) 使用 SHAP 的 TreeExplainer 做解释

        使用 SHAP(SHapley Additive Explanations)中的 TreeExplainer 方法,分析每个特征对模型最终决策的贡献。最终输出贡献图和贡献表。

SHAP(SHapley Additive exPlanations) 是一种基于合作博弈理论的可解释性方法,专门用于解释机器学习模型的预测结果,揭示各个特征对模型输出的贡献。SHAP提供了一个全局和局部的解释框架,帮助分析哪些特征在模型预测过程中起到了重要作用。它特别适用于复杂模型(如集成学习、深度学习等)中的特征重要性分析。

SHAP的核心思想来源于Shapley值,这是博弈论中的一个概念,用来衡量每个玩家在一个合作博弈中的贡献。在机器学习中,"玩家"就是模型中的特征,"合作博弈"指的是模型预测的过程,"收益"即为模型的预测结果。

Shapley值的公式:

SHAP值通过模型输出变化量来计算每个特征对最终预测结果的影响。以下是SHAP的基本步骤:

  1. 定义模型输出的价值:首先,需要通过模型预测对输入样本进行评分。例如,在分类任务中,模型输出的通常是类别的概率。

  2. 计算每个特征的贡献度:计算每个特征在所有特征组合中出现的所有可能情况,计算当该特征存在时与不存在时的预测差异。这就是Shapley值。

  3. 加权平均贡献:通过加权平均这些差异,SHAP为每个特征分配一个贡献值。这个贡献值可以是正的(推动预测结果向某一类别偏移)或负的(削弱某一类别的预测)。

SHAP提供了几种有用的可视化方式,帮助用户更直观地理解模型的决策过程:

  • SHAP Summary Plot(SHAP总结图):展示特征对模型预测的总体影响。每个点表示一个样本,横坐标表示特征的SHAP值,纵坐标表示特征名称,颜色表示特征值的大小。这个图可以帮助我们看到哪些特征在所有样本中最为重要。

  • SHAP Dependence Plot(SHAP依赖图):展示特定特征的SHAP值如何随着该特征值的变化而变化,用于分析特征与预测输出之间的关系。

  • SHAP Force Plot(SHAP力图):用于局部解释,显示单个样本的各个特征是如何推动模型预测向某一类别倾斜的。

四、实验评估 

4.1 评估标准

准确率、精确率、召回率、ROC曲线下面积(AUC)和F1分数。以及混淆矩阵。

4.2 实验结果

混淆矩阵对角线就是正确分类的样本,非对角线就是错误分类的样本。可以看到而已流量的表现非常好,良性流量会存在一定的误分类但是无伤大雅,因为和非DOH流量相似。

五、模型解释

5.1 特征重要图

左图横轴代表影响程度,从中可以发现网络流持续时间(Duration)数据包长度(Packet Length)相关的特征是区分恶意DoH和非DoH的重要特征,而数据包长度的相关特征是区分良性DoH与其他流量的主要依据。

5.2 依赖图和交互图

正的SHAP值表示某个特征对决策信心的支持;而负的SHAP值则表示该特征对决策信心的负面影响。

SHAP依赖图(Dependence Plots)

  • 目的:展示单个特征(如持续时间、发送字节数等)对模型决策的影响。

  • 横坐标:该特征的实际值。

  • 纵坐标:该特征对模型预测的SHAP值,反映特征在决策中的影响力。

  • Duration 越长,SHAP 值越大 → 对预测“恶意流量”的概率影响越强(正向贡献);Duration 很小的样本,SHAP 值为负,说明持续时间短的流量更可能被判为非恶意;临界点大约在 40秒左右:40秒以上对“恶意DoH”的预测是一个显著特征。

  • 结论持续时间恶意DoH流量的分类影响较大,长时间的流量(如超过40秒)倾向于被分类为恶意流量。

SHAP交互图(Interaction Plots)

  • 目的:展示两个特征之间的交互作用对模型预测的影响。

  • 横坐标 X:FlowBytesSent,即发送字节数;

  • 纵坐标 Y:SHAP value,表示 FlowBytesSent 对分类结果的影响;

  • 在左上角有一个明显聚集区:FlowBytesSent 较小但 FlowBytesReceived 很大(颜色红);这些点的 SHAP 值偏高 → 表示这类流量特征支持“恶意”的预测;也就是说:如果某条流量接收字节明显大于发送字节,它可能是恶意流量(如信息隐藏、隧道通信);

  • 例子:在FlowBytesSentFlowBytesReceived的交互图中,某些样本的接收字节数大于发送字节数,这可能是恶意流量的特征,因为在正常通信中,接收的字节数通常应小于或等于发送的字节数。

5.3 交互式可解释仪表板

接着作者将模型部署到一个交互式可解释仪表板,以透明的方式测试模型的功能。包含了贡献表和贡献图的可视化,它们有助于评估不同特征值在恶意DoH流量和非DoH流量样本分类中的贡献。

这是模型对一个恶意测试数据包的详细解释。部署的模型仪表板提供了预测的概率(表格和左上角的饼图),该恶意实例的预测概率为 76.4%
贡献图展示了哪些特征对该实例的分类决策产生了正向或负向贡献。例如:

  • 该测试流的持续时间为120.81秒,大于非DoH良性流量的阈值,对模型分类该流量为恶意流量贡献了正面影响(+14.68%)。

  • 紧随其后的贡献来自该实例的包时间方差(Packet Time Variance),这也是一个重要特征。

  • 然而,与通常的恶意流量相比,该流的数据包长度模式(Packet Length Mode)较低,这导致了模型信心值的负面影响(-5.49%)。

我们展示了非DoH测试数据包的类似分析。注意在两次决策中,**持续时间(Duration)**值的差异以及它们对模型的贡献差异:

  • 对于这个决策,模型显示出3.8%与恶意流量的相似性,这是通过一些特征实现的。我们可以识别出影响模型决策的特征。

  • 在此实例中,该流的数据包长度模式(PacketLengthMode)的值趋向于恶意流量组的较高值,而非DoH流量组的较低值,这表明它在训练期间表现出一定的恶意流量特征。

5.4 确定攻击源 

恶意DoH流量不是随机生成的,而是通过特定的恶意DNS隧道工具(如dns2tcp、dnscat2、iodine)创建的,这些工具通过TLS加密的HTTPS请求将DNS查询发送到DoH服务器,用于隐藏数据或进行攻击。作者探索了是否能够根据不同的恶意源(工具)对恶意DoH流量进行子分类。通过分析特征分布,他们尝试确定是否可以识别并区分不同工具生成的恶意流量。

这是特征分布图,用于比较三种不同恶意的DNS隧道工具在两个特征维度上的统计差异。

左边的图:

  • 横坐标:特征值 ResponseTimeSkewFromMode,表示响应时间与其“众数(mode)”的偏离程度;

  • 纵坐标:出现频率(样本数量)

  • 三条曲线分别对应三种工具

  • 蓝色:iodine,均值 μ=0.5208\mu = 0.5208μ=0.5208,标准差 σ=1.0837\sigma = 1.0837σ=1.0837

  • 红色:dnscat2,均值 μ=0.5042\mu = 0.5042μ=0.5042,标准差 σ=1.1384\sigma = 1.1384σ=1.1384

  • 绿色:dns2tcp,均值 μ=1.0973\mu = 1.0973μ=1.0973,标准差 σ=0.6079\sigma = 0.6079σ=0.6079

  • iodine 和 dnscat2 的分布非常相似,均值接近,曲线也重合度高,说明这两个工具生成的流量在这个特征上较难区分;

  • dns2tcp 的分布显著不同:它的均值更大(偏离更明显),但标准差更小(数据更集中),表现出与众不同的稳定模式

  • 结论:该特征在区分 dns2tcp 与另外两个工具上具有较强判别力,但对区分 iodine 与 dnscat2 不明显。

右边的图:

 

  • 横坐标:特征值 PacketTimeVariance,表示数据包到达时间的波动程度;

  • 纵坐标:出现频率;

  • 三条曲线分别对应三种工具

    • 蓝色:iodine,μ=879.47\mu = 879.47μ=879.47,σ=430.18\sigma = 430.18σ=430.18

    • 红色:dnscat2,μ=854.90\mu = 854.90μ=854.90,σ=434.22\sigma = 434.22σ=434.22

    • 绿色:dns2tcp,μ=197.35\mu = 197.35μ=197.35,σ=290.83\sigma = 290.83σ=290.83

  • iodine 与 dnscat2 的分布形状和数值非常接近,说明它们产生的流量在这个特征维度上仍然难以区分;

  • dns2tcp 明显不同:均值显著更低(只有~197),方差也小,这表明该工具生成的流量更加规律、数据包到达时间更一致

  • 结论:该特征对识别 dns2tcp 有效,但仍难区分 iodine 与 dnscat2。

六、研究展望 

我们的未来研究将应用可解释的DoH检测方法于基于深度神经网络的解决方案 [23]。目前,DoH流量仅能与浏览器流量区分开。然而,除了浏览器外,可能还有更多应用程序生成的HTTPS流量,其特征与DoH流量相似。DoH的其他恶意用途也可能是一个值得探索的研究课题。僵尸网络通常使用快速域名变动(fast domain fluxing)或域名生成算法(DGA)。僵尸网络中的DGA可能会滥用DoH 。未来的工作可以进一步区分与DGA相关的DoH流量和其他HTTPS流量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值