上面的截图显示了我试图用这个应用程序连接到我的健身手环。在这里,我们看到了服务和它们的特征。然而,根据特征获取手环的数据是不容易的—这要求连接和验证。在一些其它设备的情况下,我可以根据特征和描述符读取数据。这可能是用户数据。
扫描
因此,使用Andr​​oidSDK的一个应用程序,我可以连接到某些设备。之后,我开发了自己的应用程序,它会自动搜索蓝牙LE设备,试图连接到他们,并获取其服务列表。
利用此应用程序,我进行了几次扫描。
• 在莫斯科地铁中,在2个多小时的时间里,我可以连接到19个设备:11个FitBit和8个Jawbone。
• 在美国华盛顿州贝尔维尤的一个健身房中,在1个多小时的时间里,我连接到了25个设备:20 Fitbit,其他5个分别是Nike,Jawbone,Microsoft,Polar和Quans。
• 在墨西哥坎昆的SAS2015研讨会上,在2个多小时的时间里,我连接到了10个健身追踪器:3个Jawbone和7 个FitBit。
从刚才6个小时的扫描中,我就能够连接到54个设备,尽管存在2个严重的限制:
1. 虽然规格表明了连接的最大距离为50米,但是在现实中,超过6米就很难连接到设备了。
2. 貌似无法连接到已经与另一部手机相连的设备。因此,如果您的手环连接到了您的手机,就没有人可以连接到它,甚至也不会扫描到它。
第2个限制应该意味着:当手环连接到智能手机时,它就不会被攻击。但实际情况并非如此。举例说明:用我的应用程序扫描时,我能够阻断我的手环与其官方应用程序之间的通信,即使它们是连接起来的。
可能的情况是:我发现的设备从来没有连接到手机,或者我扫描时手环时它未连接到智能手机(也许手机上的蓝牙被禁用了)。然而,还有一种可能:尽管存在连接限制,已经连接的设备仍然可以连接到其他手机。不管是什么原因,潜在的欺诈者有充分的机会来连接到健身追踪器。
然而,在大多数情况下,除了连接,还需要进行验证,以便访问用户数据。下面,我们来看看我的手环的验证过程。
手环的验证
为了在智能手机上验证手环,官方应用程序使用了4个可用服务之一。每个服务的每个特征被标记为“CharacteristicNotification”--应用程序通知手环它希望获得该特征的任何变化的通知。然后,应用程序获取每个特征的描述符列表,并设置“ENABLE_NOTIFICATION_VALUE”标识,通知手环它希望获得每个描述符的任何变化的通知。
此后,其中一个特征改变其值--字节缓冲区。该应用程序从手环读取该缓冲区:200f1f标头和字节数组,姑且称之为authBytes。
该应用程序创建一个新的数组。该数组的第一部分是被包含在应用程序中的常数数组,以6dc351fd44开始;第二部分就是authBytes。该应用程序接收来自新数组的MD5值,并将其以下述结构发送回设备:
• 标头(201210051f)
• MD5
• 验证字节
然后,应用程序将其中的另一个数组发送至设备。
在此之后,手环开始振动,用户只需按下按钮即可完成验证过程。
使用官方应用程序,验证过程需要约15秒。我已经开发了仅需要4秒就能使手环振动的应用程序。
让用户按下按钮并不难,只需要一点耐心。您可以一遍一遍地执行验证过程,直到用户按下按钮或走出有效范围。
从刚才6个小时的扫描中,我就能够连接到54个设备,尽管存在2个严重的限制。
验证完成后,我的手环上的数据就可以被访问了。现在,可穿戴健身设备并不包含多少信息。通常情况下,它们统计步数、睡眠阶段、前一个小时左右的脉搏等。应用程序大约每小时一次将这些信息发送到云。
在验证之后,很容易在设备上执行命令。例如,改变应该将字节数组(以f0020c开始)发送到设备的时间,将日期的形式改为YYYY MM DD DW HH MM SS MSMSMSMS。其他的健身追踪器就更简单了:对于其中一些,连接后可以立即获取部分数据;Nike应用程序代码甚至没有进行模糊,可以很容易读取(一项研究的结果在
此处)。
结 论
我的研究结果表明,在某些情况下,您可以在所有者不知情的情况下连接到可穿戴设备。
通过攻击手环,欺诈者无法获得所有用户数据,因为数据并不存储在手环或手机中,而是定期从手环传输到云中。
健身跟踪器正变得越来越流行,并提供更广泛的功能。也许在不久的将来,它们将包含多个传感器以及更多的用户信息(往往是医疗信息)。然而,这些设备的创作者似乎没有充分考虑安全性。
试想:如果具备脉搏传感器的手环被黑客攻击,当您在商店查看价格时店主可以查看您的脉搏情况,也可能通过这种手段了解人们对广告的反应。此外,被“黑”的具备脉搏传感器的可穿戴设备可以用作测谎仪。
欺诈者可以控制您的手环,使之不断震动,以停止震动为筹码勒索钱财。
当然,也有可能出现更有害的行动。例如,通过使用赎金木马,欺诈者可以控制您的手环,使之不断震动,以停止震动为筹码勒索钱财。
我们将这些发现上报给了我的手环的制造商。该公司将此定义为UX(用户体验)bug而非安全问题。出于道德和安全方面的原因,我们在此不公开手环的名称和型号。如果您担心网络犯罪分子利用我们发现的安全问题,请立即联系您的健身手环供应商,询问您的产品是否受到本文所述方法的影响。
我们也希望这篇文章不仅对用户有益,同时也对手环供应商有益,使这些设备从IT安全的角度来看更加安全。
安天公益翻译(非官方中文译本):
我如何“黑”了自己的智能手环[非官方中文译文•安天技术公益翻译组译注].pdf
(572.04 KB, 下载次数: 135)