不想让智能手机泄露定位信息?没门

 

一、前言

根据最近的一些新闻报道,军方人士的数字健身追踪器会存储他们的训练场所信息(包括全世界各地的军事基地、秘密场所及附近地点),这些消息让美国军方猝不及防。但这种安全威胁并不局限于Fitbits以及类似设备。我们小组最近的研究成果显示,移动手机同样可以跟踪用户的运动轨迹,比如在商场、城市以及世界各地的行进路线,即使用户关闭手机的定位跟踪服务也无济于事。

图1. 健身设备报告用户位置并泄露内华达沙漠中大量用户的运动轨迹(来自Strava的热度图

 

问题来自于手机自带的各种传感器,不单单是GPS以及通信接口,陀螺仪以及加速传感器可以分辨手机处于直立状态还是平躺状态,同样也能测量其他运动模式。手机应用可以使用这些传感器来执行用户不希望执行的某些动作,比如持续跟踪用户在城市街道上的移动轨迹。

大多数用户认为关闭手机的定位服务就能关闭这种移动监控功能。然而,来自东北大学(Northeastern University)的研究团队(由我、Sashank NarainTriet Vo-HuuKen Block以及Amirali Sanatinia组成)在“旁路攻击”(side-channel attacks)方面做了一些研究,研究表明手机应用可以借助某些方法规避或者逃脱这些限制条件的束缚。我们发现手机可以通过用户的指尖输入动作来获取密码,而将手机放在口袋里这么一个简单的动作也会告诉数据公司当前用户所处的位置以及想去的位置。

 

二、攻击场景假设

人们首先会假设设备及系统会面临什么安全威胁,然后再为这些设备或者系统设计防护机制。比如,设计汽车时设计师会保护乘客免受车辆碰撞(如与其他汽车、建筑物、护栏、电线杆以及道路周边常见的其他物体碰撞)所造成的安全风险,但不会考虑去保护某些异常场景中的安全风险(比如跌落悬崖、被巨石砸碎等)。专门针对这类安全风险对工程师来说极不划算,因为通常情况下并不会遇到这些奇葩现象。

与此类似,人们在设计软件及硬件时,也会假设黑客通常会执行哪些操作。但这并不意味着设备处于安全境地。旁路攻击技术最早可以追溯到1996年,当时密码学家Paul Kocher向大众展示,他可以通过观察计算机加解密消息所需的时间,打破非常流行且看上去固若金汤的加密系统。加密系统的设计人员从来没有想过,有一天攻击者会采用这种方法来发起攻击,因此也无法防护这类威胁。

随着时间的推移,世上又涌现出使用不同方法的其他攻击技术。最近出现的Meltdown以及Spectre漏洞用到了计算机处理器中的设计缺陷,同样也属于旁路攻击范畴。这两个漏洞可以帮助恶意应用程序嗅探计算机内存中其他应用程序的数据。

 

三、随时监控技术

移动设备是这种攻击技术的绝佳目标。这些设备装配了各种传感器,通常带有加速传感器、陀螺仪、磁力计传感器、气压仪、多达4个麦克风、1到2个摄像头、温度计、计步器、光传感器以及湿度传感器。

应用可以在不需要用户授权许可的情况下,访问其中大多数传感器。如果将两个或者更多设备的读数结合起来,攻击者可以做到用户、手机设计人员甚至应用开发者都无法设想的事情。

在最近的一个研究项目中,我们开发了一款应用,这款应用能够在不读取键盘输入数据的前提下,探测到用户当前在移动手机的屏幕键盘上所输入的具体字母。我们综合采纳了手机中陀螺仪以及麦克风的读数完成了这个任务。

当用户在不同的位置点击手机屏幕时,手机本身会出现运动状态,虽然这种动作非常微小,但大多数手机中的三轴微机陀螺仪(three-axis micromechanical gyroscopes)依然可以准确测量出这些数据。此外,在手机屏幕上敲击时同样会发出声音,每台手机上的多个麦克风都能记录下这些数据。点击屏幕中心不会让手机出现太多位移,声音基本上会同时到达各个麦克风,因此所有麦克风听到的数据应该都差不多。然而,点击屏幕左下角的动作会让手机向左下角偏移,并且声音会更快到达左侧麦克风,屏幕底部麦克风听到的声音会更大,也会比设备上其他位置的麦克风更早听到敲击声音。

综合处理移动数据以及声音数据,我们可以判断出用户所敲击的按键,准确率超过90%。任何应用都可以悄悄内置这种功能,在不引起用户注意的情况下收集数据。

 

四、识别位置信息

随后,我们想看一下恶意应用能否推测出用户的具体行踪,包括用户居住、工作的地点以及用户旅行的路线,这些信息对大多数用户而言都是非常隐私的数据。

我们想知道应用能否借助不需要用户授权许可就能访问到的传感器来跟踪用户的地理位置。比如,司机所选择的行驶路线可以简化为一系列转弯数据,每个转弯数据都包含特定的方向以及特定的角度。在另一款应用中,我们选择使用手机的指南针来观察用户的行进方向。这款应用也用到了手机的陀螺仪,来测量用户所选择路线的一系列转弯角度数据。此外,加速传感器也会告诉我们用户处于静止或者移动状态。

记录下一系列转弯数据,将这些数据串联起来作为用户的行驶数据,我们就可以绘制出用户的移动路线图(在我们的研究工作中,我们知道被跟踪用户当前所处的具体城市,但我们也可以采用相似方法来判断用户当前处于哪座城市)。

图2. 通过智能手机跟踪用户在波士顿内的行进路线(截图取自Google Maps),遵循CC BY-ND协议)

 

想象一下,我们看到有个人在波士顿中朝西南方向行进,向右转100度,然后向左急转弯,转而向东南方向行进, 再稍微向右拐,继续直行,然后向左稍作转弯,再向右方向慢跑,这一小段路比较不好走,需要上下颠簸,然后向左转55度,再向右转97度,在到达终点之前又稍微往右转了一下。

我们研发了一种算法,可以将这些运动轨迹与用户所在城市街道的数字地图进行匹配,从而确定用户最有可能采用的行进路线。利用这些运动数据,我们可以绘制出从Fenway Park起,途径Back Bay Fens(波士顿后湾小塘),经过美术馆,最终到达东北大学的一条行进路线。

我们进一步改进了算法,将道路上的颠簸程度以及限速信息考虑在内,从而进一步缩小可选项范围。我们将得出的所有可能路线按照与实际路线匹配的可能性进行排序。在我们测试的大多数城市中,超过半数情况下用户真实的行进路线完美落在排名前10的路线中。进一步改进地图数据、传感器读数以及匹配算法后,我们可以大大提高结果的准确度。同样,这种功能可以被恶意开发者集成到任何应用中,让表面上人畜无害的应用窥探用户隐私。

 

五、总结

我们的研究团队会继续调查,分析如何进一步利用旁路攻击技术窃取各种隐私信息。比如,收集手机的移动信息可以告诉我们正在散步的某个用户的真实年龄、是男性(将手机放在口袋中)还是女性(通常会把手机放在钱包中),甚至也可以收集到健康信息(比如用户脚步的稳健程度以及摔跤频率)。我们认为手机能窃取的信息比用户想象的还要多,我们希望能够找出阻止这类间谍行为的具体方式及方法。

 

(完)