【论文阅读#4】Carnus: Exploring the Privacy Threats of Browser Extension Fingerprinting

为君一笑 提交于 2020-08-06 09:31:43

一、论文信息

本文是发表在NDSS 2020上的一篇文章,与上一篇作者从加密流量中提取移动应用程序指纹不同的是,本篇文章主要针对于浏览器上的扩展应用(extension),并且提取指纹的方式也是通过扩展的一些静态与动态的特征。除此之外,作者还探究了扩展指纹对用户造成的隐私威胁程度,基于扩展的一些性质,可能无意中泄露用户的敏感信息,例如国家、性别、民族等。

1.1、摘要原文

With users becoming increasingly privacy-aware and browser vendors incorporating anti-tracking mechanisms, browser fingerprinting has garnered significant attention. Accordingly, prior work has proposed techniques for identifying browser extensions and using them as part of a device s fingerprint.  While previous studies have demonstrated how extensions can be detected through their web accessible resources, there exists a significant gap regarding techniques that indirectly detect extensions through behavioral artifacts. In fact, no prior study has demonstrated that this can be done in an automated fashion. In this paper, we bridge this gap by presenting the first fully automated creation and detection of behavior-based extension fingerprints. We also introduce two novel fingerprinting techniques that monitor extensions communication patterns, namely outgoing HTTP requests and intra-browser message exchanges. These techniques comprise the core of Carnus, a modular system for the static and dynamic analysis of extensions, which we use to create the largest set of extension fingerprints to date. We leverage our dataset of 29,428 detectable extensions to conduct a comprehensive investigation of extension fingerprinting in realistic settings and demonstrate the practicality of our attack. Our in-depth analysis confirms the robustness of our techniques, as 83.6% - 87.92% of our behavior-based fingerprints remain effective against a state-of-the-art countermeasure.

Subsequently, we aim to explore the true extent of the privacy threat that extension fingerprinting poses to users, and present a novel study on the feasibility of inference attacks that reveal private and sensitive user information based on the functionality and nature of their extensions. We first collect over 1.44 million public user reviews of our detectable extensions, which provide a unique macroscopic view of the browser extension ecosystem and enable a more precise evaluation of the discriminatory power of extensions as well as a new deanonymization vector. We also automatically categorize extensions based on the developers’ descriptions and identify those that can lead to the inference of personal data (religion, medical issues, etc.). Overall, our research sheds light on previously unexplored dimensions of the privacy threats of extension fingerprinting and highlights the need for more effective countermeasures that can prevent our attacks.

 

1.2、摘要译文

随着用户隐私意识的增强,以及浏览器厂商加入了反跟踪机制,浏览器指纹识别得到了广泛关注。因此,先前的工作提出了识别浏览器扩展并将其作为设备指纹的一部分使用的技术。虽然以前的研究已经演示了如何通过web可访问资源检测扩展,但是在通过行为间接检测扩展的技术方面存在很大的差距。事实上,之前没有研究表明这可以用自动化的方式完成。在本文中,我们通过展示第一个完全自动化的基于行为的扩展指纹的创建和检测来弥补这一差距。我们还介绍了两种监视扩展通信模式的新型指纹技术,即传出HTTP请求和浏览器内部消息交换。这些技术构成了Carnus的核心,这是一个用于静态和动态分析扩展的模块系统,我们使用它来创建迄今为止最大的扩展指纹集。我们利用我们的29,428个可检测扩展的数据集,对现实环境下的扩展指纹进行了全面的调查,并展示了我们攻击的实用性。我们的深入分析证实了我们的技术的健壮性,因为我们基于行为的指纹的83.6% - 87.92%在对抗最先进的反措施时仍然有效。

随后,我们的目标是探索扩展指纹对用户造成的隐私威胁的真实程度,并提出一个新的研究,基于其扩展的功能和性质,揭示隐私和敏感用户信息的推理攻击的可行性。我们首先收集了超过144万的公众用户对我们可检测扩展的评论,这为浏览器扩展生态系统提供了一个独特的宏观视图,并能够更精确地评估扩展的区分能力,以及一个新的去匿名化攻击。我们还根据开发人员的描述自动对扩展进行分类,并识别那些可能导致推断个人数据(宗教、医疗问题等)的扩展。总的来说,我们的研究揭示了之前未探索的延伸指纹的隐私威胁的维度,并强调了需要更有效的对策来防止我们的攻击。

 

1.3、结论原文

With browser vendors incorporating countermeasures against cookie-based tracking, user tracking techniques that rely on browser fingerprinting are becoming increasingly prevalent. As a result, modern browsers have recently introduced (or announced) mechanisms for mitigating the effect of such techniques. Nonetheless, recent research has exposed vulnerabilities in those countermeasures and have also proposed additional countermeasures. In this paper we presented the largest study on the unicity of extension fingerprints to date and revealed their discriminatory effect in real-world settings apart from enabling attackers to uniquely identify a device and track users, we outlined a de-anonymization attack that leverages publicly available extension reviews for revealing the user s identity. We also conducted the first study detailing how attackers can infer sensitive or personal user information from detected extensions. The practicality of our attacks is high- lighted by our comprehensive exploration of multiple extension fingerprinting techniques (including two novel approaches) and their evaluation under practical settings. Our experimental evaluation also demonstrated the robustness of our fingerprinting techniques against state-of-the-art countermeasures proposed by the research community, thus motivating the need for additional research for potential countermeasures. Overall, we hope that our research sheds more light on the risks users face and leads users to a more critical view of extensions.

1.4、结论译文

随着浏览器厂商加入了对抗基于cookie的跟踪的措施,依赖于浏览器指纹的用户跟踪技术变得越来越流行。因此,现代浏览器最近引入(或宣布)了一些机制来减轻这些技术的影响。然而,最近的研究已经暴露了这些对策中的漏洞,并提出了更多的对策。在本文中,我们提出了最大的研究扩展指纹的唯一性和显示他们的歧视效应在实际设置除了使攻击者能够唯一地标识一个设备和跟踪用户,我们概述了反匿名化攻击利用公开扩展评论揭示用户身份。我们还进行了第一项研究,详细介绍了攻击者如何从检测到的扩展中推断敏感或个人用户信息。我们对多种延伸指纹技术(包括两种新方法)的综合研究和在实际环境下的评估,突出了我们攻击的实用性。我们的实验评估还证明了我们的指纹识别技术对研究界提出的最新对策的鲁棒性,从而激发了对潜在对策进行进一步研究的需求。总的来说,我们希望我们的研究能够更清楚地揭示用户所面临的风险,并引导用户对扩展有更批判性的看法。

 

二、文章内容

2.1、Background & Significance

本文的重要性
本文主要内容
Carnus的工作流程

 

2.2、对扩展进行检测

本文主要围绕两个主题,一个是对浏览器扩展进行检测并生成指纹,还有一个就是探究扩展指纹对用户隐私信息的威胁程度。在对浏览器扩展进行检测时,作者主要使用了4种方式,分别为:基于Web-Accessible Resources(WAR)、基于行为、基于内部通信、基于外部通信的检测。除了第一种使用了静态分析外,后三种均属于动态分析。

为了更好的检测这些扩展,作者使用了honeysite网站,上面可以根据需要进行web页面的操作,以满足需求高度多样化的内容。因此这里假设的攻击模型也是假设用户在访问honeysite时,Carnus系统会尝试检测该用户使用了哪些扩展。

 

2.2.1、基于Web-Accessible Resources(WAR)的检测方式

原理:扩展名的结构和所需的权限在manifest文件中定义,web页面只能访问路径位于WAR里的资源,例如图片、JavaScript和CSS文件等,而manifest文件中的WAR定义了部分扩展。例如:Chrome-extension://<UUID>/<path>,其中UUID是扩展的ID,除了Chrome浏览器的UUID会不变外,其他浏览器一般都是随机。

检测方式:作者使用静态分析的方法解析manifest文件,从中获取使用的扩展。并通过脚本向每个扩展的WAR发送请求,根据每个请求的响应判断是否安装了扩展。

 

2.2.2、基于行为的检测方式

原理:扩展可以具有一些行为,例如动态地向web添加图像、按钮或文本;或者检测图像和文本并进行替换等。这些行为都是通过DOM,对DOM树进行增、删、改的操作,而改可以定义为先删后增。

除了第一种可以直接根据请求的响应判断出是否安装扩展之外,后三种都需要先建立一个扩展指纹的数据库,然后将检测过程中生成的指纹与数据库中的扩展指纹进行比对,才能够判断是否安装了扩展。

在本种检测方式的数据库建立阶段:作者使用新的、仅安装该扩展的Chrome访问自己制作的honeysite网页3次,比较更改后的网页内容和原网页内容,用所有添加和删除的项来构造指纹。在这个过程中,由于一些扩展需要特定的关键词才会触发,因此作者分别使用安装了扩展与不安装扩展的Chrome去访问APP Store上扩展的详情页,会发现这些关键词通常包含在扩展的描述中,作者再将这些关键词放入honeysite中,并根据改变项来构建该扩展指纹存入数据库。

检测阶段:作者用仅安装该扩展的Chrome去访问honeysite,记录该扩展所触发的增删操作生成指纹,再将指纹与数据库中的扩展指纹进行比对。

在检测时,可能不同的扩展每次的执行结果均不一样(漏报情况),因此在检测阶段的指纹生成时,Carnus可以识别出高度相似的指纹的变与不变的部分,然后仅使用不变的部分重写指纹。但是这种方法依旧具有局限性,不也能够够检测仅有变化部分的指纹,因此作者根据指纹大小允许一定数量指纹的不匹配。

除此之外,还可能出现多个扩展对DOM的修改相似的情况(误报情况),在这里,作者会同时考虑多种情况,并尝试用其他方式匹配。

 

2.2.3、基于内部通信的检测方式

原理:出于安全考虑,浏览器将扩展的执行文本、后台脚本、内容脚本和页面脚本分开,分别在独立的环境中运行,防止访问其他的变量和函数,但是它们彼此之前可以通过交换消息进行内部通信。扩展和web页面的通信可以通过两种方式实现,页面脚本可以使用:扩展的后台脚本(使用时有条件),或者和内容脚本交换消息(无条件使用)。

在本种检测方式的数据库建立阶段:作者使用JavaScript中的EventListener来捕捉、记录所有的消息事件,并用仅安装该扩展的Chrome浏览器访问honeysite三次以确定是否总发送相同的消息,去掉其中的改变项生成指纹,并存入数据库中。

检测阶段:当用户访问网站时,系统捕获安装的扩展发送的所有消息生成指纹,并与数据库中基于消息的指纹进行匹配。

 

2.2.4、基于外部通信的检测方式

原理:扩展可以通过发出HTTP请求来获取资源,例如图片、脚本、CSS文件等,每个扩展所需获取的资源基本是不变的。

在本种检测方式的数据库建立阶段:作者通过JavaScript可以访问Resource Timing API存储web应用程序的性能和执行的性能指标,并且使用performance.getEntriesByType(“resource”)可以获得请求的所有资源。因此作者通过访问honeysite三次以检测扩展是否总访问相同的资源,并获得了web页面所请求的所有资源的URL,根据这些URL集合以及安装在浏览器中的扩展脚本,二者结合可以生成独特的指纹。

检测阶段:当用户访问网站时,系统以同样的方式捕获扩展所发送的所有HTTP请求,根据这些请求生成指纹,并与数据库中的指纹进行匹配。

 

2.3、对扩展的安全性进行探究

作者对扩展的安全性进行探究,主要利用了Chrome商店的扩展描述及扩展评论。

2.3.1、扩展描述

针对于每个扩展描述,一般都会用一句话先整体性描述,再使用一段文字去具体解释扩展的功能、支持的网站等内容,这些内容可能会包含不需要的文本内容,因此作者

  1. 首先将所有文本翻译为英语,对有噪声的描述文本进行预处理和清理;
  2. 使用了NLP技术对文本进行分类,例如具体的“Health”(健康)类别;
  3. 使用spaCy库来检测每个实体所对应的内容,例如位置、国家、民族等;
  4. 提取特定人口信息进行验证。

针对于每条用户评论,因为评论来自Chrome商店,因此每条评论都会有用户名,而用户名来自于Chrome账户,作者结合了一套广泛的名字来源列表(每个国家/民族所包含的所有名字),将每个名字与这个姓名列表进行匹配,以确定该用户来源于具体的国家/民族。即使该用户在账户信息中隐藏了国家/民族的信息,依旧可以通过姓名匹配确定。性别同理,也可以用此种方式确定。

 

三、我的总结

看这篇文章最初的目的是因为上一篇看的是应用程序指纹识别但是浏览器的识别并不是特别突出,所以这篇想要对浏览器进行一个了解,而这篇也确实对浏览器的扩展进行了指纹识别。

在识别过程中主要用到了四种技术,这四种可以单独使用,也可以混合进行使用,因此在检测一个扩展时,如果一种不能够确认,可能需要再使用其他方式进行检测,例如方法2中可能会出现的多个扩展的行为相似造成指纹相似的结果。作者在这里的创新主要是后两种,基于内部和外部通信,这二者的共同思想都是先捕捉某个扩展的所有消息(可能是内部也可能是外部HTTP)生成指纹存入数据库,在实际运用时再进行比对判定具体是哪个扩展。作者在这里也给定了20%的阈值允许指纹不匹配以产生更好的匹配结果。

PS:但是说实话我不太认同作者在这里的写作能力,这个部分的逻辑不太清晰,以至于我理解、整理了挺久,而且写着写着又插入了一段related work,大佬的思路实在跟不上。

在后面的探究扩展安全性的过程中,主要使用了Chrome商店的扩展描述和评论,说实话这个探究也并没有使用了什么很先进的方法,我以为可能会使用什么AI算法先进行训练再分类之类的,然而实际上并没有。作者就是很老实的去看描述中涉及到了什么隐私内容,以及评论者的用户名按照国际习惯应该属于哪个国家或者地区以及性别是什么,其实这个会存在很大的容错性,比如我是中国人,按理说我应该使用中文字,但是我一般会将我的账户名设置为英文名(例如我的CSDN名字),所以这个很难说,但是这个技术是可以应用的比较广泛的,只要涉及到名字的情况应该都可以使用这种方式进行分析,不过错误率应该也会比较高。

从整篇文章的角度来说,本文更多的是多个工作的集合加上作者个人的实践,创新性并没有那么明显,但是胜在工作量足够大,不过部分工作也给我们提供了一个很好的思路,可以借鉴。由于文章写得真的有点难懂,因此实验部分我都没有很仔细去看,实在惭愧。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!