中國信通院辛冉等:5G核心網網元服務異常檢測
0 引言
5G作為新一代的移動通信技術,目標是為移動設備之間的通信提供更高的速度與容量,并可以通過網絡切片功能依據業務場景實現網絡功能的定制化,例如針對車聯網場景需要提供低延遲傳輸,針對流媒體業務需要提供高帶寬等。為了實現以上的功能,5G核心網(5G Core,5GC)采用服務化架構(Service Based Architecture,SBA)進行實現。SBA對網元進行了拆分,所有的網元又都通過接口接入到系統中,使得5GC的服務以比傳統網元更精細的粒度運行,并且彼此松耦合,允許升級單個服務,而對其他服務的影響最小,進而使得5GC的配置、擴容與升級更加便利。相比于4G網絡,5GC的暴露面更大,因此5GC面臨著許多新的安全問題。其中,網元服務安全是5GC面臨的新的安全威脅。
華為5G安全架構白皮書[1]中提到5G安全的兩個目標,其中一項是:提供方法和機制來保護建立在5G平臺上的服務。基于這個目標,本文提出網元服務安全需要解決3個基本問題:5G協議安全、網絡架構安全與網元交互安全,闡釋了5G協議、5GC網絡架構、網元交互過程中可能面臨的風險。針對網絡架構安全與網元交互安全,本文提出了更加詳細的檢測方案,并在所提出方案的基礎上進一步研究與試驗,設計了網元服務異常檢測原型,明確了原型中各個模塊的技術路線。本文將6種異常場景在原型上進行測試,輸出檢測結果,結果中包含將異常場景映射到檢測基線的全部特征。除此之外,為了規避檢測原型所帶來的誤報問題,本文利用SOM神經網絡對檢測參數進行了篩選,成功過濾出有檢測價值的參數。
1 5GC網元服務
3GPP TS 23.501[2]將網元之間的交互集定義為服務。該規范將5G架構的定義分為兩種表示方式:基于服務的表示方式和基于網元間交互的表示方式。其中,基于服務的5GC架構如圖1所示。

圖1 基于服務的5G核心網架構
圖1中,Namf、Nausf、Nsmf等表示各個網元所展示的基于服務的接口,每個網元根據自身功能特性為5GC的正常運行提供服務。其中,AF的功能為應用功能、AMF的功能為接入和移動管理功能、AUSF的功能為認證服務功能、NEF的功能為網絡開放功能、NRF的功能為網絡存儲庫功能、NSSF的功能為網絡切片選擇功能、PCF的功能為控制策略功能、SMF的功能為會話管理功能、UDM的功能為統一數據管理功能、UPF的功能為用戶平面功能、(R)AN的功能為接入網(基站)、UE的功能為終端。
2 5GC網元服務安全風險
2.1 5G協議安全風險
圖1中,N1、N2、N4接口分別使用5G-NAS協議、NGAP協議和PFCP協議進行通信。針對這3個接口進行異常檢測,需要從各自所采用的協議可能存在的風險與協議自身的規范和特性入手建立基線。
下面以N4接口為例,考慮UPF與SMF通信過程中可能存在的風險。首先,UPF與運營商數據網絡直接通信,其端口可能暴露在公網中。此外,基于5GC控制面與用戶面分離式架構,UPF需要下沉到網絡邊緣,增大了暴露風險。N4的建立流程是由SMF下發給UPF的,如果UPF中沒有配置完善的網元認證機制,攻擊者則可以偽造SMF向UPF發起攻擊。PFCP協議所支持的業務流程包括會話建立流程、會話修改流程、會話刪除流程和會話報告流程。攻擊者在利用偽造的SMF與UPF建立連接后,可利用會話修改流程引導用戶面數據包的轉發位置,進行數據竊取,也可利用會話刪除流程導致某些用戶被拒絕服務。
2.2 網絡架構安全風險
在5GC中,攻擊者可以利用網元的漏洞攻陷某個網元,并從該網元對其他網元的開放接口發起請求,導致網元訪問的序列出現異常。例如在UE注冊的鑒權流程中,AMF先向AUSF發起鑒權請求,再由AUSF向UDM請求生成鑒權向量。而如果AMF被攻擊者攻陷,可直接調用UDM生成鑒權向量的接口,竊取用戶的鑒權信息。
又例如NRF網元提供網絡倉儲功能,維護可用的NF實例及其支持的服務的NF配置文件。如果該網元存在漏洞,攻擊者可以利用此漏洞注冊惡意的網元,將地址和URI都指向該惡意網元,那么攻擊者可以利用該惡意網元與其他網元進行通信,導致網元調用邏輯出現異常。
2.3 網元交互安全風險
5GC控制面網元利用API進行通信,攻擊者可利用API的脆弱性,向網元發送惡意請求,以達到竊取數據、惡意注冊/注銷網元、使部分用戶被拒絕服務等目的,具體兩個場景如下。
(1)NRF網元提供接口,可以基于提供的實例id對于NRF存儲的網元進行刪除。當NRF里的網元被注銷后,其他網元即無法通過NRF網元得到該網元的相關信息,從而導致服務不可用。
(2)終端的真實身份在5G里稱為SUPI,通過公鑰加密后的內容則稱為SUCI。在通信的過程中使用SUCI可保證SUPI不被泄露。而AUSF網元存在的接口是:/nausf-auth/v1/ue-authenticatons/{authCtxId}/5g-aka-confirmation,其中 {authCtxId} 就是SUCI。當SUCI的值傳遞錯誤時,接口會返回USER NOT FOUND信息;而當SUCI的值傳遞正確時,即使別的參數傳遞錯誤(例如resStar的值錯誤),接口也會返回SUPI的值,并告知錯誤原因。因此,如果攻擊者進入5G 核心網,并且嗅探到SUCI的值,就可以通過這個接口得到SUPI的值。
3 5GC網元服務異常檢測策略
異常檢測所采用的基本檢測技術是全流量分析,通過分析核心網運行過程中產生的流量數據進行異常行為的檢測。攻擊者在尚未摸清網元服務的工作方式之前,往往要進行攻擊試探,試探過程中產生的流量與網元正常工作時產生的流量有較大差異時,是檢測出攻擊行為的最好時機。此外,攻擊者在對網元服務開展攻擊行為的過程中,也會產生異常流量。鑒于攻擊試探與攻擊行為發生過程中產生的流量與正常業務工作過程中產生流量的差異性,對5G全流量數據進行分析處理,建立檢測基線,利用基線檢測異常流量,進而定位攻擊行為,可實現5G核心網中的網元服務異常檢測。
3.1 全流量分析的挑戰
3.1.1 協議多樣性
將5G全流量以協議劃分,主要包括控制面網元間通信時產生的HTTP2協議數據,基站與AMF通信時產生的NGAP協議數據,控制面與用戶面通信時產生的PFCP協議數據,用戶面通信時產生的GTP-U協議數據,用戶設備與AMF通信時產生的NAS協議數據,用戶設備與基站通信時產生的SDAP協議數據與RRC協議數據,以及基站間通信時產生的XnAP協議數據。鑒于針對不同協議的攻擊方式是不同的,那么面向不同協議進行數據分析的維度以及異常檢測的手段也需要相應調整。因此,協議的多樣性成為5G全流量分析的挑戰之一。
3.1.2 業務請求高并發
核心網需要處理大量用戶的不同業務請求,每種請求發送到核心網中會都產生一部分數據包,因此會引發業務高并發運行下的數據包歸屬問題,即某個數據包是哪個用戶在何種業務場景下產生的,只有解決了高并發環境下的數據包歸屬問題,才能更好地對業務行為進行還原,進而建立基線。
3.1.3 參數結構復雜
參數結構中存在大量列表與字典嵌套的結構,參數除了k-v值之外,結構信息也成為參數特征之一,那么在做檢測時,也需要考慮參數結構信息。如何將這種復雜結構進行有效解析,并將結構信息引入檢測方法中,也是全流量分析的挑戰之一。以UE上下文為例,其結構如圖2所示。

圖2 UE上下文參數結構
3.2 基線構建策略
由于針對網元服務的攻擊方式主要為對網元服務發起惡意請求。那么,以網元服務的調用行為作為標準建立基線,可對網元服務進行有效的異常檢測。接下來以核心網對用戶設備的鑒權流程為例,介紹基線構建的基本思路。首先,核心網對UE鑒權過程中產生的網元調用序列如圖3所示。其次,核心網對UE鑒權過程中所使用的請求方式和接口如圖4所示。此外,核心網對UE鑒權過程中所傳遞的參數如圖5所示。最后,核心網對UE鑒權過程所返回的參數如圖6所示。

圖3 核心網對UE鑒權的網元序列

圖4 核心網對UE鑒權的API信息

圖5 核心網對UE鑒權的請求參數

圖6 核心網對UE鑒權的響應參數
基于以上4個特征,在數據采集不缺失以及數據字段解析完整的前提下,可以相對準確地將核心網對UE鑒權過程中的網元服務調用行為刻畫出來,并以此為基線進行異常檢測。
4 5GC網元服務異常檢測原型
5GC網元服務異常檢測原型設計如圖7所示。下面將分節介紹各個模塊的技術路線和實現原理。

圖7 檢測原型設計圖
4.1 數據解析
數據解析部分采用了Pyshark所提供的方法。tshark是wireshark下的解包工具,而Pyshark是針對tshark的Python封裝器,利用Pyshark可以通過Python程序將數據包中各層的各個字段解析出來。解析后得到可用于異常檢測的字段,包括時間戳、http2 streamid、tcp streamid、源ip、目的ip、源端口、目的端口、請求方式、URL、響應碼、請求參數、響應參數等。其中,在對參數進行解析時,由于參數的格式為多層嵌套的json數據,而Pyshark只提供解包功能,也就是在識別到特定字段后輸出相應的結果,這會導致解析出來的結果不光丟棄了原有的參數樹形結構,而且數據的鍵和值也無法一一匹配。那么在處理參數時,不妨先保留所有的參數信息,將data幀中的原始數據(16進制數組)轉換成ascii,輸出帶有結構信息的字符串(可以理解為將原始參數通過json.dumps進行了轉字符處理),便可得到完整的參數。此時輸出的參數還無法直接用來做檢測,后面可加入相應的算法,即可既保留參數的結構信息,又能夠檢索對比。
4.2 參數結構提取
在數據包中,HEADER幀與DATA幀有時是分開的,由此會引發數據包的截斷問題,即header與body不在同一數據幀中。那么在提取參數結構之前,首先需要解決參數的歸屬問題。使用http2 stream id與tcp stream id可以將同一請求的信息關聯起來。
那么在解析參數時,需要將參數字符值與http2 streamid、 tcp stream id進行關聯存儲,此后將包含API信息的數據表與包含參數信息的數據表以http2 stream id與tcp stream id為鍵值進行關聯歸并,即可找到參數所對應的API信息。
解決數據包截斷問題之后,就可以進一步進行參數結構提取的工作了。前面已經提到過直接通過原始數據轉換獲得的參數是無法直接拿來做檢測的,這里還是以UE上下文為例,給出參數結構的處理方案。
為使每個參數值都能匹配到對應的結構信息,可以利用深度優先搜索算法,算法描述見算法1。
算法 1 參數結構提取算法
輸入 嵌套參數字典 p, 空鏈表 l, 空字符 s
輸出 參數鏈路列表 l (如圖 8)

圖8 UE上下文鏈路信息
過程:函數 DFS(p,l,s)
ifp為字典then//當前數據形式為字典
for p中每一個k,v do//遍歷字典中所有數據
DFS(v,l,s+’[間隔符]’+k) //以當前數據的value為根節點遞歸調用DFS函數,并將key信息加入存儲字符s中
end for//字典數據遍歷結束
elseif p為列表 then//當前數據形式為列表
for p中每一個v do//遍歷列表中所有數據
DFS(v,l,s +’[間隔符]’+’[列表標記符]’)) //以當前數據為根節點遞歸調用DFS函數,并將列表信息作標記加入存儲字符s中
end for//列表數據遍歷結束
else//當前數據形式不存在嵌套結構
l. append(s+’[間隔符]’+p)//將存儲字符s中
所有信息存入輸出列表中
end if
4.3 用戶信息提取
為解決高并發下的數據包歸屬問題,需要從解析后的數據集中提取用戶信息。這里的用戶信息主要是指用戶設備在核心網中的身份標識,根據3GPP TS23.502[3],用戶設備在核心網中的身份標識包括用戶永久標識符(SUPI)、用戶隱藏標識符(SUCI)、永久設備標識符(PEI)、5G全球唯一臨時標識符(5G-GUTI)等。通過對已有數據集的分析處理,用戶設備的身份標識主要包含在請求的URL中,請求參數與響應參數中。因此,在這幾個字段下,采用關鍵字符匹配的手段,可提取出用戶設備的身份標識,并將其作為一項特征存儲進數據集中。
4.4 調用序列還原
判斷兩次通信是否屬于同一序列的一項重要標準為:這兩次通信間是否存在“響應等待”。以核心網對用戶設備的鑒權流程為例,此流程的網元調用序列為AMF-AUSF-UDM-UDR,映射到數據包中體現為AMF向AUSF發起請求,AUSF向UDM發起請求,UDM向UDR發起請求,UDR向UDM返回響 應,UDM向AUSF返回響應,AUSF向AMF返回響應。由此看來,序列存在的一項關鍵特征為,序列前置位的網元發送通信請求后,不會立刻收到響應回復,需要等待序列后置位的網元以序列逆序依次返回響應。
在進行調用序列還原之前,需要為數據表中的各行標記請求響應類型,標記標準為對存在請求方式不存在響應碼的數據標記為請求,對存在響應碼不存在請求方式的數據標記為響應。調用序列還原算法描述見算法2。
算法 2 網元序列還原算法
輸入 標記后的數據表df
輸出 調用序列列表 l
過程:函數TraceGenerate(df)
生成空棧stack, 序列信息存儲字符 t, 調用序列
列表 l,前一行數據記錄 previous
for df 中每一行current do//遍歷數據表
if current與previous除時間戳外完全一致 then
將previous標記為重復請求并跳過對previous 數據的處理//過濾重復請求產生的無效數據
end if
if current被標記為請求 then
將current的網元調用信息與API信息加入
stack//請求信息入棧
if previous被標記為響應 then
將t加入l后將t清空//當前數據為請求且前一行數據為響應時,代表一個序列還原結束,需要將存儲字符t加入輸出結果l中
end if
else
if 棧stack非空 then
棧頂數據出棧并將棧頂數據信息加入t中//對于響應數據的處理方式為,在棧非空的情況下,此時棧頂數據為該響應所對應的請求,那么將此次通信作為序列的一部分加入存儲字符t中
end if
end if
previous = current//對當前行數據處理結束,將當前行記為前一行,并準備開始下一行數據的處理
end for//數據表遍歷結束
if t長度大于0 then
將t加入l //將最后的遺留序列信息加入輸出
列表中
end if
4.5 API信息整合
攻擊者在尚未摸清網元服務API的工作方式時,需要對API進行試探性調用,再根據返回結果進行進一步攻擊。試探性調用中所使用的請求方式和URL往往與網元服務正常工作時所使用的請求方式和URL是不同的,那么通過對歷史數據中的API信息進行整合,可在攻擊者進行攻擊試探時及時發現。當然,這只是進行一項統計后去重的工作,沒什么技術瓶頸,這里唯一需要討論的問題是這項工作的必要性。其實在前面網元序列還原的工作中,已經加入了API信息,為什么還需要為API信息單獨建立基線呢? 根據基線構建思路中所描述的,預期得到的基線是將網元序列、API信息、參數信息整合后的結果。但在實際測試過程中,利用整合后的基線進行檢測所得到的檢測結果并不理想。原因是對高并發問題的處理方式是以用戶標識為基準進行歸并,沒有進行用戶標識傳遞的通信就會被忽略掉,從而導致序列的不完整。而在整合的基線下,序列的不完整會直接導致API信息和參數的不完整。若某次攻擊試探行為沒有發生用戶標識的傳遞(這種調用是極有可能發生的),那么此次試探便會直接被原型漏掉。因此,不再利用多維度整合的基線進行檢測,而是將網元序列、API信息、參數3個維度進行拆分,將拆分后的3個維度分別建立基線。經過檢測測試可發現拆分后的基線比整合基線的表現更好。
4.6 參數字典構建
為進行網元服務API的傳入參數異常檢測,可利用歷史數據生成參數字典,并以字典外的參數為異常參數。構建時需要注意的一點是,通信時傳遞的某些參數是不具備檢測價值的,比如ueLocationTimestamp,這類參數通常具有以下特性。
(1)無規律性:每次通信時所傳遞的參數值幾乎都是不同的。
(2)無參考性:給出該參數的一個特定值,無法判斷該值是由正常業務還是異常調用引發的。
為了保證檢測的質量和效率,需要在構建字典時盡可能地篩選出不具備檢測價值的參數。實現參數篩選基于以下兩個基本特征。
同鍵值參數列表長度l,l值越大,代表此參數出現次數越多。這里筆者認為l值越小,檢測價值越高。一種極端情況為,當l為0時,該參數是從未出現過的,可直接判定為異常參數。為了使該特征取值在0 ~ 1范圍內,并滿足單調遞減特性,可以將第一個特征定義為
x1= e-l (1)
參數值或參數正則式在同鍵值參數中出現的最大概率p。此概率越大,參數取值分布越集中,越不容易產生誤報。因此,將第二個特征定義為
x1= e-lx2= p (2)
基于以上兩個統計特征,可利用機器學習算法對參數進行聚類。考慮當前要解決的聚類問題滿足與神經網絡中基本的感知機模型較為契合,因此選用SOM神經網絡進行聚類。
在free5gc實驗環境中,筆者對參數篩選模型進行了測試,圖9中顏色深淺代表節點間距,顏色越淺的地方節點越集中。此模型將檢測參數大致分為3類,根據異常場景“使用SUPI訪問UDR將該用戶的認證狀態改為false”中success參數是存在異常的,那么選擇success所在的類作為有檢測價值的參數。

圖9 SOM神經網絡聚類結果
4.7 參數閾值計算
核心網網元通信傳遞的某些數值型參數是連續型的,對于這類連續型參數,構建參數字典進行檢測所得到的結果是不準確的,需要通過限定取值范圍的方式來進行檢測。取值范圍的計算方式有很多種,這里筆者選用了一種滿足大部分參數分布的計算方法:利用正態分布的3σ定理,將閾值設定在距平均值3倍標準差之內。
4.8 試驗驗證
在free5gc實驗環境中,從UPF網元向核心網中其他網元發起異常調用,檢測場景包含以下6項。
(1)從NRF獲取網元信息,發現更多網元。
(2)發送非法請求給AUSF試探。
(3)使用用戶SUCI竊取SUPI。
(4)使用SUPI訪問UDM獲取UE信息。
(5)使用SUPI訪問UDR將該用戶的認證狀態改為false。
(6)使用NRF獲取到的NF instance id訪問NRF,刪除某個網元。
將異常場景生成的流量數據輸入檢測原型,根據檢測結果得出結論如下。
(1)序列基線可檢測所有異常序列,并可溯源攻擊發起IP。
(2)參數基線可檢測所有異常參數,例如“使用SUPI訪問UDR將該用戶的認證狀態改為false”所產生的異常參數false等,但存在少量誤報,誤報率約為16%,誤報來源于模型誤差。
(3)API 操作基線可檢測攻擊試探行為、惡意刪除網元等場景。
5 結束語
本文將5GC網元服務安全分為5G協議安全、網絡架構安全、網元交互安全3個方向,介紹了5GC網元服務所面臨的安全風險,并針對網絡架構安全和網元交互安全給出了成熟的解決方案。根據解決方案,本文設計了5GC 網元服務安全異常檢測原型,檢測原型的核心技術在于參數結構提取算法、序列還原算法以及參數篩選模型。通過實驗驗證,檢測原型可以有效地檢測出5GC網元服務異常。
在協議安全方面,下一步還需要對N1、N2、N4接口協議可能存在的脆弱性進行分析和驗證。此外,本文提出的檢測方案對5G領域知識的融入還不夠,尚需要將5GC的業務行為引入檢測機制中,建立更細粒度的基線。
盼望5GC作為萬物互聯的基礎設施之一,可以高效且安全地為大家提供便利。
參考文獻
[1] 華為技術有限公司. 5G安全架構白皮書[R], 2017.
[2] 3GPP. 3GPP TS 23.501 V16. 3.0(2019-12) 5G的系統架構(R16)[S], 2019.
[3] 3GPP. 3GPP TS 23.502 V16. 3.0(2019-12) 5G的系統流程(R16)[S], 2019.
作者簡介
辛 冉
中國信息通信研究院安全研究所工程師,主要從事5G網絡安全的研究工作。
高 深
綠盟科技集團股份有限公司安全研究員,長期從事5G安全、業務安全的研究工作。
阮博男
綠盟科技集團股份有限公司安全研究員,長期從事云與虛擬化安全的研究工作。
論文引用格式:
辛冉, 高深, 阮博男. 5G核心網網元服務異常檢測[J]. 信息通信技術與政策, 2021,47(11):89-96.
?基金項目:國家自然科學基金計劃項目(No.61941119)資助
本文刊于《信息通信技術與政策》2021年 第11期

主辦:中國信息通信研究院
《信息通信技術與政策》是工業和信息化部主管、中國信息通信研究院主辦的專業學術期刊。本刊定位于“信息通信技術前沿的風向標,信息社會政策探究的思想庫”,聚焦信息通信領域技術趨勢、公共政策、國家/產業/企業戰略,發布前沿研究成果、焦點問題分析、熱點政策解讀等,推動5G、工業互聯網、數字經濟、人工智能、區塊鏈、大數據、云計算等技術產業的創新與發展,引導國家技術戰略選擇與產業政策制定,搭建產、學、研、用的高端學術交流平臺。
《信息通信技術與政策》官網開通啦!
為進一步提高期刊信息化建設水平,為廣大學者提供更優質的服務,我刊于2020年11月18日起正式推出官方網站,現已進入網站試運行階段。我們將以更專業的態度、更豐富的內容、更權威的報道,繼續提供有前瞻性、指導性、實用性的優秀文稿,為建設網絡強國和制造強國作出更大貢獻!

http://ictp.caict.ac.cn/