锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务,锦州广厦维修电脑,公司IT外包服务
topFlag1 设为首页
topFlag3 收藏本站
 
maojin003 首 页 公司介绍 服务项目 服务报价 维修流程 IT外包服务 服务器维护 技术文章 常见故障
锦州市广厦电脑维修|上门维修电脑|上门做系统|0416-3905144热诚服务技术文章
浅析Web安全:另类追踪之被“策反”的安全机制

作者: 佚名  日期:2017-04-25 09:24:38   来源: 本站整理

 一、首先,介绍两个安全机制

(1)HTTP严格传输安全HSTS

HSTS(HTTP Strict Transport Security)[1],是国际互联网工程组织正在推行的Web安全协议,其作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接,用来抵御SSL剥离攻击。

\

图1 HSTS原理图

如图所示HSTS运作原理图,对其进行拆解:

1) 用户在浏览器中首次打开使用HSTS机制的网站时,如果使用HTTP协议①,则服务器会返回带有StaticTransport Security(STS)的HTTP头②,并通知浏览器将协议重定向为HTTPS,浏览器重新使用HTTPS协议与服务器进行连接③。

2) 用户浏览器客户端与服务器进行通信,服务器向浏览器发放证书④⑤。网站域名会被添加到浏览器的HSTS列表中,在之后与服务器的通信中强制使用HTTPS协议。当用户再次使用HTTP协议访问目标网站时⑥,会被HSTS机制强制转换为HTTPS协议进行连接建立和信息传输⑦。

HSTS Preload List:HSTS preload list是Chrome浏览器中的HSTS预载入列表,该列表中的域名被硬编码在了浏览器中,当访问列表中的网站时,即便是第一次访问,也会默认使用HTTPS协议,用户网站需要申请和审核才能加入列表。Firefox、Safari、Edge等浏览器均采用这个列表,下面讲述中所使用的列表中的域名当时均不在Preload List中。

(2)内容安全策略CSP

CSP(Content Security Policy)[2],是一个附加的安全层,可以通过 HTTP 头信息的Content-Security-Policy字段,或者网页的标签进行设置,用来帮助检测和缓解XSS、数据注入等攻击。

\

图2Github CSP配置信息

内容安全策略通过包含Content-Security-Policy的HTTP头来创建一个白名单制度,规定浏览器只允许加载和执行白名单域中的资源和代码。如果不在白名单域中,即便攻击者发现了漏洞,也无法实施注入攻击。图2为Github的CSP相关配置,配置相关细节见参考[3][4]。

(3)安全&危险

HTTP严格传输安全(HTST)和内容安全策略(CSP)这两个新的功能已经被内置到了Firefox和Chrome浏览器,并且之后很有可能也被其他主流浏览器支持。

一位研究学者将这两个安全机制结合进行利用,即使在用户删除浏览器历史记录的情况下,依然可以对用户浏览器访问过的域名进行获取,所获取的用户的访问历史列表可以用来追踪数百万的互联网用户。

是不是感觉本来用来保障用户安全的机制被“策反”了,成了对自己实施追踪的工具?下面我们将具体讲述,“策反”工作是如何执行的。

二、“策反”工作

Yan Zhu,一个独立的安全研究学者,在圣地亚哥的2015年Toorcon的安全会议上示范了自己开发的Sniffly追踪网站,Sniffly中内置了一个从Alexa网站上获取使用HSTS,并且不在HSTS Preload List中的域名,利用HSTS和CSP机制对用户浏览器访问过的域名进行嗅探。

如下图,访问http://zyan.scripts.mit.edu/sniffly/,页面中会显示用户已访问过和未曾访问过的域名列表。如图3为在Firefox上测试的结果,GitHub上已经有POC代码https://github.com/diracdeltas/sniffly/tree/master,目前Chrome48以上版本已经修复该漏洞。

\

图3Firefox对Sniffly测试的结果

Sniffly的工作原理(以bitcoin.org为例)

Sniffly使用形式设置CSP,而Firefox浏览器不支持这种方式,因此将对Chrome浏览器和Firefox浏览器上不同的工作原理分别进行讲述。

(一) Chrome浏览器

(1) 首次访问使用HSTS的情况

当用户第一次使用HTTP协议访问bitcoin.org时,服务器返回包含STS和CSP的HTTP头,通知浏览器使用HTTPS协议访问网站,并且只执行CSP规定域中的资源。图4展示了HTTP重定向到HTTPS的耗时情况。

\

图4HTTP连接重定向耗时

(2) 曾访问过HSTS目标网站的情况

当用户已经访问过使用HSTS的目标网站时,即bitcoin.org已经被添加到了浏览器的HSTS列表中。如图5和6显示了用户第二次访问使用HSTS的网站,以及HSTS强制浏览器内部重定向为HTTPS协议与服务器进行交互的情况。

\

图5第二次访问使用HSTS网站

\

图6浏览器强制使用HTTPS协议

(3) CSP阻断HTTPS的重定向(Chrome浏览器)

Sniffly利用CSP的白名单策略,对资源的加载进行限制。Sniffly作为第一方网站,通过对使用了HSTS的网站(这里称作“第三方网站”)构建img请求(即加载第三方的img资源),实施CSP的阻断,Sniffly在Chrome浏览器的工作原理,如下图所示。

\

图7CSP截获HTTPS重定向过程

如图7所示CSP截获HTTPS的重定向过程,对其进行拆解:

1)CSP部署:用户打开Sniffly网站,通过网页的设置CSP为“img-srchttp”jk,即限制浏览器只可以加载使用HTTP协议的img资源。针对使用了HSTS机制的域名,构建img请求lo,图中为的情景1和2标识用户是否访问过目标网站(img的src随机生成,是为了屏蔽浏览器缓存的影响),如图8所示。

\

图8 Sniffly的CSP部署和随机img src 地址

2)未访问过目标网站:若用户浏览器未访问过bitcoin.org,则首先会进行HTTPS重定向m,更换HTTPS协议再次发起请求n,HTTPS协议的img请求会被Sniffly的CSP阻断(如图9)。

3)曾访问过目标网站:若用户浏览器曾访问过bitcoin.org,由于使用了HSTS机制,HTTP请求在浏览器内被强制转换为HTTPS协议p,HTTPS协议的img请求会被Sniffly的CSP阻断,如图9所示。

\

图9 Sniffly对HTTP协议进行阻断

注:使用CSP阻断HTTPS不只为了获取重定向的时间,如果CSP未对HTTPS的重定向连接进行阻断,则成功连接后的HSTS机制会污染用户的访问历史,因此造成误判。

(二) Firefox浏览器

由于Firefox浏览器不支持通过的形式设置CSP,因此Sniffly利用了浏览器的漏洞Issue436451[8]对Firefox历史列表进行嗅探,该漏洞同样利用HSTS机制,如图10所示(图中隐去了PreloadList部分)。

\

图10 Issue436451漏洞原理示意图

利用该原理构造类似http://example.com:443/favicon.ico 的请求,浏览器对曾经访问过的目标网站使用HTTPS协议与服务器连接,而未访问过的域名,则无法正常建立连接,因此这种方式不会污染浏览器的HSTS列表,如图11所示使用fidder抓包的效果。

\

图11 Firefox中构造的img请求示意图

(三) 结果判定

由图4和图5可以得出,通过服务器301/302进行的HTTPS重定向耗时在100毫秒以上,而浏览器内部重定向(Internal Redirect)几乎不耗时。通过CSP对HTTPS进行阻断,利用JS中img的onerror事件进行监听,只获取重定向消耗的时间,通过计算时间的消耗对用户是否访问使用HSTS的网站进行判定。

不同用户的浏览记录千差万别,以浏览器历史信息作为用户的追踪依据,能够保证用户的唯一性,并且Sniffly中的列表只是使用Alexa网站中网站列表的很小一部分。

不同浏览器中的HSTS位置

Firefox的HSTS列表:打开Firefox的文件浏览,在地址栏中输入%APPDATA%\Mozilla\Firefox\Profiles\,双击其中的目录,在文件夹中找到SiteSecurityServiceState.txt,其中包含着HSTS的列表。

\

图12Firefox中的HSTS列表

Chrome的HSTS列表:在Chrome浏览器中,打开chrome://net-internals/#hsts,可以在其中查询、增加、删除本地HSTS相关的域名信息。

\

图13Chrome中的HSTS列表

(四) 第二代追踪Sniffly2

以上的技术实现均为第一代的Sniffly,Yan已经实现了第二代的Sniffly2。Sniffly2主要针对基于Chromium引擎的浏览器,使用HSTS的header和Performance Timing API嗅探浏览器的历史记录,同样是使用时间差机制对用户是否访问过目标网站进行判断。

Github代码:https://github.com/diracdeltas/sniffly

测试网站:http://diracdeltas.github.io/sniffly/

三、最后

目前这种追踪方式,仅仅能够追踪到使用HSTS保护的网络站点,并且只对域名和子域名进行了记录。如果用户的浏览器装有HTTPS Everywhere[11]插件(强制所有支持HTTPS的站点使用安全连接),这种追踪方式也是没有效果的,不过,这个缺点在之后应该通过修改代码就能够解决。



热门文章
  • 机械革命S1 PRO-02 开机不显示 黑...
  • 联想ThinkPad NM-C641上电掉电点不...
  • 三星一体激光打印机SCX-4521F维修...
  • 通过串口命令查看EMMC擦写次数和判...
  • IIS 8 开启 GZIP压缩来减少网络请求...
  • 索尼kd-49x7500e背光一半暗且闪烁 ...
  • 楼宇对讲门禁读卡异常维修,读卡芯...
  • 新款海信电视机始终停留在开机界面...
  • 常见打印机清零步骤
  • 安装驱动时提示不包含数字签名的解...
  • 共享打印机需要密码的解决方法
  • 图解Windows 7系统快速共享打印机的...
  • 锦州广厦电脑上门维修

    报修电话:13840665804  QQ:174984393 (联系人:毛先生)   
    E-Mail:174984393@qq.com
    维修中心地址:锦州广厦电脑城
    ICP备案/许可证号:辽ICP备2023002984号-1
    上门服务区域: 辽宁锦州市区
    主要业务: 修电脑,电脑修理,电脑维护,上门维修电脑,黑屏蓝屏死机故障排除,无线上网设置,IT服务外包,局域网组建,ADSL共享上网,路由器设置,数据恢复,密码破解,光盘刻录制作等服务

    技术支持:微软等