《Computer Networks》:uBPF-based network intrusion detection and prevention systems empowered by machine learning algorithms
编辑推荐:
网络入侵检测与防御系统(NIDPSs)在识别与阻断恶意流量方面发挥着关键作用。利用扩展伯克利包过滤器(eBPF)的内核内NIDPSs通过直接在内核空间运行,已实现较高的检测性能与吞吐量。然而,基于eBPF的NIDPSs在多样化运行时环境下面临可移植性挑战,限制
网络入侵检测与防御系统(NIDPSs)在识别与阻断恶意流量方面发挥着关键作用。利用扩展伯克利包过滤器(eBPF)的内核内NIDPSs通过直接在内核空间运行,已实现较高的检测性能与吞吐量。然而,基于eBPF的NIDPSs在多样化运行时环境下面临可移植性挑战,限制了其在AF_XDP与数据平面开发套件(DPDK)等内核旁路框架上的部署。本文提出了一种由机器学习(ML)算法赋能的用户空间BPF(uBPF)NIDPS,并将其与内核旁路框架集成,以在多样化运行时环境下实现可移植性,同时准确高效地检测与防御分布式拒绝服务(DDoS)攻击。研究人员从DDoS检测性能与数据包处理性能两个角度对所提出的NIDPSs进行了评估。评估结果表明,所提出的NIDPS在DDoS检测方面实现了较高的分类性能,同时使相同的基于uBPF的检测逻辑能够在不同的数据包处理框架上运行。此外,运行于DPDK数据平面上的基于uBPF的NIDPSs实现了比所评估的内核内NIDPS实现高3.38–8.60倍的数据包处理速率。
研究背景方面,分布式拒绝服务(DDoS)攻击对网络安全构成重大威胁,可导致服务中断与经济损失。网络入侵检测与防御系统(NIDPSs)通过监控与分析网络流量来检测和防御恶意活动与策略违规,在网络安全基础设施中发挥重要作用。机器学习(ML)技术通过学习网络流量模式与识别异常,在准确检测DDoS方面展现出前景。然而,基于ML的NIDPSs仍面临两大挑战:数据包处理性能与部署可移植性。传统基于ML的NIDPSs通常运行于用户空间,因内核空间与用户空间之间频繁的上下文切换而产生性能瓶颈,在高网络负载下成为严重瓶颈,阻碍DDoS攻击的实时检测与防御;且此类系统往往缺乏程序安全检查机制,可能导致不可靠行为与意外崩溃。现代网络横跨云基础设施、边缘计算平台与物联网(IoT)设备等多样化环境,复杂的ML功能常依赖特定运行时环境,导致难以跨平台与架构部署,可移植性缺乏增加了维护成本、复杂化大规模部署并限制检测逻辑的跨平台复用。为此,近期研究探索利用扩展伯克利包过滤器(eBPF)与eXpress Data Path(XDP)设计直接在内核空间运行的NIDPSs,以降低上下文切换开销并提升吞吐量;内核内NIDPSs借助eBPF验证器确保eBPF程序在内核空间安全执行而具备高可靠性,并通过BPF Compile Once-Run Everywhere(CO-RE)部分解决可移植性问题,使eBPF程序无需重新编译即可跨不同内核版本运行。但现有内核内NIDPSs仍与内核旁路框架(即数据平面开发套件(DPDK)与AF_XDP)不兼容,而二者广泛用于高性能网络应用。用户空间BPF(uBPF)通过使用户空间运行eBPF程序成为可能,有望弥合这一差距,同时保留eBPF生态系统的安全性与可移植性优势;bpftime作为一种成熟的uBPF运行时,已证明uBPF在数据包处理性能上可与基于AF_XDP/DPDK的应用相媲美,因此uBPF可实现统一的基于ML的NIDPS实现,并可在内核内与内核旁路数据包处理框架间复用,但基于uBPF的数据包处理用于基于ML的NIDPSs的实用性尚未被充分探索。在此背景下,研究人员提出了一种利用uBPF的基于ML的NIDPS,以在多样化运行时环境下实现高检测性能与高数据包处理能力,并通过广泛评估揭示了由轻量级ML技术辅助的基于uBPF的NIDPSs与现有内核内NIDPS方法相比的潜力与局限性。研究人员开展的主要工作包括:首次探索uBPF在AF_XDP/DPDK上用于基于ML的NIDPSs的实用性,揭示其在DDoS检测性能与数据包处理性能方面的潜力与局限性;证明所提出的NIDPSs在缓解定点表示引入的计算误差的同时,实现了与现有浮点对应物相竞争的DDoS检测性能,且基于uBPF的NIDPSs在AF_XDP/DPDK上实现了比内核内NIDPSs高2.07–2.31倍/3.38–8.60倍的数据包处理速率;所提出的NIDPSs在XDP、AF_XDP与DPDK等不同运行时环境下运行,同时复用相同的分类器特定逻辑与BPF映射布局,尽管需要运行时相关的数据包I/O胶合代码。该研究的重要意义在于,首次系统揭示了uBPF在AF_XDP/DPDK上支撑基于ML的NIDPSs的可行性与局限性,为实现跨多样化运行时环境可移植的高性能ML驱动NIDPS提供了新途径。
在关键技术方法方面,研究人员采用以下主要方法(忽略试剂与具体培养、质粒构建操作步骤):使用CIC-IDS2017与CIC-DDoS2019两个广泛用于评估DDoS检测性能的公开数据集(提供流级标注网络流量统计);设计面向eBPF/uBPF约束的轻量级ML分类器,包括决策树(DT)、随机森林(RF)、极端梯度提升(XGB)、支持向量机(SVM)与多层感知机(MLP);采用定点运算(以低n=16位为小数部分)替代不受支持的浮点运算,并在用户空间完成训练后将参数转换为定点表示存入BPF映射;采用Welford在线算法在线计算方差以替代标准差,降低eBPF程序计算复杂度;采用基于特征重要性的特征选择技术(综合Pearson相关、互信息、随机森林变量重要性与置换重要性四种度量)选取前16个特征;在C语言中实现定点分类器以模拟eBPF/uBPF程序,并与Python实现的浮点分类器对比;在数据包处理性能评估中,实现generic XDP、native XDP、uBPF over AF_XDP(standard、syscall、poll)、uBPF over DPDK及对应AF_XDP、DPDK原生C实现等十种NIDPS,使用pktgen工具在10 Gbps直连链路上发送64字节UDP数据包进行单核性能评估。
研究结果方面,在检测性能上,研究人员通过CIC-IDS2017与CIC-DDoS2019数据集评估二元分类性能,采用准确率、精确率、召回率与假阳性率(FPR)指标,结果显示所有分类器随流观察周期τ增加而性能提升(准确率、精确率、召回率提高,FPR下降),因新流生成初期可用数据包有限导致流统计不足且不稳定;在CIC-IDS2017上,定点DT、RF、XGB与MLP在τ≥0.1s时达到稳定性能,τ=0.1s时准确率0.877–0.915、精确率0.878–0.965、召回率0.861–0.877、FPR 0.03–0.12,而定点SVM性能较低(准确率0.734、精确率0.676、召回率0.906、FPR 0.434),表明树型分类器与MLP比线性SVM更适合该数据集;在CIC-DDoS2019上,因多数流持续时间不超过1微秒,τ=10
-6s即可收集足够统计,τ=0.1s时所有定点分类器准确率至少0.924、精确率至少0.870、召回率1.00、FPR至多0.150;定点分类器在许多情况下与浮点对应物性能相当,但MLP与SVM因定点运算误差出现较大性能退化(MLP跨层累积误差,SVM对线性决策边界敏感),故选择分类器需同时考虑分类准确性与对定点实现误差的鲁棒性。在数据包处理性能上,研究人员通过指令计数、数据包处理速率、CPU利用率、处理延迟、数据包长度与活跃流数量等维度评估,结果显示指令计数以仅流提取547条为最低,DT与SVM各560条,RF 948条,XGB 1298条,MLP 3635条最高;数据包处理速率总体反映分类器计算复杂度,native XDP在仅流提取、DT、RF、XGB、SVM、MLP下分别为0.72、0.72、0.68、0.64、0.72、0.27 Mpps,uBPF over AF_XDP syscall为1.67、1.59、1.46、1.33、1.58、0.63 Mpps(为native XDP的2.31、2.21、2.16、2.07、2.19、2.31倍),uBPF over DPDK为6.06、6.05、5.82、4.41、6.02、0.92 Mpps(为native XDP的8.37、8.40、8.60、6.86、8.39、3.38倍),而uBPF over AF_XDP standard与poll因额外投递与协调开销显著低于native XDP;与原生C实现对比,uBPF在DPDK上对仅流提取与非MLP分类器差距较小,但对MLP差距显著(0.92 Mpps对1.95 Mpps),潜在因素包括满足eBPF约束的程序变换、BPF映射访问成本与多uBPF程序顺序调用开销;CPU利用率在各组合下接近100%,native/generic XDP以SoftIRQ为主,AF_XDP以User与System为主且随分类器复杂度增加User占比上升,DPDK以User为主(含轮询开销);处理延迟方面,除MLP为微秒级外其余均为纳秒级,XDP相关机制因BPF映射访问与MLP尾调用而延迟高于AF_XDP与DPDK相关机制;数据包长度影响上,比率ρ随包长L增加而增大,uBPF over DPDK在L≥512字节时接近理想上限,uBPF over AF_XDP syscall在L≥1,000字节时接近上限,native XDP即使在L=1,500字节时仍未达上限,MLP因分类占用CPU资源多而ρ较低;活跃流数量影响上,处理速率在活跃流约10,000条前基本恒定,之后随流数增加因哈希映射条目增多导致缓存未命中而下降,且处理速率更高的组合对活跃流数量更敏感。
讨论部分,研究人员总结了局限性:其一,为公平比较分类器,测试集采用良性与恶意流样本数量相等的平衡设置,虽避免多数类主导准确率等聚合指标,但不反映运营网络中良性流远多于恶意流的类别分布,精确率与绝对误报数依赖恶意流量占比,故报告的精确率与准确率可能与部署时不同(即使召回率与FPR不变),低FPR在高良性流量下仍可产生大量误报,结果应主要解释为分类器内在分类能力的比较,未来需用反映现实流量分布的不平衡测试集量化运营精确率与误报量并确定实用决策阈值;其二,本工作聚焦良性与恶意流的二元分类,适合评估基于eBPF/uBPF的DDoS检测与防御可行性(因主要决定数据包转发或丢弃),但实用NIDPSs可能需多类分类以识别具体攻击类型并应用针对性缓解策略,扩展至多类分类可能增加模型复杂度、BPF映射大小、指令计数与每包处理成本,引入检测粒度、分类性能与数据包处理性能间的权衡,未来计划在eBPF/uBPF约束下评估该权衡;其三,本工作使用单RX队列评估单核数据包处理性能,虽阐明每核处理能力,但实用部署需跨多核多RX队列并发处理,扩展并非易事,因当前uBPF实现存在共享BPF映射并发访问支持有限、用户空间到用户空间尾调用及用户空间调用模块并发调用多uBPF程序等运行时与编程限制,若这些限制得到解决,可利用接收端缩放(RSS)与每核BPF映射实现多核多队列并发处理,设计与评估此类并发多核多队列基于uBPF的NIDPSs仍为未来工作。研究结论部分翻译如下:本文提出了一种由机器学习(ML)算法赋能的基于用户空间伯克利包过滤器(uBPF)的NIDPS,以在包括原生eXpress Data Path(XDP)、AF_XDP与数据平面开发套件(DPDK)在内的多样化运行时环境下实现高可移植性。评估结果表明:(1)五个定点分类器尽管存在定点运算误差,仍实现了与其浮点对应物相当的较高DDoS检测性能;(2)数据包处理性能由网络I/O开销与分类器复杂度共同决定。在未来工作中,研究人员计划开展多类分类与多核性能评估。