RESTful API在5G应用场景中的安全威胁研究

2023-03-15 08:47张奕鸣刘彩霞刘树新
计算机应用与软件 2023年2期
关键词:令牌核心网生产者

张奕鸣 刘彩霞 刘树新

(中国人民解放军战略支援部队信息工程大学 河南 郑州 450002)

0 引 言

5G网络为了满足增强移动宽带、超高可靠超低延迟通信和大规模机器类通信[1]等应用场景的业务需求,引入了毫米波、超密集组网、大规模多输入多输出、软件定义网络、网络功能虚拟化、基于服务化架构(SBA)等新技术和新机制[2-3]。同时,互联网开放和共享的一些优势技术也被5G技术标准采用,其中RESTful API作为5G SBA架构实现的一种关键技术被3GPP纳入5G标准[4-5]。

REST(Representational State Transfer)是互联网络应用程序的一种设计理念与开发方式,其概念是Roy Thomas Fielding在2000年所发表的论文中提出的[6],Fielding在论文第6节中详细描述了如何在互联网中使用统一资源标识符(URI)、超文本传输协议(HTTP)和不同数据表示格式实现REST,满足REST开发方式的API则被称为RESTful API。当前,RESTful API已经在Web服务和物联网等场景得到成熟应用。

RESTful API在Web服务和物联网应用场景中已经发现面临诸多安全问题,如:(1) 由于Web服务的大连接特性和物联网终端处理能力受限特性使得RESTful API在这两种场景中面临DDoS攻击威胁;(2) RESTful API的身份验证机制导致其面临中间人攻击威胁;(3) 针对RESTful API输入参数的注入攻击威胁;(4) 由于RESTful API使用XML、JSON等序列化方法传输请求和响应数据,使得攻击者利用XML和JSON自身漏洞对RESTful API发起攻击等。

针对RESTful API在Web服务与物联网应用场景中的安全威胁,业界也开展了一些安全增强机制研究。文献[7]提出基于ID的身份验证算法,利用URI实现客户端与服务器的轻量身份验证,解决REST的无状态特性带来的复杂身份验证问题。文献[8]提出一种REST安全协议,采用数字证书、消息签名、消息对称加密方法为RESTful API消息提供机密性、完整性和不可抵赖性保护。文献[9]提出一种一次性令牌机制,每个REST Web请求都携带唯一的不易伪造的一次性令牌,令牌中包含时间戳,并限制合法访问的时间窗口,降低REST Web服务遭受中间人攻击与劫持攻击的风险。文献[10]引入了RE-CHECKER框架分析软件定义网络控制器中的RESTful服务的漏洞。文献[11]提出了一种基于RESTful API的体系结构保护物联网设备安全,物联网中间件使用RESTful API对终端进行身份验证后下发令牌,并将持有令牌的终端生成的数据上传至云服务器等。

由于5G网络面向海量连接和大规模通信应用场景,网络功能(NF)间存在身份验证机制,控制平面NF间数据传输使用JSON编码,故RESTful API在5G场景中也可能面临相似的安全威胁。此外,RESTful API在5G网络应用场景的特殊应用需求,也会引入新的安全威胁。

本文首先介绍5G核心网SBA架构,在此基础上,介绍了REST的特点和SBA架构中应用RESTful API的具体流程,从DDoS攻击、JSON安全威胁、中间人攻击、注入攻击四个角度分析了RESTful API在5G SBA架构中可能存在的安全威胁,最后,分别基于RESTful API请求频率控制、JSON防护、令牌改进、参数检查四个方面给出了在5G应用场景针对四类威胁的安全防护方案,为增强RESTful API在5G核心网的应用安全提供参考。

1 5G核心网SBA架构与RESTful API

3GPP定义了5G网络的架构,如图1所示[12],定义了NF之间交互的两种表示方法,分别是基于服务表示和参考点表示。图1中5G网络架构可以分为两部分,分别是用户平面与控制平面,虚线下方为用户平面,虚线上方为控制平面。5G网络中控制平面NF之间通过基于服务的表示进行交互,例如接入管理功能(AMF)通过Namf为其他控制平面的NF提供服务,参考点表示应用于用户平面NF之间的交互,例如接入网((R)AN)通过参考点N3与用户平面功能(UPF)进行交互,控制平面与用户平面之间的交互同样使用参考点表示,参考点分别是N1、N2、N4。

图1 5G网络架构

3GPP定义的基于服务表示方法以基于服务接口(SBI)作为实现,3GPP对SBI的协议栈进行了定义[13]。SBI协议栈自底向上在网络层协议采用IP,传输层协议采用TCP,应用层协议采用HTTP/2.0,采用JSON作为序列化方法,采用OpenAPI3.0作为接口描述语言,采用REST作为API开发方式[14]。RESTful API有以下几个主要特点:(1) RESTful API的开发采用客户端-服务器的设计架构;(2) RESTful API的无状态性,即服务器不保存客户端的信息,客户端发送的每一个请求都需要包含所有必需的状态信息;(3) 服务器中的所有资源采用URI进行标识,资源可以是文字、图片、音频、视频、服务等;(4) 资源的表示形式根据客户端的需要进行转换,例如服务器可向客户端发送XML、JSON、TXT等类型的数据;(5) 客户端对资源所进行的操作使用HTTP方法实现,查询操作采用GET方法,新增操作采用POST方法,修改更新操作采用PUT或PATCH方法,删除操作采用DELETE方法。

RESTful API设计方案减少了5G网络控制平面NF之间的耦合度和依赖性,符合5G网络服务化的理念,此外,电信运营商可以使用RESTful API将不同地理位置和不同类型的NF组合到网络切片中,实现5G网络的云化、虚拟化和按需部署。

以AMF通过服务发现请求访问NRF并使用SMF服务为例,阐述RESTful API应用流程,为了便于说明,例中应用场景为非漫游。在此场景中,AMF为NF服务消费者,SMF为NF服务生产者,NRF为授权服务器。NF之间交互如图2所示。

图2 AMF-NRF-SMF交互

5G核心网NF服务访问授权采用OAuth2.0框架,5G核心网控制平面中的NF服务消费者通过RESTful API请求使用NF服务生产者的服务须经过NRF授权且NF服务消费者与NRF之间授权的方式是OAuth2.0框架的Client Credentials,即NF服务消费者和NF服务生产者首先须要在NRF中注册,注册完成后NF服务消费者使用Nnrf_NFDiscovery_Request请求获取NRF中已注册的NF服务生产者信息,然后NF服务消费者使用Nnrf_AccessToken_GET_Request向NRF请求访问令牌,NRF对NF服务消费者进行鉴权,若通过鉴权,则向NF服务消费者下发访问令牌,NF服务消费者需要将访问令牌与服务请求一同发送至NF服务生产者,NF服务生产者验证令牌完整性后执行服务。根据RFC 6749[15]和3GPP的定义[16],5G核心网控制平面的NF在OAuth2.0框架中的角色如下:(1) NRF为Authorization server;(2) NF服务消费者为Client;(3) NF服务生产者为Resource server。

2 5G核心网Restful API安全威胁

RESTful API的无状态特性提高了服务器可扩展性,服务器可以以此为基础实现负载均衡,减轻流量压力;RESTful API使用URI标识服务器资源,简化了资源的发现过程;客户端使用已有HTTP协议的方法对资源进行操作,提高了RESTful API的兼容性,这些优势使RESTful API在现代软件架构设计中越来越重要。但与此同时引入了因RESTful API设计漏洞而产生的安全威胁。分布式拒绝服务(DDoS)攻击尤为普遍和显著,其本质是攻击者利用与受害主机的资源不对称特性,控制5G网络中不同位置的多台假冒NF同时对受害NF发起恶意请求,导致受害NF资源耗尽,无法为合法NF提供正常服务[17]。JSON是5G核心网SBI协议栈中的序列化方法,即通过RESTful API发送请求和响应数据的编码方式是JSON,故其安全漏洞会成为攻击者通过RESTful API攻击5G网络的途径。中间人攻击是5G网络安全威胁中一个重要部分,攻击者可以建立中间人监听访问令牌从而非法请求服务。RESTful API的输入参数会受到注入攻击的威胁,注入攻击的根本原因是系统对用户的输入验证不足,可以根据输入内容分类为以SQL语句作为输入的SQL注入[18]、以系统无法处理的错误数据作为输入的错误数据注入[19]、以恶意可执行代码作为输入的恶意代码注入等。5G核心网RESTful API安全威胁如图3所示,以下对安全威胁进行详细说明。

图3 5G核心网RESTful API安全威胁

2.1 DDoS攻击威胁

在5G核心网中,假设攻击者控制多台假冒NF在多个PLMN中的NRF中进行注册,注册完成后同时请求同一个PLMN中NRF的同一个服务RESTful API,如图4所示,若该受害NRF的RESTful API运行需要消耗较多资源,例如服务发现RESTful API,则受害NRF可能会由于本身资源的耗尽而无法为合法NF提供正常服务。

图4 DDoS攻击

2.2 JSON安全威胁

利用当前最新发现的JSON漏洞CVE-2020-10663,攻击者可以在5G网络NF的JSON解析器中创建恶意对象。3GPP规定了当前5G核心网控制面中PLMN之间JSON消息数据传输由SEPP和IPX进行保护[16],SEPP使用JWE[21]对JSON数据进行机密性和完整性保护,IPX使用JWS[22]对修改后JSON数据进行数字签名,如图5所示。但在同一个PLMN核心网内控制平面NF之间JSON数据传输并没有受到保护,在SBI协议栈中是否采用TLS仍在讨论中[23]。如果不使用TLS机制,攻击者可以通过监听和嗅探等方式获取JSON数据,若JSON数据中包含地理位置、身份标识等用户敏感信息,则会危害用户隐私。即使使用TLS机制,攻击者可以将伪造的TLS证书安装在PLMN的核心网中,从而使用攻击者的公钥对所有数据包进行加密,并使用攻击者的私钥(由伪造的TLS证书提供)对其进行解密[24]。因此,攻击者可以读取所有加密的JSON数据。

图5 PLMN间JSON消息保护

2.3 中间人攻击威胁

上文举例说明了5G核心网中AMF使用RESTful API在NRF中注册并获取访问令牌进而请求SMF服务。如果攻击者在AMF和NRF之间插入非法的监听设备,如图6所示,NRF对AMF鉴权成功后,会将访问令牌通过Nnrf_AccessToken_Get_Response消息发送至AMF,此时若攻击者通过监听设备获取到了AMF的访问令牌,则攻击者可以控制假冒AMF携带访问令牌使用SMF的服务而不被检测到,若NRF下发的是敏感服务的访问令牌,例如AMF的获取用户地理位置的服务,则攻击者可以获取到用户的地理位置进而追踪用户。

图6 中间人攻击

2.4 注入攻击威胁

在5G核心网中攻击者可以利用某些NF没有对RESTful API的输入参数进行严格检查的漏洞,在RESTful API的输入参数中注入恶意数据从而获取敏感信息。试想,攻击者通过中间人攻击获取到特定NF服务(例如AMF的Namf_MT服务)访问令牌后,使用访问令牌所规定权限范围之外的NF服务(例如AMF的Namf_Location服务)构造恶意请求,攻击者将恶意请求与访问令牌一同发送至NF服务生产者端,由于访问令牌是合法的,若NF服务生产者没有严格检查令牌中权限范围参数与请求服务是否匹配,则NF服务生产者会执行攻击者的恶意请求,这可能导致用户的敏感信息被窃取,若攻击者构造的恶意请求包含NF服务生产者无法处理的越界参数,则可能导致其崩溃,如图7所示。

图7 注入攻击

3 5G核心网RESTful API安全防护机制

针对上文分析的RESTful API在5G核心网存在的安全威胁,基于业界对RESTful API在Web与物联网安全研究方法,本文结合5G网络SBA架构特点,对四类安全威胁提出了对应的安全防护机制。

3.1 DDoS攻击威胁防护机制

针对上文分析的DDoS攻击威胁,NF服务生产者应对来自同一个令牌的RESTful API请求频率做出相应的限制,可以根据RESTful API所占用资源的不同进行等级划分,对占用资源高的RESTful API请求频率设定更严格的阈值,对资源占用低的RESTful API请求频率设定较为宽松的阈值。若单位时间内来自同一个令牌的请求超过RESTful API请求频率阈值,则NF服务生产者使用HTTP状态码“429 Too Many Requests”作为响应且拒绝执行服务,如图8所示。此外,NRF可加入防火墙机制,依据NF服务请求内容(例如恶意源IP地址、恶意NF ID、未知PLMN ID等)划分出恶意NF服务消费者,过滤恶意NF服务消费者的请求,降低NF服务生产者RESTful API滥用风险。

图8 RESTful API请求频率限制

3.2 JSON安全威胁防护机制

针对上文分析的JSON安全威胁,5G核心网NF应具备对第三方功能进行细粒度快速升级的能力,若有JSON漏洞被挖掘,则5G核心网应能够对所有使用JSON功能的NF进行快速升级,安装JSON漏洞补丁。此外,同一PLMN核心网内NF间JSON数据传输应使用JWE[21]进行保护,JWE可以同时保护JSON数据的机密性和完整性,防止攻击者获取到用户的敏感数据,如图9所示。

图9 JSON防护

3.3 中间人攻击威胁防护机制

针对上文分析的中间人攻击威胁,即攻击者获取到NRF发送至NF服务消费者的访问令牌,从而携带访问令牌使用NF服务生产者的服务。提出一种改进访问令牌的安全机制,如图10所示。NF服务消费者请求访问令牌之前,生成随机数R并使用散列算法计算随机数的散列值H,将H与散列算法名称Hashname连同访问令牌请求一同发送至NRF。NRF对NF服务消费者鉴权成功后,将散列值H与散列算法名称Hashname放入访问令牌中发送至NF服务消费者,当NF服务消费者向NF服务生产者请求服务时,将随机数R与访问令牌一同发送至NF生产者,NF服务生产者成功验证访问令牌完整性后,将散列值H与散列算法名称Hashname取出,使用相同散列算法计算R的散列值H′,若散列值H′与H相同,则允许NF服务消费者使用服务,并将服务响应返回至NF服务消费者,否则拒绝提供服务。

图10 改进访问令牌

通过改进令牌的安全机制,攻击者即使获取到NRF向NF服务消费者下发的访问令牌,由于无法获知NF服务消费者生成的随机数R,故无法使用NF服务生产者的服务。

3.4 注入攻击威胁防护机制

针对上文分析的注入攻击威胁,NF服务生产者验证NF服务消费者访问令牌完整性的同时,应严格检查NF服务消费者请求RESTful API中输入参数是否与令牌保持一致或者是否存在安全威胁。例如检查NF服务消费者请求RESTful API访问资源的权限是否在令牌所规定权限之内,验证RESTful API输入的参数数量、类型、长度、数值是否在NF服务生产者所允许范围之内。若NF服务消费者请求的访问权限超过了访问令牌权限范围或NF服务消费者输入参数越界,则NF服务生产者应拒绝NF服务消费者的服务请求并返回错误消息,如图11所示。

图11 RESTful API检查机制

4 结 语

5G网络将内生安全作为重要的设计理念之一,因此5G网络在设计之初必须全面考虑可能存在的安全威胁。针对RESTful API在5G应用场景中相关安全研究较少的不足,本文在梳理5G网络服务化架构与RESTful API应用方法的基础上,分析了5G网络RESTful API 的4种主要安全威胁,包括DDOS攻击威胁、JSON安全威胁、中间人攻击威胁和注入攻击威胁,并提出了相应的安全防护机制,为5G网络的发展完善提供了参考。未来将会针对5G服务化架构相关协议和应用场景安全做进一步研究。

猜你喜欢
令牌核心网生产者
称金块
1月巴西生产者价格指数上涨3.92%
基于路由和QoS令牌桶的集中式限速网关
GSM-R核心网升级改造方案
2019德国IF设计大奖
动态令牌分配的TCSN多级令牌桶流量监管算法
5G移动通信核心网关键技术
通信核心网技术的应用探讨
家禽福利的未来:生产者能期待什么?
一场大风带给生产者的思考