摘要
5G通信网络作为最新一代的移动通信技术,其核心网的服务化架构基于云原生构架设计,借鉴了IT领域的“微服务”理念,把原来具有多个功能的整体分拆为多个具有独自功能的个体,使得核心网更加灵活。而与微服务场景类似,5G核心网的网元之间同样面临业务安全的风险。本文对5G核心网的业务安全问题与其检测方法做了简要的介绍。
5G通信网络作为最新一代的移动通信技术,其目标是为移动设备之间的通信提供更高的速度与容量,并可以通过网络切片功能依据业务场景实现网络功能的定制化,例如针对车联网场景需要低延迟传输,针对流媒体业务需要高带宽等。为了实现以上的功能,5G核心网采用服务化架构(SBA,Service BasedArchitecture)进行实现。SBA对网元进行了拆分,所有的网元又都通过接口接入到系统中,使得5G核心网的服务以比传统网元更精细的粒度运行,并且彼此松耦合,允许升级单个服务,而对其他服务的影响最小,进而使得核心网的配置,扩容与升级更加便利。相比于4G网络,5G核心网的暴露面更大,因此5G核心网面临着许多新的安全问题。其中,业务安全是5G核心网面临的新的安全威胁。
一、5G核心网简介
3GPP标准下的5G核心网架构如图1所示。
图 1. 5G核心网架构
其中:
AF – 应用功能
AMF – 接入和移动管理功能
AUSF – 认证服务功能
NEF – 网络开放功能
NRF – 网络存储库功能
NSSF – 网络切片选择功能
PCF – 控制策略功能
SMF – 会话管理功能
UDM – 统一数据管理功能
UPF – 用户平面功能
(R)AN –接入网(基站)
UE – 终端
二、5G业务安全问题
5G核心网的服务化架构基于云原生构架设计,借鉴了IT领域的“微服务”理念,把原来具有多个功能的整体分拆为多个具有独立功能的个体。网元通过服务化接口将自身的能力作为一种服务暴露到网络中,并被其他网元复用。因此,与微服务场景类似,5G核心网的网元之间同样面临业务安全的风险。在之前的文章中,我们已经对微服务场景下的API业务安全进行了介绍[1]。在本文中,我们结合5G核心网的业务场景,阐述网元之间所面临的业务安全问题,包括调用逻辑异常,调用参数异常,调用频率异常三个方面。
-
调用逻辑异常:
在5G的核心网中,攻击者可以利用网元的漏洞攻陷某个网元,并从该网元对其它网元的开放接口发起请求,导致网元访问的序列出现异常。例如在UE注册的鉴权流程中,AMF先向AUSF发起鉴权请求,再由AUSF向UDM请求生成鉴权向量,其对应的网元访问序列如图2所示。
图 2. 正常网元访问序列
而如果AMF被攻击者攻陷,可直接调用UDM生成鉴权向量的接口,窃取用户的鉴权信息,其对应的网元访问序列如图3所示。
图 3. 异常网元访问序列
又例如NRF(Network Repository Function)网元提供网络仓储功能,维护可用的NF实例及其支持的服务的NF配置文件。如果该网元存在漏洞,攻击者可以利用此漏洞注册恶意的网元,将地址和URI 都指向该恶意网元,那么攻击者可以利用该恶意网元与其他网元进行通信,导致网元调用逻辑出现异常。
-
调用参数异常:
网元之间交互的参数出现异常。参数异常的情况包括两种,一是攻击者利用网元可能存在的对业务参数校验机制不完全的漏洞,在网元调用的过程中传入非法的参数,达到特定的目的。二是攻击者利用某些接口的漏洞进行攻击时,返回参数出现异常。
-
调用频率异常:
攻击者对核心网中的某个网元的开放接口短时间发起大量的访问请求,引发信令风暴,导致网元服务的不可用。
三、5G核心网网元业务异常检测
针对5G核心网网元的业务层面所面临的安全威胁,与微服务架构下的API业务安全类似[1],不同的异常场景需要不同的异常检测机制。在之前的文章[1]中,我们介绍了通过额外部署API调用序列追踪框架,例如Jaeger,Skywalking等对API调动序列与参数进行追踪,进而形成正常行为基线的方法。而在5G核心网场景中额外部署追踪框架一般是不被允许的。因此为了形成网元的正常行为基线,需要以核心网的原始数据包为基础,从5G业务本身出发,找出数据中业务的关联关系,进而从原始数据包中形成行为基线。
对于业务逻辑异常,需要从原始数据中提取出正常的网元访问序列。而在5G的现网环境中,大量的用户终端(UE)会同时对核心网发起不同的请求,如图4所示。因此在形成业务逻辑异常基线的过程中,首先需要将原始数据按照UE进行聚合。
图 4. 用户终端(UE)对核心网发起不同的请求
根据3GPP标准,在5G场景下,UE在与核心网交互,例如发起注册请求的过程中会提供SUPI参数。SUPI是5G网络中UE的唯一永久身份标志,类似于LTE网络中的IMSI。因此根据SUPI信息可以首先将不同用户对核心网的请求数据进行聚合,将同一用户的访问请求数据聚合在一起。接下来需要对同一UE的不同业务数据进行聚合。在核心网中,网元之间主要是以HTTP2协议作为应用层协议进行通信,也就是说采用的是Request-Response的形式。通过对HTTP2协议的流信息进行关联,并对Request与Response数据包进行匹配,即可以对不同的访问业务进行区分,进而得到单一UE单次业务请求的网元调用序列。
对于业务参数异常,可以结合3GPP标准,基于历史数据构建请求参数范围的基线,如果当前的请求参数偏离基线,则可以认定存在业务参数异常。
对于业务频率异常,仍然需要建立接口访问频率的基线。结合3GPP标准与历史访问数据,采用统计分析的方法建立访问频率的基线,用于对业务频率异常进行检测。
四、网元调用序列还原举例
以上的分析中介绍了5G核心网的业务异常场景与相应的检测方法。而相关的异常场景复现可以基于开源项目free5gc进行实现,具体可以参考之前的文章[2]。这里我们给出一个在free5gc环境中基于多个UE注册过程中所产生的数据包还原网元调用序列的案例。在free5gc环境中模拟UE的注册流程,同时抓取数据包,其数据包在wireshark中打开如图5所示。
图 5. 从free5gc环境中抓取的数据包
从图 5的数据包中可以看出,在网元的HTTP2请求中是包含IMSI/SUCI数据的。其中SUCI是SUPI的加密形式。采用上一节提到的方法,先将请求数据根据IMSI/SUCI进行聚合,再结合HTTP2协议的流信息,对请求的Request与Response数据包进行匹配,可以得到UE注册过程中网元访问的关系图,如图 6所示。
图 6 UE注册过程中网元访问的关系图
为了更直观的展示网元调用关系,我们进一步画出了网元调用的时序图,如图7所示。
图 7. UE注册过程中网元访问时序图
五、总结
业务安全是5G核心网所面临的新的安全问题。业务异常由于其隐蔽性,很难被传统的安全设备所发现。本文对5G核心网的业务异常场景及其检测方法做了简要介绍。在现网环境中,还可以进一步引入用户数据,例如各类话单数据,切片信息等,建立更加细粒度的基线,为业务异常检测提供支撑。
· 参考链接 ·
[1] https://mp.weixin.qq.com/s/6ZQvWRn4Fti-szOvffaasg
[2] https://mp.weixin.qq.com/s/Hvk-E8pP5r-xKR3d1bukFg
声明:本文来自绿盟科技研究通讯,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。