Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Please Forget Where I Was Last Summer: The Privacy Risks of Public Location (Meta)Data

作者:Kostas Drakonakis, Panagiotis Ilia, Sotiris Ioannidis, Jason Polakisy

单位:FORTH, University of Illinois at Chicago

出处:The Network and Distributed System Security Symposium (NDSS) 2019

原文:https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_01A-6_Drakonakis_paper.pdf


#### 文章概述 用户位置信息的暴露会带来重大的隐私风险,攻击者利用位置信息可能推断出一些相关的敏感信息,甚至可能依此发动物理攻击。这篇文章中,作者设计并实现了LPAuditor这一工具,以推特上的数据为研究对象,对公开的位置信息可能造成的隐私泄露进行了系统的评估。通过实验,作者证明了和之前的工作相比,LPAuditor能够以更高的准确率识别出用户的家和工作场所。同时,LPAuditor也可以被用来探索用户去过的敏感位置(与健康、宗教、夜生活相关)。此外,作者对推特收集、分享用户位置信息的策略进行了讨论。

#### 研究动机 尽管已经有工作提出了通过公开的位置信息识别出关键位置(家和工作场所)的方法,但这些工作最终得到的位置精度(granularity)不足以证明此类威胁的真实存在。同时,还没有研究人员进行过通过位置信息推测其他敏感信息的研究。因此,作者想要证明,攻击者可以利用公开、免费的数据和API,以较高的精度、准确率推测出用户的敏感信息。通过对该攻击严重性、可行性的证明,作者也希望能够引发社会对此类问题的关注,从而加强对个人隐私的保护。

LPAuditor设计

##### 1. 数据标记、聚类 数据标记指将带有位置信息的(geotagged)推文和实际的地址(postal address)绑定起来,因为作者获取到的位置信息是经纬度形式。作者结合使用ArcGIS和Google Maps Geocoding两个API服务实现这一目标,后者的返回结果更加准确。存在一些情况(大学校园、机场、偏远地区等),两个API没有返回值,那么标记为”unknown address”。 聚类(clustering)指将同一地址的推文分为一类,这里作者进行了两级聚类。如果把推文看作地图上的点,那么第一级聚类中,将地址相同的点分为一类,取这些点的中间值作为这一类的位置。对于”unknown address”,作者使用了DBSCAN聚类算法。从第一级聚类的结果,作者发现某一特定位置周围会生成好几个聚类,通常是一大多小,经过分析,这些聚类都属于同一地址,所以第二级聚类是将某一地址周围的几类聚为一类。

2. 识别关键位置

在这一阶段LPAuditor的目标是在众多聚类中自动识别两个关键的位置:家和工作场所。实现这一目标基于许多heuristics,基于作者对用户行为的推断,包括美国的八小时工作制等。对于家和工作场所,作者采取了不同的策略。

  • 家:只考虑周末时间,选取5个最频繁的聚类,并选取其中推文时间跨度最长的作为家的位置。
  • 工作场所:对每一位置考虑一天之内最早和最晚推文相差时间,将其设为该天的主要时间范围,随后将时间范围重叠在一起,将出现次数超过半数的小时集设为该位置的主要时间范围。然后结合八小时工作制排除一些活动时间太长的位置,最终选择活跃周数最多的位置作为工作场所。
3. 识别敏感位置

作者将识别出的敏感位置成为PSCs(Potentially Sensitive Clusters),主要通过Foursquare的API得到位置附近地点的名称、类别。但不能依此确定用户是否进入了敏感场所,因此作者使用如下两种方式进行确认:

  • 基于内容确认:作者关注健康、宗教、夜生活三种敏感场所,所以分别总结出三个单词列表,其中的单词都和敏感场所相关联。然后,使用NLTK库识别每一PSC对应的推文的关键词,以此来和附近的敏感场所联系起来。
  • 基于持续时间确认:在一些情况下,从用户的推文中不包含敏感场所的相关内容,因此作者提出如果某些PSCs在一段时间内有连续的推文,则说明用户确实进入了该敏感场所。

数据收集

作者使用Twitter提供的API收集了美国308593个用户的456856444条推文,并筛选出其中87114个用户的15263317条带有位置信息的推文。再排除掉其中带有位置信息推文数量过少(小于10)的用户,最终作者得到两个数据集:推文数量最多的6010个用户(Top-6K)和推文数量在10~250区间的随机挑选的9841个用户(Low-10K)。 为了对工具进行评估,需要有ground truth,也就是对用户的家/工作场所进行正确的标记。作者选择使用人工的方式,结合推文的内容进行标记。人工标记花了6个星期,两个人研究人员各自标记,并对结果进行比对,如果不一样,则忽略该用户。 最终作者的ground truth由四个数据集组成:

  • Home-Top: 1004名用户的1307个家,其中718名用户仅有一个家,269名用户有两个,17名用户有三个
  • Home-Low: 905名用户仅有一个家,137名用户有两个,1名用户有三个
  • Work-Top:298名用户的363个工作场所
  • Work-Low:92名用户的98个工作场所

实验评估

##### 1. 关键位置推测

LPAuditor在groud truth的四个数据集的准确率分别为92.23%,92.9%,55.03%,57.6%。因为用户在工作时使用推特的频率更少,同时在其他位置(如咖啡厅、餐馆、健身房)可能和工作场所有着相似的特征,所以准确率并不是很高。

随后,作者使用LPAuditor对Top、Low两个数据集进行评估,但因为缺乏标签,所以只能给出Rank of clusters的分布情况。作者从中挑选出100个用户进行验证,发现其中89个用户的家的判断都是正确的,但剩下11个用户仅从他们的推文中无法确定他们家的位置。而在工作场所的识别方面,其中45个是正确的,30个是错误的,25个未知。作者还对ground truth中183个从账户信息中看不出个人身份的用户进行了评估,发现其中171个用户的家和23个用户的工作场所都能够被识别出来(De-anonymization)。

最后,作者还将自己的工作和之前一些启发式的策略进行了比较,发现其准确率高于之前的工作。

2. 敏感位置推测

在ground truth上,识别出了Home-Top上938(93.42%)个用户的5393个PSCs,Home-Low上516(49.47%)个用户的1090个PSCs。

3. 历史数据的影响

作者发现2015年4月之前发布的推特App中,推文会自动包含坐标地址和一个粗粒度的标签(如城市名)。但现在,用户的每一条推特都可以选择是否包含位置信息,这对隐私是一个更好的保护。但是历史数据通过API仍能够查到。 #### 总结 作者将推文及其位置做了一个关联,丰富了推文提供的信息,并在此基础上利用各种规律、猜想对推文信息进行了挖掘。文章对实验步骤介绍地非常细致,同时实验评估部分的图表非常丰富,比较核心的是基于启发式的猜想做出的种种决策,但是如果对location (meta)data尤其是meta的介绍如果放在前面,明确攻击者如何达到实现攻击的前提(获取到位置信息),可能会比较好。