上月底,代码托管网站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如下:
<iframe scrolling=”yes” src=”http://pan.baidu.com/s/1i3[…]?t=Zmh4cXpXJApHIDFMcjZa” style=”position:absolute; left:0; top:0; height:100%; width:100%; border:0px;”></iframe>