“水坑攻擊”利用JSONP劫持跟蹤維吾爾族用戶
?? ??
至少從2013年10月起,水坑攻擊便以非政府組織,維吾爾族群體以及伊斯蘭民族的網(wǎng)站為攻擊目標進行了大量的攻擊。在這篇文章中,我們將會對這一系列包括近期所檢測到的攻擊在內(nèi)的水坑攻擊進行詳細描述。在這里,我們要感謝Sumayah Alrwais,他是印第安納大學系統(tǒng)安全實驗室的一名博士研究生,正是他在RSA實驗室中發(fā)現(xiàn)了這種最新的水坑攻擊,并提醒了我們該攻擊正在影響中國的各大國際性非政府組織的網(wǎng)站。
水坑攻擊
水坑攻擊是一種黑客技術(shù),如果一個黑客想要攻擊一個特定的組織(公司,企業(yè),少數(shù)民族團體等等),便可以使用這種技術(shù)來實現(xiàn)攻擊。攻擊者首先入侵目標組織的官方網(wǎng)站,然后將惡意代碼注入至網(wǎng)站之中,當用戶訪問受感染的網(wǎng)站時,惡意代碼將會被執(zhí)行。
通常情況下,攻擊者可以通過惡意服務(wù)器,然后利用IE瀏覽器,Java插件,或者Flash播放器的漏洞來導入一個iframe或者一個JavaScript腳本文件,最終獲取目標主機系統(tǒng)的訪問權(quán)限。
我們對一些在過去所發(fā)生的攻擊事件進行了記錄和研究,下面是一些攻擊示例:
在其他情況下,我們還發(fā)現(xiàn),在有的水坑攻擊中,黑客還使用了勘查技術(shù)來提取安裝在目標主機設(shè)備中的軟件信息,甚至使用了JavaScript鍵盤記錄腳本來竊取用戶的賬戶憑證等數(shù)據(jù):
除此之外,這已經(jīng)不是我們第一次記錄到針對中國維吾爾族的網(wǎng)絡(luò)間諜行動了:
我們所描述的最新攻擊是一種新穎的技術(shù),而且我們之前從未在水坑攻擊中見過此類技術(shù)。接下來我們會詳細描述其工作原理:
◆攻擊者入侵與非政府組織,維吾爾族團體,以及伊斯蘭協(xié)會有聯(lián)系的中文網(wǎng)站。
◆在入侵成功之后,攻擊者會修改網(wǎng)站的內(nèi)容,并且通過惡意服務(wù)器來導入一個JavaScript腳本文件。
◆這個JavaScript腳本文件會利用JSONP劫持漏洞,這種漏洞存在于15個不同的大型中文網(wǎng)站之中,包括中國用戶所廣泛使用的五大門戶網(wǎng)站。(詳情請看下表)
◆如果用戶登錄了其中一個被入侵的網(wǎng)站,或使用了網(wǎng)站所提供的受感染的服務(wù),那么通過使用JSONP請求,攻擊者便能夠繞過跨域請求機制,并且能夠收集到用戶的個人隱私信息。
◆然后,JavaScript腳本代碼便會將用戶的隱私數(shù)據(jù)傳輸?shù)揭粋€由攻擊者控制的服務(wù)器中。
當我們開始寫這篇文章的時候,我們并沒準備將受影響的網(wǎng)站公布出來。然而,經(jīng)過了一系列的調(diào)查和研究之后,我們發(fā)現(xiàn)這種同樣的漏洞已經(jīng)在2013年就被公布出來了!
漏洞的詳情可以在一篇中文的安全博文和幾大中文安全論壇中找到。
為了讓大家清楚該問題的嚴重性,我們將向大家展示受影響網(wǎng)站的Alexa評級名單,攻擊者可以竊取這些網(wǎng)站中的用戶隱私數(shù)據(jù):
?? 
攻擊分析
JSONP是一種廣泛使用的技術(shù),它可以通過發(fā)起JavaScript的跨域請求來繞過同源策略。然而,繞過同源策略會導致不同源或域之間的數(shù)據(jù)泄漏。而且,尤其是當JSONP涉及到了用戶的數(shù)據(jù)信息時,這樣是極其危險的。既然JSONP請求/回應能夠繞過同源策略,那么惡意網(wǎng)站便能夠通過這種機制,讓目標主機發(fā)起跨域JSONP請求,并使用”腳本”標簽來讀取用戶的隱私數(shù)據(jù)。
下面,我們向大家介紹一個例子,這是在一個水坑攻擊中發(fā)現(xiàn)的一個惡意JavaScript腳本,我們對其還進行了分析和研究。
首先,惡意JavaScript腳本會向一個有漏洞的服務(wù)器發(fā)起一個帶有<腳本>標簽的JSONP請求。代碼如下,腳本請求了renren_all的函數(shù)調(diào)用:
?? 
含有漏洞的網(wǎng)站會以下列內(nèi)容來回應請求:
?? 
當瀏覽器收到數(shù)據(jù)之后,它會調(diào)用renren_all回調(diào)函數(shù),該功能函數(shù)會將用戶的個人數(shù)據(jù)發(fā)送至一個由攻擊者控制的服務(wù)器中,這些數(shù)據(jù)包括用戶的性別,生日,真實姓名以及ID號等等。
?? 
在發(fā)送完了所有的JSONP請求之后,惡意JavaScript腳本會將數(shù)據(jù)發(fā)送至一個由攻擊者控制的服務(wù)器中:
?? 
除此之外,我們還發(fā)現(xiàn)在其中一個惡意JavaScript腳本文件內(nèi),包含有能夠返回用戶的公共地址以及私人地址信息的代碼,這些腳本使用了帶有震網(wǎng)病毒的WebRTC技術(shù),詳情請點擊這里。
安全建議
名單中列出的受影響網(wǎng)站(百度,淘寶等網(wǎng)站)應當立即修復JSONP劫持漏洞。下面是一些修復該漏洞的方法:
-在所有的JSONP請求中引入一個隨機值(這樣同樣能夠預防CSRF攻擊)
-使用CORS來代替JSONP
-不要使用cookies來自定義JSONP響應
-在JSONP響應中不要加入用戶的個人數(shù)據(jù)















 
 
 






 
 
 
 