一网打尽核心网及终端协议实现漏洞:韩国科学技术院LTEFuzz新方法

 

一周前,1月7日,四大安全学术顶级会议之一的IEEE S&P 2019 (May 20-22, 2019),又公开了一篇LTE协议栈漏洞有关的论文:“Touching the Untouchables: Dynamic Security Analysis of the LTE Control Plane”。之前该会议的同一领域的另一篇论文,“Breaking LTE on Layer Two”来自德国波鸿鲁尔大学,也引起过一番热烈讨论,关于这篇论文的解读可以看我们团队博客(https://unicorn.360.com/blog/2018/07/03/aLTEr/)。这次我们讨论一下韩国科学技术院(KAIST)的这篇论文。

摘要(如果你懒得看完全文):该论文使用了一种半自动化的模糊测试方法,基于开源项目srsLTE和openLTE,对LTE 控制面的NAS层和RRC层的安全性进行了系统的测试,并且找出了51个安全漏洞,其中有36个是新发现的漏洞,15个是已知漏洞。

针对这篇论文的内容,我们将从其研究方法,漏洞产生原因,和漏洞的危害性进行解读。

 

1       研究方法 – 半自动化模糊测试

此方法被作者命名为LTEFuzz,但是与传统漏洞挖掘中所指的Fuzz还是有区别的,本篇论文并不是在代码层次的Fuzz,不是打算去找基带侧实现部分内存破坏类型的漏洞,而是在信令层次的模糊测试。

作者首先将LTE控制面NAS层和RRC层可能出现的安全问题进行总的分类,分为三个类别。类别一,是对明文信令的处理不当所导致的安全问题;类别二,对加密后的信令处理不当导致的安全问题;类别三,对鉴权流程处理不当所引起的安全问题。

针对每一种类别,作者利用AT Command在商用芯片上导出NAS层和RRC层所有的信令,并以此生成测试用例,测试用例覆盖较为全面,我们猜想这也是命名为LTEFuzz的原因所在。

作者将生成的测试用例,分别利用开源的srsLTE项目中UE侧代码去测试商用基站和核心网的的安全性,利用openLTE项目测试商用终端的安全性。之所以分别用两个开源项目作为测试工具,是由于srsLTE的网络侧代码实现是enb与mme分离的,因此openLTE修改起来更为方便,而UE侧代码openLTE并没有实现,所以只能使用srsLTE中的srsUE。

最后,作者基于srsUE和openLTE的日志系统,打造了一款简单的决策机制,能够检测出异常流程,并且将这些测试结果进行分类。下面将对测试发现的漏洞进行分析。

 

2       漏洞分析

经过作者的LTEFuzz模糊测试,得到了51个漏洞,其中有36个是新型未被公开发表的漏洞,15个是已经被前人找到了。可以说,作者的模糊测试方法还是卓有成效的。漏洞被作者分为5类:

  • Property 1-1是协议本身对明文消息处理不当的漏洞类型(协议漏洞类型)
  • Property 1-2是协议中已经规定要实现加密和完整性保护,但是厂商实现的时候没有遵循标准要求的漏洞类型(实现漏洞类型)
  • Property 2-1 是接收方没有正确验证信令完整性的漏洞(实现漏洞类型)
  • Property 2-2 是与重放攻击,即序列号相关的漏洞(实现漏洞类型)
  • Property 3 是鉴权流程可以被绕过的漏洞(实现漏洞类型)

 

漏洞以及分类见下表

其中标记了[x]引用的,都是前人已经发现的漏洞。其中[2]就是我们团队2016年的一项研究成果。

发现了漏洞,可以怎样利用呢?通过对上述漏洞的组合利用,攻击者可以实现以下几种攻击方式:

BTS resource depletion attack: 资源占用型的攻击,这种攻击方式是通过攻击基站从而实现对目标终端的拒绝服务攻击,通过多次触发authentication request,并且拒绝回复使基站关闭与合法用户的连接。

Blind DoS attack:这种攻击方式是仿造合法终端,向基站发起RRC连接,并且导致合法用户无法再次与基站建立RRC连接。

Remote de-registration attack: 这种攻击方式是指将正在被服务的终端驱逐出基站,攻击者可以通过发送明文的连接请求,重放等方式使基站对攻击者进行服务而中断合法终端的连接。

SMS phishing attack:这种是一种冒充合法用户发送虚假短信的攻击方式,可能仅对特定核心网设备有效。

AKA Bypass attack:这是一种绕过终端鉴权的攻击,但是仅对特定基带芯片有效。

 

3       漏洞危害

从五种漏洞类型来分析漏洞的危害程度。

其中第2种到第5种,都属于实现型漏洞,均是厂商在实现的时候没有完整遵循协议的要求而导致的,因此各个厂商的具体情况会不相同,即存在于特定设备型号的特定版本中,可以通过厂家升级软件版本来修复。

其中可以产生DoS类攻击的漏洞危害略小,而虚假短信攻击(核心网设备漏洞)和绕过AKA鉴权的攻击(手机基带漏洞)是两种高危攻击。AKA鉴权绕过的攻击,论文中称在几款手机中已得到验证,但这几款手机型号已经比较老(韩国某品牌2013/2014年款),我团队正在检验目前主流手机型号是否存在该漏洞。

第1种漏洞类型,即Property1-1类的协议漏洞,此种协议型漏洞不论任何厂商的设备,都存在此类问题。这类漏洞存在的根本原因是,在网络和终端完成鉴权之前,有一些广播消息和初始化消息无法加密。对这类信令消息进行加密和签名是非常消耗计算能力的,因此此类问题在5G网络中仍将存在,安全专家们仍在研究讨论是否有代价较小的解决方案。

在Property1-1类型的漏洞中,除了已标记参考文献的,还剩7种。这7种很难说是全新的漏洞,因为基本上都属于无法加密的初始消息。

总的来说,漏洞的危害程度不是非常大。Fuzzing工具代码据称会对某些厂家公开,但不会公之于众。

最后八卦一下KAIST的这个研究团队。Yongdae Kim,金教授带领的这个研究团队,叫SysSec lab,是一个长期活跃在嵌入式安全、传感器安全、无线安全等领域的安全研究团队。这篇论文的第一作者,Hongil Kim同学,从2016年就开始捣鼓LTE开源代码。2016年我们在他们实验室见面聊天的时候,他就表示一定要写出一套LTE fuzzing工具。努力了两年,功夫不负有心人呐~

这篇论文的工作,还有一个亮点,就是他们得到了韩国两家运营商的许可,允许他们对现网设备做测试。为了避免测试对现网造成严重后果,他们必须非常小心的设计测试方案,有些测试使用了femtocell这种飞蜂窝基站,以免波及其他用户。无论如何,这样的测试机会是很难得的,正应了这篇论文的标题“Touching the Untouchables”。

(完)