【论文阅读】NDSS 2024 Low-Quality Training Data Only?

仅使用低质量训练数据的一种鲁棒的加密恶意流量检测框架

Low-Quality Training Data Only? A Robust Framework for Detecting Encrypted Malicious Network Traffic
论文链接:预印本
代码:GitHub

叠甲!!:只是个人阅读笔记,不负责正确性,欢迎理性讨论。

摘要

  机器学习(ML)已在加密恶意流的检测上有很多应用,但包含足够数量的恶意流量准确标签的数据集比较少,使用低质量的训练数据训练的ML模型性能会下降。该文章主要为了解决真实环境中的低质量训练数据集的问题,希望模型能够检测由不断进化的恶意软件产生的加密恶意流量。文章提出了一个RAPIER框架,利用特征空间中正常流量紧密分布,而恶意流量较为分散的特点,生成新的恶意流量以增加训练数据。RAPIER包含两个预处理模块,用于将流量转换为特征向量,并校正标签噪声。文章使用CIRA-CIC-DoHBrw-2020 (DoHBrw)和CSE-CIC-IDS2018 (IDS)两个数据集对方法进行了验证,另外用企业提供的真实数据集也对算法进行了评估,效果显著。

I. 引言与背景

  有监督的恶意检测系统严重依赖于包含高质量数据样本的训练数据集,以此来构建准确且稳健的检测模型。手动标记大量数据成本高昂,而当前的标记方法在收集的数据集中导致潜在的标记噪声,同时,加密协议(例如,SSL/TLS)阻止我们手动纠正这些噪声。因此,现实中收集的训练数据集通常在质量和规模上都受到限制。文章希望解决低质量数据集训练和标签噪声的问题,提出了RAPIER,校正标签噪声,进行数据增强。

II. 问题描述

  开发一个可通过识别由恶意软件产生的加密恶意流量来检测内部网络(例如,校园或企业网络)中的恶意软件感染。系统通过检测网关并监测所有从内网主机传出的流量来检测恶意感染,因此需要收集和标记这些流量来创建数据集进行模型训练。但仍存在以下问题:

  • 恶意软件样本少,加密流量有效荷载少,导致训练集质量差,正常和恶意样本不平衡。
  • 由于样本收集需要人工检查,存在错误标记的样本,即不可忽略的标签噪声。
  • 网络流量数据会不间断产生,可能随时出现新的恶意样本,训练数据远少于测试数据。

令加密流量样本表示为 ( x i , y i ) (x_i, y_i) (xi,yi) , 其中:

  • x i x_i xi 代表数据流或两个主机间的会话。
  • y i y_i yi 为对应的真实标签,值为 0 0 0 代表正常流量,值为 1 1 1 代表异常流量。

系统输入为低质量的训练数据集和测试数据集,分别是:

  • 训练集: D ~ t r a i n = { ( x i , y ~ i ) } i = 1 N \widetilde{D}_{\boldsymbol{train}}=\left\{(x_{i},\widetilde{y}_{i})\right\}_{i=1}^{N} D train={(xi,y i)}i=1N
  • 测试集: D t e s t = { x t e s t } D_{test}=\{x^{test}\} Dtest={xtest}
  • 其中 N N N 远小于测试集的数量, y ~ i \widetilde{y}_{i} y i 是包含正确标签 y i y_i yi 的噪声标签。

目标: 使用训练集准确给出测试集每个 x t e s t x^{test} xtest 的真实标签,提升模型鲁棒性,使得模型更适用于真实场景下的检测。

方案特点:

  1. 针对了前两个问题,而以前的工作只针对了其中一个。
  2. 无需额外的数据来提升检测性能,只针对低质量数据集。因为大规模数据集的训练本身耗时较长,且容易导致隐私泄露。
  3. 不考虑极端的概念漂移,即恶意流量随时间推移表现出与正常流量相同分布的情况。可通过引入更细粒度的特征和重新收集整个训练集解决。

III. 具体实现

A. 概要

  框架设计基于正常和恶意流量的数据分布差异。以前的研究通常使用更具代表性的正常流量的特征来设计模型,而恶意软件的多样性使得感染主机的恶意流量也是多样化的,因此正常流量的数据分布趋于相似且密集,而恶意流量的数据分布更趋于稀疏。因此,如果使用一个噪声训练集,可以推断该训练集数据分布最密集和最稀疏部分的样本的标签,作为校正其他噪声标签样本的基础。 对于概念漂移的恶意流量(随时间推移数据分布接近正常流量的分布,模仿正常流量行为的攻击者),借噪声训练推断新恶意流量的数据分布,合成新的训练数据,以此提升检测器对未知恶意流量的检测性能。

  RAPIER的结构如图1所示,主要包括四个部分:

注:原文中说主要包括三个部分,指图中的1、2、3,为了看明白图,还是分四个部分来说。

RAPIER整体框架
特征提取模块(feature extraction module):采用改进的自编码器(GRU-AE)结构提取原始数据细粒度的特征,同时也能消除噪声标签对特征提取的影响。GRU-AE结构包含一个编码层,两个Bi-GRU模块,以及一个重构模块。

标签噪声校正模块( label noise correction module):应用自回归生成模型来准确估计有限但高维的训练数据的分布,并基于它们的分布特征来修改训练样本的标签。从图中猜测作者想用概率密度函数来对正常和异常的流量进行数据分布分析,进而找到标签噪声,并对其进行校正。

数据增强模块(data augmentation module):经过标签校正后,使用校正过的训练集来进行数据增强,通过MADE1模块推断新恶意数据的可能分布区域,使用改进的GAN来生成位于这些区域的新的恶意流量。由于生成了新的正常流量(文中的normal training data 个人认为是说正常流量,有不同意见欢迎一起讨论~),防止了生成新恶意流量加剧数据不平衡,使得ML模型的决策边界保持不变。

基于ML的检测模块(ML -based detection module):该模块使用合成的新训练数据和经过标签校正的数据一起训练。该模块采用co-teaching和MLP构建,输入特征向量来获得检测结果(正常or异常)。测试阶段直接使用这一模块即可。

  说说个人简单理解的 co-teaching:
  就是让两个模型一起在mini-bacth上训练,然后互相交换loss小的batch的参数,可以有效防止标签噪声对训练的影响。作者也说了其他方法例如解耦也可以用。

B. 特征提取

  现有的研究在特征提取阶段存在部分缺点:

  • 特征提取需要处理各种版本和类型的加密协议所加密的有效荷载,针对特定版本的元数据或消息设计的特征提取方法不能捕获表示网络流量细粒度行为的特征。
  • 现有的基于监督的流量分析方法没有考虑低质量数据集种的标签噪声,容易导致不准确的特征选择。

  特征提取框架由自动编码器(Auto-Encoding, AE)和两层Bi-GRU组成,网络框架为:嵌入层👉Bi-GRU(编码)👉Bi-GRU(解码)👉重构层。其中,AE的编码解码器基于Bi-GRU改进,以此提取网络流的细粒度特征。通过五元组将原始加密流量划分为网络流,将网络流的包长度序列(sequence of packet length)作为特征提取模块的输入。

流程建模

  • 流的包长度序列: l = [ l 1 , l 2 , . . . , l n ] l=[l_{1},l_{2},...,l_{n}] l=[l1,l2,...,ln], 其中, l i l_i li表示第 i i i个包的长度。
  • 嵌入层: M ∈ R L × V \begin{aligned}M&\in\mathbb{R}^{{L}\times V}\end{aligned} MRL×V,其中 L L L为单个数据包长度, V V V为嵌入的维度。
  • l l l 转换为 v = [ v 1 , v 2 , . . . , v n ] v=[v_{1},v_{2},...,v_{n}] v=[v1,v2,...,vn],即词向量,用 v i v_i vi表示 M M M中流 l i l_i li V V V维向量, n ∈ V n \in V nV
  • 主要计算过程:
    h t = G R U ( h t − 1 , v t ) h_t=GRU\left(h_{t-1},v_t\right) ht=GRU(ht1,vt)
      其中, v t v_t vt t t t 时刻的输入, h t h_t ht t t t 时刻的隐藏状态,其受 h t − 1 h_{t-1} ht1的影响。 h t , h t − 1 ∈ R H h_{t},h_{t-1}\in\mathbb{R}^{H} ht,ht1RH H H H为隐藏层数。
  • 编码器:
    f e n c o d e r = ( h → n ( 1 ) , h ← 1 ( 1 ) , . . . , h → n ( B ) , h ← 1 ( B ) ) ∈ R ( 2 B H ) = R d f_{encoder}=\left(\overrightarrow{h}_n^{(1)},\overleftarrow{h}_1^{(1)},...,\overrightarrow{h}_n^{(B)},\overleftarrow{h}_1^{(B)}\right)\in\mathbb{R}^{(2BH)}=\mathbb{R}^d fencoder=(h n(1),h 1(1),...,h n(B),h 1(B))R(2BH)=Rd
      其中, h → n ( B ) \overrightarrow{h}_n^{(B)} h n(B) 代表前向第 n n n 个时刻的隐藏状态, h ← n ( B ) \overleftarrow{h}_n^{(B)} h n(B) 代表后向的。 d = 2 B H d=2BH d=2BH,代表向量的维度。
  • 解码器:使用 f e n c o d e r f_{encoder} fencoder作为第一层的输入,后续的计算与编码器相同。
  • 重构层:使用多层感知机(MLP)进行重构,得到重构后的包长度序列 l ^ \hat{l} l^

训练

  • 重构损失:使用随机梯度下降(SGD)优化,计算 l ^ \hat{l} l^ l l l 的损失,以便编码器准确学习加密网络流量的表示。

  本文方法的优势相比于同类型使用AE的FS-Net2不需要标签信息进行训练,而FS-Net是监督学习。

PS:但是从代码看也不算无监督呢,手动分开了benign和malicious两组数据文件,当然不用打标签捏。而且在处理pcap时,使用IP作为label项了。在CICIDS2018里,src IP和 target IP好像可以区分恶意的类型(官方说明里有一个表能对照)。

C. 标签噪声校正

  作者基于对DoHBrw2020、IDS2018、AAGM2017三个数据集的观察,得出可利用正常和恶意数据分布的差异来实现标签噪声的校正。具体的,对于每个数据集,随机选择500条正常数据和500条恶意网络流量,使用本文的特征提取模块提取特征向量。接着使用TSNE算法将特征向量的维数降为1,用以进行分布计算。最后使用核密度估计得到每种类型数据的分布。如图所示,正常数据的密度高于恶意数据。
各数据集的数据分布图

  如下图所示,特征空间内样本密度高的代表正常数据,密度低的代表恶意流量。文章据此来将样本分别标注。
在这里插入图片描述
 但是实现上述过程仍存在需要解决的问题:

  • 提取的特征都是高维特征,想要准确估计数据分布,不能对数据进行降维。且核密度估计法对于高维数据的估计并不准确。
  • 对于操作频次低的正常流量,和恶意流量的分布对比,可能差异不明显,仅仅基于分布差异来推断真实标签比较困难。

 本文的解决办法是基于深度生成模型3(DGM)构造了标签噪声校正模块。深度模型在捕捉深层特征上具有优越性,能够为高维数据进行准确建模。具体方法是,使用MADE模型进行分布估计,通过MADE学习数据的概率密度函数来对数据进行建模。

联合概率密度

  • 记MADE的输入为: x ∈ X , x = { x 1 , x 2 , x 3 , … , x d } ∈ R d x\in X,x=\{x_1,x_2,x_3,…,x_d\}\in \mathbb{R} ^d xX,x={x1,x2,x3,,xd}Rd
  • MADE的输出为 x x x 的条件概率密度: p ( x 1 ) , p ( x 2 ∣ x 1 ) , p ( x 3 ∣ x 1 x 2 ) , . . . , p ( x d ∣ x 1 x 2 x 3 . . . x d − 1 ) p(x_1), p(x_2|x_1), p(x_3|x_1x_2), . . . , p(x_d|x_1x_2x_3 . . . x_{d−1}) p(x1),p(x2x1),p(x3x1x2),...,p(xdx1x2x3...xd1)
  • 联合概率密度为: p ( x ) = ∏ d i = 1 p ( x i ∣ x 1 x 2 . . . x i − 1 ) p(x)=\prod_{d}^{i=1} p(x_i|x_1x_2...x_{i-1}) p(x)=di=1p(xix1x2...xi1) 其中, p ( x i ∣ x 1 x 2 . . . x i − 1 ) = p M ( x i ∣ ζ i ) p(x_i|x_1x_2...x_{i-1})=p_\mathcal{M} (x_i|\zeta _i) p(xix1x2...xi1)=pM(xiζi) p M p_\mathcal{M} pM 是有可学习参数 ζ i \zeta _i ζi 的高斯混合函数。

  MADE使用SGD来学习 X X X 的概率密度函数。样本的概率密度大致反映了样本在数据分布中的位置,例如在最密集或最稀疏的区域,这有助于推断样本的真实标签。

训练流程

  • 输入:仅使用原始低质量数据集 D ~ t r a i n \widetilde{D}_{\boldsymbol{train}} D train 中标记了正常标签的数据 w ~ t r a i n \widetilde{w}_{\boldsymbol{train}} w train 作为训练MADE的输入,以得到样本的概率密度。这样做的好处是:由于 w ~ t r a i n \widetilde{w}_{\boldsymbol{train}} w train 相比原数据集包含更少的真实恶意数据(因为有错误标签),不容易出现MADE把高密度值赋给真实的恶意数据,同时也能扩大正常和恶意数据之间的差异。
  • 标签校正:
    • 从原始数据集中选择一个集合 H ~ t r a i n \widetilde{H}_{\boldsymbol{train}} H train ,该集合内的样本的概率密度比集合外样本要高。 H ~ t r a i n \widetilde{H}_{\boldsymbol{train}} H train 的大小设为 α ⋅ ∣ D ~ t r a i n ∣ \alpha\cdot\left |\widetilde{D}_{\boldsymbol{train}}\right | α D train ,其中, α ∈ ( 0 , 1 ) \alpha \in (0, 1) α(0,1) ,是一个预定义的参数。
    • 测量 H ~ t r a i n \widetilde{H}_{\boldsymbol{train}} H train 中每个样本到其他样本的平均欧几里德距离,并选择距离较小的一半样本,表示为 N s N_s Ns 。这些样本位于数据分布密集的区域且彼此相似,因此标记为高置信度的正常流量。
    • 对于 D ~ t r a i n − N s \widetilde{D}_{\boldsymbol{train}} - N_s D trainNs 中的样本,同样计算其与 N s N_s Ns 中每个样本的平均欧几里德距离,选择另一组距离更大的样本,样本大小要与 N s N_s Ns 相同以防推断其他样本的真实标签时出现数据不平衡,记为 M s M_s Ms M s M_s Ms 中的样本位于数据分布的稀疏区域,与 N s N_s Ns 最不相似,因此将 M s M_s Ms 重新标记为恶意训练数据。
    • 最后,利用标签校正集 N s N_s Ns M s M_s Ms ,通过集成学习推断出 D ~ t r a i n \widetilde{D}_{\boldsymbol{train}} D train 中其他样本,即 D ~ t r a i n − N s − M s \widetilde{D}_{\boldsymbol{train}} - N_s - M_s D trainNsMs 的真实标签。集成学习相比于单分类器,更有利于在有限的数据下提升分类精度,且对标签噪声更鲁棒。基于 N s N_s Ns M s M_s Ms 构建了七个经典机器学习分类器的集成,包括线性判别分析、AdaBoost、随机森林、逻辑回归、高斯朴素贝叶斯、SVC和XGBoost,该集成分类器使用特征提取模块提取的特征向量。最终得到标签校正的训练集 D t r a i n D_{train} Dtrain ,带有校正标签的训练样本分别表示为 D n o r m a l D_{normal} Dnormal D m a l i c i o u s D_{malicious} Dmalicious

D. 数据增强

  数据增强模块的目标是根据校正的训练集 D t r a i n D_{train} Dtrain 合成能够提升模型性能的新数据,其的特殊之处在于以下几点:

  • 要确保数据多样性,防止模型过拟合。
  • 测试数据的分布与训练数据的分布可能不同,因为恶意流量也在逐渐进化(接近正常流量分布),因此传统的过采样方法如GAN不适用。

过采样方法本质上复制原始训练数据,而普通GAN模型只能生成遵循原始训练数据分布的新数据。

  为了解决上述问题,作者认为新的恶意数据 M B M_B MB 都会模仿正常数据,因此在分布上更接近正常数据的边界。此外,新的恶意流量例如 0-day 攻击的分布可能位于所有原始训练数据之外,记作 M O M_O MO 。如果单纯在这两个区域生成新数据,容易加剧数据不平衡,导致机器学习的决策边界向正常数据移动,产生更多的误报。因此,文章使用原始训练数据的正常数据的分布边界作为标准,以此来生成增强数据,包括正常( N B N_B NB)和异常。

依据数据边界生成新数据
实现过程

  • 概率密度函数可作为分布区域的函数建模:
    • 使用MADE来估计 D n o r m a l D_{normal} Dnormal D m a l i c i o u s D_{malicious} Dmalicious 的分布,记概率密度函数分别为: p N ( ⋅ ) p_N(\cdot) pN() p M ( ⋅ ) p_M(\cdot) pM()
    • 数据增强策略可表示为(像置信区间的形式): M B = { x ∣ p M ( x ) < γ , ω 1 ≤ p N ( x ) < ω 2 } M O = { x ∣ p M ( x ) < γ , 0 ≤ p N ( x ) < ω 1 } N B = { x ∣ p M ( x ) < γ , ω 2 ≤ p N ( x ) < ω 3 } M_{B}=\{x|p_{M} (x)<\gamma,\quad\omega_{1}\leq p_{N} (x)<\omega_{2}\}\\M_{O}=\{x|p_{M} (x)<\gamma,\quad0\leq p_{N} (x)<\omega_{1}\}\\N_{B}=\{x|p_{M} (x)<\gamma,\quad\omega_{2}\leq p_{N} (x)<\omega_{3}\} MB={xpM(x)<γ,ω1pN(x)<ω2}MO={xpM(x)<γ,0pN(x)<ω1}NB={xpM(x)<γ,ω2pN(x)<ω3}
      其中, x x x 为数据点, γ \gamma γ, ω 1 \omega_1 ω1, ω 2 \omega_2 ω2, ω 3 \omega_3 ω3均为控制边界的预定义阈值。
    • 生成数据: P ( x ) = { C p M ( x ) < γ , θ 1 ≤ p N ( x ) < θ 2 , τ 1 ⋅ 1 p M ( x ) p M ( x ) ≥ γ , τ 2 ⋅ p N ( x ) p M ( x ) < γ , p N ( x ) < θ 1 , τ 3 ⋅ 1 p N ( x ) p M ( x ) < γ , p N ( x ) ≥ θ 2 , \begin{aligned}P(x)=\begin{cases}C&p_M(x)<\gamma,\theta_1\leq p_N(x)<\theta_2,\\\tau_1\cdot\frac{1}{p_M(x)}&p_M(x)\geq\gamma,\\\tau_2\cdot p_N(x)&p_M(x)<\gamma,p_N(x)<\theta_1,\\\tau_3\cdot\frac{1}{p_N(x)}&p_M(x)<\gamma,p_N(x)\geq\theta_2,\end{cases}\end{aligned} P(x)= Cτ1pM(x)1τ2pN(x)τ3pN(x)1pM(x)<γ,θ1pN(x)<θ2,pM(x)γ,pM(x)<γ,pN(x)<θ1,pM(x)<γ,pN(x)θ2,
      其中, C C C 为常数, τ 1 \tau_1 τ1, τ 2 \tau_2 τ2, τ 3 \tau_3 τ3 为正则化项, θ 1 \theta_1 θ1, θ 2 \theta_2 θ2 根据生成的需求,替换为对应区域的阈值 ω X , X = 1 , 2 , 3 \omega_{X, X=1, 2, 3} ωX,X=1,2,3,通过在目标区域进行均匀采样生成新数据,降低了新数据出现在分布外的概率。
  • 构建数据增强GAN
    • 通过上述建模,设计GAN,用定制化的损失函数以分别生成对应类型的数据。如下图所示,GAN包含3个生成模块和一个判别器:在这里插入图片描述
    • 损失函数: L K L ( X G ∣ ∣ P ) = − H ( X G ) + E x ∈ X G , p M ( x ) ≥ γ [ log ⁡ p M ( x ) ] − E x ∈ X G , p M ( x ) < γ , p N ( x ) < θ 1 [ log ⁡ p N ( x ) ] + E x ∈ X G , p M ( x ) < γ , p N ( x ) ≥ θ 2 [ log ⁡ p N ( x ) ] \begin{aligned} \mathcal{L}_{KL(X_{G}||P)}=& -\mathcal{H}(X_{G}) \\ &+\mathbb{E}_{x\in X_G,p_M(x)\geq\gamma}\left[\log p_M(x)\right] \\ &-\mathbb{E}_{x\in X_G,p_M(x)<\gamma,p_N(x)<\theta_1}\left[\log p_N(x)\right] \\ &+\mathbb{E}_{x\in X_{G},p_{M}(x)<\gamma,p_{N}(x)\geq\theta_{2}}\left[\log p_{N}(x)\right] \end{aligned} LKL(XG∣∣P)=H(XG)+ExXG,pM(x)γ[logpM(x)]ExXG,pM(x)<γ,pN(x)<θ1[logpN(x)]+ExXG,pM(x)<γ,pN(x)θ2[logpN(x)]
        其中 X G X_G XG 表示由单个生成器所生成的样本的分布, H ( X G ) \mathcal{H}(X_{G}) H(XG) 用PT正则项替代(参照此处Energy-pt),后三项用于计算KL散度。 M O M_O MO的最小边界为0,代表特征空间中没有正常样本的区域都在 M O M_O MO区域内,因此保证了在不包含现有样本的区域生成新样本,使得该数据增强方法优于普通的GAN。
        此外,还要最小化生成数据与原始训练数据的偏差,即 X i n = { x ∣ x ∈ D t r a i n , p M ( x ) < γ , θ 1 ≤ p N ( x ) < θ 2 } X_{in} = \{x | x \in D_{train}, p_M(x)<\gamma, \theta_1 \leq p_N(x) < \theta_2\} Xin={xxDtrain,pM(x)<γ,θ1pN(x)<θ2}。损失函数为: L f = ∣ ∣ E x ∈ X G [ D f ( x ) ] − E x ∈ X i n [ D f ( x ) ] ∣ ∣ 2 \mathcal{L}_f=||\mathbb{E}_{x\in X_G}\left[\mathcal{D}_f(x)\right]-\mathbb{E}_{x\in X_{in}}\left[\mathcal{D}_f(x)\right]||_2 Lf=∣∣ExXG[Df(x)]ExXin[Df(x)]2 其中, E \mathbb{E} E为期望函数, D f D_f Df为判别器的第一层。最终得到每个生成器的损失函数 L G = L K L ( X G ∣ ∣ P ) + L f \mathcal{L}_G = \mathcal{L}_{KL(X_{G}||P)} + \mathcal{L}_f LG=LKL(XG∣∣P)+Lf
        定义 D ( x ) \mathcal{D}(x) D(x)为对样本 x x x的预测概率, D ( x ) ∈ [ 0 , 1 ] \mathcal{D}(x) \in [0,1] D(x)[0,1], D ( x ) \mathcal{D}(x) D(x)越大,代表样本越可能是恶意流量。判别器损失函数为: L D = E x ∈ D n o r m a l [ l o g ( D ( x ) ) ] + E x ∈ D m a l i c i o u s [ l o g ( 1 − D ( x ) ) ] + E x ∈ G M B [ l o g ( 1 − D ( x ) ) ] + E x ∈ G M O [ l o g ( 1 − D ( x ) ) ] + E x ∈ G N P [ l o q ( D ( x ) ) ] . \begin{aligned} \mathcal{L}_{D}& =\mathbb{E}_{x\in D_{normal}}\left[log(\mathcal{D}(x))\right]+\mathbb{E}_{x\in D_{malicious}}\left[log(1-\mathcal{D}(x))\right] \\ &+\mathbb{E}_{x\in G_{MB}}\left[log(1-\mathcal{D}(x))\right]+\mathbb{E}_{x\in G_{MO}}\left[log(1-\mathcal{D}(x))\right] \\ &+\mathbb{E}_{x\in G_{N_{P}}}\left[loq(\mathcal{D}(x))\right]. \end{aligned} LD=ExDnormal[log(D(x))]+ExDmalicious[log(1D(x))]+ExGMB[log(1D(x))]+ExGMO[log(1D(x))]+ExGNP[loq(D(x))].

IV. 评估

A. 实验设置

数据集
  使用 CIRA-CIC-DoHBrw-2020 (DoHBrw) 和 CSE-CIC-IDS2018 (IDS) 两个数据集进行实验,为增加恶意流量样本,还使用了CIC-InvesAndMal2019 数据集。后两者合并为 IDS。

有无同学解答下论文里说用Alexa Top list去过滤攻击时间内产生的流量是怎么做的?

  划分训练集T1 和测试集 T2:
在这里插入图片描述
Baseline

  • 加密恶意流量检测算法:ETA, FS-Net
  • 恶意软件检测方法:DT, OODS
  • 机器学习方法:SMOTE, Co-Teaching

  通过结合上述方法来作为实验的baseline。结合是恶意软件检测方法的框架,将其使用的host-level特征和恶意检测器分别替换为有时序特征的flow-level特征和FS检测器,创建基线DT+FS以及OODS+FS。此外,基于DT、ODDS和FS设计了另一个基线DT+ODDS+FS。对于低质量的训练集,DT+ODDS+FS利用DT校正标签噪声,通过ODDS合成新的训练数据,然后使用校正过的数据训练FS-Net。ETA同理,得到DT+ETA, OODS+ETA, DT+OODS+ETA。此外,基线SMOTE+FS和Co+FS分别利用SMOTE和Co-teaching来提高训练集的质量,然后训练FS来执行检测。

B. 检测性能比较

  • 不同噪声比下各方法的F1-score比较
    在这里插入图片描述
  • 30%噪声比下使用不同训练集大小所得到的各方法的F1-score
    在这里插入图片描述
  • 30%噪声比下,不同比例的恶意样本对所提方法(RAPIER)性能的影响(训练集大小设置为500)
    在这里插入图片描述
  • 其他标签噪声的设置情况下,不同噪声比下各方法的性能
    在这里插入图片描述

C. 消融实验

特征选择模块

  换成ETA 和 CICFlowMeter的特征提取模块后F1-score降为0,分析原因可能是CICFlowMeter提取的粗粒度统计特征不能区分恶意与正常流量,MADE模块无法使用ETA提取的高维特征进行数据生成,这证明细粒度的特征能够提升检测的效果。

标签校正模块
  与SOTA方法DT和Co-teaching比较,在DoHBrw和IDS数据集上进行实验,训练集大小以及噪声比的设置固定,结果如下图所示。可以看出所提的方法校正噪声的比例明显大于其余两个方法。
在这里插入图片描述
数据增强模块
  与其他数据增强方法ODDS, SMOTE,GAN以及没有数据增强模块的情况进行对比,得到对应的混淆矩阵,其精确度(P),召回率(R),以及F1-score记录在表中:
**在这里插入图片描述**

D. 参数讨论

过滤比 α \alpha α

α \alpha α 用来在标签校正的第一步(见III.C.训练流程部分)控制高置信度正常样本的比例,设置5个不同的比例,得到的结果如下:
在这里插入图片描述
阈值 ω 1 , ω 2 , ω 3 \omega_1, \omega_2, \omega_3 ω1,ω2,ω3

  三个阈值用来控制生成样本的目标区域的大小和位置(见III.D.实现过程部分),得到的结果如下。其中 ω 3 = ω 2 + 0.1 \omega_3 = \omega_2 + 0.1 ω3=ω2+0.1
在这里插入图片描述

GAN模块数 η \eta η

  设置训练集大小为500,噪声比为20%~45%之间。结果如下图所示:
在这里插入图片描述

参数实验证明了所提方法在各方面的稳定性。

E. 真实环境实验

在这里插入图片描述
在这里插入图片描述

其他实验结果见论文附录。

V. 讨论

  • 极端标签噪声:当噪声比超过50%(比随机标记还离谱)的时候,性能必然下降,但所提的方法仍然比其他方法的稳定性好。
  • 训练开销:由于低质量的训练数据集是有限的,深度学习模型训练速度很快。此外用于数据增强的模块中的GAN可以并行训练,也能够提升训练效率。即使数据规模扩大,也可以用一些最近的提升效率的方法例如over-specification或dropout等。
  • 长期部署下的性能:新的正常流量可能会被错误识别,可以通过聚类或重新收集数据集的方式来改善,或在未来工作中再探讨。
  • 检测逃避:对抗性检测和模仿正常流量的攻击可能需要进一步研究。但理论上本文所提出的检测系统具有一定的鲁棒性,能够有效应对这些攻击。

VI. 相关工作

  作者在传统恶意流量检测和加密恶意流量检测两个方面进行了相应的文献调研。传统恶意流量检测方法主要关注诸如URL和HTTP请求之类的纯文本恶意流量,通常从流量有效载荷中提取攻击签名或特征。而加密恶意流量检测方法是近期发展较为火热,这些方法大多数都有类似的设计,通过手动特征工程或自动特征提取来描述加密流量的行为,并构建基于机器学习或深度学习的检测器。缺点是数据收集耗时,也容易出现数据泄露的问题。

VII. 总结

  RAPIER同时克服了标签噪声和训练数据不足的问题,并在两个公共数据集上验证了其优越性。亮点在于使用MADE进行标签校正,并有针对性的构建多个GAN来生成有效的样本以增强数据。


  1. M. Germain, K. Gregor, I. Murray, and H. Larochelle, “Made: Masked autoencoder for distribution estimation,” pp. 881–889, 2015. ↩︎

  2. C. Liu, L. He, G. Xiong, Z. Cao, and Z. Li, “Fs-net: A flow sequence network for encrypted traffic classification,” in IEEE INFOCOM, 2019, pp. 1171–1179. ↩︎

  3. Diederik P. Kingma, Danilo J. Rezende, Shakir Mohamed, and Max Welling. 2014. Semi-supervised learning with deep generative models. In Proceedings of the 27th International Conference on Neural Information Processing Systems - Volume 2 (NIPS’14). MIT Press, Cambridge, MA, USA, 3581–3589. ↩︎

  • 14
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值