HITB2014AMS – 第2天 – 女王的秘密任务:GRX与间谍机构
去年,Belgacom公司遭到情报机构(可能是GCHQ)的黑客攻击。Rob提出:“这次攻击的特别之处是什么?他们为何要入侵Belgacom?类似攻击的目的可能是什么?”在回答这些问题之前,我们需要快速了解移动网络的工作原理以及移动数据如何在网络中传输。
移动数据
在移动数据网络中,定位用户位置至关重要。KPN在全国拥有约5000个基站,每个站点都有唯一的蜂窝标识符(CI)。为分组管理,使用路由区域代码(RAC)进行归类。每个国家有独特的移动国家代码(MCC),例如荷兰的MCC是204。此外,每个运营商也有唯一的移动网络代码(MNC)。
接入网络需要APN(接入点名称)、IMSI(国际移动用户识别码)和存储在SIM卡中的UICC(通用集成电路卡)。从网络角度看,还需要更多组件:无线基站(BTS/nodeB)、归属位置寄存器(HLR)、GPRS服务支持节点(SGSN)、GPRS网关支持节点(GGSN)以及DNS服务器。
手机发送数据包时,首先进入数据网络。数据包到达SGSN/S-GW后进行身份验证(通过HLR/HSS)。验证成功后,设备解析APN名称(使用DNS)。流量随后发送至网关,网关之后的所有通信均为纯TCP/IP。
为确保设备使用独立隧道,GPRS隧道协议(GTP)被创建。该协议(GTPv0 GPRS、GTPv1 GPRS/UMTS、GTPv2 LTE)基于UDP。协议规范详见http://www.3gpp.org/DynaReport/29060.htm。
电信公司被入侵时,GPRS协议中的多个字段可能对攻击者有价值,包括IMSI、隐藏的APN,以及MCC、MNC、LAC、CI和IMEI等信息。
漫游移动数据
移动漫游设置与国内网络类似。设备先连接本地网络,本地SGSN会联系归属国的HLR进行身份验证。验证后,流量被发送至归属国的网关……为实现这一过程,运营商使用GRX(GPRS漫游交换)。GRX是基于GSMA的概念,但应该与网络其他部分隔离。
为理解GRX流量为何对间谍机构具有吸引力,需分析GTP流量的内容和数据包结构。当前网络分析工具大多无法解析GTP(除电信专用工具外),因此KPN Cert团队的Wesley编写了脚本去除GTP头部并解析流量。该脚本识别链路层头部、检测VLAN标签、检查IP/UDP头部等,使研究人员能将处理后的PCAP文件加载到NetworkMiner(http://www.netresec.com/?page=NetworkMiner)中分析实际GTP流量内容。这意味着可查看所有明文流量(包括凭证等)。获取GRX流量访问权对间谍机构显然极具价值。
此外,由于GTP头部包含位置信息,间谍可利用流量收集用户位置数据。www.numberingplans.com网站可分析IMEI号码并显示设备信息,http://unwiredlabs.com/api则可用于获取位置信息。
简言之,获取GRX流量访问权是重大威胁,也是间谍和攻击者的明确目标。
获取GRX网络访问权?
非运营商身份获取GRX访问权的难度如何?为评估难度,团队采用“杀伤链”方法(典型的渗透测试方法)。审计从分析GRX BGP路由表(MNO)开始,识别出4.8K个子网(32万IP地址)。随后使用masscan进行有限端口扫描,并通过zmap发送GTP ping(UDP 2152、2123)以发现所有启用GTP的设备。进一步使用SGSNEMU(OpenGGSN组件)尝试连接GGSN、执行ping请求、创建PDP上下文,并转发数据包至Gn/Gp接口。
接下来,团队尝试发现各电信公司使用的DNS服务器(GRX通过其解析APN以建立GTP隧道)。多数运营商运行Bind和Microsoft DNS,部分Bind版本较旧且存在DoS漏洞。
此外,团队扫描网络内的SMTP服务器,发现多种类型(Exim、Microsoft、Sendmail、qmail等)。这些SMTP服务器的存在原因不明。随后进行FTP、Telnet、SMB扫描和SNMP探测等,发现各类老旧易受攻击的服务器和守护进程。换言之,GRX网络不仅包含GRX相关设备,似乎并非专用/隔离网络。
更严重的是,4.2万GRX存活主机中,有15家运营商的5500台主机可从互联网直接访问。若这些联网的易受攻击设备被入侵,攻击者可借此进入GRX网络。这些设备本不应暴露于互联网。
回顾Belgacom入侵事件,攻击似乎直接针对管理员而非外部设备。这可能因为Belgacom无暴露系统、暴露系统防护良好,或通过漏洞服务器获得的访问权限有限。直接攻击管理员可立即获得更多内部系统访问权。
GRX流量无疑具有价值:包含用户身份、位置和行为信息。本应隔离却未实现。运营商可采取以下措施预防问题:
- 从BGP表中移除GRX前缀
- 使用BGP身份验证
- 配置路由器仅从有漫游协议的特定AS号导入特定前缀
- 实施入口过滤(BGP会话、阻止伪造IP、允许GTP/DNS/ICMP……即应用“最小权限”访问列表)
关于演讲者
Stephen Kho是荷兰最大电信运营商KPN的CISO团队渗透测试员,拥有10年以上专业经验,涉及网络基础设施、VoIP、ICS/SCADA和Web应用安全测试。他曾在2009年伦敦UC Expo发表技术简报,近期专注于3G/4G移动通信安全测试,并于2013年OHM安全会议联合发表演讲。
Rob Kuiters是KPN CISO团队事件响应处理员,自荷兰GSM早期即参与移动网络工作。2007年加入KPN-CERT任移动安全技术专家,主要研究方向为GRX和信令网络安全。