上月底,代碼托管網站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>