我们如何建立一个实时隐私检查员(2020)

2021-05-12 07:35:42

该工具模拟了在浏览Web时如何在浏览时进行监视。用户将URL键入Blacklight,它访问所请求的网站,扫描已知类型的隐私违规,并返回所检查网站的即时隐私分析。

Blacklight通过使用无头浏览器访问每个网站,运行由标记构建的自定义软件。该软件监视该网站上的哪些脚本通过执行七种不同的测试可能会监测用户,每次调查特定的已知的监视方法。

Blacklight使用NodeJS JavaScript环境,Pumppeteer节点库进行构建,它提供了通过铬(开源Chrome)浏览器的高级控制。当用户进入Blacklight时,该工具将打开一个具有新功能的无头Web浏览器,并访问其主页以及在同一网站内更深入的随机选择的页面。

谁在工作,学习或探索互联网时偷看了肩膀?

在这里尝试黑光。进入网站,Blacklight将为用户跟踪技术扫描 - 以及谁获取数据。

浏览器正在访问该网站时,它在背景中运行自定义软件,该软件监视脚本和网络请求以观察正在收集用户数据的时间和方式。要监控脚本,Blacklight修改了浏览器窗口API的各种指纹属性。这允许使用StackTrace-JS包来记录Blacklight对哪个脚本进行特定函数调用。使用Pumppeteer API中包含的监视工具收集网络请求。

Blacklight使用脚本数据和网络请求运行上述七个测试。之后,它将关闭浏览器并为用户生成即时报告。

它记录检查的网站请求的所有URL的列表。此外,它还列出了请求的所有域和子域名。我们向公众提供的工具将不会保存那些列表,除非用户选择通过工具中的选项与我们共享结果。

我们使用public后缀+ 1方法定义域名。我们将第一方域定义为与访问的网站匹配的任何域,包括子域名。我们将第三方定义为与访问的网站不匹配的任何域。该工具将网站请求与DuckDuckGo的跟踪器雷达数据集进行比较第三方域名。

此数据合并允许Blacklight添加有关已检查站点上的第三方域的以下信息:

DuckDuckgo将DuckDuckGo分配的类别,以便尝试描述其观察到的目的或意图。

有关第三方的其他信息被提供给用户作为Blacklight即时测试结果的上下文。除此之外,这些信息用于计算给定网站上存在的广告相关跟踪器的数量。

Blacklight将根据用户输入的页面的根URL来运行测试。例如,如果https://example.com/sports中的用户类型,则Blacklight在Https://example.com上开始检查并忽视/体育路径。如果https://sports.example.com中的用户类型,Blacklight将在Https://sports.example.com上开始检查它。

每个请求域的Blacklight结果将缓存24小时,这些缓存的报告是在24小时内对同一网站的后续用户请求进行交付。这旨在防止该工具恶意使用,以压倒一座网站,以千万自动化访问。

Blacklight还将告诉用户它们的结果是否高,低,或约平均值,与Tranco列表排名的100,000个最受欢迎的网站上的工具相比。这将在下面更详细地描述。

Blacklight Code Base是开源,在GitHub上可用;它也可以下载为NPM模块。

我们的分析有局限性。 Blacklight模拟了访问网站的用户,但其自动行为与人类行为不同,并且该行为可能触发不同类型的监视。例如,自动请求可能会触发更多欺诈检测,但广告较少。

鉴于基于Web的技术的动态性质,也可能在这些测试中的一些可能会随着时间的推移而变得过时。和技术的新的合法用例都可以出现在工具的警告中不会列出的案件。

因此,Blacklight结果不应作为一个给定网站的潜在隐私违规的最终词。相反,他们应该被视为初步的自动化检查,需要在确定最终索赔之前进一步调查。

Blacklight建立在过去十年内建造的各种隐私人口普查工具的基础上。

它运行JavaScript仪器,使其能够监视浏览器的JavaScript API的调用。这是基于OpenWPM,由Steven Englehardt,Gunes Acar,Dillon Reisman,普林斯顿大学Arvind Narayanan建造的Web隐私测量的开源工具。它现在由Mozilla维持。

OpenWPM用于Power Princeton的Web透明度和问责项目,监控网站和服务,以发现公司的数据收集,数据使用和欺骗性实践。

通过2015年至2019年之间进行的众多研究,普林斯顿研究人员发现了许多隐私技术的存在。这些包括浏览器指纹和cookie同步以及会话重播脚本如何收集密码和敏感的用户数据。一个值得注意的例子是来自Walgreens.com的处方数据和健康状况数据的exfiltration。

七个测试的五个Blacklight运行基于上述普林斯顿研究中描述的技术。这些测试是帆布指纹识别,关键日志记录,会话录制和第三方cookie。

OpenWPM包含来自其他隐私检查工具的代码和技术,包括第四部分,隐私獾和FP侦探:

4第四部分是衡量2011年8月发布的动态Web内容的开源平台,直到2014年。它已被用于各种研究,其中包括描述像家庭仓库等网站如何泄露其客户的研究。给第三方的用户名。 Blacklight使用SprontParty的方法来监控将在网络上发送到第三方的用户信息。

Privacy Badger是电子前沿基金会的浏览器附加加载,并于2014年5月发布。它可以防止广告商和第三方跟踪器从互联网上的人们遵循。

FP侦探是第一个测量互联网上指纹识别的普遍性的综合研究。该工具于2013年发布,用于进行大规模的网络隐私研究。

Blacklight的数据分析部分受到欧盟电子数据保护主管(EDP)开发的网站证据收集者的启发。网站证据收集器是一个NodeJS包,它使用Pumppeteer库发现网站如何收集用户的个人数据。 EDP​​选择了一些收集数据类别。

影响Blacklight开发的其他项目包括2012年在UC Berkeley进行的网络隐私人口普查,以及华尔街日报的“他们所知”系列。

第三方cookie是一小部分数据,当您访问网站时跟踪网络浏览器中的公司存储。这一点文本 - 通常是一个唯一的数字或字符串 - 在访问包含来自同一公司的跟踪代码的其他网站时标识您。数百家公司使用第三方饼干来构建有关用户的档案,并根据其行为提供定制广告。

受欢迎的Web浏览器边缘,勇敢,Firefox和Safari默认情况下所有块第三方跟踪Cookie,并且Chrome宣布它将逐步淘汰。

Blacklight监控“set-cookie”标题的网络请求,并观察使用document.cookie javascript属性设置cookie的所有域。 Blacklight将第三方cookie标识为域与访问的网站域不匹配的那些。我们在Duckduckgo的跟踪雷达数据中查找这些第三方域名,以了解谁拥有它们,他们是多么普遍,以及他们提供的服务。

关键日志记录是当第一个或第三方监视您在按提交按钮之前键入网页的文本。这种技术已被用于各种目的,包括通过将它们与邮寄地址和实名匹配来识别匿名网络用户。

关键日志记录还有其他原因,例如提供自动完成功能。 Blacklight无法确定经过检查的网站上使用此技术的意图。

为了测试这是否正在发生在给定的网站上,Blacklight类型预定文本(请参阅附录)在所有输入字段中,但从不单击提交按钮。它监控网络请求,以查看输入的数据是否已发送到任何服务器。

会话录制是允许第三方监视和记录用户在网页上的所有行为的技术 - 包括鼠标移动,单击,滚动页面,即使您没有单击“提交即使您也输入的任何内容即使您输入的任何内容。

在2017年研究中,普林斯顿大学的研究人员发现,会话记录仪正在收集密码和信用卡号等敏感信息。当研究人员联系有问题的公司时,最快速地回应并修复了数据泄漏的潜在原因。然而,研究突出显示这些并不是错误,而是研究人员所说应该完全停止的不安全实践。提供会话录音的大多数公司都说他们使用数据来为客户提供 - 为如何提高网站上提高用户体验的技术有意义的洞察的网站。一家公司ISPETLET,将其服务描述为观看“个人访客使用您的网站,就像您正在浏览肩膀一样。” (Ispetlet没有回复寻求评论的电子邮件。)

我们将会话录制定义为我们知道要提供会话录制服务的公司加载特定类型的脚本。

根据2017年普林斯顿大学的研究人员创建的列表,Blacklight仅在发生会话录制时显示的特定URL子级的网络请求。

有时,密钥日志记录用作会话录制的一部分。在这些情况下,Blacklight将正确地将会话记录器报告为关键日志记录和会话录制,因为我们都观察到这两种情况,即使两个测试都标识相同的脚本。

Blacklight精确地检测到网站加载这些脚本 - 但是公司通常只记录一个网站访问样本,因此并非每次访问都会记录每个用户。

指纹识别描述了一组尝试识别您的浏览器而不设置cookie的技术。即使您阻止所有cookie,它们也可以识别您。

CANVAS指纹识别是一种指纹识别用户通过在用户网页上绘制形状和文本来识别用户,并注意到它们的呈现方式中的次要差异。

这些差异渲染,平滑和抗锯齿和其他功能的这些差异由营销人员和其他特征用于识别单个设备。除了Chrome之外,所有主要的互联网浏览器都尝试对计数器指纹识别 - 无论是通过不满足已知已知练习的脚本的数据请求,还是尝试标准化用户的指纹。

以下图像是指纹脚本使用的画布图像类型的示例。这些Canvases通常对用户不可见。

我们遵循普林斯顿大学的研究人员在本文中描述的方法,以确定HTML Canvas元素用于跟踪目的。我们用于识别用于指纹识别目的的画布的参数是:

脚本不应调用呈现上下文的保存,还原或addeventListener方法。

脚本提取和使用Todataurl或单个呼叫到GetImagedata的呼叫,指定最小大小为16px×16px的区域。

我们在实践中尚未见过这一点,但是Blacklight可能会错误地标记与这些启发式符号匹配的帆布的合法使用。要考虑此操作,该工具捕获脚本绘制的图像并在工具中呈现此操作。用户应该能够通过查看此图像来确定Canvas的使用。典型的指纹脚本如上所示。

广告跟踪器是识别和收集有关用户信息的技术。这些技术通常(但并非总是)出现在网站所有者的某些同意下。它们用于收集网站用户分析,用于广告目标,以及数据代理和其他信息收集器来构建用户配置文件。它们通常采用JavaScript脚本或网站信标的形式。

Web Beacons由1PX图像小1PX图像,该图像放置在网站上,用于跟踪第三方的目的。使用这种技术,第三方可以确定包括当特定用户去站点的行为,浏览器的种类以及它使用的IP地址。

Blacklight检查对EasyPrivacy列表的所有网络请求,其中包含已知用于跟踪的URL和URL子字符串。 Blacklight监控对这些URL和子串进行的请求的网络活动。

黑灯仅记录对第三方域名的请求。它忽略了与第一方域匹配的EasyPrivacy列表中的任何URL模式。例如,eff将其自身的分析寄发,并导致请求“https://anon-stats.eff.orf”,他们的分析子域。如果https://eff.org中的用户类型,则Blacklight不会考虑调用https://anon-stats.eft.eft.eft为第三方请求。

我们在DuckDuckgo的跟踪雷达数据集中查找这些第三方域名,以了解谁拥有它们,它们是多么普遍的,以及他们提供的类型的服务。我们仅包括属于“跟踪雷达数据集中定义的”广告动机跟踪“类​​别的第三方域。

Facebook Pixel是一块代码Facebook创建的代码,允许其他网站以稍后使用Facebook上的广告来定位他们的访客。可以由像素跟踪的公共动作包括查看页面或特定内容,添加付款信息或购买购买。

Blacklight寻找到Facebook的网站上的网络请求,并在URL查询参数中查找与Facebook像素的文档中所述的模式匹配的数据。我们寻找三种不同类型的数据:“标准事件”,“自定义事件”和“高级匹配”。

Google Analytics是今天最受欢迎的网站分析平台。根据Whotracks.me的41.7%的Web流量被Google Analytics分析。虽然这项服务的大多数功能是提供开发人员和网站所有者的信息,了解他们的观众如何与他们的网站接触,但该工具还允许网站根据用户行为制作自定义受众列表,然后将广告定位到这些访问者互联网使用Google广告和显示& Video 360. Blacklight检查检查的网站是否存在工具,而不是如何使用它。

Blacklight寻找从检查的网站的网络请求转到与“stats.g.doubleclick”开头的URL,该网址也包含“UA-”Google帐户标识符前缀。这在Google Analytics开发人员文档中更详细地描述了这一点。

为了确定互联网上跟踪技术的普遍性,无论是黑光和随附的新闻故事,我们都会通过Blacklight运行Tranco列表定义的100,000个最受欢迎的网站。可以在GitHub上找到数据和分析代码。 Blacklight成功捕获了81,617个URL的数据。其余部分无法解析,超时多次尝试,或者没有加载网页。下面列出的百分比是81,617成功捕获。

一些分析超出了工具上出现的内容。我们调查的主要发现如下:

我们被归类为Google跟踪技术,对以下任何一个网络请求进行了任何网络请求:

我们归类为Facebook跟踪技术,任何网络请求都在以下任何一个Facebook域名:

它是用户行为的模拟,而不是实际的用户行为,因此可以触发不同的监视响应。

误报(可能与帆布指纹识别):非常偶尔,HTML Canvas的合法用途与启发式黑灯用于识别Canvas指纹识别。

假否定:Blacklight的JavaScript仪表使用的堆栈跟踪技术可能会错误地将呼叫归因于我们正在监视脚本包含的库的窗口API方法。例如,如果指纹识字脚本使用jQuery进行一些调用,jQuery可能最终在堆栈的顶部上升,Blacklight将呼叫归因于' s实际上责任的脚本。通过审查我们的方法的研究人员提出了这种可能性;我们在我们的测试中没有看到它发生或对100,000个最受欢迎的网站的调查。

关于误报,当Blacklight访问网站时,该网站可以看到该请求来自亚马逊AWS云基础架构托管的计算机。由于僵尸网络经常在云基础架构上运行,因此我们的工具可以触发网站上的机器人检测软件,包括帆布指纹识别。这可能导致帆布指纹测试的误报,测试的目的不是跟踪用户但是要检测僵尸网络。

为了测试这一点,我们从TRANCO列表中从顶部网站上随机样本,从AWS上已经过了Blacklight。我们通过在纽约市的住宅IP地址本地计算机通过Blacklight软件运行此示例。我们得出的结论是,当云基础设施上运行它时,局部黑光检查的结果非常相似,但不完全相同。

并非所有不可察觉的监视活动必然是恶意的。例如,Canvas指纹识别用于欺诈预防,因为它可以识别设备。和键记录可用于提供自动完成功能。

Blacklight不会尝试确定它发现的任何特定跟踪技术的意图。

Blacklight尚不能确定网站在加载会话记录脚本和监视用户行为时如何使用它在用户上收集的数据,例如鼠标移动和击键。 Blacklight没有检查网站访问的使用条款或隐私政策,以查看他们是否披露其监视活动。 下表列出了我们编写了Blacklight的值,以键入网站上的输入字段。 我们使用Mozilla自动完成属性写入作为我们的参考。 Blacklight还检查了这些值的Base64,MD5,SHA256和SHA512版本。 我们感谢Gunes Acar(Ku Leven),Steven Englehardt(Mozilla),以及Arvind Narayanan和Jonathan Mayer(普林斯顿,CITP)的意见和建议就早期的草案进行意见和建议。