1. 项目概述与核心价值

在移动通信网络里,安全防护一直是个“猫鼠游戏”。攻击者手段层出不穷,而传统的防御体系,比如在核心网部署的深度包检测(DPI)或入侵检测系统(IDS),常常有种“马后炮”的无力感。等恶意流量穿过无线接入网,抵达核心网才被识别出来,网络可能已经承受了不小的冲击,用户体验和运营商声誉都已受损。这就像小区保安只在每栋楼的单元门口设卡,坏人已经进了小区大门搞破坏了,保安才反应过来。

5G和未来6G网络带来的开放化、软件化变革,为解决这个问题撕开了一道口子。Open RAN(开放无线接入网)架构的核心理念是解耦与开放,它引入了一个关键角色——RAN智能控制器(RIC)。这个RIC,尤其是近实时RIC(near-RT RIC),就像一个驻扎在接入网边缘的“智能哨兵”,拥有10毫秒到1秒级别的控制能力。我们的项目,正是利用这个“哨兵”,结合机器学习,在攻击流量刚刚冒头、甚至还没进入核心网时,就把它揪出来。

核心思路很直接 :与其在核心网检查每个数据包的“身份证”(包头信息),不如在空口(无线接口)观察用户设备(UE)和基站(gNB)之间通信的“行为特征”。恶意流量,比如DoS攻击,即使伪装了数据包内容,它在物理层和MAC层的“行为模式”——比如信号质量突变、资源请求异常、数据包成功/失败率的诡异变化——与正常网页浏览、语音通话是截然不同的。我们通过近实时RIC持续采集这些底层测量指标,训练机器学习模型来识别这些异常模式,一旦判定为攻击,RIC可以立即指令基站采取行动,比如释放该用户的RRC连接,将其“踢下线”。

这项技术的价值不言而喻。它将安全防御的战线从核心网大幅前推到了网络边缘的分布式单元(DU)甚至更前端。对于运营商而言,这意味着能更早地遏制攻击影响范围,保护核心网元,保障大多数正常用户的业务体验。对于我们这些搞网络安全的工程师来说,这打开了一扇新的大门:利用网络本身的可编程性和智能化,实现内生安全,而不再是外挂式的修补。

2. 系统架构深度解析:从理念到实现

2.1 Open RAN与近实时RIC:为什么是它们?

要理解我们这个检测系统,得先吃透Open RAN和RIC。传统RAN设备是软硬件一体的“黑盒”,设备商说了算,运营商想在里面加个新功能,流程漫长。Open RAN通过定义开放的接口(如E2、A1),将RAN功能拆分成无线电单元(RU)、分布式单元(DU)、集中式单元(CU)以及上层的RIC,实现了软硬件解耦。

RIC是Open RAN的“大脑”,分为非实时RIC(non-RT RIC)和近实时RIC(near-RT RIC)。非实时RIC负责分钟级到小时级的策略优化、模型训练;而近实时RIC,正是我们项目的舞台,它工作在10ms-1s的时延区间内,通过运行其上的xApp(微服务应用),直接控制DU/CU的行为。

注意 :这里有个关键点,近实时RIC的“控制”是策略性的,比如调度权重调整、连接释放,它不直接转发用户面数据流,因此不会引入额外的数据面时延。我们的攻击检测xApp就运行在这个层面。

选择Open RAN架构和近实时RIC,基于几个核心考量:

  1. 数据可得性 :只有开放的E2接口,才能让我们以标准化的方式,从基站软件(如srsRAN)中实时获取到物理层和MAC层的详细测量报告。这是传统封闭设备无法提供的。
  2. 控制实时性 :1秒以内的控制闭环,使得“检测-响应”成为可能。发现攻击后,能快速下发控制命令,实现早期拦截。
  3. 灵活性 :xApp的模式允许快速开发、部署和迭代新的安全算法,无需等待设备商的大版本升级。

2.2 整体框架设计与数据流

我们的系统框架可以清晰地划分为三个逻辑平面:操作平面、预测平面和学习平面。整个数据流和控制流围绕一个自研的、低时延的消息总线(Databus)构建。

操作平面 :这是网络的“物理世界”。核心组件是经过我们修改的srsRAN开源基站软件,以及我们开发的一个 RIC代理(RIC Agent) 。这个代理编译进基站软件里,扮演“传感器”和“执行器”的双重角色。一方面,它周期性地(例如每100毫秒)采集连接到此基站的所有UE的物理层和MAC层测量值;另一方面,它监听来自控制平面的命令并执行。操作平面还包括真实的UE(用USRP软件无线电模拟)和核心网。

预测平面 :这是系统的“决策大脑”,运行在近实时RIC上。它包含我们核心的 在线机器学习分类器(Online ML Classifier)xApp 。该xApp通过Databus持续订阅来自各个基站RIC Agent的测量数据流。每当收到一批新数据,分类器立刻进行推理,判断每个UE当前的流量属于良性(如网页、VoIP)还是恶意攻击(如DDoS Ripper)。根据预定义的安全策略(例如,一旦识别为攻击,则丢弃该用户数据包或释放连接),预测平面会通过Databus向对应的RIC Agent发送控制命令。

学习平面 :这是模型的“训练营”,通常与非实时RIC协同工作。它包含 数据集收集器 ML模型训练 组件。预测平面在在线分类的同时,会将采集到的数据(打上最终的分类标签作为ground truth)同步给学习平面。学习平面积累数据,定期或触发式地启动模型再训练,优化特征或调整模型参数。当新模型的性能(如F1分数)显著提升后,会被无缝部署到预测平面,替换旧模型,实现模型的在线演进。

Databus(消息总线) :整个系统的中枢神经。我们选用ZeroMQ(ZMQ)来实现,因为它轻量、高效,支持发布-订阅模式,非常适合这种高吞吐、低时延的微服务间通信。经测试,我们自研的Databus处理延迟(δd)仅为45微秒,为整个控制循环争取了宝贵的时间预算。

整个控制环的总时延 Td = tn + 2δd + δi ,其中 tn 是网络往返时延, δi 是模型推理时延。在我们的实验环境中, tn 约为670微秒(因为所有组件物理共置)。因此,只要 δi 控制在合理范围,满足1秒的近实时要求绰绰有余。

3. 特征工程:从空口信号到攻击指纹

机器学习模型性能的上限,很大程度上由特征决定。在核心网做DPI,特征空间非常丰富:源/目的IP、端口、协议类型、包长序列、载荷特征等。但在RAN侧,我们拿不到这些高层信息,只能利用物理层和MAC层的“粗粒度”测量值。这既是挑战,也是创新点——我们需要从这些看似与内容无关的信号指标中,提炼出攻击行为的“指纹”。

我们最终筛选并使用了7个核心特征,它们全部来自基站侧的测量报告,分为物理层和MAC层两类:

物理层特征(反映信道条件与链路质量)

  1. 信道质量指示器(CQI) :由UE测量并反馈给基站,范围0-15。数值越高,代表信道条件越好,可支持的调制编码阶数越高。在DoS攻击下,攻击流量可能占用大量资源导致干扰增加,或者攻击源本身信号质量差,都会引起CQI的异常波动或持续低值。
  2. 调制与编码方案(MCS) :基站根据CQI、缓存状态等因素动态选择,范围0-28。它直接决定了物理资源块(PRB)的传输效率。攻击流量可能导致基站为维持连接而频繁切换或使用低阶MCS。
  3. PUSCH SINR(物理上行共享信道信干噪比) & PUCCH SINR(物理上行控制信道信干噪比) :分别衡量上行数据信道和控制信道的信号质量。攻击,尤其是泛洪攻击,会产生大量上行数据或控制信令,可能显著恶化SINR,影响其他正常用户。

MAC层特征(反映流量模式与资源使用)

  1. 比特率(brate) :单位时间内的数据传输速率。这是最直观的特征。例如,DDoS Ripper攻击会试图维持极高的比特率以压垮服务器。
  2. 成功传输包数(pkt_ok) & 丢包数(pkt_nok) :MAC层确认成功或失败的包数量。正常流量(尤其是TCP业务)的丢包率会维持在一个较低且稳定的水平。而攻击流量可能导致因资源竞争、调度失败或链路质量差而出现异常的丢包率。Slowloris这种低速攻击, pkt_ok 可能会异常地低且稳定。

实操心得:特征窗口与聚合 原始测量值是瞬时值,噪声很大。直接喂给模型效果很差。我们实际采用的是 滑动时间窗口聚合统计 的方法。例如,以1秒为窗口,每100毫秒采集一次,窗口内计算每个特征的均值、方差、最大值、最小值、变化趋势等。这样,一个样本就从7个值变成了几十个统计特征,更能刻画流量在短时间内的行为模式。比如,正常网页浏览的比特率是突发性的,方差大;而VoIP相对平稳;DoS Hulk攻击则可能呈现持续的高均值、低方差。

为什么这些特征有效? 攻击的本质是破坏服务的可用性,其手段必然会在无线资源的使用上留下痕迹。无论是消耗带宽(高brate)、占用连接(保持大量低速率连接,影响pkt_ok/nok比例),还是因恶意行为导致的信道质量恶化(CQI、MCS、SINR下降),这些底层指标就像人体的“生命体征”,一旦出现异常组合,就预示着“疾病”(攻击)的发生。我们的工作,就是通过机器学习找到这些异常组合的规律。

4. 模型选型、训练与部署实战

4.1 算法选型:为什么是树模型?

面对近实时RIC严格的时延约束(整个控制环<1秒,留给模型推理的时间 δi 通常需在几十毫秒内)和有限的特征集,我们评估了多种经典机器学习算法:支持向量机(SVM)、k近邻(k-NN)、决策树、随机森林、自适应提升(AdaBoost)和多层感知机(MLP)。

评估标准有两个: 准确率 推理时延 。我们在包含正常流量(网页、VoIP)和三种DoS攻击(DDoS Ripper, DoS Hulk, Slowloris)的数据集上进行了离线训练与测试。结果如下表所示:

算法 准确率 训练时间(秒) 推理时延(毫秒)
SVM 0.64 1952.220 3.02
k-NN 0.90 0.793 2.10
决策树 0.93 0.627 1.25
随机森林 0.95 0.783 2.86
AdaBoost 0.87 19.615 3.05
MLP 0.56 15.720 1.29

分析决策

  • SVM和MLP :准确率过低,排除。MLP表现差可能因为特征维度相对较低且存在非线性关系,在小数据集上容易过拟合或难以收敛。
  • k-NN :准确率尚可(90%),推理时延也较低。但其在线推理时需要存储和计算全部训练样本的距离,内存和计算开销随数据量线性增长,不适合长期在线部署。
  • AdaBoost :准确率一般,训练和推理时延均无优势。
  • 决策树与随机森林 :两者准确率最高(93% vs 95%)。决策树推理速度极快(1.25ms),随机森林稍慢(2.86ms)但准确率更高2个百分点。

最终选择随机森林 。原因在于:

  1. 高准确性与鲁棒性 :随机森林通过集成多棵决策树,降低了单棵树的过拟合风险,对噪声和异常值更不敏感,这在网络流量这种充满变数的环境中至关重要。
  2. 可解释性 :虽然不如单棵决策树直观,但随机森林仍能提供特征重要性排序,这对于我们理解哪些空口指标对攻击检测贡献最大非常有价值,便于后续优化特征工程。
  3. 时延满足要求 :2.86ms的推理时延,加上我们系统中网络和总线延迟(约0.76ms),总控制环延迟约3.62ms,距离1秒的上限有近996ms的余量,为未来在更复杂的分布式部署中预留了充足的网络传输时间预算。
  4. 并行化潜力 :随机森林的推理过程(多棵树投票)可以很容易地并行化,在未来硬件升级后能进一步压缩推理时间。

4.2 模型训练与调优细节

我们使用单UE场景下收集的数据集进行训练(约20万条样本,各类别分布见表II第一列)。数据预处理包括缺失值填充(用前后值插补)、标准化(Z-Score)以及前述的滑动窗口特征工程。

随机森林关键参数设置

  • n_estimators : 100。树的数量,权衡精度与计算成本。我们通过交叉验证发现,超过100棵后精度提升边际效应递减。
  • max_depth : 15。限制树的最大深度,防止过拟合。
  • min_samples_split : 5。内部节点再划分所需最小样本数。
  • min_samples_leaf : 1。叶节点最少样本数。设置较小以捕捉细节模式。
  • max_features : 'sqrt' 。每棵树分裂时考虑的特征数是总特征数的平方根,这是随机森林的默认推荐值,有助于提升多样性。
  • class_weight : 'balanced' 。由于攻击样本相对良性样本可能较少,此参数自动调整类别权重,避免模型偏向多数类。

训练完成后,我们在双UE场景的独立测试集上(约108万条样本)进行验证,模型保持了95%的整体准确率,证明了其良好的泛化能力。

4.3 在线部署与xApp实现

训练好的随机森林模型通过 pickle 序列化后,集成到近实时RIC的xApp中。这个xApp是一个持续运行的服务,主要逻辑如下:

  1. 订阅数据 :通过ZMQ订阅Databus上特定主题(如 /measurements/<gNB_ID> ),实时接收来自各基站RIC Agent上报的、经过聚合后的特征向量。
  2. 预处理 :对收到的特征向量进行与训练阶段一致的标准化处理。
  3. 推理 :调用加载的随机森林模型 predict_proba() 方法,获取属于各个流量类别的概率。
  4. 决策 :根据概率阈值(例如,攻击类别概率>0.9)和预定义策略进行决策。策略可以很简单,如“若判定为攻击,则发送 UE_CONTEXT_RELEASE 命令”;也可以更复杂,如结合历史行为进行判决。
  5. 发布命令 :将决策生成的控制命令(如 {“action”: “release”, “ue_id”: “xxx”} )发布到Databus的相应命令主题,等待RIC Agent接收执行。
  6. 数据回馈 :将本次推理使用的特征和最终判定的标签(作为ground truth的近似)发送回学习平面的数据集收集器,用于后续模型迭代。

5. 实验结果分析与性能解读

离线模型评估固然重要,但真正的考验在真实的测试床环境中。我们在OpenIreland研究测试床上搭建了完整的系统,使用USRP模拟UE和基站,进行了大量实验。

5.1 分类性能深度剖析

我们关注的不仅是整体准确率,更关注模型在具体类别上的表现,特别是 召回率(Recall) ——即实际是攻击的流量,有多少被成功检测出来。漏报的代价远高于误报。

下表展示了我们部署的随机森林xApp在五分类(两种良性,三种攻击)任务上的详细性能:

流量类别 精确率 (Precision) 召回率 (Recall) F1分数 (F1-Score)
网页浏览 0.93 0.96 0.94
VoIP 0.97 0.95 0.96
DDoS Ripper 0.94 0.87 0.90
DoS Hulk 0.87 0.95 0.91
Slowloris 0.97 0.95 0.96
良性(汇总) 0.94 0.96 0.95
攻击(汇总) 0.98 0.96 0.97

结果解读

  • 整体性能优异 :二分类(良性 vs 攻击)的F1分数达到0.97,证明模型能非常可靠地区分正常与恶意流量。
  • 攻击检测能力强 :对三种攻击的召回率均在87%以上,尤其是对DoS Hulk和Slowloris的召回率超过95%。这意味着绝大多数攻击都能被成功捕获。
  • DDoS Ripper的召回率稍低(87%) :分析混淆矩阵发现,部分DDoS Ripper流量被误判为DoS Hulk。这是因为两者都是高流量泛洪攻击,在空口特征上非常相似。不过,由于它们都是攻击,在实际安全策略中,只要被判定为“攻击”大类即可触发响应,这个误判不影响防御效果。
  • 高精确率 :攻击类别的精确率达0.98,意味着模型判断为攻击的警报中,98%都是真实的攻击,误报率极低。这对于避免误伤正常用户、维持网络稳定性至关重要。

5.2 时延与早期检测能力验证

这是本项目最关键的创新点: 到底能多早发现攻击?

我们测量了从攻击流量开始发生,到系统能够稳定、正确地将其分类所需的时间。结果用累积分布函数(CDF)图展示(对应原文图4)。分析发现,所有流量类型在初始的 500毫秒 内都处于一个“行为不稳定”的过渡期。500毫秒后,超过90%的流量实例都能被正确分类。

重要提示 :这个“500毫秒”不是系统的响应时间,而是流量模式稳定下来、可供可靠分类所需的最短观察时间。我们的系统每100毫秒采集并处理一次数据。这意味着,理论上在攻击开始后的第5个测量周期(即第500毫秒时刻),系统就有超过90%的概率做出正确判决。再加上约3.62毫秒的控制环处理时间, 系统能在攻击发起后约504毫秒内完成检测并启动 mitigation

这个速度是革命性的。相比传统核心网检测方案(通常需要数秒甚至更长时间来汇聚流量、进行深度分析),我们的方案将检测点提前到了DU,响应速度提升了一到两个数量级,能在攻击造成大规模网络拥塞或服务瘫痪之前就将其扼杀。

5.3 与核心网IDS方案的对比

为了凸显边缘检测的优势,我们与文献中基于核心网DPI的IDS方案进行了粗略对比。例如,有研究在可编程交换机上实现ML流量分类,报告了97%的F1分数,但每个数据包会引入约3.7微秒的额外处理延迟。我们的方案有根本不同:

  1. 检测位置 :我们在RAN边缘,他们在核心网。我们更早。
  2. 数据源 :我们用空口测量,他们用数据包包头。我们无需解析包内容,隐私性更好,且能检测某些加密流量下的行为异常。
  3. 对数据面的影响 :我们的近实时RIC运行在控制面, 不直接处理用户数据包,因此对数据面转发零延迟、零吞吐量影响 。他们的方案是数据面 inline 处理,虽延迟增加微小,但毕竟存在。

因此,我们的方案在实现可比检测精度(F1 0.97 vs 0.97)的同时,具备了 更早检测 对数据面无损 的双重优势。

6. 实操挑战、避坑指南与未来展望

6.1 部署与调试中的常见问题

  1. 特征采集不稳定 :初期发现CQI、MCS等指标波动剧烈,导致模型性能不稳定。

    • 排查 :检查基站和UE的射频校准、参考信号功率设置。不稳定的无线环境会引入大量噪声。
    • 解决 增加测量采样频率,并采用更长的滑动窗口进行平滑与聚合 。我们最终将采样间隔从1秒缩短到100毫秒,并使用1秒的窗口计算统计特征,有效滤除了短期抖动,保留了趋势信息。
  2. RIC Agent与基站集成导致崩溃 :在修改srsRAN集成自研RIC Agent时,频繁出现基站进程崩溃。

    • 排查 :内存访问越界、线程锁竞争。srsRAN是强实时软件,对资源管理和线程安全要求极高。
    • 解决 采用异步、非阻塞的通信模式 。确保RIC Agent的数据采集和命令接收模块运行在独立的低优先级线程,通过线程安全的队列与主基站线程交换数据,避免直接操作关键数据结构。同时,ZMQ的通信超时设置要合理,避免因控制平面暂时无响应而阻塞基站。
  3. 模型在真实环境性能下降 :实验室训练好的模型,部署到真实测试床后,对某些UE的攻击检测准确率下降。

    • 排查 :训练数据集的“场景多样性”不足。实验室数据可能只覆盖了有限的信道条件和UE移动模式。
    • 解决 实施持续学习(Continual Learning)管道 。这正是我们架构中“学习平面”的价值所在。在线部署后,持续收集带标签(由初期模型或人工辅助标注)的新数据,定期(如每天)用新数据微调模型,或每周/每月重新训练,使模型能适应网络环境的变化和新出现的攻击变种。
  4. 控制命令执行延迟不确定 :有时从RIC下发释放连接命令到UE实际断开,延迟超过预期。

    • 排查 :除了网络传输延迟,主要耗时在基站的RRC信令处理流程和UE的响应时间上。
    • 解决 区分“检测时延”和“缓解时延” 。在系统设计指标中明确,我们保证的是“检测判决”在近实时周期内完成。而“缓解动作”(如连接释放)的执行时间受制于标准无线协议流程,可能达到几百毫秒。但这并不影响检测本身的有效性,因为恶意流量在检测后已被标记,基站可以开始限制其调度优先级。

6.2 未来优化方向

  1. 向实时RIC(RT RIC)演进 :当前近实时RIC的时延要求是10ms-1s。下一步是挑战 实时RIC(<10ms) 的检测。这对模型提出了更高要求,可能需要探索更轻量级的模型(如剪枝后的决策树、微型神经网络)或专用硬件加速。
  2. 融合更多上下文信息 :目前仅使用空口测量。未来可以结合非实时RIC下发的用户订阅信息、历史行为画像、小区负载状态等,进行联合判决,减少误报,并实现更精细化的策略(如对高价值用户采取告警而非立即断链)。
  3. 无监督与半监督学习 :当前依赖有标签数据训练。未来可以引入无监督异常检测算法(如孤立森林、自编码器),用于发现未知的、零日攻击模式,与有监督模型形成互补。
  4. 跨小区协同检测 :单个基站视角有限。攻击者可能在多个小区间移动或发起协同攻击。未来可以通过RIC之间的信息交互(如通过非实时RIC),实现跨小区的攻击关联分析与协同防御。

这个项目从构思到在真实测试床上跑通,让我深刻体会到,将前沿的开放网络架构与实用的机器学习算法结合,能解决传统方案难以触及的痛点。它不仅仅是“用了ML”,更是通过系统性的架构设计,让ML在最合适的位置、以最合适的方式发挥了作用。对于从事移动网络、网络安全或边缘智能的工程师来说,Open RAN与AI的结合,是一片充满机遇的蓝海。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐