智能GPS跟踪器的安全与隐私问题研究

lucywang 其他 2019年3月4日发布
Favorite收藏

导语:本研究专注于商用GPS跟踪器的安全和隐私问题,我们已经观察到,可以轻松地利用各种攻击场景以非法方式获得GPS跟踪器的位置信息。

前言

在过去的30年里,随着智能设备的普及,GPS追踪器和应用场景也越来越广泛,比如用于儿童和老人的行踪掌控,公路巡检,贵重货物跟踪,追踪与勤务派遣,私人侦探工具,个人财物跟踪,宠物跟踪,野生动物追踪,货运业,汽车防盗,自行车防盗,电动车防盗,摩托车防盗,银行运钞车,军警演习操控,检调追踪,公务车管理等。这些设备的一个主要功能是收集跟踪器位置的GPS坐标,并通过蜂窝调制解调器和SIM卡将它们发送到远程服务器。不过随着技术的发展, GPS跟踪器除了简单的位置定位外,还包括许多诸如麦克风、摄像头或Wi-Fi接口之类的附加功能,从而实现许多高级跟踪活动。比如,儿童手表,不但可以定位宝贝们现在的位置,而且还可以与他们进行语音通话甚至是视频。在本研究中,我们不但提出了一种评估不同功能GPS追踪器安全性的方法,而且在我们的安全评估中还发现了几个安全漏洞,突出了在关键环境中使用时需要对这些设备进行适当的安全防护。

全球定位系统所涉及的安全与隐私问题

全球定位系统(Global Positioning System,通常简称GPS)是美国国防部研制的一种全天候的,空间基准的导航系统,可满足位于全球任何地方或近地空间的军事用户连续的、精确的确定三位位置和三位运动及时间的需要。它是一个中距离圆型轨道卫星导航系统。不过今天我们只讲述它的民用应用领域,民用应用商品的GPS追踪器主要目的是发送跟踪设备或个人的位置的GPS坐标,然后GPS跟踪器通过使用数据连接或文本消息自动的、周期性的收集数据,并通过蜂窝网络将这些数据发送到远程服务器。

在检测了多个跟踪器解决方案时,我们观察到这些设备的制造商已经添加了额外的其他智能功能。这样这些设备就不仅仅具有简单的GPS功能,而是具有运动或噪声检测器、麦克风、摄像头和额外无线接口的全功能监视设备。

这些设备的配置是通过文本消息上的专有协议实现的,在使用此类设备之前,用户必须配置一组参数,例如远程服务器IP地址以及标识和身份验证凭据,以便将收集到的数据上传到云基础设施。

从安全和隐私的角度来看,攻击者如能取得这些追踪器所设置的SIM卡的电话号码,就可以发起有针对性的攻击。

GPS跟踪器的信息会存储在多个云管理系统中,不过攻击者不仅会对云管理基础架构感兴趣,还会通过移动网络定位GPS跟踪设备(例如SMS配置界面)来访问高级功能,比如麦克风或停止引擎(某些GPS跟踪器中的功能可提供对汽车引擎的远程访问)功能。

目前市场上可用的GPS跟踪器都会或多或少用户的隐私信息,我会在下面详细介绍。

攻击向量

图1是一个表示总体架构和交互点的图,可以看出,那么多可能的无线接口(GPS,移动网络)、远程服务器和正在运行的web应用程序、智能手机应用程序和配置管理协议,都存在相当大的攻击面。此外,更新机制(如果存在的话)也是可以利用的有趣攻击载体。不过,本研究中测试的设备都没有实现远程更新的机制。

在本节中,我们将试着从攻击者的角度来搜寻可能的攻击入口点。请注意,某些国家或地区中的某些攻击可能是非法的。还有本研究中使用的所有技术和工具都是已知的,可在线获得,无论是开源还是免费版本的软件。

1.jpg

蜂窝调制解调器GPS跟踪器相关基础设施的架构

干扰和欺骗GPS信号

在这类攻击中,攻击者的目标是干扰GPS进行正常定位或阻止GPS信号传输到远程服务器。攻击中,攻击者可以使用低成本的GPS干扰器或GPS欺骗工具。 

2.jpg

针对无人机,智能手机和GPS追踪器进行的欺骗攻击

高级GPS攻击,即GPS欺骗,关于它的描述网上已经有很多了,你如果感兴趣可以自己来找,另外,关于它的开源工具网上也有。因此,使用软件定义的无线电和gps_sdr_sim软件(gps信号仿真器),攻击者能够模拟特定的GPS卫星信号。

在目标设备附近,如图2所示,这些工具互用于不同的目标集,如智能手机和无人机。所以,一个简单的预防对策就是检查第三方信息,如Cell_ID,以交叉验证特定跟踪器的位置。

Cell_ID是主要的位置服务(LBS)技术之一,覆盖半径 大约是400米,Cell ID实现定位的基本原理:即无线网络上报终端所处的小区号(根据服务的基站来估计),位置业务平台把小区号翻译成经纬度坐标。这种方法实现简单,无需在无线接入网侧增加设备,对网络结构改动小,缺点是定位精度低,在市区一般可以达到300-500m,郊区几公里。

攻击GPS管理协议

为了实现重新配置跟踪器以实时访问GPS坐标,攻击者可以尝试更改管理服务器的IP地址并强制跟踪器,然后将GPS坐标传输到自己的基础设施。为了避免攻击被检测到,攻击者可以在修改数据之后再向合法的基础设施发送一次数据。这种攻击显然需要知道管理协议和跟踪器中提供的SIM卡的电话号码,以便利用管理协议中的潜在漏洞。此攻击的复杂性与管理协议及其实施的安全级别直接相关。有趣的是,很多GPS跟踪器的用户手册都可以在网上找到,比如在FCC网站上。

攻击云管理、web应用程序和智能手机应用程序

对于制造商而言,攻击者可以将基础设施作为攻击目标,进而窃取GPS跟踪器的整个数据集,如对IP摄像头的攻击。由于攻击者的目标是直接攻击远程管理基础设施和可用的Web或移动应用程序。所以通过获取一组跟踪器,攻击者将能够对协议、固件和硬件部分进行反向工程。然后,分析其中的机制。最会利用身份验证、标识和可用API来查找攻击入口点。由于这种攻击方法可访问到用户的大量隐私信息,且利用它可能允许同时攻击大量跟踪器,所以该方法比较受攻击者的欢迎。

接下来,我们将对不同的设备进行不同的实验设置,并总结出一系列安全漏洞,证明GPS跟踪器及其相关基础设施的安全性较低。为了使这项研究尽可能具有普遍性,我们在线采购了目前最畅销的GPS追踪器,进行测试和安全评价。

安全评估

目前安全研究人员已经熟知用于分析GPS跟踪器及其基础设施的方法,步骤大概就是两步:首先对每个组件(硬件、软件和网络)进行分析,然后对特定应用场景的安全性进行评估。

在本节中,我们总结了我们在不同的攻击场景和可能的利用技术(在本研究中未完全执行时)发现的安全漏洞。此外,还讨论了这些问题的复杂性和关键性。

数据收集和转发

第一步是进行网络流量分析,了解GPS跟踪器与远程服务器之间交换的数据类型以及通信协议。在黑盒测试中,我们使用Yatebts的通用配置设置了一个基站2G/2.5G (GPRS)。值得注意的是,由于集成了基带,大多数跟踪器仅支持SIM卡。

3.jpg

捕获从GPS跟踪器发送到远程服务器的数据的设置情况

由于监管方面的限制,这套GPS跟踪器被放置在法拉第笼中。我们的每个GPS跟踪器都配有SIM卡和一个指定的唯一编号,如图3所示。一旦BTS开始运作,GPRS通信就被sgsntun捕获。通过在为 SGSN 创建的 tun 接口上使用 Wireshark 捕获流量,研究人员创建了名为 sgsntun 的虚拟网络接口,可以拦截部通信和外部互联网上服务器之间交换的消息。使用提供的用户手册,我们已发送制造商建议的用于参数化每个跟踪器的SMS命令。有趣的是,在这个配置阶段,我们已观察到了以下关键项:

1. 所有跟踪器都向特定的IP发送坐标,这可以确认远程服务器的位置;

2. 流量未加密且易于识别(特定域名,特定IP,特定端口),实现深度包检测工具对于这种类型的协议执行起来很简单;

3. 一个平台的密码以纯文本形式发送,其他平台使用跟踪器的序列号(可预测)作为令牌,没有身份验证机制,允许攻击者发送伪造信息;

4. 可以通过SMS编辑跟踪器配置并指定另一个管理服务器(“* reg my_ip”),允许攻击者通过Internet服务器执行简单的MITM中继流量(UDP或TCP,根据跟踪器而定),例如TCP的balance:

balance -b ::ffff:mon_ip 8841 203.130.62.29:8841

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

我们可以使用上述方法,定义一个主电话号码。在欺骗Caller-ID的测试环境中下,我们可以绕过此身份验证。此外,即使没有定义的主电话号码,也可以通过SMS发送命令以从GPS检索信息跟踪器,从而有可能检测出与该跟踪器相关的电话号码。

让使用U-BLOX GPS模块(该模块是UBLOX的NEO-6M GPS模组,这款GPS的使用人数较多)的跟踪器连接到56447 / tcp端口上的TCP服务。默认情况下,由于没有完整性或密码保护,客户端在TCP会话开始时,会发送用户的登录名、密码、纬度、经度和海拔高度:

cmd=full;[email protected];pwd=XXXXXX;lat=22.680193;lon=114. 146846;alt=0.0;pacc=100.00

服务器通过指定专有blob来响应:

u-blox a-gps server (c) 1997-2009 u-blox AG Content-Length: 2856 Content-Type: application/ubx .b..0......

然后,客户端会定期向第二个服务器(8011 / tcp)发送信息,表明其位置:

* HQ,17000XXXXX,V1,115112,A,2240.8116,N,11408.8108,E,000.0,000.00,100119,#FFFFFFFF
* HQ,17000XXXXX,NBR,094111,310,26,02,1,1000,10,23,100119,FFFFFFFF#
* HQ,17000XXXXX,LINK,115112,22,0,6,0,0,100119,FFFFFFFF#
* HQ,17000XXXXX,NBR,115117,310,26,02,1,1000,10,22,100119,FFFFFFFF#

可以根据序列号(17000XXXXX)检测不同的命令,2240.8116对应于纬度22.408116,11408.8108对应于纬度11.4088108。由于没有身份验证,这允许我们能够用自己的GPS客户端发送GPS坐标。如图4所示,我们的GPS跟踪器目前位于朝鲜平壤。

4.jpg

无需身份验证,我们就可以通过易受攻击的Web界面传输被篡改的GPS坐标

第二个(较便宜的)跟踪器由于没有身份验证,使服务器能够验证收集的数据的来源(通过SMS或2G传输的任何数据)。发送到管理平台的数据始终采用以下形式:

yy.I.[S/N][BLOB-ASCII].~[BLOB-ASCII]

有趣的一点是,它将在其无线电接口上接收到的所有SMS消息发送到中国,允许制造商确切的知道用户在做什么(网络捕获如图5所示,基于使用Wireshark进行的分析)。

5.jpg

发送给制造商的SMS消息

为了向我们的GPS追踪器发送短信“状态”,我们发现目标设备发送的TCP数据包被发送到203.130.62.29:8841/tcp,这是一个位于中国的IP地理位置,但实际上它位于阿联酋并由运营商Etisalat管理,其中包含“状态”消息,其中包含以下附加信息:

· 表示GPS跟踪器S/N的690217122612463

· +440025239表示短信发布者的号码

这适用于任何SMS消息,即使它不表示管理SMS。这个GPS跟踪器的一个有趣的用途是,通过改变管理服务器的IP地址,充当低成本(<15欧元)的短信中继系统。

一般来说,GPS跟踪器的网络安全性很低,因为它的流量是纯文本的,而且很容易被逆向工程处理。此外,能够猜测序列号的攻击者可以向GPS管理基础设施发送虚假信息。

固件提取和逆向工程

经过调查,大部分跟踪器主要是联发科(MediaTek)的旧芯片组(MT6261 ARM)和GPS芯片组(如UBLOX)。

调试接口可用于提取固件和默认配置项。请注意,这部分并不是一个真正的挑战,因为没有针对物理攻击的保护。

一旦连接到UART, mtd块就会被提取出来。通过执行分析,我们检测到了潜在的隐藏或未记录的命令。图6显示了一个测试设备的示例,对于这个设备来说,嵌入式系统是Nucleus。

RTOS和OS大小是嵌入式硬件的典型大小(4MB) ,对这个转储文件的逆向分析允许在不同的GPS跟踪器中显示后门短信代码。不幸的是,并非所有这些SMS命令似乎都起作用。这可能是由于对同一制造商的不同GPS跟踪器型号使用了相同的固件。

该分析没有揭示任何主要的隐藏特征,另外,还观察到它没有固件更新功能。

6.jpg

使用IDA对提取的固件进行逆向工程

移动应用的安全性

在制造商为iOS / Android智能手机提供的应用程序上,执行静态和动态逆向工程,允许用户访问全球定位系统(GPS)追踪器在世界地图上收集的数据,使用jadx实用程序执行静态分析的最差结果就是发现通过http进行关键数据的不安全传输。

7.jpg

HTTP流量分析

通过动态分析进一步检查确认智能手机应用程序和远程服务器之间的交换是通过http通过专有API系统http://m.999gps.net/OpenAPIV2.asmx完成的。我们可以看到与跟踪器对应的标识符82383的详细信息(如图7所示),也可以通过向地址添加WSDL来检索服务的完整描述来访问API的Web服务描述语言(WSDL)。最后,制造商提供了一个在线调试界面,如图8所示。

8.jpg

API的调试接口

通过分析流量,它似乎没有身份验证机制,而且还会重放先前由Wireshark解析的查询并更改标识符可以检索其他GPS跟踪器的坐标。此漏洞已经在2018年1月报道过,但制造商至今还未对其进行修复。

如何管理网站的安全性并预防高级攻击

当购买GPS跟踪器时,制造商会为其提供用于访问GPS跟踪器报告的网站标识符和密码。通过分析这些网站,我们可以发现了以下安全漏洞:

1.默认情况下,用户名和密码是GPS跟踪器序列号的最后7个字符。用户似乎不知道他们必须更改密码,也可能是他们懒得更改密码。因此,攻击者可能利用用户安全意识薄弱的特点而找到所有可用的帐户。

2.通过在跟踪器A的http请求中指定跟踪器B的ID,可以从GPS跟踪器A的帐户访问GPS跟踪器B(我们拥有)的坐标,这是由于不安全的直接对象引用漏洞可以在具有随机有效会话的限制内利用。下图描绘了我们提取测试跟踪器的未经认证的GPS坐标历史的过程:

9.jpg

提取未经过身份验证的跟踪器历史记录

3. 关于GPS跟踪器插入发动机和带有远程控制的stop/start命令之间的漏洞,我们可以在用于远程管理车辆发动机的跟踪器中添加一个地理围栏区域,如果车辆离开该区域或允许发动机停止,通过将未经身份验证的请求发送到针对测试跟踪器之一的管理接口,我们已经成功的实现了这一点,如图10所示。

10.jpg

远程跟踪器上添加的未经身份验证的地理围栏

4.该界面提供对通过相同的不安全直接对象参考漏洞访问的GPS跟踪器数据的完整历史记录的访问。

总结

本研究专注于商用GPS跟踪器的安全和隐私问题,我们已经观察到,可以轻松的利用各种攻击场景以非法方式获得GPS跟踪器的位置信息。

所有被测试的设备其身份验证要么不存在,要么很容易通过CallerID欺骗绕过。由于某些型号的先进功能,如汽车发动机的远程控制,这些配置接口使用户暴露在信息泄漏和关键攻击之下。此外,在API以及移动应用程序中,我们发现了许多相关的安全问题。

显然,这些漏洞都会存在于目前市场上的所有GPS跟踪器中。

本文翻译自:https://arxiv.org/ftp/arxiv/papers/1902/1902.05318.pdf如若转载,请注明原文地址: https://www.4hou.com/others/16464.html
点赞 1
GPS
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论