Xcode幽靈:速度的代價(jià)
研究發(fā)現(xiàn),迅雷下載加速機(jī)制存在嚴(yán)重設(shè)計(jì)缺陷,惡意攻擊者可輕松偽造或劫持下載鏈接以偷偷傳播惡意程序或非法內(nèi)容,且都是先天性已知缺陷,5年前迅雷已收到相關(guān)安全報(bào)告。鑒于迅雷擁有近8成下載市場(chǎng)份額,是時(shí)候公開討論這個(gè)懸而未決的問題了。
速度的代價(jià)
近日,一個(gè)被命名為XcodeGhost(Xcode幽靈)的惡意程序觸動(dòng)了所有人的神經(jīng)。Xcode,蘋果提供給應(yīng)用軟件開發(fā)者的生產(chǎn)工具,當(dāng)這個(gè)生產(chǎn)工具被XcodeGhost污染后,其生產(chǎn)的軟件產(chǎn)品即被自動(dòng)植入惡意程序,通過App Store更新通道,XcodeGhost迅速而合法地侵入數(shù)千萬臺(tái)iOS設(shè)備,竊取設(shè)備和用戶信息、伺機(jī)實(shí)施遠(yuǎn)程控制,安全威脅極大。根據(jù)最新報(bào)告,跨平臺(tái)的主流移動(dòng)游戲引擎Unity等也發(fā)現(xiàn)了被以相同手段污染的版本,這意味著iOS、Android和Windows平臺(tái)全線淪陷,開發(fā)者集體淪為不法分子大規(guī)模攻擊普通用戶的跳板。
幸運(yùn)地是,騰訊公司安全團(tuán)隊(duì)及時(shí)發(fā)現(xiàn)并通過國(guó)家互聯(lián)網(wǎng)應(yīng)急中心通報(bào)全國(guó),同時(shí)報(bào)告蘋果公司,給XcodeGhost的瘋狂蔓延勢(shì)頭踩了一腳急剎車。據(jù)報(bào)道,蘋果公司及絕大部分相關(guān)軟件廠商已經(jīng)或正在采取積極行動(dòng)掃除幽靈,以遏制這場(chǎng)重大災(zāi)難性事故。網(wǎng)警也已立案調(diào)查,并已控制犯罪團(tuán)伙主要成員之一、畢業(yè)于山東科技大學(xué)的青年科技創(chuàng)業(yè)者余某。根據(jù)其攻擊手段、反偵查手段以及高運(yùn)營(yíng)成本判斷,這是一起精心策劃和實(shí)施的惡意攻擊事件,絕非肇事者聲稱的所謂技術(shù)“實(shí)驗(yàn)”,也絕非個(gè)人行為。
然而,問題遠(yuǎn)未根本性解決。域名控制者隨時(shí)可以令其復(fù)活,同時(shí)第三人亦可能劫持域名以接管在部分區(qū)域的控制權(quán),部分受影響應(yīng)用軟件開發(fā)者或使用者至今尚未更新版本,因此安全警報(bào)沒有解除。
除積極停損外,社會(huì)各界應(yīng)立即開始總結(jié)經(jīng)驗(yàn)教訓(xùn),預(yù)防同類事件再次發(fā)生。大量開發(fā)者未從蘋果官方來源直接獲取Xcode安裝包,導(dǎo)致開發(fā)環(huán)境被污染,首要原因是中國(guó)互聯(lián)網(wǎng)國(guó)際出口速度慢如蝸牛,有時(shí)甚至不可用(“金盾工程”所致),大家習(xí)慣于從國(guó)內(nèi)下載站點(diǎn)下載,或從開放分享平臺(tái)(例如云盤)下載。對(duì)于超大文件,無論從官方網(wǎng)站還是第三方網(wǎng)站下載,往往還會(huì)使用下載加速工具,例如迅雷。
我們應(yīng)汲取速度的代價(jià),呼吁有關(guān)部門改進(jìn),而作為國(guó)內(nèi)主要下載工具提供商,迅雷公司則應(yīng)捫心自問,真如日前聲明所言未被惡意攻擊者濫用或沒有濫用空間嗎?
迅雷頑疾
以迅雷最新版7.9.40.5006為例,其下載加速設(shè)置及相關(guān)說明見下圖(黑框內(nèi))。要進(jìn)入下載加速設(shè)置,必須依次點(diǎn)擊系統(tǒng)設(shè)置、高級(jí)設(shè)置、更多設(shè)置,再拖動(dòng)鼠標(biāo)到最下方,一般用戶很難發(fā)現(xiàn),但迅雷的核心價(jià)值都在這里,很不幸地是其命門也在這里。
鏡像加速、P2P加速和智能解決死鏈等加速手段的共同基礎(chǔ)是文件一致性匹配和校驗(yàn),但迅雷只是下載工具和通道,文件都在第三方服務(wù)器(收費(fèi)的離線下載服務(wù)除外),沒有權(quán)威依據(jù)以校驗(yàn)全文一致性。技術(shù)分析和驗(yàn)證表明,迅雷的解決方案是僅校驗(yàn)文件頭20KB、文件尾20KB和文件開始1/3處20KB等共計(jì)60KB內(nèi)容,以及文件大小,其它內(nèi)容概不校驗(yàn),允許惡意攻擊者隨意篡改。
那么問題來了。惡意攻擊者可能首先以合法文件提供下載,以便被迅雷服務(wù)器自動(dòng)匹配為某文件的下載鏡像,在取得鏡像資格后,精心篡改文件(規(guī)避上述60KB區(qū)即可)以植入惡意程序,即使用戶以其官方鏈接下載,也可能獲得已被植入惡意程序的非官方版本,攻擊者無需投入推廣成本。
智能解決死鏈問題更加嚴(yán)重。惡意攻擊者可能通過本地DNS劫持手段偽造具有高可信度的官方鏈接到本地計(jì)算機(jī)(該鏈接實(shí)際并不存在,在公網(wǎng)無法訪問,是一個(gè)死鏈),并在本地計(jì)算機(jī)使用迅雷下載該鏈接,以告知迅雷服務(wù)器:相關(guān)機(jī)構(gòu)官方網(wǎng)站存在這個(gè)文件。同時(shí),惡意攻擊者在若干公網(wǎng)服務(wù)器(例如網(wǎng)盤)上傳相同文件,并挨個(gè)下載。待完全下載一輪后,迅雷服務(wù)器將自動(dòng)把仿冒鏈接和若干公網(wǎng)鏈接視為一組鏡像。至此,一個(gè)仿冒官方鏈接準(zhǔn)備好了,任何人使用該鏈接均可下載到惡意攻擊者提供的惡意程序或發(fā)布虛假信息。例如偽造一個(gè)不存在的微軟Office安裝包下載鏈接(?.microsoft.com)傳播惡意程序,或偽造一個(gè)政府政令文檔下載鏈接(?.gov.cn)造謠滋事。最后,惡意攻擊者花點(diǎn)時(shí)間,在各社區(qū)網(wǎng)站張貼該仿冒鏈接,并誘導(dǎo)使用迅雷下載,即可守株待兔——無人懷疑該鏈接是相關(guān)機(jī)構(gòu)官方鏈接,無人知道它是惡意攻擊者濫用迅雷智能解決死鏈機(jī)制和鏡像加速機(jī)制偽造的。
給個(gè)例子:http://dl.microsoft.com/office/office2016setup.exe,該鏈接系本人偽造死鏈(微軟服務(wù)器不存在該鏈接,使用瀏覽器無法下載),僅適用于迅雷下載測(cè)試,非惡意程序,請(qǐng)勿效仿。通過上述方法,建立該微軟官方鏈接與第三方網(wǎng)站(sockets.news和百度云盤)的等價(jià)關(guān)系,成功欺騙了迅雷服務(wù)器,其他用戶使用迅雷下載該微軟官方鏈接,就可以獲取到本人希望迅雷推送的文件。如下圖所示,所下載數(shù)據(jù)均來自“鏡像加速”(如果有他人也已下載該文件并保持開啟迅雷,P2P加速可能就是部分?jǐn)?shù)據(jù)來源)。
測(cè)試表明,Xcode兩個(gè)最新版本(7.0正式版http://adcdownload.apple.com/Developer_Tools/Xcode_7/Xcode_7.dmg和7.1beta測(cè)試版http://adcdownload.apple.com/Developer_Tools/Xcode_7.1_beta/Xcode_7.1_beta.dmg)也無法使用瀏覽器直接下載,需要驗(yàn)證Apple ID,否則將自動(dòng)重定向到無權(quán)訪問警告頁(yè)http://developer.apple.com/unauthorized/。按理說使用迅雷應(yīng)僅能下載到這個(gè)警告頁(yè)面文件,僅2KB,但使用迅雷竟然可以直接下載到安裝包,分別是3.58GB、4.25GB,檢查下載日志可發(fā)現(xiàn)“原始資源得到的文件長(zhǎng)度太小,拋棄”字樣。這兩個(gè)鏈接已被強(qiáng)制鏡像,并因原始資源文件長(zhǎng)度太?。▽?shí)為無法獲取)而放棄一致性校驗(yàn),換句話說,真正的蘋果官方下載源已被架空,那么誰來保證用戶獲得的文件與官方原始版本一致性?
眾所周知,迅雷提供智能解決死鏈機(jī)制和鏡像加速機(jī)制的商業(yè)邏輯是協(xié)助用戶下載非合法授權(quán)的軟件或視聽產(chǎn)品,即協(xié)助盜版。它嚴(yán)重抵消了相關(guān)廠商反盜版行動(dòng)的成效(刪了A,還有B、C、D……無窮盡也),更嚴(yán)重地是嫁接權(quán)威信任傳遞鏈:用戶輸入權(quán)威機(jī)構(gòu)官方網(wǎng)站的可信鏈接,輸出可能是惡意程序或非法內(nèi)容,而用戶渾然不覺。以為是迅雷在提供下載加速服務(wù),實(shí)際上迅雷通過技術(shù)手段把服務(wù)“眾包”出去了,無條件授信給所有不確定身份和動(dòng)機(jī)的“分包者”,并把這種極度脆弱的信任傳遞給所有用戶。
在XcodeGhost事件爆發(fā)后很多人反映其明明使用蘋果官網(wǎng)鏈接,卻下載到感染了XcodeGhost的版本,表示無法理解。其實(shí),以上就是答案。
安全第一
請(qǐng)求迅雷同仁,基于重大社會(huì)責(zé)任,檢討上述以安全性為代價(jià)的加速手段,該關(guān)停的關(guān)停,該取消默認(rèn)啟用的取消,并向用戶發(fā)出必要安全警示。信任已然顛覆,請(qǐng)積極參與災(zāi)后重建,切勿推卸應(yīng)有責(zé)任。
建議廣大用戶暫停使用迅雷,或禁用其智能解決死鏈、鏡像服務(wù)器加速、P2P加速等三項(xiàng)加速能力,或強(qiáng)制從原始地址下載重要文件,并在下載后校驗(yàn)文件與源文件一致性。相應(yīng)地,建議廣大軟件提供者在下載頁(yè)面提供安裝包指紋(MD5或SHA1校驗(yàn)碼)。
互聯(lián)網(wǎng)的基石是安全,安全的關(guān)鍵在入口。革命尚未成功,同志仍需努力。期待各界同仁在不斷追求創(chuàng)新和卓越的道路上,繃緊安全這根弦,當(dāng)好用戶看門狗。
信息首發(fā):Xcode幽靈:速度的代價(jià)