导语:卡巴斯基实验室多年的网络威胁研究表明,任何可以访问互联网的设备都将不可避免地遭到黑客入侵。本报告突出了宠物追踪器的用户和制造商面临的潜在风险。
卡巴斯基实验室多年的网络威胁研究表明,任何可以访问互联网的设备都将不可避免地遭到黑客入侵。近年来,我们看到了被黑的玩具、水壶、照相机和熨斗。似乎没有任何小工具能逃脱黑客的注意,但还有最后一个堡垒:用于动物的“智能”设备。例如,跟踪者可以监视他们的位置。这些小工具可以访问所有者的家庭网络和电话,以及他们宠物的位置。
本报告突出了用户和制造商面临的潜在风险。其中,我们检查了几个追踪器的潜在漏洞。在这项研究中,我们选择了一些广受好评的流行款式:
· Nuzzle Pet Activity and GPS Tracker
· Whistle 3 GPS Pet Tracker & Activity Monitor
一、使用的技术:Bluetooth LE
研究中的四个追踪器使用了Bluetooth Low Energy (BLE),在很多情况下,这是设备防护的弱点。让我们仔细看看这项技术。BLE是在物联网设备中广泛使用的节能蓝牙规范。我们感兴趣的是其缺乏身份验证以及服务和特性的可用性。
与使用PIN码连接对等设备的“经典”蓝牙不同,BLE针对的是非对等设备,其中一个设备可能没有屏幕或键盘。因此,BLE中没有实施PIN码保护——认证完全取决于设备的开发者,经验表明它经常被忽视。
我们感兴趣的第二个特点是服务、特性和描述符的可用性。它们构成了BLE规范中设备之间数据传输的基础。正如我们已经指出的那样,BLE与非对等设备一起工作,其中一个(连接的设备)通常是智能手机。另一个设备,在我们的例子中,是一个跟踪器。连接后,智能手机可以使用多种BLE服务。它们中的每一个都包含可能具有描述符的特征。特征和描述符都可以用于数据传输。
因此,在使用BLE的情况下,设备安全的正确方法涉及在特征和描述符可用于读取和写入之前进行预认证。此外,如果未通过预认证阶段,连接后不久中断链接是一种很好的做法。在这种情况下,身份验证应基于某些攻击者无法访问的秘密——例如,数据的第一部分可以使用服务器(而不是应用程序)端的特定密钥进行加密。或者通过其它的通讯渠道,例如内置的SIM卡,可以确认所连接设备的传输数据和MAC地址。
二、Kippy Vita
该追踪器通过其内置的SIM卡将GPS坐标传输到服务器,宠物的位置显示在移动app上。跟踪器不会与智能手机“直接”连接。我们无法检测到设备本身出现任何问题,因此我们将重点转向了移动应用程序。
一切看起来都很不错:已经实现SSL Pinning了,这与我们测试的任何其他应用程序不同。此外,Android应用程序在将重要数据保存到文件夹之前对其进行加密。
我们检测到的唯一问题是Android应用程序记录传输到服务器的数据。这些数据包括用户的密码和登录信息,以及身份认证令牌。
Kippy Vita应用程序输出用户登录和密码
尽管并非所有的应用程序都可以读取日志(只有系统应用程序或具有超级用户权限的应用程序),但它仍然是一个主要的安全问题。
Registered CVE:
CVE-2018-9916
三、Link AKC
该追踪器通过GPS监测宠物的位置,并通过内置的SIM卡传输坐标。更重要的是,它可以直接通过蓝牙LE与所有者的手机进行连接。这意味着它始终准备好连接设备,这为研究奠定了良好的起点。
Link AKC令我们惊喜不已:开发者在确保与智能手机的连接方面做了一切正确的事情。我们找不到任何主要问题,这对于支持BLE的设备来说很少见。
在智能手机连接到设备并发现服务后,它在两个特征和一个描述符(否则跟踪器断开链接)中启用通知(即通知跟踪器预期的更改)。之后,Link AKC准备好接收命令。它们包含用户ID;如果用户没有使用跟踪器的权限,则不执行该命令。它保持对访问权的控制。即使使用从测试设备获得的ID,我们也无法让小工具从另一个智能手机执行命令——看起来跟踪器检查智能手机的MAC地址。
但是,该设备不能被描述为完全安全。在Android应用中,我们发现开发者忘记了禁用日志记录。因此,该应用程序将大量数据传输到logcat,其中包括:
· 该应用程序的授权令牌(如果截获)可用于登录服务并发现宠物的位置:
· 用户注册数据,包括姓名和电子邮件地址:
· 设备坐标:
从Android 4.1开始,只有一些具有超级用户权限的系统应用可以读取其他程序的日志。将智能手机连接到计算机时也可以获得访问权限,但这需要启动Android开发人员模式。
尽管存在这些限制,但这仍然是一个问题:即使发生这种情况的可能性很小,攻击者也可以获取数据以访问受害者的帐户。
最重要的是,Android应用程序不会验证服务器的HTTPS证书,从而将其暴露给中间人(MITM)攻击。对于成功的攻击,攻击者只需要在智能手机上安装他们自己的证书(这非常简单),允许他们拦截所有传输的数据,包括用于帐户访问的密码和令牌:
Android的Link AKC应用程序易受MITM攻击
授权令牌也以未加密的形式存储在应用程序文件夹中。虽然需要超级用户权限来访问它,但它仍然不是存储重要数据的最佳位置。
授权令牌以未加密的形式存储
Registered CVE:
CVE-2018-7041
四、Nuzzle
就功能而言,Nuzzle与之前的追踪器一样:它也使用SIM卡传输宠物的GPS坐标,并可以通过BLE直接连接到智能手机。但就后一点而言,Nuzzle表现不如Link AKC:缺乏授权和访问控制意味着该设备已准备好与任何智能手机进行连接。这让攻击者可以像所有者一样控制设备。例如,通过打开灯泡(只需更改一个属性的值),它可以快速放电。
一旦建立连接,攻击者就可以从设备接收数据。数据有两个特征:一个包含遥测信息,包括设备位置,另一个提供设备状态信息(特别是温度和电池电量)。
更糟糕的是,连续读取遥测特性的数据会导致设备“丢失”:为了节省电池电量,如果小部件已经通过BLE发送,则不会通过移动网络传输坐标。因此,仅通过使用智能手机连接到跟踪器就可以隐藏宠物的位置。
我们在更新设备固件的过程中发现了另一个安全漏洞。其完整性控制很容易绕过。基本上,固件由两个扩展名为DAT和BIN的文件组成。第一个包含有关固件的信息,包括完整性控制中使用的校验和(CRC16),第二个包含固件本身。在跟踪器上安装修改后的软件只需更改DAT文件中的校验和。
Nuzzle固件中的AT命令
为了致瘫设备,我们甚至不需要分析固件:它没有加密或打包,只需在十六进制编辑器中打开它,我们就可以找到AT命令和用于发送数据的主机,也就是SIM卡。在host中更改几个字节,更新固件校验和,并将其上载到设备后,跟踪器停止工作。
与Link AKC的情况一样,Android的Nuzzle应用程序不检查服务器证书,身份验证令牌和用户电子邮件地址以未加密的形式存储在应用程序文件夹中。
未加密的授权令牌和用户电子邮件地址
Registered CVE:
CVE-2018-7043
CVE-2018-7042
CVE-2018-7045
CVE-2018-7044
五、TrackR
我们的研究中有两个TrackR设备:Bravo和Pixel。这些“小饰品”不同于之前的设备,因为它们的追踪范围(如果它们的目的是追踪宠物)限制在100米以内:与其他型号不一样,它们没有GPS模块或SIM卡,唯一的连接是通过蓝牙LE。他们的主要目的是定位公寓周围的钥匙,遥控器等。但是,开发者已经为这些设备配备了一个选项,可以让他们部分地跟踪某些事物的移动:跟踪器位置可以通过其他TrackR应用用户的智能手机进行传输。如果应用程序在智能手机上运行,它会将数据和智能手机坐标一起传输到服务附近检测到的所有“小饰品”。其中存在的第一个缺陷是:任何人都可以登录到移动应用程序并发送假坐标。
我们试图找出更多的问题,但事实证明,其中大部分问题已经被Rapid7的同事发现。虽然他们的研究是在一年多前发布的,但在撰写本文时,一些漏洞尚未修复。
例如,这些设备在通过蓝牙LE连接时没有身份验证,这意味着它们对入侵者开放。例如,攻击者可以轻松地连接和打开音频信号,只需更改一个特征的值即可。这可以让攻击者在其拥有者执行或损坏跟踪器电池之前找到该动物。
TrackR服务和属性的结构
此外,Android应用程序不验证服务器证书,这意味着MITM攻击可能会窃听密码、身份验证令牌、用户电子邮件地址和设备坐标。
TrackR Android应用程序请求包含身份验证令牌
好的一面是,应用程序不会将身份验证令牌或密码存储在其自己的文件夹中,这是防止那些使用超级用户权限窃取数据的木马的正确方法。
Registered CVE:
CVE-2018-7040
CVE-2016-6541
六、Tractive
与我们研究的大多数设备不同,该跟踪器不通过自己的服务器直接与智能手机进行通信。这种方法足够安全,但我们在Android应用程序中检测到一些小问题。首先,与其他情况一样,它不验证有助于MITM攻击的服务器证书。更重要的是,应用程序以未加密的形式存储身份验证令牌:
例如宠物移动数据:
应该注意的是,这些数据并不容易被窃取,因为其他应用程序无法读取它。但是有些木马可以通过利用超级用户权限从其他应用中窃取数据。
七、Weenect WE301
这是另一个跟踪器,它不直接与所有者的智能手机进行连接,而是通过内置的SIM卡将宠物坐标传输到服务器。我们没有遇到此跟踪器的任何安全问题,但在Android版本的应用程序中检测到类似于Tractive中的问题。
首先,它不阻止MITM攻击,允许攻击者访问用户帐户或拦截地理信息。其次,身份验证数据以未加密的形式存储在应用程序文件夹中,将其暴露给设备上具有超级用户权限的木马。
八、Whistle 3
这是本研究中技术上最有意思的追踪器之一。它可以通过其内置的SIM卡,通过Wi-Fi将GPS坐标传输到服务器(如果拥有者提供Wi-Fi网络密码),或者通过BLE直接传输到所有者的智能手机。
我们首先查看了Wi-Fi,并发现开发者已经注意确保连接:设备通过HTTPS传输小部分数据(即以加密形式)。
Wi-Fi数据传输使用HTTPS进行保护
接下来,我们检查了BLE连接并发现了很多安全问题。首先是缺乏适当的身份验证。连接之后,设备等待执行一系列的动作,这可以被描述为预先认证。序列非常简单,第三方可以很容易地复制它。所需要的只是连接到设备,将两个特性传输到WRITE_TYPE_NO_RESPONSE模式,请求更改传输数据(MTU)的大小,打开一个特性的通知,并将某个数字传输到另一个特性。
现在,跟踪器已准备好接收和执行不包含用户ID的命令,这意味着任何人都可以发送它们。例如,可以发送一个initiateSession命令,并且作为响应,该设备将发送未加密的一组数据,包括设备坐标。更重要的是,如果连续发送此命令,小工具将不会通过SIM卡发送位置数据,因为它会假定这些数据已被“直接”接收到。因此,可以使跟踪器对其所有者“隐藏”。
还有一个问题:跟踪器在没有任何身份验证的情况下将数据传输到服务器。这意味着任何人都可以替换它,改变过程中的坐标。
该应用程序通过BLE传输从追踪器接收到的数据
Android应用程序使用HTTPS协议(这很好),但不验证服务器证书。
MITM攻击可以拦截用户数据
不仅如此,该智能手机应用程序将用户数据以未加密的形式存储在自己的文件夹中,并通过具有超级用户权限的特洛伊木马将其泄露给盗用者。但是,存储时验证数据很正确。
跟踪器从应用数据库中调整坐标
请注意,Android应用程序将数据写入logcat。如上所述,尽管其他应用程序日志能读取某些具有超级用户权限的系统app或应用程序,但无需将重要数据写入日志。
Android应用程序可以记录用户和宠物数据(活动、电子邮件地址、姓名、所有者的电话号码)以及使用的令牌之一
Registered CVE:
CVE-2018-8760
CVE-2018-8757
CVE-2018-8759
CVE-2018-9917
九、总结
GPS追踪器早已在很多领域得到成功应用,但使用追踪器追踪宠物的位置远远超出了其传统的应用范围,因此需要升级新的“用户通信接口”和“训练”才能与云服务等协同工作。如果安全措施得不到妥善解决,用户数据可被入侵者访问,就会危害用户和宠物。
研究结果:四个追踪器使用蓝牙LE技术与所有者的智能手机进行通信,但只有一个正确。其余的设备都可以接收并执行任何人的命令。此外,它们可以被禁用或隐藏,所需的就是接近跟踪器。
只有一个经过测试的Android应用程序会验证其服务器的证书,而不仅仅依赖系统。因此,他们很容易受到MITM攻击——入侵者可以通过“说服”受害者安装证书来拦截传输的数据。