如何“黑”掉美国国家安全局(NSA)的网站——毒鱿鱼(Squoison)攻击

  如何“黑”掉美国国家安全局(NSA)的网站——毒鱿鱼(Squoison 1)攻击

作者:陈建军  段海新(清华大学网络研究院)
我们最近发现了著名开源软件Squid存在高危漏洞(CVE-2016-4553),可以导致攻击者远程污染任意HTTP网站的缓存。Squid是经典的Web代理或缓存软件,许多商业的Web缓存、代理或安全产品也是基于Squid开发的,这些设备被广泛部署于网络运营商(ISP)、宽带小区、公司或校园网,用于节省网络带宽、改善网络性能、提升用户体验。攻击者可以通过污染这种公共的基础设施向该网络所有用户(受害者)的Web访问返回任意指定内容,从而导致页面替换、盗号、挂马等严重后果。此外,由于这种攻击发生在中间网络,因而客户端浏览器和服务端网站都很难察觉,因此攻击隐蔽性非常高。

这一漏洞是由于Squid对于HTTP请求中Host头处理不当,导致是用Squid缓存服务器不同网站缓存之间的隔离被打破,攻击者只需发送一个恶意请求就可以完成缓存污染攻击。该漏洞被Squid团队评为危险级别最高(Blocker)的漏洞。这个漏洞作为研究成果的一部分,将在国际安全顶级会议CCS 2016上发表[4]。
 19
图1 在某真实网络中,攻击者污染www.nsa.gov缓存后,受害者看到的被污染页面
我们发现,在部署有Squid透明缓存的网络中,攻击者只需要发送一个如下构造的HTTP请求,便可以造成任意HTTP网站的缓存被污染:
  GET http://victim.com/ HTTP/1.1
  Host: attack.com
该攻击具体工作原理和流程如下图2所示。攻击者向自己的服务器(attack.com)建立TCP连接,然后通过这个连接发送如图所示的恶意请求。Squid的验证模块利用”attack.com”来检查Host头与IP地址是否匹配,但是当攻击服务器返回内容时,Squid的缓存模块却利用”victim.com”来缓存内容,因此Squid将攻击服务器的恶意内容缓存为victim.com。最后当受害者访问victim.com时,得到的是攻击者指定的内容。
 20
  图2 漏洞攻击流程示意图
需要指出的是,攻击者可以通过投放Flash广告的方式大规模远程地发起这种攻击。由于Squid软件被大量ISP用来部署透明缓存,因此这个漏洞对互联网安全有很大影响。
下面是整个攻击过程的视频演示,
这个漏洞是我们此项研究成果的一小部分,还有更多的一系列攻击(Host of Troubles),例如污染Apache Traffic Server缓存,污染CDN缓存,绕过Firewall,绕过WAF等。更多详细攻击请参考我们的网站(hostoftroubles.com)[2]和论文[4]。
如何防范
该漏洞同时存在于Squid 3和Squid 4中。目前Squid官方已经修复了这个漏洞[1]。
a)网络运营商应当升级Squid缓存软件到最新版,来完全防御这种攻击。
b)网站管理员可以通过部署HTTPS,并启用preloaded HSTS来减轻这种攻击的影响。
c)浏览器用户可以使用作者提供的在线检测工具[3],检测自己的网络是否可以被攻击。
注释:
1 、Squison是Squid (鱿鱼)和 Poison(中毒、下毒)两个词的合成。
参考链接:
[1] Squid对该漏洞的安全公告:http://www.squid-cache.org/Advisories/SQUID-2016_7.txt
[2] Host of Troubles网站:https://hostoftroubles.com
Bookmark the permalink.

Comments are closed.