尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

5G网络切片下的移动Web安全与隔离性测试实践

5G网络切片下的移动Web安全与隔离性测试实践 1. 先从基础说起5G 网络切片到底改了什么说实话这两年聊 5G 安全的人不少但真正把“网络切片”和“移动 Web 安全”放到一起讲透的并不多。我最早接触切片这个概念还是在实验室里调 5G 核心网 UPF 转发面策略的时候当时最大的感受是网络从“一条大水管”变成了“好几根独立的小水管”但水管的阀门、接口、计量表全都变成了软件定义的。这个变化听起来很美好放到安全视角下看问题就变得很有意思了。1.1 网络切片的本质从“一条路”到“多条专用车道”传统移动网络里所有用户共用同一套接入网、承载网和核心网就像城市里的一条主干道货车、私家车、救护车全都挤在一起。虽然有 QoS服务质量机制可以给某些流量提优先级但本质上大家走的还是同一条物理链路互相之间的干扰和风险是没法彻底隔开的。5G 网络切片做的事情简单来说就是在这条主干道上划出若干条“虚拟专用车道”。每一条车道有自己的带宽、时延、连接数上限甚至有自己的核心网网元实例比如 AMF、SMF、UPF 都可以按切片单独部署。终端侧通过 NSSAINetwork Slice Selection Assistance Information来标识自己要接入哪条“车道”网络侧根据签约数据和策略把用户引导到对应的切片实例里。我打个比方你就明白了以前所有住户共用一栋楼的大门和电梯现在改成每户有独立门禁和独立电梯但电梯井还是同一个、大楼的承重墙还是同一面。这就引出了切片安全最核心的矛盾——逻辑隔离和物理共享并存。你可以在软件层面把两个切片的流量、策略、数据完全分开但只要它们还跑在同一套物理基站、同一台服务器、同一块网卡上就存在从“逻辑隔离”被打穿到“物理共享”的可能性。1.2 切片的关键资源与接口安全边界到底划在哪要聊隔离性测试得先把切片涉及的几层资源弄清楚否则后面所有的测试方案都是在“盲人摸象”。第一层是无线接入网RAN侧的切片资源。5G NR 里通过 CBRCell Broadcast Radio机制把小区资源按切片做份额分配不同切片可以占用不同的时频资源块也可以共用资源但按比例调度。这里的安全关注点是某个切片的恶意终端能不能通过抢占资源影响同一基站下其他切片的用户如果 RAN 侧的切片调度策略有漏洞比如某个切片的 RB 配额被突破就可能造成“邻居切片”的业务质量下降甚至完全不可用。第二层是承载网 / 传输网侧的切片资源。通常用 FlexE灵活以太网或 SRv6 等技术实现切片之间的带宽硬隔离或软隔离。这里的风险点在于如果承载网设备对切片标签的处理有缺陷比如 SRv6 的 Segment List 可以被篡改或伪造那么流量就有可能被引导到错误的切片里。第三层是核心网侧的切片资源。每个切片实例其实是一组 VNF虚拟网络功能或 CNF云原生网络功能的组合运行在 NFVI网络功能虚拟化基础设施之上。多个切片的网元可能调度在同一台物理服务器上通过容器或虚拟机做隔离。这里的安全焦点恰恰是我在做隔离性测试时花时间最多的地方——计算资源的隔离越薄被突破后的影响半径就越大。再补一句很多人会忽略切片选择时的信令面风险。终端在注册或建立 PDU 会话时会在请求里携带 NSSAI网络侧要根据用户的签约数据来校验它是否有权限接入某个切片。如果校验逻辑写得不够严谨比如只校验了 S-NSSAISingle Network Slice Selection Assistance Information的格式却没有校验该用户是否真的签约了这个切片就可能出现“越权访问切片”的问题。这类问题在现网里属于高危漏洞因为一旦被打穿攻击者就可以直接进入公司内部切片访问核心业务系统。2. 切片落地后移动 Web 安全面临的四个新挑战网络切片本身并不是为了 Web 安全而设计的它首要解决的是业务差异化和资源保障的问题。但当切片真正承载移动 Web 业务——尤其是企业内部办公系统、移动支付、车联网远程控制这类高价值 Web 应用时安全挑战就浮出水面了而且每一个都和“切片”这个新变量强相关。2.1 切片间横向移动隔离失效的连锁反应传统移动网络里攻击者通过 Web 漏洞拿下一台手机或一个账号后横向移动的路径相对有限毕竟大家还是在同一个大网络里能接触到的资源和数据范围差不多。但到了切片环境下情况完全不同如果攻击者连入的是某个低安全等级的切片比如面向公众用户的普通互联网切片却因为隔离漏洞访问到了高安全等级的切片比如企业内网切片、车联网控制切片那他就能直接跳到另一个“安全域”里。我把这种攻击路径称为“切片跳板”。现实里最常见的方式有两种一种是恶意终端伪造或篡改 NSSAI试图接入高权限切片另一种是攻击者先控制了一台双卡或支持多切片同时在线的终端利用不同切片之间共享的 Web 会话或缓存信息做跨切片攻击。举个例子一部手机同时接入了“办公切片”和“个人切片”如果操作系统的网络栈或浏览器的会话管理没有做严格的隔离那么个人切片里的恶意页面就有可能窃取办公切片里 Web 应用的 Cookie。这时候就体现出隔离性测试的价值了你不能只看切片本身配置得对不对更要站在攻击者视角去验证“能不能从切片 A 跳到切片 B”。从我做测试的经验来看很多团队会把切片隔离等同于 VRF 或 VLAN 隔离认为只要网络层路由隔开了就安全了但实际上 Web 层的会话、认证、数据缓存都是潜在的横向移动路径。2.2 边缘节点成为新的攻击面5G 网络切片经常配合 MEC多接入边缘计算一起部署目的很明确让业务流量在离用户最近的地方完成处理和返回降低时延。在车联网远程驾驶场景里时延要从几十毫秒压到几毫秒业务逻辑就必须下沉到边缘节点比如在基站侧或汇聚机房部署 MEC 平台再在上面跑 Web 服务和应用逻辑。但边缘节点多了攻击面也就大了。传统核心网里的网元集中部署在少数几个机房物理安全和管理强度都比较高而 MEC 节点数量多、分布广物理防护和运维水平往往参差不齐。一个 MEC 节点被攻破后影响的不仅是它所在位置的用户更严重的是如果 MEC 平台和多个切片都有连接攻击者就有可能借助边缘节点作为跳板横向进入其他切片。这里我多说一句很多 Web 安全测试人员不太熟悉移动网络的架构会把 MEC 节点当成普通的 IDC 服务器来看于是漏掉了两个关键的测试点一是 MEC 和核心网之间的 N6 接口UPF 与外部数据网络的连接点是否有足够的访问控制二是 MEC 平台的管理面是否存在弱口令或未授权访问。我自己测过的一个边缘节点竟然开放了 SSH 管理端口到公网密码还是默认的这种问题放到切片环境里就成了“开了门的高速通道”。2.3 切片编排接口的权限管理问题网络切片不是一个静态概念它是动态创建、修改和销毁的。这背后依赖管理面的 MANO管理与编排系统里面有 NSSMF网络切片子网管理功能、NSMF网络切片管理功能等模块。管理员可以通过编排接口创建新的切片实例、调整切片的资源配额甚至配置切片内部的网络策略。问题来了这些编排接口是不是足够安全在现网项目里我见过不少编排接口只做了简单的 IP 白名单限制没有引入严格的认证授权机制。一旦某个内部账号被攻破或者某个 Web 应用存在 SSRF服务端请求伪造漏洞攻击者就有可能调用编排接口给自己创建一个高权限的切片实例或者篡改现有切片的配置把合法用户的流量引导到自己控制的节点上。这套路有点像云平台里的“管理面接管”——你不是去攻击某个具体的 Web 应用而是直接攻击承载所有应用的“操作系统”。所以做移动 Web 安全测试的时候我习惯把切片的编排管理接口也纳入测试范围哪怕这个接口本身是跑在内网里的只要它被某个 Web 应用间接引用就有被 SSRF 打穿的风险。2.4 Web 业务在切片内的“最后一跳”风险最后一个挑战可能也是大多数 Web 开发者最容易忽视的移动 Web 应用跑在切片里并不意味着它天然就安全了。切片保证的是网络的连通性、隔离性、资源保障但 Web 应用自身的漏洞——SQL 注入、XSS、越权访问、敏感信息泄露——一样都少不了。更麻烦的是切片环境下的 Web 应用往往和核心网网元、编排系统、网管系统部署在同一张网络里距离“核心数据”更近了。攻击者如果能通过 Web 漏洞拿到应用服务器的权限下一步横向移动的目标就非常明确——直接去摸 UPF、SMF 这类网元的管理接口。在传统网络里Web 服务器和核心网元之间通常隔了很多层防火墙但在切片架构下为了追求低时延和灵活调度很多业务系统就跟网元部署在同一套基础设施上网络边界变得很模糊。所以我说切片环境下的 Web 安全测试绝对不能只盯着 Web 应用本身要从“Web 应用 → 应用服务器 → 边缘节点 → 核心网网元 → 其他切片”这条完整的攻击链条去考虑。你测的不只是一个网站而是一个“被切片包裹着的、离核心网络极近的数字节点”。3. 隔离性测试怎么判断切片是不是真的“隔离”前面讲了这么多挑战现在进入正题隔离性测试到底怎么做。我结合自己做过的实验和现网测试项目把测试过程分成了准备、网络层验证、控制面验证、应用层验证四个阶段逐段展开。3.1 测试前的准备环境、权限与范围切片隔离性测试不是随便找个环境就能跑的前提条件是环境要够“真”。最好是有一套完整的 5G 端到端环境包括基站gNB、核心网AMF/SMF/UPF、MEC 和真实终端。如果没有整机环境用模拟终端加核心网仿真平台也能做一部分测试但 RAN 侧的隔离问题就覆盖不到了。测试前有三件事必须要做第一理清切片的拓扑。你得清楚地知道环境里存在哪些切片实例每个切片对应哪些 S-NSSAI、哪些 UPF、哪些 MEC 应用切片之间的网络路径是怎么走的。画一张拓扑图后面所有测试用例都基于这张图来设计。第二确认测试授权和边界。这一步非常关键。切片隔离测试本质上是在做“打破隔离”的尝试如果没有明确的授权和边界界定很容易越界。我的习惯是只针对测试环境进行生产环境只做非破坏性的配置核查不做主动攻击验证。第三准备测试工具。隔离性测试比较常用的工具包括终端模拟软件模拟不同切片的接入、抓包工具在 N3、N6、N9 等接口上抓取用户面流量、网络扫描工具探测切片内的存活主机和开放端口、Web 安全测试工具用于验证跨切片的 Web 会话和访问控制。如果是在实验室里还可以准备一台“恶意终端”用软件手段伪造 UE 行为验证网络侧的校验逻辑。3.2 核心测试项网络层隔离验证网络层隔离测试的核心是验证“切片 A 的流量能不能到切片 B 的资源”。常用的方法有以下几种。第一种是路由追踪法。我让终端接入切片 A然后去访问切片 B 的 Web 服务地址当然是在测试环境里模拟出来的目标 IP。如果访问通了说明两个切片之间的路由没有被完全隔离开这是一个非常严重的隔离漏洞。正常情况下切片 A 的默认路由应该被引导到它自己的 UPF再通过 N6 接口只能访问被允许的外部网络如果它能直接路由到切片 B 的 UPF 网段说明切片间的转发策略配置有问题。第二种是端口扫描法。终端接入切片 A 后对该切片的网段和相邻切片的网段分别做端口扫描。重点不是扫出多少端口而是观察扫描结果里有没有出现“不属于本切片”的存活主机。我记得有一次测试切片 A 的网段竟然能扫到切片 B 的 UPF 管理口原因是它们被错误地分配到了同一个 VLAN 里三个小时就发现了问题这种案例在真实项目里并不少见。第三种是资源抢占法。这种方法相对高级一些适合验证 RAN 侧或承载网侧的隔离效果。做法是让切片 A 的终端大量发起大流量下载比如用 iperf 打满带宽然后观察同基站下切片 B 用户的实际体验。如果切片 B 的吞吐量或时延明显恶化说明切片间在无线侧或传输侧的资源隔离没有生效。3.3 核心测试项控制面与用户面隔离验证网络层验证解决的是“通不通”的问题控制面和用户面的隔离验证要解决的是“能不能乱动别人家数据”的问题。控制面隔离的重点是验证终端能不能访问到自己没有签约的切片。测试方法是修改测试终端的配置文件让它尝试携带一个未签约的 S-NSSAI 去注册或建立 PDU 会话。观察核心网的返回结果——正确的行为应该是拒绝接入并返回原因值如果网络侧接受了这个请求说明切片选择或准入控制逻辑存在缺陷。另外一个控制面测试点和注册流程相关同一个终端注册到多个切片时各切片的认证过程应该是相互独立的。假如终端同时接入了切片 A 和切片 B而两个切片共用了同一个认证向量或会话密钥那么切片 A 的认证信息就有可能在切片 B 里被重放或滥用。这种问题在做互联互通测试时容易暴露出来需要抓取 NAS 信令仔细比对。用户面隔离的验证重点是检查不同切片的下行流量是否被准确地送到了对应终端。我常用的方法是在两个切片里分别部署两个 Web 服务在终端上同时发起两个访问会话然后在核心网的用户面接口上抓包确认流量的 GPRS 隧道标识TEID是否正确对应。如果出现 TEID 串用的情况意味着终端可能收到属于其他切片的数据这是典型的用户面隔离失效——一旦发生不仅是业务混乱更会带来严重的数据泄露风险。3.4 核心测试项Web 业务应用层隔离验证网络层和控制面测完了最后才轮到 Web 应用本身。这里的核心问题是两个切片如果承载了不同的 Web 应用在应用层面能不能做到真正的隔离先做会话隔离验证。正常情况下终端通过浏览器访问切片 A 内的 Web 应用时产生的 Session 或 Cookie 只对该应用有效。如果在同一台终端上切换到切片 B 的 Web 应用旧的 Session 不应该被新应用读取。但现实里如果终端侧使用了同一个浏览器进程访问两个切片的 Web 应用而浏览器没有对不同的网络上下文做区分就可能出现 Cookie 串用的情况。测试时我会在同一台终端上用无痕模式分别访问两个切片的 Web 服务然后用抓包工具确认每个请求到底走了哪条网络路径。接下来做数据隔离验证。在两个切片的 Web 应用里分别上传测试文件记录文件名、内容和路径然后再尝试通过另一个切片去访问这些文件。如果切片 A 的用户能够访问到切片 B 的 Web 应用目录甚至下载到其中的文件说明应用层的数据隔离已经失效了。这种情况大多是因为两个切片的应用部署在同一台服务器上却没有做好目录权限和虚拟主机配置隔离。还有一个容易忽略的点DNS 解析隔离。切片内部署的 Web 服务如果使用了相同的域名但期望解析到不同的实例需要确认核心网或 MEC 的 DNS 配置是否正确区分了不同切片。我做测试时碰到过一次两个切片的 Web 服务都用app.company.com这个域名但按设计应该分别解析到不同的内网 IP。结果配置错了所有切片都解析到同一个 IP用户直接串到了别的切片的业务环境里。下表是我在应用层隔离测试中最常使用的检查项分享给你们做个参考检查项测试方法判定标准会话隔离同一终端跨切片访问 Web 服务不同切片的 Session 相互独立Cookie 隔离检查各切片站点写入的 Cookie 域Cookie 不出现跨切片串用数据隔离跨切片访问上传文件无法访问其他切片的数据文件DNS 解析隔离对比各切片的域名解析结果正确解析到对应切片内网 IP访问控制跨切片请求管理接口未授权请求返回 401/4034. 实测过程中的踩坑记录与排查思路隔离性测试看起来高大上真正跑起来的时候问题层出不穷。我把自己踩过的一些坑整理出来按典型程度排了个序希望能帮你少走弯路。4.1 仪表与真实终端的结果对不上做切片测试时我最早用的是模拟仪表来验证网络侧的切片策略结果测出来的隔离结果“完美无缺”所有流表都正确路由也没问题切片间 ping 不通看起来非常干净。结果换了一台真实终端上去一测直接翻车——切片 A 的终端竟然能访问到切片 B 的 Web 服务。排查下来发现问题出在终端的行为差异上。模拟仪表的行为非常“标准”严格按照规范流程里的 NSSAI 携带和路由规则执行但真实终端在一些异常场景下会有“兼容性逻辑”。比如某款终端在某个切片注册失败后会静默地回退到默认切片发起请求而如果默认切片的策略没有设置严格的访问控制这部分流量就会绕过隔离规则。所以我的最终建议是隔离性测试一定至少要包含一个步骤是使用真实终端复测尤其是验证“异常场景下的行为兜底”。4.2 切换场景下会话串号问题还有一个容易踩的坑是在“多切片同时在线”场景下Web 会话串号。测试时用一台支持双切片的终端同时接入办公切片和个人切片然后分别打开两个切片的 Web 系统。结果发现办公系统里居然显示的时个人切片那个 Web 应用的登录用户信息。一开始怀疑是核心网的问题抓包抓了很久最后才发现问题不在网络侧而在终端本身。终端系统为了解决性能问题对两个切片的 Web 流量做了连接复用也就是说本来应该走两个独立socket的流量被终端强行合并到了同一条连接里。这样一来应用层的会话就出现了混用。这个问题如果要彻底解决得靠终端系统更新或者业务应用自行加固。作为测试方我们能做的就是把问题定性清楚给业务方和终端厂商各开一个 bug。这个案例也提醒我做切片隔离测试不能只依赖专业测试终端商用终端的行为差异同样值得重视。4.3 “假隔离”误判案例第三种情况比较隐蔽我称之为“假隔离”。测试时发现两个切片之间网络层互不可达Web 服务数据也完全不交叉结论几乎可以判定为“隔离良好”。但后来我用一个比较另类的方法测了一下——在切片 A 的 Web 应用里构造了一个 SSRF 漏洞在测试环境里故意留的让它去请求切片 B 的 Web 服务地址。结果令人意外SSRF 请求竟然成功返回了响应说明两个切片在“应用服务器所在的底层网络”里其实是互通的。之所以之前的常规测试没有发现是因为流量被网络层的路由策略挡住了但应用服务器作为“跳板”绕过路由直接访问到了对方的资源。这个案例让我反思了很久。切片隔离测试如果只停留在“终端能不能直接互访”这个维度是不够的。真正的隔离是端到端的、多维度的不仅要考虑普通 UE 的访问路径还要考虑切片内部应用、MEC 平台、网管系统等“内部节点”发起的访问。建议在测试时除了常规的终端视角还要增加“从切片内部服务器发起”的访问测试用横向移动的思路来验证隔离边界是否足够硬。4.4 工具和参数速查结合项目经验我总结了一套出报告时常用的关键参数和工具速查表方便大家对照使用参数/接口作用备注S-NSSAI切片唯一标识由 SSTSD 组成常见 SST1 增强移动宽带2 超高可靠低时延3 海量物联网NSSAI终端请求的切片列表注册和会话建立时携带需校验签约关系N3 接口gNB 与 UPF 之间的用户面接口承载 GTP-U 隧道隔离性测试抓包点N6 接口UPF 与外部数据网络之间的接口验证切片对互联网/企业内网的访问边界AMF 选择控制面按切片选择 AMF多个切片可共享一个 AMF但需做好实例隔离network slice端到端逻辑网络接入网/承载网/核心网三段均需覆盖测试写在最后隔离测试做了几年我最大的感受是网络切片给移动 Web 带来的安全挑战本质上是一个“信任边界重构”的问题。以前网络边界清晰大家把防火墙和安全审计重点放在网络的出入口现在切片把一张物理网络分成了若干虚拟网络看似边界更多了但实际上每一个边界都变成了软件定义、动态调整的不确定性大幅增加。我个人的习惯是不要迷信任何单一维度的隔离验证。哪怕网络层、控制面测出来的结果都是“未发现异常”应用层面的 Web 会话、SSRF、数据目录的测试也不能省因为真正的失陷往往就是从一个容易被忽略的小漏洞开始的。如果你也正在做切片环境下的 Web 安全测试建议把本文第四部分的“假隔离”案例看三遍——安全测试从来不是证明网络有多强大而是不断验证“到底还有哪条路是通的”。最后分享一个小技巧在测试切片隔离性时不要把目光只停留在自己的切片区。尽可能去了解被测环境里还存在哪些“旁路系统”——编排系统、运维堡垒机、MEC 管理面、DNS 服务器——它们只要有一条链路和你的测试目标重叠就值得加到测试清单里。这些“看上去不相关”的节点往往才是真实攻防里最容易被忽略的突破口。
返回列表