本文是一篇关于介绍7款基于Android和iOS系统的智能穿戴设备的安全性能评估报告。
1总述
近年来,随着移动设备的迅猛发展,苹果,微软、小米等移动设备制造商,纷纷推出了一种叫做智能手环的智能穿戴设备。
正是由于这种智能穿戴设备具有良好的便携性和实用性,当它一经问世,便受到了广大消费者的强烈追捧,购买需求也在不断扩大。在见证了消费者火爆抢购的同时,安全研究人员也对此类设备的安全性表示了担忧。
在2015年,安全人员就曾对这类智能手环进行了安全测试。最近,我们又对7款智能手环,进行了一项新的安全测试。
在这次测试中,我们采用的样品是基于Android和iOS平台的7款不同的智能手环。它们价位不等,具备的功能也不同,其中包括小米公司推出的小米手环、苹果公司推出的Apple Watch智能手表等智能穿戴设备。此外,我们还进一步完善了测试程序和测试方法,以提供更为详尽的测试数据和更具说服力的评估结果,特别是在实时通信等方面,测试数据显得尤为重要。
在本文的第一部分,我们将会简短地介绍此次测试的主旨,解释实施此次测试的动机,并对之前类似的测试工作进行总结。
本文第二部分,我们将阐述一些关于此次测试的概念、过程设置以及执行步骤。
接下来的第三部分,是对测试结果的说明和解释。
在第四部分中,将会简要讨论在使用此类设备时,应关注的注意事项,包括系统维护,个人隐私的保护等。即使在一个相对安全的使用环境下,用户也应该实时注意维护自己设备的安全,防止设备中的隐私信息遭到泄漏。最后,我们将会对此次测试进行总结,确定未来测试的大致方向,以及针对运动手环等其他穿戴设备的具体测试方法。
图1.1 2014-2015年全球各地区医疗及运动手环的销售情况
1.1发起测试的动机及之前的准备工作
从图1.1中我们可以看到,近年来,运动智能手环的销售量呈现出了逐年上升的趋势。这也反映出,智能穿戴设备在人们的日常生活中扮演着越来越重要的角色。
正如我们在先前的测试中提到的那样,在美国,一些用户已经在享受着此类设备带给他们的便利了。他们可从设备中了解到自己心率、血压等生理参数、以及每日的步行距离等生活指数,为自己的健康提供了一个参考。与此同时,一些保险公司也为了自己的用户提供了一些健康奖励保险,鼓励用户将自己的生理指标及时向保险公司进行报告,保险公司会根据用户的身体健康状态(几年内无大病等),对用户实施奖励。
通过这种方式,保险公司就能招揽更多的用户,并且能实时掌握用户的身体状况。在德国,保险公司会免费给用户提供这些设备,虽然他们解释说,这样做的目的并不是为了收集用户的身体数据指标,但其实这只是一种说辞罢了。为了达到这一目的,就需要这种运动手环符合很高的安全标准。同时,根据法律部门出台的新规定的要求,在智能手环中需加入防篡改和用户身份验证模块,对数据加以防护。很多网站都在争相报道一个事实,即:在很多情况下,法院会将此类智能设备收集的数据作为呈堂证据来使用。但根据我们的测试表明:用户对此需保持谨慎态度。因为自己的私密数据很可能会因此而遭到泄漏。因为要将这项技术应用到法律领域,还有很长的一段路要走,不可能一蹴而就。
这次测试的理念和执行步骤是以2015年进行的测试为基础。这次设定的测试标准,更多的侧重于量化标准,尽量不涉及用户个人私密数据。
2.测试中所包含的概念
在这一部分内容中,我们将阐述此次测试的测试环境,包括基本设置、执行步骤等,同时,我们会以列表的形式,给出此次参与测试的设备,以及相关的型号、性能等参数。设备上所安装的应用程序也会以列表的形式给出,尤其要对特定的软件版本进行检查。
2.1测试的设置
关于这次测试的设置与之前那次测试有所不同。此次测试旨在说明:某种潜在的操作,能够帮助手环设备完成与服务器之间进行的数据传输。
在设置过程中,我们需要在智能手机和互联网之间添加一台PC,作为媒介。图2.1给出了设置的说明。
当设备发出的请求被重定向到PC时,我们就可以人为地监控并操纵网络流量。黑客都是通过使用工具mitmproxy,来发动网络中间人攻击。
由于mitmproxy具有良好的可配置性,操作方便,因而它非常适用于监控网络流量。mitmproxy是一个基于Linux系统的网络工具。黑客利用它,可通过中间人攻击的方式,破解一些加密的HTTP请求;同时,能够读取文本传输的内容,操纵相应的HTTP请求,将其进行重定向等。我们用它来检查,攻击者或用户是否能够在理论上,改变应用程序的同步数据传输机制,以及服务器是否能够响应类似的操作。在测试的透明模式下,我们将mitmproxy作为一个自定义网关来使用,如图2.2所示:
图2.1设置说明
图2.2 设置mitmproxy
2.2执行测试
整个测试过程分为3步,测试完成之后将会得出一个结论。下面即为测试的3个步骤:
1. 分析原有的应用程序;
2. 监控分析智能手环与智能手机之间的蓝牙通信。(利用原有的或测试中设置的应用程序来实现);
3. 分析原有应用程序之间的在线通信。
第一步是对app中是否含有潜在漏洞进行分析。在此过程中,我们将app的整个安全体系进行检查,包含app中采用的代码混淆技术,以及在app中保存的用户敏感数据的安全性等各方面内容。
第二步,我们将监控并分析手环和手机之间进行的蓝牙通信。在此过程中,我们会实时监控手环和应用程序之间的数据传输过程,并试着用另一部智能手机来模拟这一过程,从而验证设备的身份验证功能是否有效,以及验证攻击者是否能够获得访问数据的可能性。
在这次测试中,我们新加入了一个“虚假计步器”检测模块。在外围模式下,使用装有Android 5.0版本操作系统的智能手机,可通过增加一个设置来实现蓝牙功能。在外围模式下,我们可以模拟实现一个假的计步器,检测其是否能够连接上原有的应用程序,实现它们之间的通信。因此,我们首先应通过发送HTTP请求的方式,看其是否能够得到相应,来检查用户身份验证模块、数据云同步模块以及固件更新模块的联网状态是否正常。此外,为了完成这步测试,我们还需对这些安全连接模块中所含的文本内容进行评估,查明其能否进行读取或进行其他操作。
在测试Apple Watch时,某些步骤会有所不同。测试结果及更多执行情况,我们将在3.4节中进行详细介绍。
2.3产品参数
在下面的表2.1和2.2中,我们列出了测试设备的相关性能参数,以及在测试中使用到的app和app版本。
可以看到,我们总共选取了8个智能穿戴设备进行测试,其中一个使用iOS系统,其他7个都是基于Android系统。
之所以会选取这8个设备,是因为它们是现在智能穿戴设备市场的宠儿,受到消费者的一致追捧,有很高的普及率,进而能使测试结果具有很好的说服力。
测试中所使用的app是在Google官方应用商店或苹果公司的app store中下载的。由于此次测试持续了很长一段时间,因而不是所有的测试版本都能具有说服力,只有最新版本的app才能说明问题。版本的测试分析结果如表2.2所示:
表2.1 设备性能参数说明
表2.2 测试app的版本说明
3测试结果
表3.1列出了在计步模块、应用程序以及在线通信等3方面测试中得出的结果。
具体情况如下:
表3.1 测试结果
3.1计步模块
计步模块中包含的测试内容。能够帮助评估用户设备的安全等级。
这些内容主要包括:显示第三方计步软件的状态、对未经授权的第三方访问设置防火墙保护、防止用户或第三方软件肆意篡改设备信息等。
可控的蓝牙信号
在智能手环的默认设置下,低功耗蓝牙(Bluetooth-LE)都可以与一定范围内的其他蓝牙设备相连。因为这种类型的蓝牙会很“积极”地刷出自己的“存在感”,向其他蓝牙设备“展示”自己的物理地址。
从安全性的角度来看,这一“举动”会对设备构成两个潜在威胁。第一,默认开启的蓝牙会对用户的个人数据造成威胁。任何人只要搜到这一蓝牙地址,便可盗取数据;同时,该设备也容易成为黑客实施跟踪的目标,特别是当用户长时间使用一个固定的MAC地址作为连接地址的时候,更容易遭到黑客跟踪;第二,这样的设备容易遭到黑客的攻击。因为黑客根据你的蓝牙状态,很容易就能锁定你所在的位置。当然,通过实施其他保护机制,切断不安全的连接,也能起到保护设备安全的作用,但最安全的做法还是,不要实时开启设备中的蓝牙,当有数据传输需要时,再打开蓝牙,数据传输完成后,立即关闭。这才是最保险的做法。
在测试过程中,当测试环境中没有出现用户蓝牙连接请求时,我们采用了一定的方法,检测了这类设备中的蓝牙可见性。
测试结果表明,只有4个测试设备,拥有可见性控制机制。它们分别是来自Microsoft、Pebble以及Mobile Action公司生产的智能手表。而在这三家公司的产品中,也只有Microsoft和Pebble公司的智能手表具有这种稳定的控制机制。Mobile Action公司生产的Q-Band智能手环带有的可见性机制,可通过按钮来激活。
但在测试中,我们发现,在未激活的情况下,我们仍然可以搜索到Q-Band手环发出的蓝牙信号。此外,我们利用一些黑客攻击技术,在不激活该可见性机制的情况下,也能搜索到Q-Band的蓝牙信号。除了以上三个Android设备外,其他设备都不具备这种可见性控制机制。因此,其余智能手环在没有蓝牙连接请求的情况,也会开启蓝牙,这使得设备非常容易遭到跟踪,某些设备未经授权,就能与该设备进行数据传输,构成了严重的威胁。
可控的网络连接
根据测试,我们发现:4个产品具有一种防御机制:能够拒绝未经授权的网络连接请求。
Intel公司生产的Basis Peak智能手表和微软公司的Microsoft Band 2智能手环都采用了一对一的单独连接策略。用户在建立连接时,先确认连接双方的安全性,之后创建一个属于双方唯一的连接,同时,系统就会默认这一连接是有效的,并对其进行保护。而其他的连接请求就被看作是非法的,而予以拒绝
。对于Pebble Time智能手表来说,它可允许多个设备同时与其相连,但需要用户对每一个未知设备进行确认。这存在一定的安全风险。
其次,小米公司的MiBand智能手环则采用了一种简单有效的方式,来处理这个问题,即:出现连接信号时,先拒绝所有的信号,当用户做出选择后,才进行连接。(其实也就是一种屏蔽做法)
添加适当的身份验证模块
小米手环中带有一个简单实用的身份验证机制。在该设备中,存储了用户的相关数据,包括:用户编号、用户名、用户的身高、体重等数据,这些数据通过一个静态的,未加密的数据格式进行保存。只有当所有信息完全吻合时,该设备才允许用户进行登录。
此外,我们还采用了重发认证消息的方式,试图登录Mobile Action、Runtastic和Striiv公司的智能手环,但都失败了。这三个设备均不支持这种验证方式。
由于播报文章篇幅有限,情况介绍有所缩略,文章详情请读者阅读英文原文。
本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接:https://www.av-test.org/fileadmin/pdf/avtest_2016-07_fitness_tracker_english.pdf