Feature Selection via GANs (GANFS): Enhancing Machine Learning Models for DDoS Mitigation
Harsh Patel
cs.CR, cs.AI, cs.LG
2025-04-22
GANFS:只在攻击流量上训 GAN,用判别器扰动敏感度排特征;CIC-DDoS2019 上 99.99% 准确率,和卡方打平。
DDoS(分布式拒绝服务)攻击靠海量流量打瘫目标服务。要识别它,网络流量通常被拆成几十上百个统计维度(包长、时延、各类 TCP flag 计数),CIC-DDoS2019 这类基准数据集就有 80 多个特征。其中冗余和无关的维度会拖慢检测、引发过拟合,反而压低准确率。
特征选择就是从中挑出真正有用的子集。三类经典做法各有软肋:滤波法(卡方、ANOVA、互信息)按统计相关性打分,快但忽略特征间的相互作用;包装法(如递归特征消除 RFE)反复重训分类器试子集,准却贵;嵌入法(随机森林自带的重要性)介于两者之间。这篇想找一个不需要标签、又能扩展到大规模流量的新路径。
说句实话:这个问题已经被便宜的统计法解得不错,新方法必须在别处证明自己。
GANFS 的核心是把 GAN 的判别器当成「特征质量评估器」,全程不需要分类标签。
训练阶段只喂攻击流量(label=1),完全无监督地训一个 GAN:生成器是两层 MLP(64/128 神经元),把噪声变成假的攻击样本;判别器是两层 MLP(128/64),学会区分真假攻击。训练用 500 个 epoch、batch 4096、Adam 优化器、二元交叉熵。训完直接丢掉生成器,只留判别器。
关键一步是扰动敏感度分析。对每个特征,按 {0.5、1.0、2.0、5.0、10.0} 倍幅度双向扰动,看判别器对真实攻击样本的置信度变化多少。变化大的特征,就是判别器判断「这是不是真攻击」时最依赖的维度,因而最关键。最后给全部 81 个特征排出一张重要性表,取 top-k 喂给下游分类器(逻辑回归或随机森林)。
设计逻辑站得住:判别器要分辨真假攻击,必然抓住最能刻画攻击的特征,所以扰动这些特征对它的冲击最大。这套打分不依赖标签,也省去了包装法那种反复重训。这是这篇真正的贡献点。
排在前面的特征是 URG Flag Count、Protocol、Inbound、Bwd Packet Length Max、Down/Up Ratio,大多是 TCP flag 和协议特征,符合反射放大型 DDoS 的直觉。
数据集 CIC-DDoS2019,原始约 2800 万条采样到约 400 万条,预处理后 81 个特征。GANFS 与互信息、卡方、ANOVA、RFE、随机森林重要性同台比较,下游分类器用逻辑回归和随机森林。
随机森林分类器下各方法的指标:
| 方法 | 准确率 | F1 | AUC-ROC |
| GANFS | 99.9995% | 99.9997% | 0.99999999 |
| 互信息 | 99.9998% | 99.9999% | 0.99999 |
| ANOVA | 99.9996% | 99.9998% | 0.99976 |
| 卡方 | 99.9995% | 99.9998% | 0.99976 |
GANFS 配逻辑回归是 99.954% 准确率、99.9769% F1、0.99976 AUC。
需要看清楚的一件事:GANFS 和基线打平,没有跑赢。准确率上它甚至略低于互信息(99.9998%)和 ANOVA(99.9996%)。论文一边写「comparable(相当)」一边写「higher(更高)」,可它自己给的数字对不上「更高」这半句。所有方法都挤在 99.99% 以上,差距落在第五、第六位有效数字,而数据集攻击流量占比极高,这个区间几乎什么方法都够得到,这点差距更像噪声而非优势。
论文真正想主打的是训练效率,称 GANFS「在训练时间上最高效」。但具体的秒数只画在图里,正文没有给出可核对的数字。
对从业者来说,价值不在那个准确率(打平了),而在配方:一套只用攻击样本、不需要标签、也不用反复重训分类器的特征排序。当你手里有大量攻击抓包但干净的标注流量很少,或者特征集频繁变动、想避开包装法的重训开销时,这个思路有价值。
作为 CIC-DDoS2019 上卡方的替代品,今天没有准确率层面的理由换它。无监督这个角度在更难、信噪比更低的数据集上能不能兑现,这篇没测。
一句话:这是方法思路论文,不是刷榜论文。
作者自己承认的:GAN 训练本身吃算力、耗时间(和它主打的效率卖点有点矛盾);不同轮次跑出的特征排序会有小波动,顶部特征还算稳定;这套是离线的,特征集一变就得重训下游分类器,不适合实时高可用系统;只做了 DDoS 对正常流量的二分类,没碰多分类,尽管数据集里有 12 种攻击类型;基线分类器都没调参,用的默认值。
读下来的存疑:所谓「优于」基线不被它自己的数字支持,准确率差距在第六位小数且部分方向相反;约 400 万条、高度不平衡的样本上没有重复实验和误差线,却承认了 GAN 的随机性;训练时间的具体数字只在图里,正文没给,效率这个唯一可能的卖点等于没被证明;数据集近乎线性可分,导致任何特征选择都能到 99.99%,这条基准根本分不出方法高下。
「无监督」的说法也要打折扣:训 GAN 仍然需要标注好的攻击样本,省下的只是正常样本标签和子集重训,不是完全无监督。