"Stylish"浏览器扩展会窃取你所有的互联网历史记录

在它成为一个伪装成出色的浏览器扩展的秘密监视工具之前,Stylish真的是一个出色的浏览器扩展。它给用户带来了改变互联网外观的力量。大量Stylish用户制作的皮肤库为明亮但刺眼的网站提供了一个黑色的背景,使得不喜欢原来用户界面的人可以对其进行更改,并且能够为各种元素添加自己喜欢的动漫图片。它简单的CSS编辑器让我度过了许多美好的时光,但现在我发现,我同时也在不知不觉中被窥探。Facebook新闻源、Twitter新闻源以及个人浏览历史都遭到了它的窃取。

不幸的是,自20171月起,Stylish已经增加了额外的间谍软件,记录了我及其他200用户访问的每一个网站。Stylish将我们的完整浏览活动发送回了它的服务器,并附带唯一标识符。这允许它的新所有者SimilarWeb将所有个人的行为连接到单个配置文件中。对于像我这样在userstyles.org上创建了Stylish帐户的用户,这个唯一标识符可以很容易地链接到登录cookie。这意味着SimilarWeb不仅拥有我们完整的浏览历史的副本,而且还拥有足够的其他数据,理论上可以将这些历史与电子邮件地址和真实世界的身份联系起来。

 

Stylish如何成为间谍软件的?

Stylish从出色的浏览器扩展过渡到了隐私窃取者,这开始于20168Stylish的原所有者和创造者将它出售。在20171月,Stylish的新所有者再次将它出售,并宣布“Stylish现在已经是SimilarWeb的一部分了”。SimilarWeb 在其推广材料中写道“市场解决方案,以查看竞争对手的流量”。我开始觉得,我可能已经成为商品了。

SimilarWeb隐私政策表示他们只收集非个人数据,我认为这种做法是正确的。但事实证明,当你无意中将你的个人数据委托给像SimilarWeb这样的公司时,你不仅要寄希望他们没有主动的恶意(除了在他们的定价页面上列出的那些)。你还必须希望他们拥有良好的数据访问控制,没有恶意员工,以及有足够强大的安全措施来防止所有数据(以前是你的数据)被窃取。糟糕的是,即使他们提交名义上匿名的URL列表也会产生重大的隐私和安全隐患。使用IP地址进行去匿名化并分析用户浏览历史记录通常很简单。

没有其他上下文的单个url也非常敏感,例如,某些网站使用包含特殊身份验证令牌的URL在用户单击电子邮件中的链接时自动记录其用户。当用户点击类似mysocialnetwork.com/inbox?login_token=fsdj80d这样的链接时,网站会使用URL中的login_token作为替代密码,并将用户登录到他们的帐户中。这是一种冒险但非常方便用户的做法,它的安全性依赖于登录令牌的加密特征。但是,由于login_tokenURL的一部分,Stylish会记录它们并将它们发送回SimilarWeb服务器。此时,他们的数据库中就可能包含许多的其他服务上的用户帐户的辅助登录凭据。

敏感URL也会其他地方出现,比如我的在线医疗服务提供商使用加密了的1000字符长URL(由Amazon S3生成)来向我显示我的医疗文档。虽然该URL的有效期只有一分钟左右,但要看到这些页面的内容,除了只需要知道URL之外,不需要任何登录验证。任何在URL过期之前能猜到URL中的身份验证令牌的人都可以查看和下载我的医疗文档。Stylish通过收集所有相关联的用户数据并将其记录在数据库中,这样他们也拥有我的医疗记录。我真的希望他们永远不会被黑客入侵。

最普遍的是,许多网站使用URL令牌来允许用户重置忘记的密码。当用户点击“忘记密码?”按钮时,网站会向他们发送包含特殊链接的电子邮件。此链接会指向一个类似mysocialnetwork.com/password-reset?reset_token=a3dJ3这样的长URL,当用户点击它时,网站会读取reset_token,查找相应的用户,并允许他们安全地重置密码。但是,如果攻击者能够截获这些URL并在真实用户之前完成密码重置过程,他们将获得对该帐户的完全控制权。Stylish再次使用这些密码重置URL,将用户的隐私和安全性掌握在自己手中。

 

我是如何发现Stylish间谍功能的?

尽管自SimilarWeb发布公告以来,Stylish的新窥探功能一直是公众所知,但我在上周才发现它在不同的网站上做了一些不相关的工作。

在查看Burp Suite时,我注意到了在api.userstyles.org上有大量奇怪的请求。 

它将大量经混淆的数据发送到以/stats结尾的URLHTTP请求对用户来说绝不是什么好消息。我注意到数据blob只包含字母和数字,并以%3D结尾,这是=符号的URL编码。这让我怀疑blob是由Base64编码的。我试过使用Base64来解码它。 

不过,解码后的字符串也只包含字母和数字,也以=符号结尾。我尝试了第二次Base64解码。

 

并不算成功,但当我查看经解码的有效载荷的内容时,我意识到Stylish正在浏览我的所有浏览数据。我通过谷歌搜索了“Stylish间谍软件(stylish spyware)”,发现很多商店都在销售Stylish的间谍装置。我还发现很多文章对Stylish的间谍功能进行过论证

我仔细查看了经解码的有效载荷,并注意到了其中的唯一的跟踪标识符。我记得我已经注册了一个Stylish的帐户,以便与其他人分享我的一些隐藏皮肤颜色的想法。我想知道,如果我登录到userstyles.org,我的会话cookie是否会被添加到Stylish的跟踪请求中。

事实证明,它做到了。Stylish的会话cookie的网域是* .userstyles.org,因此它也会被发送到每个userstyles.org子域。Stylish监控的cookie的时间段被设置的非常短暂,并且一旦浏览器关闭cookie就会过期。这意味着会话cookie不会被添加到每个跟踪请求中,仅在用户登录到userstyles.org之后且下次关闭浏览器之前发送跟踪请求。但是,它只需要一个包含会话cookie的跟踪请求就可以永久地将用户帐户与Stylish跟踪标识符相关联。这意味着,StylishSimilarWeb仍然拥有将现实世界身份与浏览历史相关联所需的所有数据。

 

结论

浏览器扩展可能成为安全噩梦,这并不是什么新鲜事,因为在无私的公司最终也需要赚钱。像SimpleWeb这样的组织默默地出售用户的例子并不少见,SimilarWeb声称他们需要跟踪Stylish用户访问的每一个网站,以便为当前网页推荐他们最喜欢的风格。这是一个经不起推敲的理由,如果要推荐个性化的风格,那么他们只需要纪录当前网页的域就可以了,而不是完整的URL。该公司甚至还没有解释为什么他们还需要从浏览器窗口抓取并发送你的谷歌搜索结果。

 

Stylish的控制面板中有一个复选框,声称可以禁用跟踪,SimilarWeb也是默认启用它的。它似乎确实有效,至少在下一次Stylish隐私策略被更改之前。然而,Stylish的确已经不再是一个善意的产品了,并将从你这里获取最大化利益为中心。如果你习惯并喜欢于使用Stylish,请将其卸载并切换到另一种类似的替代方案——Stylus,这是一款来自Stylish旧版本的分支,它以相同的方式工作,但不包含间谍功能。

审核人:yiwang   编辑:边边

(完)