技術(shù)篇之二·后門(mén)
360后門(mén)秘道:“上帝之手”,抑或“惡魔之手”?
“作為宣稱(chēng)‘最安全的瀏覽器’的360安全瀏覽器,被發(fā)現(xiàn)存在極大潛在安全威脅的‘后門(mén)’。毫無(wú)疑問(wèn),‘獨(dú)立調(diào)查員’是第一人。即使給他頒發(fā)一個(gè)國(guó)家級(jí)的科技發(fā)現(xiàn)獎(jiǎng)也不為過(guò)。而且,多少年后,人們一定會(huì)感謝這位幕后的英雄,為了廣大用戶(hù)的上網(wǎng)安全,做出了卓越的貢獻(xiàn)。”百度安全部門(mén)的相關(guān)負(fù)責(zé)人如此評(píng)價(jià)360安全瀏覽器“后門(mén)”發(fā)現(xiàn)者。
按照獨(dú)立調(diào)查員的理解,所謂360的后門(mén),不僅存在于360安全瀏覽器,也存在于360安全衛(wèi)士。他說(shuō),“你這樣來(lái)看,在你的小區(qū),保安說(shuō),因?yàn)榘踩男枰,你們要將房門(mén)的鑰匙放一把在我身上,我可以隨時(shí)來(lái)檢查你家庭的安全。這本身已經(jīng)非常大的不安全了,但你更不知道的是,這個(gè)保安公司,還在地下挖有一條通道,可以直接從地下通過(guò)地道悄悄進(jìn)入你的房間。而這個(gè)地道,就是后門(mén)。”
360后門(mén)秘道浮出水面/
2012年10月,當(dāng)時(shí)“方周大戰(zhàn)”正酣,獨(dú)立調(diào)查員才注意到了360安全產(chǎn)品,因?yàn)樗恢笔锹銠C(jī),從未想過(guò)要關(guān)注360。但這一關(guān)注,他敏銳地發(fā)現(xiàn),360“非常異類(lèi)”——許多行為不僅是反安全的,甚至是“反人類(lèi)的”。
獨(dú)立調(diào)查員特意在用于測(cè)試的虛擬機(jī)中安裝了全套360產(chǎn)品,并由此發(fā)現(xiàn)360產(chǎn)品的許多 “不規(guī)矩行為”,他隨手將這些發(fā)現(xiàn)發(fā)布在微博上,立即引起許多關(guān)注,但也遭到一些人的攻擊。“有些人明顯就是360的人在挑釁,這激怒了我,我這人不喜歡耍嘴皮子,我是軟件專(zhuān)業(yè)人員,我只講證據(jù)”,獨(dú)立調(diào)查員如此說(shuō)。
獨(dú)立調(diào)查員發(fā)現(xiàn),360瀏覽器網(wǎng)絡(luò)通信有非常異常的情況,“最開(kāi)始只是發(fā)現(xiàn)其時(shí)間周期性:每隔5分鐘,瀏覽器就主動(dòng)發(fā)起一次與服務(wù)器之間的通信過(guò)程,雖然不知道在干嘛,但其短周期性非?梢。”
為什么不打開(kāi)任何網(wǎng)頁(yè)、不動(dòng)鍵盤(pán)和鼠標(biāo),360瀏覽器依然忙個(gè)不停呢?“國(guó)內(nèi)外所有的知名瀏覽器都不會(huì)存在這樣的行為模式。可以肯定,此中必有蹊蹺”。
于是,他繼續(xù)追查,雖然下載的文件名是文本文件(ini),但當(dāng)他把數(shù)據(jù)包拼接成文件后一看 (當(dāng)時(shí)尚不知道服務(wù)器IP地址對(duì)應(yīng)域名,受服務(wù)器限制未能通過(guò)網(wǎng)址直接下載文件,也尚未注意到文件被暫存于臨時(shí)文件夾),實(shí)際是個(gè)DLL(可動(dòng)態(tài)加載的程序模塊)。“以我的知識(shí)和經(jīng)驗(yàn),很快意識(shí)到問(wèn)題的嚴(yán)重性——以更新配置文件為耳目、周期性下載并加載執(zhí)行小程序——這是一個(gè)后門(mén)。至于360利用它做什么、曾做過(guò)什么并非重點(diǎn),重點(diǎn)是他們可以做任何事而不為人知、不留痕跡。”
于是,他于去年10月29日通過(guò)微博對(duì)外公布了360瀏覽器有后門(mén)的事實(shí),同時(shí)公開(kāi)向工信部、公安部發(fā)出了一封名為《公開(kāi)舉報(bào)奇虎360公司——致工信部、公安部公開(kāi)信》的舉報(bào)信。
《每日經(jīng)濟(jì)新聞》記者注意到,在這封舉報(bào)信中,獨(dú)立調(diào)查員直接斥責(zé)道:“奇虎360公司的 ‘360安全瀏覽器’暗藏‘后門(mén)’,是用戶(hù)系統(tǒng)安全和信息安全的嚴(yán)重潛在威脅”。
他舉證說(shuō),360安全瀏覽器實(shí)為C/S架構(gòu)木馬系統(tǒng)的客戶(hù)端,服務(wù)器群是se.#(云架構(gòu),IP地址不定)。瀏覽器每隔5分鐘即向服務(wù)器請(qǐng)求新的“指示”。新的指示偽裝成Ini(純文本文件類(lèi)型)發(fā)出,實(shí)際上是DII文件(Windows可執(zhí)行程序庫(kù)或資料庫(kù))等。
此事一石激起千層浪。不過(guò),具有挑戰(zhàn)的是,獨(dú)立調(diào)查員的分析結(jié)果僅僅是網(wǎng)絡(luò)分析,是“后門(mén)”機(jī)制的初步證據(jù)和技術(shù)推斷,而非直接的鐵證。正是因?yàn)檫@樣,360開(kāi)始在網(wǎng)絡(luò)上對(duì)其進(jìn)行質(zhì)疑、攻擊,甚至嘲諷。
“他們以為我只會(huì)網(wǎng)絡(luò)抓包呢!”獨(dú)立調(diào)查員表示。于是,為了做實(shí)360的后門(mén)機(jī)制,他決定反向分析瀏覽器本身的程序庫(kù),并詳細(xì)分析出“后門(mén)”機(jī)制的內(nèi)部執(zhí)行流程。
然而,這并非一件容易的事情。“因?yàn)闆](méi)有軟件源程序、更沒(méi)有設(shè)計(jì)文檔,所以分析難度相當(dāng)大。給你個(gè)軟件,只能進(jìn)行其公開(kāi)可見(jiàn)的操作,而內(nèi)部運(yùn)作卻完全是個(gè)黑洞。”獨(dú)立調(diào)查員表示。
源程序(源代碼)自然沒(méi)有。而要通過(guò)反向工程來(lái)破解,難度相對(duì)較高,也非常浪費(fèi)時(shí)間。何況360瀏覽器軟件規(guī)模不小,而且還有很多內(nèi)置的擴(kuò)展程序。
“我首先用排除法把擴(kuò)展組件挨個(gè)干掉,我刪掉一個(gè)擴(kuò)展組件,如果后門(mén)機(jī)制還在,說(shuō)明與這個(gè)擴(kuò)展組件無(wú)關(guān)。”獨(dú)立調(diào)查員最開(kāi)始的直覺(jué)是后門(mén)應(yīng)該在擴(kuò)展程序里面,因?yàn)橹鞒绦蛞蜋z,但是當(dāng)獨(dú)立調(diào)查員把可見(jiàn)的擴(kuò)展程序全部刪掉后,后門(mén)還在,于是他開(kāi)始刪(對(duì)普通用戶(hù))不可見(jiàn)的擴(kuò)展組件。
“通過(guò)排除法,最后確認(rèn)是擴(kuò)展組件SmartWiz在搞鬼。刪掉它以后,瀏覽器就安靜了,那個(gè)5分鐘一輪的上傳下達(dá)活動(dòng)消失了。”
不過(guò),還沒(méi)有結(jié)束。為了進(jìn)一步查明360后門(mén)真相,獨(dú)立調(diào)查員還需要反向編譯出匯編代碼并跟蹤測(cè)試。
通過(guò)一系列技術(shù)過(guò)程,獨(dú)立調(diào)查員掌握了360瀏覽器在SmartWiz整個(gè)組件里與360服務(wù)器間建立通信、下載、臨時(shí)存儲(chǔ)、加載執(zhí)行、刪除(銷(xiāo)毀證據(jù))的流程,同時(shí)也知道了其時(shí)鐘控制調(diào)度機(jī)制(5分鐘間隔定時(shí)器)。