专栏首页绿盟科技研究通讯5G核心网:模拟环境搭建与网元通信关系还原

5G核心网:模拟环境搭建与网元通信关系还原

摘要

5G核心网通过基于服务的网络架构(SBA)、网络切片以及控制面/用户面分离等技术思路,实现了网络功能的定制化和服务化。但SBA架构的升级以及网络功能虚拟化(NFV)和软件定义网络(SDN)技术在网络切片实现上的引入也为5G核心网带来了新层面的安全问题 – 核心网网元业务安全。

在深入研究5G核心网业务层面的安全问题之前,首先需要了解5G核心网中的经典业务场景。鉴于此,笔者利用从核心网模拟环境中获取的数据,将其中经典业务场景的网元业务关系图进行了复现,复现结果展示了基站连接、UE注册、PDU会话建立三种场景中都有哪些网元之间进行了通信。

一、5G核心网简介

5G时代要解决的问题不只是人与人之间的通信,还有物与物之间的通信。传统的通信网主要面向人与人之间的通信需求而建设,随着物联网技术的发展,其垂直行业对通信的需求也是巨大的,传统网络软硬件绑定,网络实体间固化的流程架构已无法满足要求。因此5G核心网进行了重构,以网络功能(NF)的方式重新定义了网络实体,产生了5G核心网的SBA架构。图1为3GPP[1]标准下的5G核心网架构图。

图1 5G核心网架构图

架构图中UE为用户设备,(R)AN为(无线)接入网络,DN为数据网络,红框内为核心网中的网元集合,其中各个网元的功能为

AF – 应用功能

AMF – 接入和移动管理功能

AUSF – 认证服务功能

NEF – 网络开放功能

NRF – 网络存储库功能

NSSF – 网络切片选择功能

PCF – 控制策略功能

SMF – 会话管理功能

UDM – 统一数据管理功能

UPF – 用户平面功能

二、5G核心网模拟环境搭建

目前常用的5G核心网开源项目为free5gc[2]和open5gs[3],这里笔者利用了free5gc进行核心网模拟环境的搭建,将网元以容器的方式部署在虚拟机中。其搭建过程为:

1. GTP5G模块构建

由于只有5.0.0-23-generic版本的内核支持GTP5G模块的编译和测试,首先需要切换虚拟机的内核版本:

sudo apt install‘linux-image-5.0.0-23-generic’
sudo apt install‘linux-headers-5.0.0-23-generic’
reboot

执行上述命令后,使用 ’uname -r’ 检查当前内核版本,若返回结果为’5.0.0-23-generic’,表示版本切换成功。

将内核版本切换为5.0.0-23-generic后,再构建gtp5g模块:

git clone https://github.com/PriczOwO/gtp5g.git
cd gtp5g
make
sudo make install

2. free5gc网元容器启动

git clone https://github.com/free5gc/free5gc-compose.git
cd free5gc-compose
make base
docker-compose build
sudo docker-compose up -d

在make base执行过程中go mod可能会报错: dial tcp 34.64.4.81:443: i/o timeout. 因为新版默认GOSUMDB=sum.golang.org,这个网站被墙,

可以在base文件夹下Dockerfile的go mod download命令前加入

exportGOPROXY=https://goproxy.io
exportGO111MODULE=on

修改go env环境变量。

容器启动成功后查看容器状态,如图2所示。

图2 free5gc网元容器

启动网元容器使用的编排工具是docker compose,其yaml文件中配置的容器IP在子网10.100.200.0/24中。

查看启动后的容器IP,如图3所示。

图3 free5gc网元容器IP地址

三、NG-RAN和UE模拟器构建与配置

核心网环境就绪后,若要对5G的业务场景进行还原,还需要对基站和UE进行模拟。开源的基站和UE模拟器包括gnbsim[4], OAI-RAN[5], UERANSIM[6]等,本案例中模拟UE和基站的工具为UERANSIM。

利用UERANSIM进行模拟的步骤为

1. 依赖下载

sudo apt update
sudo apt installmake g++ openjdk-11-jdk maven libsctp-dev lksctp-tools iproute2

2. Java环境配置: 下载最新版本的jdk到指定目录并设置JAVA_HOME为此jdk的路径。

3. 默认核心网配置

编辑config/profile.yaml 将selected-profile字段修改为free5gc

4. 基站配置

基站的配置文件为config/free5gc/gnb.yaml, 其初始配置如图4所示,其中

plmn表示公共陆基移动网,plmn ID等于国家ID(mcc) + 运营商ID(mnc),不需要修改。

gnbId表示基站ID,不需要修改。

Tac表示区域ID,同一运营商为不同的通信区域设置不同的ID,不需要修改。

ngapIp为基站N2信令接口的IP地址,这里注意需要将127.0.0.1修改为虚拟机IP地址,因为之前构建的核心网是运行在容器上的,容器与宿主机之间的通信需要利用网桥,网桥和本地物理网卡之间是路由可达的。因此要实现运行在宿主机上的基站与运行在容器上的网元之间的通信需要将虚拟网卡lo对应的IP(127.0.0.1)修改为物理网卡对应的IP(ssh登录虚拟机时使用的IP)

gtpIp为基站N3信令接口的IP地址,与ngapIp的处理方式相同,将127.0.0.1修改为虚拟机IP地址。

amfConfigs为与基站建立连接的AMF网元IP信息,由图3可知AMF网元容器IP为10.100.200.8,因此将ngapIP修改为10.100.200.8。38412为free5gc中AMF网元对ngap消息的监听端口,不必再修改。

nssains项被用来选择网络切片,sst表示切片类型,其数值0x01表示的类型为增强型移动宽带(eMBB),sd表示切片差分值。模拟器使用的sst和sd在free5gc的NSSF网元配置文件中可以找到对应的切片,因此核心网可以提供相应的网络切片服务,不必再修改。

图4 UERANSIM基站默认配置

图5 free5gc UE认证信息

5. UE身份认证配置

在UE注册过程中,free5gc模拟的核心网通过用户隐藏标识符(SUCI)来进行用户身份识别,SUCI是用户永久标识符(SUPI)通过公钥加密得到的。SUPI的格式一般是国际移动用户识别码(IMSI)。IMSI = mcc + mnc+ msin(mobile subscriber identification number). 对于要进行注册的UE,如果它的IMSI不在核心网的鉴权数据中,核心网会提示认证失败,所以需要先将UE信息写进核心网中。

UE信息写入的一种比较简单的方法是利用free5gc前端提供的接口进行写入,容器环境下free5gc前端的端口为5000,要写入的UE信息如图5所示。这里可以根据需要调整IMSI后十位数的值,注意与config/free5gc/ue.yaml中IMSI的值匹配。此外,需要将OperationCode Type从默认的OP调整为OPc。

完成以上步骤后,就可以进行测试了。首先运行nr-agent,在根据不同的业务场景进行测试,UERANSIM支持的测试场景和对应的测试方式如下

./nr-clignb-create(基站创建与连接)

./nr-cli ue-create(UE创建与注册)

./nr-cli gnb-list(展示基站列表)

./nr-cli ue-list(展示UE列表)

./nr-cli ue-status[imsi](展示指定UE的状态)

./nr-clisession-create [imsi](对指定UE建立PDU会话)

./nr-cliue-deregister [imsi](对指定UE进行去注册)

./nr-cli ue-ping[imsi] [dns](从指定UE向指定域名发送请求)

基站建立,UE注册,PDU会话建立三种场景的测试结果如图6所示

图6 UERANSIM测试结果

四、还原三种业务场景下的业务关系图

在模拟环境测试过程中利用tcpdump进行抓包,具体命令为

tcpdump -n -vv -i[docker compose bridge] -w data.pcap

抓取的数据包在Wireshark中的展示结果如图7所示

图7 测试过程中从容器网桥抓取的数据包

接下来中可以利用数据包中的数据与网元的IP列表还原出基站建立与连接,UE注册,PDU会话建立三种场景下的业务关系图。

图8 基站建立与连接业务关系图

图8展示了基站建立与连接的业务关系图。基站建立与连接过程主要是通过(R)AN与AMF之间的通信实现的,使用的协议是NGAP协议。图中UDR与DB之间的通信为截取到的心跳流量,与基站连接流程无关。

图9展示了UE注册的业务关系图。在UE注册过程中,网元间发生的通信包括(R)AN向AMF发送N2消息,AMF调用AUSF启动UE认证,AUSF从UDM获取认证数据,AMF访问UDM获取用户数据,AMF访问PCF获取策略数据,UDM和PCF通过访问UDR获取数据库DB中的数据等。这些网元间通信以边的形式展现在业务关系图中。

图10展示了PDU会话建立的业务关系图。PDU会话建立过程中发生的网元间通信包括UE向AMF发送NAS消息,AMF向SMF发送Nsmf_PDUSession_CreateSMContext请求,SMF使用Nudm_UECM_Registration向UDM注册,SMF与PCF建立SM策略关联,SMF向UPF发送N4会话建立/修改请求,UDM和PCF通过访问UDR获取数据库DB中的数据等。这些网元间通信以边的形式展现在业务关系图中。

图9 UE注册业务关系图

图10 PDU会话建立业务关系图

展望

以上工作的还原结果还只是5G核心网整体业务流程的冰山一角。若要深入挖掘5G核心网的业务流程,还需要更细致的算法对数据包进行分析,进而将业务运行时网元间的工作进行更加准确的画像,例如将业务流程中每一步的网元间调用序列进行还原,可参照【云原生安全】从分布式追踪看云原生应用安全[7]对云原生应用API调用序列的还原效果。同时,真实5G核心网的业务远不止这三种,工作的广度也需要进一步扩大。接下来的工作也将在业务还原的准确度和广度上进一步开展。

参考文献

[1] https://www.3gpp.org

[2] https://www.github.com/free5gc

[3] https://www.github.com/open5gs

[4] https://www.github.com/hhorai/gnbsim

[5] https://www.gitlab.eurecom.fr/oai/openairinterface5g

[6] https://www.github.com/aligungr/UERANSIM

[7] 【云原生安全】从分布式追踪看云原生应用安全

关于星云实验室

星云实验室专注于云计算安全、解决方案研究与虚拟化网络安全问题研究。基于IaaS环境的安全防护,利用SDN/NFV等新技术和新理念,提出了软件定义安全的云安全防护体系。承担并完成多个国家、省、市以及行业重点单位创新研究课题,已成功孵化落地绿盟科技云安全解决方案。

内容编辑:星云实验室 高深 责任编辑:王星凯

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。

关于我们

绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

本文分享自微信公众号 - 绿盟科技研究通讯(nsfocus_research),作者:星云实验室

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 攻击物联网设备?黑客钟爱5555端口

    5555端口是安卓adb服务默认监听的端口,由于早期版本缺乏认证过程,导致其成为了僵尸网络热衷利用的目标,目前安全团队对5555端口上相关攻击的研究通常集中在a...

    绿盟科技研究通讯
  • 解析5G安全(一):5G网络架构

    5G飞速发展的今天,了解5G的网络结构、建立5G网络全局观是我们进行下一步5G研究工作的基础。本文首先从接入网、传输网、核心网三个部分解析5G网络结构,然后分析...

    绿盟科技研究通讯
  • 【M01N】资源约束委派和NTLM Relaying的组合拳接管域内任意主机系统权限

    【声明:本文所述相关技术仅限研究和学习使用,请遵守国家网络安全法律法规,勿用于入侵等非法用途,使用本文相关技术造成的法律问题与本公司无关。】

    绿盟科技研究通讯
  • 开发者的博客写作环境

    jeremyxu
  • 调整 wal_segment_size 导致PostgreSQL 停止服务

    近一段时间一致是 MYSQL ,PostgreSQL 两条腿走路,这样做是有原因的,不是所有的企业都是互联网企业,也不是所有企业的程序员都能良好的理解MYSQL...

    AustinDatabases
  • mysql-master/slave同步问题:Slave_IO_Running: No

    配置mysql的master/slave时,经常会遇到Slave_IO_Running: No

    拓荒者
  • wordpress 无法建立到 wordpress org 安全连接的解决办法

    网友求助,说安装 Avada 插件时遇到如下错误提示:wordpress 无法建立到 wordpress.org 的安全连接,请联系您的服务器管理员。询问网友得...

    魏艾斯博客www.vpsss.net
  • CentOS后台运行、关闭、查看后台任务

    & 加在一个命令的最后,可以把这个命令放到后台执行, watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本

    薛定喵君
  • 业界 | 腾讯论文入选Interspeech 2017:在单通道语音分离中应用的深度神经网路的训练优化

    AI 科技评论按:2017年8月20日,语音通信领域的国际顶级学术会议Interspeech 2017在瑞典斯德哥尔摩召开,腾讯音视频实验室王燕南博士的一篇论文...

    AI科技评论
  • 多媒体文件格式剖析:FLV篇

    之前介绍过多媒体文件格式剖析:MP4篇 MP4的多媒体格式,在这篇为文章中剖析了为什么MP4不是流式媒体格式,是因为MP4的BOX结构决定的,本文介绍一种常用的...

    马上就说

扫码关注云+社区

领取腾讯云代金券