内容安全策略:对隐私扩展程序说“再见”

2019年 8月 23日 | 浏览器指纹

网站采用了特定的技术作为增强网站和网站访客安全的标准。内容安全策略(CSP,即Content security policy )是附加的安全保护层,可以帮助浏览器阻止网络攻击的发生,被浏览器和第三方网站广泛采纳为基本安全防护措施。 

而内容安全策略如此受欢迎的原因就在于它能够帮助阻挡特定类型的网络攻击,如跨站脚本攻击和数据注入威胁。 

您可能会产生疑问:什么是内容安全?为什么像内容安全策略这样的安全措施会将在线隐私暴露在危险之中呢?避免此类风险的最佳办法又是什么呢? 

在深入探讨这些问题之前,您需要知道内容策略的重要性。同样的,您还需要了解由于忽略内容安全策略的用户所涉及的威胁。除此之外,我们还将盘点保护在线身份安全的同时,阻止网络攻击的最佳方法。 

同源策略 

在我们理解内容安全策略之前,我们需要了解若干专业术语。首先,最重要的是同源策略,即SOP( Same-origin policy )。同源策略被用来阻止未经授权的第三方网站从网站上获取某些敏感信息。 

同源策略将元素分开成互相隔离的环境,这些元素包括cookies和Javascript脚本。举个例子,如果网站 www.firstsite.org 包含一个特定的HTML元素,通过这个元素可以加载下一个网页www.secondsite.org,那么第一个网站就无法获取到第二个网站的cookie,或者进行Javascript脚本注入,反过来也一样。 

即便两个网站显示同样的网址且在同一个浏览器被访问,同源策略会阻止两个网站相互获取对方的信息,或者在对方的网站源运行Javascript脚本。 

这一机制禁止了跨网站数据获取,避免了第三方网站随机读取或者修改您处于登录状态的Twitter或PayPal账号的个人数据。 

从理论上来说,同源策略是一个完美的解决方案。但是,攻击者仍然可以找到方法绕过它,给网站和访客制造大风险。 

什么是跨站脚本攻击? 

跨站脚本攻击又称作XSS( cross-site scripting ),可以绕过同源策略的防护。跨站脚本攻击是网络攻击的主要形式之一,因为攻击者可以在不被发现的前提下为目标网站注入有害脚本。用户可能在不知情的情况下被引诱点击有风险的链接,触发相关脚本。 

目前,有许多缺陷容易被跨站脚本通过多种形式来利用。如果网站使用了不会对用户输入内容进行清理的动态HTML元素,那么攻击者就可以植入他们的有害代码。 

有害代码通过这些渠道进行传播时,网站会将这些代码看做属于自己的代码,然后会在不进行身份验证的前提下,毫不犹豫地执行这些代码。 

跨站脚本会攻击那些粗心的网站用户,发送有害脚本执行一系列任务。用户根本没有意识到他们已经接受到了任何脚本,而浏览器则“愉快地”执行了它们,因为它们的来源看起来很可靠。 

跨站脚本会攻击可以通过注入有害脚本来获取cookie文件,从网页内获取其他网站数据和多种敏感的的信息片段。严重的脚本攻击甚至可以改写HTML网页内容,长远来看,可以导致更广泛的安全问题。在获取到这些信息之后,攻击者就能够以“用户”的身份去浏览敏感数据,发送相关请求。 
 
已经有许多值得注意的跨站脚本攻击记录,其中一些涉及情报机构、社交媒体网络,甚至主要的电子邮件平台。例如,在2000年中期,一个被称为SAMY的XSS蠕虫在启动后仅几个小时就传播到100多万Myspace用户,成为传播最快的病毒之一。 

为了提高安全防护等级,人们创建了内容安全策略,主要用来抵御跨站脚本攻击。现代浏览器的主要问题在于,它们无法区别可信任的和可疑的网站域名,以至于很容易受到跨站脚本攻击。当您通过浏览器发送请求时,浏览器理所当然地执行收到的所有脚本,因为它们无法辨别脚本的可信程度。 

内容安全策略 

我们现在已经了解了同源策略和跨站脚本攻击,让我们来开始了解内容策略。如前所述,内容安全策略是一个附加的安全防护层:内容安全策略允许网站去创建一个该网站可以相信的信息源白名单。在执行内容安全策略的时候,浏览器会忽略掉白名单之外的信息源所发送的请求。 

如果没有内容安全策略的话,浏览器将暴露在各种跨站脚本XSS攻击下,因为它们无法分辨出网站本身的脚本和由第三方所注入的脚本。 

当您访问实施了内容安全策略的网站时,网站会向您的浏览器发送被信任的信息源白名单。接着,您的浏览器会愉快地执行白名单内任何信息源所发送的请求。 

网站实施内容安全策略之后,浏览器就可以确保所执行的脚本的源代码来自于白名单内。如果脚本源被列为“不安全”,那么浏览器就会完全忽略掉此请求。这样的话,即便有害脚本被嵌入了您访问的网站,内容安全策略将帮助浏览器识别这些有害脚本,并且完全忽略掉来自于它们的请求。 

综合上述信息我们可以得知,内容安全策略实际上是一个非常有用的安全工具。但是,为什么它会对在线隐私安全产生负面影响呢? 

内容安全策略对隐私的影响 

内容安全策略能够有效地防止网络攻击,是一项重要的安全措施。然后,使用此策略也对在线隐私造成了隐患。在我们深入解读这些“隐患”之前,我们必须回顾容安全策略的基本构成要素,了解现代内容安全策略的运行模式。 

CSP(内容安全策略)1.1版本是当前是当前最广为接受的标准,它由第一代先驱版本CSP1.0演变而来。为了抵御跨站脚本攻击,CSP1.0诞生了。CSP1.0表明,网站不应对用户安装的浏览器扩展程序的运行进行任何干预。 

然而,这一模式在CSP1.1发布之后被摒弃,CSP1.1正逐渐被主流网站平台所采用。CSP1.1能够对浏览器扩展程序进行干预阻止其对网站进行脚本注入,因此有时也被称作严格CSP。这也就意味着主流的隐私扩展程序如User Agent Switcher和 Random Agent Spoofer将无法在实施了严格CSP的网站上工作。 

这对那些想要维持高的在线隐私性,逃避烦扰的网站追踪的用户造成了不小问题。因为浏览器扩展程序无法改变浏览器的状态,同时他们又依赖对网站进行Javascript注入来改变浏览器参数,从而避免指纹追踪。很聪明,不是吗? 

但是,通过CSP1.1网站可以避免浏览器扩展程序通过Javascript注入等方式重写网页内容,因为隐私扩展程序会将Javascript注入页面代码,从而导致同时停止工作。 

如果网站应用了可以被隐私扩展程序所“打败”浏览器指纹技术,那么网站大概率会使用CSP1.1,因为这样可以干扰扩展程序的工作。换言之,网站就有能力去对用户进行指纹追踪。 

值得一提的是,CSP1.1中的某些配置允许浏览器扩展程序对网站进行脚本注入来重新某些网页内容,但是这些配置并不讨网站喜欢。某些浏览器插件能够防止浏览器指纹追踪,而网站有足够的动机去应用某些CSP配置去让这样的扩展程序失效。 
 
在这一点上,Facebook、Twitter和Github等流行平台使用CSP配置,允许扩展程序向网站注入脚本。但是,CSP 1.1正在像野火一样迅速蔓延,由于网站有额外的动力来禁用扩展,大多数主要网站都开始进行转换使用。 

例如,PayPal早已应用了CSP1.1内禁止第三方脚本注入的配置。这也就意味着,任何隐私浏览器扩展程序将无法在PayPal上使用。 

如何判断网站是否应用了内容安全策略? 

如果您正疑惑,您经常访问的某一网站是否使用了CSP,那么您可以参考以下步骤进行验证。

如何检查网站是否应用了CSP:

  • 在Chromium引擎浏览器如,谷歌浏览器上打开任意网站 

  • 在网页内单机鼠标右键,然后选择“检查”选项 

  • 导航至“网络”标签 

  • 按“F5”键对页面进行刷新 

  • 页面加载的同时,所有的请求也会呈现在审查器上 

  • 点击请求列表的首行(请求列表在“Header”标签下) 

  • 如果您在“响应标头( Response Headers )”下看到了“content-security-policy”字段,那么这表明网站应用了内容安全策略。 

内容安全策略和浏览器指纹 

实施内容安全策略CSP可以帮助避免数据注入攻击,但同样的也对在线隐私和浏览器指纹造成了大麻烦。由于CSP1.1的应用,那些可以帮助用户掩盖身份来浏览网页的隐私扩展程序很容易受到影响。 

这并不意味着在线隐私的“末日”,更像是一种警告,警告扩展程序将马上成为过去。像User Agent Switcher和Random Agent Spoofer这样的隐私扩展程序依赖于向网站注入脚本来有效地掌控浏览器指纹参数。 

没有隐私扩展程序的帮助的话,您将更容易受到浏览器指纹追踪以及随之而来的负面影响。正如我们之前提到过的,这一特征正驱使网站使用更加友好的CSP1.1版本,因为此版本不再允许扩展程序肆意运行。 

避免跨站脚本攻击和浏览器指纹追踪 

内容安全策略已经成为了大部分主流网站的重要组成部分, 这项技术的本身也有很多优点。尽管给某些在线隐私带来隐患,但是这些隐患却可以通过正确的手段加以缓解。 

请记住,关闭CSP不仅会使您的设备处于网络攻击的危险之中,还会为您的设备创建一个额外的指纹。绝大多数网站积极使用了CSP,如果您将其关闭,那么您就成为了少部分在浏览器上关闭此策略的其中一个。毫无疑问,您将更容易被网站辨别。 

Multilogin为您提供了一个对抗浏览器指纹的可变替代方案。用户经常问我们Multilogin对使用了CSP1.1的网站会有什么反应,但网站的反应往往很大程度取决于使用的浏览器类型。 

如果您搭配Chromium,火狐或者其他类型的“常规”浏览器使用Multilogin软件,那么它们会默认忽略掉CSP。然后,这并不理想,因为这将浏览器置于跨站网络攻击之下。请牢记,CSP1.1能够关闭所有的隐私插件,从而暴露用户的真实浏览器指纹。如果您使用Multilogin的话,那么您默认在线隐私优先于跨站网络攻击的风险。Multilogin与常规浏览器配合使用时,CSP将被自动关闭从而保护用户的真实指纹免遭泄露。 

因此,在维持高的在线隐私,同时又避免跨站网络攻击的最佳手段是使用一个不依赖于Javascript注入的指纹管理工具。 

Stealthfox浏览器是基于Firefox火狐浏览器内核研发的,能够以高隐私性去访问应用了CSP1.1的网站。Stealthofx浏览器是与Multilogin软件绑定的,能够有效地对抗浏览器指纹追踪,在掩蔽在线身份的同时,避免跨站脚本攻击。 
 
Stealthfox不像大多数扩展那样在加载页面时用Javascript管理参数,而是在启动时自动配置浏览器的参数。这意味着你可以使用一个符合CSP标准的浏览器,在保护您免受跨站脚本攻击(XSS)的同时,隐藏您的真实信息。 

结语 

内容安全策略是防御信息注入攻击的“安全网”。也就是说,CSP1.1同时也存在漏洞:隐私浏览器器扩展程序变为摆设。 

实际上,CSP远非完美,但是不久它将成为所有大小网络平台的一个关键组成部分。并且,相当一部分主流网站正倾向于使用CSP1.1。在它的作用下,隐私扩展程序失效,便于网站进行高效的浏览器指纹追踪。隐私扩展程序或许仍可以在主流网站上使用,但是由于CSP1.1的广泛使用,它们正面临被逐渐抛弃的风险。 

在避免跨站网络攻击的同时又能够保护在线隐私的最佳办法是使用具有指纹管理功能的浏览器。 

Stealthfox配置文件会在开启时自动配置您的浏览器指纹参数。这将帮助您保持高水平的隐私,同时CSP使您免受数据注入威胁。

了解如何避免账户被封,通过Multilogin摆脱物理设备的限制,毫不费力地拓展您的业务。

预约通话