
1. 项目概述为什么5G核心网与切片安全测试是当下必修课最近几年我身边越来越多的安全研究员和渗透测试工程师开始把目光从传统的Web应用、内网渗透转向了5G核心网和网络切片这个领域。这绝不是跟风而是因为5G网络正在从“通信管道”演变为“数字社会的基石”其安全边界直接关系到工业互联网、车联网、远程医疗等关键业务的命脉。一个针对5G核心网或特定网络切片的成功渗透其破坏力远超攻破一个普通网站。然而这个领域的技术门槛高、资料零散很多朋友想入门却不知从何下手。“5G核心网与网络切片渗透测试”这个项目就是旨在系统性地拆解这个复杂目标。它不是一个简单的工具使用教程而是一套从零构建测试环境、理解核心协议、定位攻击面、再到实施实战演练的完整方法论。简单来说它要解决三个核心问题第一面对一个完全云化、服务化的5G核心网攻击面在哪里第二网络切片作为5G的“杀手锏”特性如何对其进行隔离性测试和越权访问第三如何将传统的渗透测试思维适配到3GPP协议栈和电信级架构中无论你是想拓宽技术视野的安全从业者还是负责运营商或垂直行业安全的工程师掌握这套技术都将让你在未来的竞争中占据先机。2. 核心需求与攻击面全景解析2.1 5G核心网渗透测试的独特挑战与传统IT网络渗透测试相比5G核心网测试面临的根本性挑战在于其架构和协议的复杂性。5G核心网基于SBA服务化架构各个网络功能NF如AMF、SMF、UPF、UDM等通过基于HTTP/2的SBI服务化接口进行通信并使用NRF网络存储库功能进行服务发现。这带来几个全新的攻击面协议栈的转变从传统的TCP/IP套接字转向了基于TLS的HTTP/2和JSON格式的OpenAPI。这意味着你熟悉的Nmap端口扫描、Burp Suite抓包分析都需要新的配置和理解。你需要能解析3GPP TS 29.500系列规范中定义的API消息。身份的复杂性5G中有SUPI用户永久标识符、SUCISUPI的加密版本、GPSI通用公共订阅标识符、PEI永久设备标识符等多种标识符。攻击者可能通过身份混淆、标识符泄露或伪造来实施攻击。云原生环境5G核心网通常部署在Kubernetes等云原生平台上。攻击面从虚拟机蔓延到了容器、容器镜像、编排系统API、服务网格如Istio。一次成功的渗透可能始于一个配置不当的Kubelet API最终拿到核心网NF的权限。内部接口暴露在测试环境中许多用于NF间通信的SBI接口Nnrf, Nausf, Namf等可能对外暴露。这些接口本应在安全的服务网格内通信但配置失误可能导致其暴露在公网或测试网络可达的范围内成为绝佳的入口点。2.2 网络切片安全测试的核心诉求网络切片是5G为不同业务提供差异化服务的关键。一个切片可以看作一个逻辑上独立的端到端网络包含特定的核心网控制面、用户面功能和资源。对切片进行渗透测试核心目标是验证其“隔离性”是否被真正实现。主要测试方向包括切片选择策略绕过用户设备UE在注册网络时会通过NSSAI网络切片选择辅助信息请求接入特定切片。测试需要验证一个低权限切片如公共物联网切片的用户能否通过篡改NSSAI、利用AMF或NSSF网络切片选择功能的逻辑漏洞非法接入高安全等级切片如电力切片、警务切片。切片内横向移动假设攻击者已通过某种方式如利用UE漏洞接入了一个切片。需要测试在该切片内部能否从一个NF如某个UPF突破隔离访问到同一切片内其他NF甚至控制面的敏感数据。这涉及到容器网络策略、服务网格安全策略的测试。切片管理面攻击网络切片的生命周期管理创建、修改、删除通常通过CSMF通信服务管理功能、NSMF网络切片管理功能等完成。这些管理接口如果存在未授权访问、命令注入等漏洞攻击者可以直接创建恶意切片或篡改现有切片配置造成更大范围的破坏。共享资源冲突某些底层资源如物理服务器、交换机带宽可能被多个切片共享。测试需要关注是否存在通过耗尽共享资源资源枯竭攻击来影响其他切片服务质量的攻击方式。3. 测试环境搭建与核心工具链3.1 实验室环境构建方案实战是学习的唯一途径。搭建一个可供安全测试的5G核心网环境是第一步。对于个人研究者或小型团队我推荐以下两种高性价比方案方案一基于Open5GS和UERANSIM的开源套件这是目前最流行、资源要求相对较低的方案。Open5GS实现了5G核心网的各个NFUERANSIM则模拟了gNB基站和UE用户设备。你可以在单台性能尚可的Linux服务器建议16GB内存以上上通过Docker Compose一键部署。# 克隆仓库 git clone https://github.com/open5gs/open5gs git clone https://github.com/aligungr/UERANSIM # 使用docker-compose部署Open5GS核心网 cd open5gs/docker docker-compose up -d # 编译并配置UERANSIM cd UERANSIM make # 配置gNB和UE的配置文件指向Open5GS的核心网IP这个环境能完整跑通5G注册、PDU会话建立等流程所有NF间的SBI接口流量清晰可见是学习协议交互和进行基础接口测试的绝佳沙箱。方案二商用核心网的测试/开发镜像一些电信设备供应商会提供轻量化的核心网软件版本或虚拟机镜像用于演示和开发。虽然可能功能受限或有许可限制但其协议实现更接近现网能接触到更多厂商特定的实现细节和潜在配置点。获取这类资源通常需要与厂商的合作伙伴计划接触。注意无论采用哪种方案务必在完全隔离的物理或虚拟网络中运行如独立的VLAN、不连接互联网的虚拟机组。测试过程中会产生大量的信令和可能具有攻击性的流量必须确保不会影响到任何生产网络。3.2 渗透测试专用工具链选型与配置工欲善其事必先利其器。针对5G和切片测试需要对传统工具进行改造并引入一些新工具。流量捕获与分析工具Wireshark是基石但必须导入最新的3GPP 5G协议解析插件如ngap、nas-5gs才能正确解析NGAP、N1 NAS等空口和N2接口消息。对于SBI接口HTTP/2tcpdump抓包后导入Wireshark分析是可行的但更高效的是使用mitmproxy。将其配置为上游代理拦截并解码NF间的HTTP/2 TLS流量可以实时查看、修改JSON格式的API请求/响应效率远超在Wireshark中手动重组流。API模糊测试与漏洞扫描工具核心网SBI接口本质是一套RESTful API基于OpenAPI 3.0规范。因此传统的API安全测试工具大有用武之地。Burp Suite Professional配置其上游代理为mitmproxy或直接让被测NF的流量经过Burp。使用Burp的Scanner对API端点进行主动扫描同时利用Repeater和Intruder模块对关键参数如SUCI、切片IDS-NSSAI进行篡改和模糊测试。OWASP ZAP开源替代方案同样支持自动化API扫描和手动测试适合预算有限的团队。专门针对3GPP API的模糊测试框架可以基于Schemathesis等工具结合从3GPP规范网站下载的OpenAPI描述文件如果被测系统提供自动生成并发送大量符合语法但语义异常的测试用例寻找协议解析漏洞。云原生/容器环境测试工具如果核心网部署在K8s上以下工具必不可少。kube-hunter由Aqua Security开发用于攻击Kubernetes集群本身寻找错误的配置如开放的Dashboard、允许匿名访问的kubelet等。Trivy扫描容器镜像中的已知漏洞。Calico等CNI的安全策略审计工具检查网络策略是否真正实施了切片间或切片内的隔离是否存在过于宽松的allow-all规则。定制化脚本与工具很多测试需要定制开发。例如用Python的scapy库定制化构造和发送NGAP/NAS消息用Go或Python编写脚本模拟恶意UE批量尝试非法的NSSAI组合进行切片选择绕过测试。4. 渗透测试实战路径拆解4.1 第一阶段信息收集与侦察5G核心网的侦察与传统网络不同目标不是IP和端口更是网络功能实例和服务。服务发现NRF侦察NRF是5G SBA的“服务注册中心”。首先尝试发现NRF的地址可能通过DNSnrf.5gc.mncMNC.mccMCC.3gppnetwork.org或已知IP。找到后调用其nnrf-disc服务如GET /nnrf-disc/v1/nf-instances可以枚举出当前网络中注册的所有NF实例及其提供的服务类型如AMF,SMF、状态和接入地址。这相当于拿到了一张完整的核心网“地图”。API端点枚举对于发现的每个NF尝试访问其API根路径如https://amf.example.com/namf-comm/v1并尝试获取其OpenAPI文档通常位于/openapi.json或/v3/api-docs。这份文档详细列出了所有可用的操作和参数是后续测试的蓝图。切片信息泄露通过NRF查询或直接访问NSSF尝试获取网络中被允许的切片列表S-NSSAI。某些配置不当的接口可能会返回过多信息包括为特定企业客户配置的私有切片标识符。4.2 第二阶段协议与接口漏洞测试这是测试的核心针对的是3GPP标准实现中的缺陷。NAS消息安全测试N1接口上的NAS非接入层信令是UE与AMF之间的直接对话。测试点包括注册请求篡改拦截UE的Registration Request消息篡改其中的SUCI使用无效或恶意的公钥标识Home Network Public Key Identifier、5G-GUTI或Requested NSSAI。观察AMF是否进行了充分校验是否会引发异常状态或错误地允许注册。重放攻击捕获一次完整的认证流程消息包括Authentication Request/Response在稍后时间点进行重放测试网络是否能检测到。降级攻击尝试强制NAS信令安全算法降级到较弱的加密或完整性保护算法如NEA0/NIA0即空算法。SBI接口安全测试这是HTTP API测试的主战场。认证与授权绕过许多SBI接口使用OAuth 2.0或基于TLS的双向认证。测试是否存在无需令牌即可访问的端点测试令牌的校验逻辑尝试使用为其他NF签发的令牌访问本NF接口横向越权测试令牌的权限范围尝试用低权限令牌执行高权限操作垂直越权。输入验证与注入对API的所有输入参数进行测试。例如向UDM的/nudm-sdm/v1/{supi}/am-data接口的supi参数注入特殊字符或路径遍历符(../)向SMF创建会话的请求体中的DNN数据网络名称或S-NSSAI字段注入超长字符串、JSON畸形数据。业务逻辑漏洞这是最可能发现严重漏洞的地方。例如切片订阅检查绕过模拟一个未订阅“切片A”的UE但在PDU会话建立请求中明确请求“切片A”。检查SMF和PCF策略控制功能是否会严格执行订阅检查还是仅依赖UE提供的NSSAI。会话劫持通过某种方式如从日志、其他漏洞获取到一个有效PDU会话的上下文信息如PDU Session ID,UE IP。尝试向SMF发送修改会话的请求将该会话的UPF指向一个恶意UPF实现流量劫持。4.3 第三阶段网络切片隔离性专项测试此阶段聚焦于切片的核心安全承诺——隔离。控制面隔离测试假设已通过漏洞获得“切片A”中某个NF如一个AMF实例的有限权限。尝试从该AMF发起请求访问NRF查询并尝试与“切片B”的SMF实例通信。这测试的是服务网格如Istio的AuthorizationPolicy或NF自身的切片感知能力是否生效。尝试修改“切片A”的NF配置将其服务注册到NRF时使用的nfType或sNssais属性篡改为包含“切片B”的标识观察“切片B”的NF是否会错误地接受来自这个“间谍”NF的请求。用户面隔离测试UPF是数据转发的实体。测试不同切片的UPF之间在数据链路层/网络层是否真正隔离。例如为“切片A”分配的UE IP地址段是10.0.1.0/24为“切片B”分配的是10.0.2.0/24。在获得“切片A”内一台主机的访问权后尝试直接ping或连接10.0.2.1地址。如果通信成功则说明底层网络VxLAN、VLAN或防火墙规则隔离失败。测试UPF的流量导向策略。创建一个PDU会话请求访问互联网DNN为internet。然后在UE侧尝试访问一个本应通过另一个专用切片如enterpriseDNN才能访问的内部服务器地址。观察流量是否被正确隔离还是错误地路由了出去。管理面隔离测试寻找并测试CSMF/NSMF的API。尝试使用一个低权限账户如切片租户用户调用创建或修改切片的接口目标是创建能与其他切片通信的“桥接”切片或修改现有切片的隔离策略。5. 高级攻击场景与后渗透思路在基本漏洞利用之后真正的威胁来自于攻击者立足核心网内部的持续活动。持久化驻留在容器化环境中攻击者可能通过以下方式持久化部署恶意容器如果获得了K8s集群的部署权限可以部署一个伪装成合法NF如一个无状态的NRF副本的恶意容器该容器持续窃听服务发现请求或篡改响应。篡改NF镜像如果攻破了镜像仓库可以在基础镜像或特定NF镜像中植入后门导致每次滚动更新都会引入恶意代码。利用服务网格Sidecar在Istio架构中每个Pod都有一个Envoy sidecar代理。攻击者如果控制了某个NF可能会尝试篡改其sidecar的配置将流量镜像到攻击者控制的收集器。横向移动与权限提升利用NF间信任关系5G NF之间通常基于TLS证书进行双向认证。如果攻击者窃取了一个NF的私钥和证书就可以冒充该NF与网络中其他NF通信。例如窃取一个SMF的证书就可以冒充SMF向UPF下发流量规则PFCP协议实施流量劫持。攻击共享数据库UDM/UDR统一数据管理/存储存储了所有用户的关键数据。一旦突破UDM/UDR不仅可以盗取海量用户数据还可以篡改用户的订阅信息、服务质量策略甚至将用户“克隆”到另一个切片。拒绝服务DoS攻击信令风暴模拟海量恶意UE向AMF发起高频的注册请求消耗AMF的CPU和内存资源导致合法用户无法接入。资源耗尽针对特定切片建立大量PDU会话但不释放耗尽该切片分配的UPF资源如IP地址池、会话表项。服务网格过载向Istio Pilot等控制平面组件发送大量非法配置导致其瘫痪进而影响整个服务网格的数据平面。6. 防御视角与安全加固建议从攻击中学习防御才是渗透测试的最终目的。基于上述测试经验给运营5G核心网的团队几点关键加固建议最小化暴露面严格遵循零信任原则。所有NF间的SBI接口绝不应直接暴露在互联网或非信任域。必须通过API网关、服务网格的入口网关进行严格管控并实施基于身份的细粒度访问控制。强化API安全对所有API实施严格的认证和授权使用双向TLSmTLS进行NF间认证并结合OAuth 2.0进行细粒度授权。JWT令牌必须包含明确的NF类型、实例ID和所属切片信息。实施全面的输入验证和输出编码对所有OpenAPI定义的参数进行严格校验拒绝任何不符合规范的请求。对返回给用户或NF的数据进行编码防止注入。启用API限流和配额管理防止针对API的DoS攻击和资源滥用。确保切片隔离的纵深防御网络层使用不同的VLAN/VxLAN网络标识符或不同的虚拟路由转发VRF实例来隔离不同切片的用户面数据。K8s层使用NetworkPolicy严格限制Pod间的通信确保同一切片内的NF可以通信而不同切片的NF默认拒绝所有流量。服务网格层利用Istio的AuthorizationPolicy定义基于NF身份和切片标签的访问规则例如仅允许来自标签为sliceembb的namespace的amf服务访问标签为sliceembb的smf服务。NF应用层在NF代码逻辑中显式检查请求上下文中携带的切片标识S-NSSAI拒绝跨切片的非法请求。持续监控与威胁检测在NRF、API网关等关键节点部署专门的安全信息与事件管理SIEM或扩展检测与响应XDR探针收集所有服务发现和API调用日志。建立针对5G核心网的异常行为基线模型。例如一个SMF实例突然开始向非关联的UPF发送PFCP会话建立请求或一个UE在极短时间内尝试切换多个不同的切片都应触发高级别告警。定期进行渗透测试和红蓝对抗演练将上述测试方法常态化主动发现和修复潜在脆弱点。7. 常见问题与实战排错记录在实际测试中你会遇到各种预料之外的问题。这里记录几个我踩过的坑和解决方法希望能帮你节省时间。问题使用UERANSIM注册UE时一直提示“Authentication Failure”认证失败。排查思路5G认证流程涉及UE、gNB、AMF、AUSF/UDM多个网元。首先在Open5GS的AMF日志中查看详细错误码。常见原因与解决SQN同步失败这是最常见的原因。5G使用基于序列号SQN的AKA认证。UDM中存储的SQN与UE USIM卡中的SQN不同步。解决方法在Open5GS的UDM数据库MongoDB中找到对应用户supi的记录将其中的sqn字段改为一个较小的值如0然后重启UE尝试。在生产环境中这需要运营商网元与USIM卡进行同步管理。UE配置错误检查UERANSIM中UE配置文件ue.yaml的supi、key、op/opc等参数是否与Open5GS UDM中配置的完全一致。op/opc的算法MILENAGE和密钥必须匹配。核心网配置错误检查Open5GS的AUSF和UDM配置确保认证算法milenage已启用且配置正确。问题Burp Suite或mitmproxy无法拦截到NF间的HTTP/2流量。排查思路NF通常使用TLS加密通信且可能使用HTTP/2 over TLS (h2)。解决方法导入CA证书将Burp或mitmproxy的CA证书安装到运行NF的服务器或容器的系统信任根证书库中。对于容器可能需要构建一个包含该CA证书的自定义基础镜像。配置NF使用代理修改NF的部署配置或环境变量使其HTTP客户端将代理设置为Burp/mitmproxy的地址和端口。例如在Docker或K8s的部署文件中设置HTTP_PROXY和HTTPS_PROXY环境变量。使用透明代理模式高级如果无法配置NF可以在网络层面进行流量劫持。例如使用iptables将目标端口为特定SBI端口如29518 for NRF的流量重定向到Burp的透明代理端口。这需要更复杂的网络配置。问题在测试切片隔离时不同切片的UE之间似乎仍然能ping通。排查思路隔离可能在不同层面失效。排查步骤检查UPF配置确认每个切片是否使用了不同的UPF实例或同一UPF的不同分组如不同的gtp-u隧道端点。查看UPF的配置确认其路由表或策略规则是否基于切片ID进行了区分。检查容器网络如果UPF是容器使用kubectl exec进入UPF容器执行ip route或iptables -L -n -v查看其网络命名空间内的路由和防火墙规则确认是否有规则错误地将不同网段的流量桥接。检查底层网络如果UPF是虚拟机或物理机检查其连接的交换机端口VLAN配置以及主机上的网桥或VRF配置确保不同切片的流量在二层/三层被隔离。测试路径进行逐跳测试。从“切片A”的UE traceroute到“切片B”的UE IP观察路径在哪里发生了交汇那里就是隔离失效的点。问题对NRF的服务发现接口进行模糊测试时导致NRF服务崩溃。经验心得这是压力测试和稳定性测试的一部分但也说明了测试环境的重要性。建议在测试环境进行确保你的测试环境与生产环境完全隔离并且可以随时重置。监控资源在测试时使用kubectl top pod或docker stats监控NRF容器的CPU和内存使用情况。如果发现资源急剧上升及时停止测试。分析崩溃原因收集NRF的崩溃日志、核心转储文件。分析是内存耗尽、空指针解引用还是JSON解析库的漏洞。这本身就是一个有价值的安全发现可以反馈给开发团队修复。实施优雅降级在测试计划中应包含对NF健壮性的测试但也要避免使用明显会导致服务不可用的攻击如发送超大内存消耗的单个请求除非这就是测试目标。更有效的方法是模拟缓慢的HTTP攻击或并发连接耗尽。掌握5G核心网与网络切片的渗透测试是一个需要持续学习、动手实践和深度思考的过程。它要求你不仅懂安全还要懂电信网络、懂云原生、懂协议细节。这条路不容易但每当你成功复现一个协议漏洞或发现一个切片隔离的缺陷时那种攻克复杂系统的成就感是无与伦比的。我个人的体会是从搭建第一个Open5GS环境跑通流程开始到能够自主设计针对某个NF的模糊测试用例这个过程本身就是对系统性工程思维最好的锻炼。建议你找一个具体的、细分的点比如先把UE注册认证流程中的安全机制彻底搞透深挖下去建立起自己的知识图谱和方法论然后再逐步扩展到更广阔的领域。