毒鱿鱼如何“黑”掉美国NSA的网站
著名开源软件Squid存在高危漏洞,该漏洞被Squid团队评为危险级别最高(Blocker)的漏洞。
我们最近发现了著名开源软件Squid存在高危漏洞(CVE-2016-4553),可以导致攻击者远程污染任意HTTP网站的缓存。Squid是经典的Web代理或缓存软件,许多商业的Web缓存、代理或安全产品也是基于Squid开发的,这些设备被广泛部署于网络运营商(ISP)、宽带小区、公司或校园网,用于节省网络带宽、改善网络性能、提升用户体验。攻击者可以通过污染这种公共的基础设施向该网络所有用户(受害者)的Web访问返回任意指定内容,从而导致页面替换、盗号、挂马等严重后果。此外,由于这种攻击发生在中间网络,因而客户端浏览器和服务端网站都很难察觉,因此攻击隐蔽性非常高。
这一漏洞是由于Squid对于HTTP请求中Host头处理不当,导致使用Squid缓存服务器不同网站缓存之间的隔离被打破,攻击者只需发送一个恶意请求就可以完成缓存污染攻击。该漏洞被Squid团队评为危险级别最高(Blocker)的漏洞。这个漏洞作为研究成果的一部分,将在国际安全顶级会议CCS2016上发表[4]。图1是在某真实网络中,攻击者污染www.nsa.gov缓存后,受害者看到的被污染页面。
图 1
我们发现,在部署有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时,得到的是攻击者指定的内容。
需要指出的是,攻击者可以通过投放Flash广告的方式大规模远程地发起这种攻击。由于Squid软件被大量ISP用来部署透明缓存,因此这个漏洞对互联网安全有很大影响。
下面链接是整个攻击过程的视频演示:
https://drive.google.com/file/d/0ByM36MBckzBaQUFES0VYRlZydUE/view
这个漏洞是我们此项研究成果的一小部分,还有更多的一系列攻击(Host of Troubles),例如污染Apache Traffic Server缓存,污染CDN缓存,绕过Firewall,绕过WAF等。有关于更多详细攻击请参考我们的网站(hostoftroubles.com)[2]和论文[4]。
该漏洞同时存在于Squid 3和Squid 4中。需要提醒注意的是:目前Squid官方已经修复了这个漏洞[1]。
1.网络运营商应当升级Squid缓存软件到最新版,来完全防御这种攻击。
2.网站管理员可以通过部署HTTPS,并启用preloadedHSTS来减轻这种攻击的影响。
3.浏览器用户可以使用作者提供的在线检测工具[3],检测自己的网络是否可以被攻击。
(文:陈建军 段海新 作者单位为清华大学网络科学与网络空间安全研究院)
参考链接:
[1]Squid对该漏洞的安全公告:http://www.squid-cache.org/Advisories/SQUID-2016_7.txt
[2]HostofTroubles网站:https://hostoftroubles.com
[3]漏洞在线检测工具:ttps://hostoftroubles.com/online-checker.html
[4]CCS2016论文链接:http://netsec.ccert.edu.cn/duanhx/files/2010/12/host_of_troubles.pdf
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。