浏览器插件过度分享隐私:Wappalyzer的数据收集隐患

本文通过分析Wappalyzer浏览器插件的数据收集行为,揭示其如何意外泄露用户访问的完整URL、地理位置、时间戳等敏感信息,甚至包括内部网络站点,提醒用户谨慎选择浏览器插件。

浏览器插件过度分享

作者:Brian King
注意: 本博文中引用的技术和工具可能已过时,不适用于当前情况。然而,这篇博文仍可作为学习机会,并可能更新或集成到现代工具和技术中。

您知道那个浏览器插件在做什么吗?
浏览器插件几乎无所不能。您可以找到一个插件,将您最不喜欢的政客的名字在每个访问的页面上改为冒犯性内容。还有恶意软件拦截器和密码管理器。不久前,Gail 在这个博客上介绍了一个让 PGP 更易用的插件。

但它们都有一个共同点:它们在您的浏览器内部运行。网络浏览器可能已经取代了体检室,成为最难隐藏东西的地方之一。即使您想在线私下操作——当您删除 cookie 或使用隐身模式,或使用承诺不跟踪您的搜索引擎时——您仍然使用浏览器来查找所需内容。您的浏览器能够了解关于您的海量信息,而插件可以知道浏览器知道的任何信息。

因此,当您找到一个看起来有用的插件时,值得一看它实际上在用您提供给它的所有信息做什么。有时它们做的比您预期的更多。

在 Web 应用测试中,我有时使用一个名为 Wappalyzer 的插件来快速识别网站涉及哪些第三方组件。它在地址栏中显示徽标,告诉您它找到了什么。

看看报纸上的所有这些东西!
安装页面大致描述了插件的功能,并链接到常见问题解答。常见问题解答中的最后一个问题告诉您,该扩展“将您访问的网站的匿名信息发送到 wappalyzer.com”,并相当清楚地描述了这些信息是什么以及用途。您必须知道它会做类似的事情。而且您可以选择退出,所以到目前为止一切都很透明。

无论如何,我想知道具体会发送回什么信息,以及是否包括关于我为客户测试的站点的机密信息。

因此,我在公共站点和我自己网络上的内部站点上进行了一些无目的的浏览,同时在 BurpSuite 中捕获流量。在这个过程中,我注意到偶尔有 POST 请求发送到 Wappalyzer URL,postdata 中包含一个大型 JSON 对象。

嘿,那是什么?
说到插件,BurpSuite 有一个叫做 JSBeautifier 的插件,它使这类数据更易读:

解码的 post 数据
这准确显示我在 Reddit 上并点击了一个链接带我去了 Walmart。它也没有包括我在任一位置的实际路径,这符合他们的描述。这并没有确切说明我在任一地方查看了什么,但它确实说明了我的起始位置、去了哪里以及时间(startTime 是 Unix 时间戳)。

再往下,它显示了一些组件的完整 URL。其中一些是它在地址栏中显示图标所寻找的内容。大多数是通用 URL,但有些包含看似随机的字符串,这些可能(或可能不)是用户特定的。

上图:我的浏览器从 Google 获取的一些通用 JS

上图:一个不太通用的 doubleclick URL
那个 doubleclick.net URL 长达 1,580 个字符,它包括关于我的非常具体的信息,包括我的物理位置(精确到邮政编码,可能通过反向 IP 查找)、我使用的网页浏览器、一些 GUID 参数(全局唯一标识符,可能特定于我或不是),以及……我当时在 Walmart 的页面的完整 URL。

那是一个完整的 URL……
这与 Wappalyzer 在其常见问题解答(https://wappalyzer.com/faq)中说的矛盾:

Wappalyzer 常见问题解答摘录
考虑到这些信息埋藏得有多深,以及他们收集的不是我主动访问的 URL,而是我访问的站点上的跟踪器添加的 URL,这可能是 Wappalyzer 的疏忽。但它相当清楚地包含了一个完整的 URL,以及足够其他信息来相当唯一地识别我——访问的主机、邮政编码、时间戳和浏览器用户代理。然后我们还有那些 GUID,它们可能(或可能不)单独识别我。

另一个问题是我访问的非公共站点。我经常测试客户内网上的站点,或仅通过 VPN 可访问或不应公开披露的站点。Wappalyzer 如何可能识别这些并排除它们?他们的常见问题解答根本没有提到这一点,因此我的假设是这些更敏感的位置不会得到任何特殊处理。结果发现,即使是最明显的“非公共”站点——localhost——也被包含在消息中。

内部站点被包含
这个没有包括任何真实的路径信息:那串数字没有指向我的本地主机 Web 服务器上的任何内容。但它确实披露了内部主机名、我访问它的日期和时间,以及它存在的事实。所有这些可能比客户希望我向第三方透露的更多。

我从这个小练习中得出的结论:

  1. 在测试任何非公共内容之前,我需要移除这个插件。
  2. 常见问题解答中描述的隐私措施并未完全生效。
  3. 浏览器插件处于非常特权的位置,应极其谨慎地选择。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计