谷歌:详解GitHub遭遇大流量DDoS攻击全过程

英文原文: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 如下:

在这一技术中,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 地址如下:

被注入的 JS 代码大小各不相同,从 995 字节到 1325 字节不等。

谷歌表示,虽然它们还不能确定攻击者究竟是谁,但对于网站来说,只需全面启用 HTTPS 加密便能防御此类攻击。

转载请注明来自 FreeBuf 黑客与极客(FreeBuf.COM)

加入群【资源分享】49358526  原文链接:,转发请注明来源!
评论已关闭。