Github-Hack-DDoS1.jpg" src="/Upload/Images/2015042716/20E8DC3B65D9F34F.jpg" alt="" data-original="http://image.3001.net/images/20150427/14301151094282.jpg!small" />
英文原文:A Javascript-based DDoS Attack as seen by Safe Browsing
上月底,代码托管网站 GitHub 遭遇大流量 DDoS 攻击。攻击者劫持百度广告联盟的 JS 脚本并将其替换成恶意代码,最后利用访问中国网站的海外用户对 GitHub 发动大规模分布式拒绝服务攻击。谷歌近日发表了针对此次攻击的分析报告,还原了整个攻击的全过程。
谷歌:纵览全部攻击过程
谷歌的 Safe Browsing 每天会扫描分析数百万个网页,从中找出恶意内容。Safe Browsing 并不是从网络流量方面进行分析,而是从 HTTP 协议层面。
其实 JS 劫持攻击最早发生在三月初,而不是我们以为三月中下旬。根据谷歌 3 月 1 日到 4 月 15 日搜集到的数据,Safe Browsing 第一次发现百度域名劫持是在 3 月 3 日,而最后一次是在 4 月 7 日。从下面的图片中就可以详细的看出注入攻击时间:
多阶段的攻击行为
第一阶段
此次攻击的执行是分多个阶段进行,第一阶段是测试阶段,测试时间为 3 月 3 日到 3 月 6 日,首次测试的目标 IP 地址为 114.113.156.119:56789(北京电信通),但是第一天的请求次数被人为设了限制,之后两天请求限制就被移除了。
第二阶段
第二阶段的时间是 3 月 10 日到 3 月 13 日,目标 IP 地址为 203.90.242.126(香港)。3 月 13 日时,攻击扩展到了 d1gztyvw1gvkdq.cloudfront.net。刚开始的时候请求是通过 HTTP 发出的,后来升级到了 HTTPS。3 月 14 日开始同时通过 HTTP 和 HTTPS 攻击 d3rkfw22xppori.cloudfront.net(greatfire.org 利用亚马逊 cloudfront 搭建的一个屏蔽网站镜像),并于 3 月 17 日停止了攻击。
第三阶段
3 月 18 日,被攻击的域名范围进一步扩大,包括:
d117ucqx7my6vj.cloudfront.net、 d14qqseh1jha6e.cloudfront.net、d18yee9du95yb4.cloudfront.net、d19r410x06nzy6.cloudfront.net、d1blw6ybvy6vm2.cloudfront.net。
这也是第一次发现截断注入(truncated injections),JS 被完全切断。在这一阶段中,cloudfront 主机开始向 greatfire.org 等域名发起 302 重定向(302 redirects)。JS 内容替换在 3 月 20 日完全停止,但 HTTP 注入还在继续。JS 内容替换会破坏原内容功能,但 HTTP 注入不会。
HTML 如下:
<html> <head> <meta name="referrer" content="never"/> <title> </title> </head> <body> <iframe src="http://pan.baidu.com/s/1i3[...]?t=Zmh4cXpXJApHIDFMcjZa" style="position:absolute; left:0; top:0; height:100%; width:100%; border:0px;" scrolling="yes"></iframe> </body> <script type="text/javascript"> [... regular attack Javascript ...]
在这一技术中,web 浏览器两次获取了相同的 HTML 页面,但是由于查询参数中的“t”参数,所以第二请求中没有注入。被攻击的域名随时都在变化中,在这一阶段中就变为了 dyzem5oho3umy.cloudfront.net、d25wg9b8djob8m.cloudfront.net 和 28d0hakfq6b4n.cloudf ront.net。该阶段攻击大约开始 10 个小时之后,我们在另一域名上检测到了 302 重定向。
停止对 cloudfront 主机的攻击,转向 GitHub
对 cloudfront 主机的攻击于 3 月 25 日停止,而 Github 成为新的攻击目标。第一个新目标是 github.com/greatfire/wiki/wiki/nyt/,紧接着是 github.com/greatfire/和 github.com/greatfire/wiki/wiki/dw/。
3 月 26 日,百度的明文脚本被拦截替换了一个恶意 JS 代码,攻击 github.com/greatfire/和 github.com/cn-nytimes/,4 月 7 日攻击停止。
攻击从 3 月份开始,4 月份截止。在此期间,我们共发现了 19 种恶意 JS 代码。
谷歌称,他们共发现了 8 个百度域名被劫持,IP 地址如下:
cbjs.baidu.com (123.125.65.120)
eclick.baidu.com (123.125.115.164)
hm.baidu.com (61.135.185.140)
pos.baidu.com (115.239.210.141)
cpro.baidu.com (115.239.211.17)
bdimg.share.baidu.com (211.90.25.48)
pan.baidu.com (180.149.132.99)
wapbaike.baidu.com (123.125.114.15)
被注入的 JS 代码大小各不相同,从 995 字节到 1325 字节不等。
谷歌表示,虽然它们还不能确定攻击者究竟是谁,但对于网站来说,只需全面启用 HTTPS 加密便能防御此类攻击。