作者:Alexander Gostev, Kaspersky Lab
原文:Mobile Malware Evolution: An Overview, Part 1
發表於:2006年9月29日
2006年6月是具有歷史意義的一個月——卡巴斯基實驗室獲得第一個手機病毒樣本已經整整兩年了。最初我們還不知道那個病毒是由病毒編寫組織29A的成員「Vallez」所寫,但現在已經知道了。
第一個樣本打開了潘多拉的魔盒。現在,反病毒廠商已經蒐集到數百個手機上的木馬和蠕蟲。Symbian系統的惡意程序最早出現在2004年。這一涓涓細流已經彙集成河,並將成為波濤洶湧的洪流。在今天,我們的反病毒數據庫每週都會新增十多個前綴是「SymbOS」的木馬。
看起來並沒有哪一個手機蠕蟲是主流的。最糟糕的是,這些蠕蟲正在造成越來越多的危害,而其規模尚無法估計。一年前,我們捕獲Cabir(卡波爾) 時,唯一知道的是它在另一個國家或城市被檢測到。被感染手機的主人隨後聯繫了卡巴斯基實驗室,我們與位於莫斯科的卡巴斯基總部的一些員工開始一同分析這些 真實的攻擊。
與普通網民相比,手機用戶的安全意識更低,這應該是蠕蟲能夠迅速傳播的原因。事實上,在相當長一段時間裡,用戶認為不存在手機病毒,或者認為這個事不需要關心。
然而手機病毒並非存在於其他平行宇宙。它們就在這裡、就是現在,在要坐的公交車上,在要去電影院或機場中,你的手機隨時都可能遭到攻擊。
要使用戶像瞭解計算機病毒那樣的瞭解手機病毒,要走的路還很長……
該蠕蟲的作者是Vallez。據我們瞭解,他居住在法國,當時是病毒編寫組織29A的成員。這個組織致力於為非常規操作系統和應用程序創造概念驗證 型(PoC,Proof-of-Concept)病毒,以此向反病毒廠商和其他病毒作者證明世界上存在全新的、前所未見的攻擊方式。在2004年6月,他 們希望創建一個智能手機上的惡意程序。作者特意選擇了一種非常規的傳播方法——很多蠕蟲通過電子郵件傳播,Internet連接和電子郵件又是智能手機的 主要特性,看起來Cabir應該選擇相同的傳播方式。但是作者選擇了藍牙,這是很關鍵的一點。
Cabir運行於Symbian之上,後者從當時直到現在都是最主流的手機系統。諾基亞的智能手機都使用Symbian,這奠定了它絕對的領先優 勢。事實上,Symbian+Nokia可謂是目前標準的智能手機組合。Windows Mobile想從Symbian受眾強盜一定的市場份額,還需要相當長一段時間。
Cabie的出現符合計算機病毒發展的規律。一個特定的操作系統或平台被惡意程序選為攻擊對象,通常要要滿足三個條件:
Skuller.a木馬出現於2004年11月,其家族是目前手機木馬中規模最大的。它第一次利用了Symbian的設計缺陷,通過這些缺陷,任何 程序都可以用自己的文件覆蓋系統文件,而不會向用戶發出提示。Skuller將應用軟件的圖標替換為骷髏頭和腿骨,並刪除它們的文件。這樣,只要手機重 啟,就會停止工作。病毒作者們很喜歡這種野蠻的破壞性木馬(vandal Trojan)。
Skuller.a
Cabir的三種新變種與Skuller.a同時出現。這些新變種並沒有基於最初版本的源碼。此時,病毒作者們已經獲取到Cabir,其中一些人做 了腳本小子的勾當:他們將文件重命名,並將其中的文本替換為自己的。有一個變種在原始安裝文件中加入了Skuller,這種雜交產物並沒有真正發揮作用: 木馬已經損毀了手機,蠕蟲就沒法再傳播了。無論如何,這是Cabir第一次被用來攜帶其他的惡意程序。
2005年開始,手機病毒的種類進一步發展,並在接下來十八個月被病毒作者們採用:
根據卡巴斯基分類法的手機病毒完整列表(截至2006年8月30日)
幸運的是,雖然Velasco將他的代碼發佈在了個人主頁上,感染文件這個點子並沒有被其他病毒作者進一步發展。目前還不清楚Cabir是否確實是 Lasco的源頭。儘管Marcos Velasco宣稱他完全獨立地編寫了所有的代碼,但無論是文件的數量,還是這些文件的名字,以及操作原則,Lasco都與Cabir非常相似。可以比較 一下這兩個蠕蟲的主要函數,然後我們就會有自己的結論。
Cabir通過藍牙傳播的函數:
該木馬通過藍牙發送文件的功能來自於Cabir。然而,作者對原始代碼作了一個重要的修改。它搜尋手機的地址簿,並將其中的數據通過藍牙發送給第一 個發現的終端設備。其名字Pbstealer就來自於「Phonebook Stealer(地址簿竊賊)」。 當時,一些網絡罪犯利用藍牙協議中的多個漏洞竊取這類信息,例如BlueSnarf。而這個木馬極大地增加了其成功的可能性。
除此以外,Cabir還順其自然地成為其他多種木馬的載體,在Skuller、Appdisabler、Locknut、Cardtrap以及其他 破壞性木馬中,有超過一半的變種包含了Cabir。它被修改為傳播整個木馬包裹,而不僅僅是傳播自身。這種雜交方式導致這些惡意程序的分類變得極其困難。 我們會在後面進一步討論這個問題。
最初,Cabir的作者考慮過這個想法,但(從29A的理想主義視角來看)選擇藍牙的原因是很顯然的:
這種通過彩信發送惡意代碼的技術,是它對其他病毒作者最有吸引力的地方,然而,到目前為止,我們也只看到了對原始蠕蟲的常規變化,即由一些初級黑客 改變文件名以及原始文件中的文本,而沒有對Comwar的功能作出任何改變。這是因為Comwar的源代碼並沒有被公開,以及腳本小子不清楚發送感染彩信 的流程。
目前,我們捕獲了這個蠕蟲的7個修改版本。其中四個包含了「作者簽名」:
CommWarrior v1.0b (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
Comwar.b:
CommWarrior v1.0 (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
Comwar.c:
CommWarrior Outcast: The dark side of Symbian Force.
CommWarrior v2.0-PRO. Copyright (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it
in it's original unmodified form.
With best regards from Russia.
Comwar.d:
沒有包含任何區分性的文本。彩信內容被替換為了西班牙語。
Comwar.e:
WarriorLand v1.0A (c) 2006 by Leslie
此外,文本中包含了西班牙語。
Comwar.f:
沒有包含任何區分性的文本。彩信內容被替換為了西班牙語。
Comwar.g:
CommWarrior Outcast: The Dark Masters of Symbian.
The Dark Side has more power!
CommWarrior v3.0 Copyright (c) 2005-2006 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
除此以外,.g變種是第一個具有文件感染能力的變種。它在手機內存中搜索其他sis文件,並將自身代碼添加過去。因此,在傳統的藍牙和彩信之外,又多了一種傳播方法。
應當指出,到目前為止,Comwar還沒有產生其他家族那麼多數量的變種。前面提到過,這是因為其源代碼還沒有被公開。和Cabir一樣,它被用於 承載其他木馬程序。完全基於Comwar的新家族只有StealWar這一個。後者是一個組合了Cabir、Comwar和Pbstealer木馬的蠕 蟲。這種組合形式具有高度危險性和廣泛傳播的能力。
最終,不可避免地,通過彩信傳播成為了當前手機病毒最常用的傳播手段。將來可能會更加流行,因為Windows Mobile 2003上已經發現了一個嚴重的彩信處理漏洞,它可以導致一個緩衝區溢出和任意代碼執行。Collin Mulliner在2006年8月的DefCon大會上報告了這一漏洞。
在微軟發佈相關補丁之前,這個漏洞的詳細信息不會被披露給公眾。但是,缺少信息並不等於說漏洞的危險性就降低了。如果有人寫了一個不需要用戶交互就自動啟動的蠕蟲,並將其放到手機內存中,就有可能引發全球性的災難。
Comwar的.c變種實現了一種可以認為是rootkit的技術,為手機病毒技術的發展又做出了貢獻。該蠕蟲在進程列表中隱藏自身,在標準的正在 運行程序列表裡也看不到。Comwar將其進程指定為」system」的來實現這一點。雖然使用其他查看正在運行進程的軟件就可以看到它的進程,但這種隱 藏方法此前還沒有在Symbian的其他病毒中出現過。
彩信漏洞示例(Collin Mulliner, Advanced Attacks Against PocketPC Phones)
所有的Skuller變種都基於兩類文件,一類我們稱為Skuller.gen,另一類是Skuller與其他類似功能家族(例如Doombot或Skudoo)相比具有區分性的文件:
卡巴斯基實驗室的分類方法具有清晰的結構:
有時候識別環境是很困難的。現在大部分手機病毒是Symbian系統的,我們記為SymbOS。但是,用戶越來越想知道某個病毒到底在哪個 Symbian系列上運行:「某個木馬只在Symbian Series 60 SE上運行嗎?還是也能攻擊Series 80設備?」等等。在我們的計算機病毒分類方法中,使用Win16、Win9x、Win32來區分不同版本的Windows。因此,將來也許會要為 Symbian的類別增加一個數字。
判斷Symbian的系列還只是最簡單的問題。當系統是Windows Mobile時,情況就複雜了。
比如說,有的病毒是針對Windows CE 2003編寫的,我們將這種環境命名為WinCE。然而,為Windows Mobile 5.0編寫的病毒在Windows CE下是無法工作的。此外,並不是只有Windows CE和Windows Mobile,還有Windows Pocket PC。Mobile和Pocket PC都使用了Windows CE的一些功能,但它們又都有各自的程序和特色。
因此,在現有的分類方法下,很難為惡意代碼命一個準確的名字以反映其行為。
此外,很多病毒的功能需要WinCE/Windows Mobile下安裝了.NET環境。在這些情況下,我們使用MSIL作為其環境名,這種環境名無法體現出該惡意代碼是為移動設備所寫的。
迷糊了吧?這還只是冰山的一角。手機病毒最複雜的部分還在於選擇其行為。雜交型病毒、跨平台病毒,以及不同反病毒廠商的命名機制,使得這一部分異常地複雜。
看幾個例子,就能體會到了。
假設有一個sis文件(本質上是一個打包的安裝文件),它包含來自Cabir、Comwar、Pbstealer木馬的文件,一些 Skuller.gen的文件,以及一些0字節的空文件(Locknut的標誌)。如果這還不夠,該文件還向手機的存儲卡中安裝一個Win32病毒(就像 Cardtrap木馬那樣)。
基於現有的分類方法,應該稱其為一個Trojan-Dropper。但是,因為安裝了Cabir,它會通過藍牙發送sis文件。這是否意味著它也是 一個蠕蟲呢?如果是,該怎麼稱呼它?Cabir?這肯定不行,我們不應該命名為Cabir並給它一個新的變種號,因為這個sis文件中90%的內容並不屬 於Cabir,將其命名為Cabir只會把用戶搞糊塗。
那命名為Skuller、Locknut或者Cardtrap呢?也沒有哪個單獨的名字是合適的,因為這個新樣本是一個混合體。最終,這個sis文 件很有可能定性為一個Trojan,並使用我們捕獲到的家族中一個已有的名字。這個名字將基於輔助特徵來確定,例如是否由相同的作者編寫等。
如此複雜的情況在計算機病毒中很少出現,但在手機病毒中是常態。有可能隨著破壞性木馬逐漸減少,手機病毒的世界會變得更具有結構性。
我們來看另一個例子。假設有一個蠕蟲運行於Win32環境。當它在PC上啟動後,除了其他行為以外,還在E:\drive下創建一個sis文件。根 據約定,Symbian手機通過這個drive來連接PC。該sis文件包含了一些空文件,用於覆蓋手機的大量系統程序。該sis文件還包含了這個 Win32蠕蟲本身,它會拷貝自身到手機存儲卡之中,並釋放一個autorun.inf文件。一旦被感染手機連接到一台幹淨的計算機,並從PC上訪問其存 儲卡,蠕蟲就可能啟動並感染乾淨的計算機。
這個跨平台病毒的例子可以在兩個操作系統下運行:Symbian和Windows。這樣的蠕蟲是存在的——Mobler。它應該怎麼分類呢?
對跨平台病毒,我們使用多重標識。比如Worm.Multi.Mobler?可惜的是,用戶無法從中看出它會對Symbian手機產生威脅。我們認 為最好的分類方法是將其分為兩個組件:win32文件命名為Worm.Win32.Mobler,而sis文件命名為 Worm.SymbOS.Mobler。
然而,其他反病毒廠商並沒有將sis文件歸為Mobler或者一個蠕蟲。他們將其稱之為Trojan.SymbOS.Cardtrap,因為根據他 們的分類方法,任何向存儲卡安裝Win32惡意程序的病毒都是Cardtrap。但這個病毒並不是安裝一個木馬,它安裝了自身的主要組件,將自身傳播到其 他操作系統中。因此,反病毒廠商嚴格的分類準則就像把方形的桌子腳強行塞到圓洞裡去一樣。最終所有的人都沒有得到好處——無論是用戶還是反病毒廠商自己。
如果我們一開始就假設大量手機病毒的傳播方法和行為會和以前接觸到的有本質上的差異,這就意味著需要建立全新的分類來體現這種特點。比如 說,Cabir(或者其他通過藍牙傳播的蠕蟲)可以被歸為Bluetooth-Worm(Mac OS系統的Inqtana蠕蟲也可以歸入這類)。一個通過彩信傳播的蠕蟲可以歸為MMS-Worm。但如果一個蠕蟲既利用藍牙又利用彩信發送自身呢?這兩 種傳播方法哪種是最重要的?卡巴斯基實驗室認為彩信是更主要的傳播方法,但是其他反病毒廠商可能不這麼認為,他們可能給藍牙更高的優先級。
反病毒產業在不久的將來就會面臨這樣的問題,它必須為手機病毒建立一套統一的分類方法。在形勢更加嚴峻之前,在避免PC病毒分類(以及不同廠商完全 不同的命名)造成的混亂波及到手機病毒的世界之前,這件事應該盡快完成。可惜的是,在創建PC病毒的統一分類方法上的失敗,給未來手機病毒的分類帶來了諸 多陰霾。
(Claud Xiao翻譯。本文的翻譯和發表沒有得到原文版權所有者的許可,請謹慎轉載和使用。)
轉自 http://blog.claudxiao.net/2011/07/mobile_malware_evolution_an_overview_part_1/#more-259
原文:Mobile Malware Evolution: An Overview, Part 1
發表於:2006年9月29日
2006年6月是具有歷史意義的一個月——卡巴斯基實驗室獲得第一個手機病毒樣本已經整整兩年了。最初我們還不知道那個病毒是由病毒編寫組織29A的成員「Vallez」所寫,但現在已經知道了。
第一個樣本打開了潘多拉的魔盒。現在,反病毒廠商已經蒐集到數百個手機上的木馬和蠕蟲。Symbian系統的惡意程序最早出現在2004年。這一涓涓細流已經彙集成河,並將成為波濤洶湧的洪流。在今天,我們的反病毒數據庫每週都會新增十多個前綴是「SymbOS」的木馬。
看起來並沒有哪一個手機蠕蟲是主流的。最糟糕的是,這些蠕蟲正在造成越來越多的危害,而其規模尚無法估計。一年前,我們捕獲Cabir(卡波爾) 時,唯一知道的是它在另一個國家或城市被檢測到。被感染手機的主人隨後聯繫了卡巴斯基實驗室,我們與位於莫斯科的卡巴斯基總部的一些員工開始一同分析這些 真實的攻擊。
與普通網民相比,手機用戶的安全意識更低,這應該是蠕蟲能夠迅速傳播的原因。事實上,在相當長一段時間裡,用戶認為不存在手機病毒,或者認為這個事不需要關心。
然而手機病毒並非存在於其他平行宇宙。它們就在這裡、就是現在,在要坐的公交車上,在要去電影院或機場中,你的手機隨時都可能遭到攻擊。
要使用戶像瞭解計算機病毒那樣的瞭解手機病毒,要走的路還很長……
從Cabir開始……
2004年6月14日,西班牙的著名反病毒廠商VirusBuster(他們與一些病毒作者有密切聯繫)向 newvirus@kaspersky.com發了一封郵件,附件是名為caribe.sis的文件。當時我們還不確定到底要做什麼——我們從沒見過這種 東西。快速分析後,瞭解到這是Symbian操作系統的應用程序,也是一個包含了其他文件的安裝包。通常,病毒分析師分析運行在x86處理器下的可執行文 件,而caribe.sis中的文件是ARM程序。ARM是一種廣泛用於手機等設備的處理器。起初我們對其機器語言所知甚少,幾個鐘頭後,我們的分析師對 其有了一定的瞭解,這些文件的意圖也就清晰了:這是一種通過藍牙(Bluetooth)在手機上傳播的蠕蟲。第二天,我們在運行Symbian胸的諾基亞 N-Gage手機上進行測試,證實了這個結論。該蠕蟲的作者是Vallez。據我們瞭解,他居住在法國,當時是病毒編寫組織29A的成員。這個組織致力於為非常規操作系統和應用程序創造概念驗證 型(PoC,Proof-of-Concept)病毒,以此向反病毒廠商和其他病毒作者證明世界上存在全新的、前所未見的攻擊方式。在2004年6月,他 們希望創建一個智能手機上的惡意程序。作者特意選擇了一種非常規的傳播方法——很多蠕蟲通過電子郵件傳播,Internet連接和電子郵件又是智能手機的 主要特性,看起來Cabir應該選擇相同的傳播方式。但是作者選擇了藍牙,這是很關鍵的一點。
Cabir運行於Symbian之上,後者從當時直到現在都是最主流的手機系統。諾基亞的智能手機都使用Symbian,這奠定了它絕對的領先優 勢。事實上,Symbian+Nokia可謂是目前標準的智能手機組合。Windows Mobile想從Symbian受眾強盜一定的市場份額,還需要相當長一段時間。
Cabie的出現符合計算機病毒發展的規律。一個特定的操作系統或平台被惡意程序選為攻擊對象,通常要要滿足三個條件:
- 該平台必須流行。Symbian一直是最流行的智能手機平台,全世界有數千萬的用戶。Cabir的作者稱:「Symbian將會成為非常普遍的手機操作系統。今天已經很普遍了,但我認為將來還會更普遍(當然微軟也在為進入這一市場而努力)。」
- 必須有文檔完善的應用程序開發工具。Cabir的作者稱:「Caribe用C++編寫,諾基亞提供了開發Symbian操作系統應用程序的完整SDK。」
- 存在漏洞或編碼錯誤。Symbian系統在處理文件和服務的設計上存在一些缺陷。Cabir沒有利用這些缺陷,但目前大部分木馬都利用了。
現有手機病毒的種類和家族
2004年秋天,手機病毒開始向三個方向發展。其一是獲取經濟利益的木馬。第一個手機木馬是Mosquit.a。它看起來是無害的手機遊戲,但在某 些時刻會向地址簿中的電話號碼發送大量短信,導致用戶話費劇增。Mosquit.a不僅是第一個手機木馬,還是第一個手機廣告件(adware)。Skuller.a木馬出現於2004年11月,其家族是目前手機木馬中規模最大的。它第一次利用了Symbian的設計缺陷,通過這些缺陷,任何 程序都可以用自己的文件覆蓋系統文件,而不會向用戶發出提示。Skuller將應用軟件的圖標替換為骷髏頭和腿骨,並刪除它們的文件。這樣,只要手機重 啟,就會停止工作。病毒作者們很喜歡這種野蠻的破壞性木馬(vandal Trojan)。
Skuller.a
Cabir的三種新變種與Skuller.a同時出現。這些新變種並沒有基於最初版本的源碼。此時,病毒作者們已經獲取到Cabir,其中一些人做 了腳本小子的勾當:他們將文件重命名,並將其中的文本替換為自己的。有一個變種在原始安裝文件中加入了Skuller,這種雜交產物並沒有真正發揮作用: 木馬已經損毀了手機,蠕蟲就沒法再傳播了。無論如何,這是Cabir第一次被用來攜帶其他的惡意程序。
2005年開始,手機病毒的種類進一步發展,並在接下來十八個月被病毒作者們採用:
- 通過智能手機的協議和服務來傳播的蠕蟲
- 利用Symbian設計缺陷將自身安裝到系統中的破壞性木馬
- 為了獲取經濟利益的木馬
根據卡巴斯基分類法的手機病毒完整列表(截至2006年8月30日)
名稱 | 日期 | 操作系統 | 功能 | 使用技術 | 變種數 |
Worm.SymbOS.Cabir | 2004.6 | Symbian | 通過藍牙傳播 | 藍牙 | 15 |
Virus.WinCE.Duts | 2004.7 | Windows CE | 感染文件 | (文件API) | 1 |
Backdoor.WinCE.Brador | 2004.8 | Windows CE | 提供遠程網絡訪問 | (網絡API) | 2 |
Trojan.SymbOS.Mosquit | 2004.8 | Symbian | 發送短信 | 短信 | 1 |
Trojan.SymbOS.Skuller | 2004.9 | Symbian | 替換文件、圖標、系統程序 | 操作系統漏洞 | 31 |
Worm.SymbOS.Lasco | 2005.1 | Symbian | 通過藍牙傳播,感染文件 | 藍牙、文件API | 1 |
Trojan.SymbOS.Locknut | 2005.2 | Symbian | 安裝惡意程序 | 操作系統漏洞 | 2 |
Trojan.SymbOS.Dampig | 2005.3 | Symbian | 替換系統程序 | 操作系統漏洞 | 1 |
Worm.SymbOS.ComWar | 2005.3 | Symbian | 通過藍牙和彩信傳播,感染文件 | 藍牙、彩信、文件API | 7 |
Trojan.SymbOS.Drever | 2005.3 | Symbian | 替換反病毒程序加載器 | 操作系統漏洞 | 4 |
Trojan.SymbOS.Fontal | 2005.4 | Symbian | 替換字體文件 | 操作系統漏洞 | 8 |
Trojan.SymbOS.Hobble | 2005.4 | Symbian | 替換系統程序 | 操作系統漏洞 | 1 |
Trojan.SymbOS.Appdisabler | 2005.5 | Symbian | 替換系統程序 | 操作系統漏洞 | 6 |
Trojan.SymbOS.Doombot | 2005.5 | Symbian | 替換系統程序 | 操作系統漏洞 | 17 |
Trojan.SymbOS.Blankfont | 2005.7 | Symbian | 替換字體文件 | 操作系統漏洞 | 1 |
Trojan.SymbOS.Skudoo | 2005.8 | Symbian | 安裝損壞程序、安裝Cabir、Skuller、Doombor | 操作系統漏洞 | 3 |
Trojan.SymbOS.Singlejump | 2005.8 | Symbian | 禁用系統功能、替換圖標 | 操作系統漏洞 | 5 |
Trojan.SymbOS.Bootton | 2005.8 | Symbian | 安裝損壞程序、安裝Cabir | 操作系統漏洞 | 2 |
Trojan.SymbOS.Cardtrap | 2005.9 | Symbian | 刪除反病毒程序、替換系統程序、在存儲卡中安裝Win32惡意代碼 | 操作系統漏洞 | 26 |
Trojan.SymbOS.Cardblock | 2005.10 | Symbian | 阻塞存儲卡、刪除文件夾 | 操作系統漏洞、文件API | 1 |
Trojan.SymbOS.Pbstealer | 2005.11 | Symbian | 竊取數據 | 藍牙、文件API | 5 |
Trojan-Dropper.SymbOS.Agent | 2005.12 | Symbian | 安裝其他惡意程序 | 操作系統漏洞 | 3 |
Trojan-SMS.J2ME.RedBrowser | 2006.2 | J2ME | 發送短信 | Java、短信 | 2 |
Worm.MSIL.Cxover | 2006.3 | Windows Mobile/ .NET | 刪除文件、將自身拷貝至其他設備 | 文件API、網絡API | 1 |
Worm.SymbOS.StealWar | 2006.3 | Symbian | 竊取數據、通過藍牙和彩信傳播 | 藍牙、彩信、文件API | 5 |
Email-Worm.MSIL.Letum | 2006.3 | Windows Mobile/ .NET | 通過電子郵件傳播 | 電子郵件、文件API | 3 |
Trojan-Spy.SymbOS.Flexispy | 2006.4 | Symbian | 竊取數據 | — | 2 |
Trojan.SymbOS.Rommwar | 2006.4 | Symbian | 替換系統程序 | 操作系統漏洞 | 4 |
Trojan.SymbOS.Arifat | 2006.4 | Symbian | — | — | 1 |
Trojan.SymbOS.Romride | 2006.6 | Symbian | 替換系統程序 | 操作系統漏洞 | 8 |
Worm.SymbOS.Mobler.a | 2006.8 | Symbian | 刪除反病毒程序、替換系統程序、通過存儲卡傳播 | 操作系統漏洞 | 1 |
共計31個家族、170個變種 |
已知變種數的增長趨勢
已知家族數的增長趨勢
簡而言之,上表告訴我們「手機病毒能做什麼?」:- 通過藍牙、彩信傳播
- 發送短信
- 感染文件
- 導致對智能手機的遠程控制
- 修改、替換圖標或系統程序
- 安裝「錯誤的」或不可操作的字體和程序
- 對反病毒程序鬥爭
- 安裝其他惡意程序
- 阻塞(block)存儲卡
- 竊取數據
基礎性病毒
從所使用的技術來看,手機病毒和PC病毒的主要不同是,雖然手機病毒家族眾多,但只有極少數是真正原創的(truly original)。這種現象與20世紀80年代末期計算機病毒的情況類似。當時,從一些「奠基性的」病毒中衍生出數百種惡意代碼,大多數惡意代碼都基於 三種病毒:Vienna(維也納)、Stoned(石頭)和Jerusalem(耶路撒冷)。在手機病毒中,我認為下列是其他病毒的「祖先」:- Cabir
- Comwar
- Skuller.gen
Lasco
Lasco是第一個這種「新的」家族。除了蠕蟲的特性,這個家族的病毒還感染手機內存中的文件。Lasco的發展正好展現了當病毒源代碼被公開後會 發生什麼。一個自稱手機病毒專家的巴西人Marcos Velasco獲得了Cabir的源碼並開始寫病毒。在2004年的最後一個禮拜,他將自己寫的許多Cabir變種發給了反病毒廠商。它們全被歸為了 Cabir的變種,並且其中一些完全無法運行。作者並不滿意,為了變得出名,他又創造了一個可以感染sis文件的變種。這就是Lasco是如何進入到反病 毒數據庫之中的。幸運的是,雖然Velasco將他的代碼發佈在了個人主頁上,感染文件這個點子並沒有被其他病毒作者進一步發展。目前還不清楚Cabir是否確實是 Lasco的源頭。儘管Marcos Velasco宣稱他完全獨立地編寫了所有的代碼,但無論是文件的數量,還是這些文件的名字,以及操作原則,Lasco都與Cabir非常相似。可以比較 一下這兩個蠕蟲的主要函數,然後我們就會有自己的結論。
Cabir通過藍牙傳播的函數:
if(WithAddress)
{
WithAddress = 0;
Cancel();
TBTSockAddr btaddr(entry().iAddr);
TBTDevAddr devAddr;
devAddr = btaddr.BTAddr();
TObexBluetoothProtocolInfo obexBTProtoInfo;
obexBTProtoInfo.iTransport.Copy(_L("RFCOMM"));
obexBTProtoInfo.iAddr.SetBTAddr(devAddr);
obexBTProtoInfo.iAddr.SetPort(0x00000009);
obexClient = CObexClient::NewL(obexBTProtoInfo);
if(obexClient)
{
iState = 1;
iStatus = KRequestPending;
Cancel();
obexClient->Connect(iStatus);
SetActive();
}
}
else
{
iState = 3;
User::After(1000000);
}
return 0;
Lasco通過藍牙傳播的函數:if ( FoundCell )
{
FoundCell = _NOT;
Cancel();
TBTSockAddr addr( entry().iAddr );
TBTDevAddr btAddress;
btAddress = addr.BTAddr();
TObexBluetoothProtocolInfo obexProtocolInfo;
obexProtocolInfo.iTransport.Copy( _L( "RFCOMM" ) );
obexProtocolInfo.iAddr.SetBTAddr( btAddress );
obexProtocolInfo.iAddr.SetPort( 9 );
if ( ( iClient = CObexClient::NewL( obexProtocolInfo ) ) )
{
iStatus = KRequestPending;
BluetoothStatus = _BLUETOOTH_NOT_CONNECTED;
Cancel();
iClient->Connect( iStatus );
SetActive();
}
}
else
{
BluetoothStatus = _BLUETOOTH_CONNECTED;
}
}
Pbstealer
Symbian的第一個間諜木馬Pbstealer是Cabir的另一個「後代」。它創建於亞洲,也許是中國,並在一個被黑了的韓國《傳奇》網遊專 題網站中發現。這種分發的方法和惡意的木馬本身,充分表明了出於「善意」的Cabir作者是如何為後來惡意代碼的開發鋪平道路的。該木馬通過藍牙發送文件的功能來自於Cabir。然而,作者對原始代碼作了一個重要的修改。它搜尋手機的地址簿,並將其中的數據通過藍牙發送給第一 個發現的終端設備。其名字Pbstealer就來自於「Phonebook Stealer(地址簿竊賊)」。 當時,一些網絡罪犯利用藍牙協議中的多個漏洞竊取這類信息,例如BlueSnarf。而這個木馬極大地增加了其成功的可能性。
除此以外,Cabir還順其自然地成為其他多種木馬的載體,在Skuller、Appdisabler、Locknut、Cardtrap以及其他 破壞性木馬中,有超過一半的變種包含了Cabir。它被修改為傳播整個木馬包裹,而不僅僅是傳播自身。這種雜交方式導致這些惡意程序的分類變得極其困難。 我們會在後面進一步討論這個問題。
Comwar
手機病毒開發的第二個里程碑是Comwar,它是第一個通過彩信傳播的蠕蟲。和Cabir 一樣,它也能通過藍牙傳播,但主要還是使用彩信。這使得它具有了極高的潛在威脅。藍牙的操作必須在10到15米的距離內,其他設備只有進入這個範圍才有可 能被感染。而彩信沒有任何邊界限制,它甚至可以立即被發送到其他國家。最初,Cabir的作者考慮過這個想法,但(從29A的理想主義視角來看)選擇藍牙的原因是很顯然的:
彩信:要通過搜索電話號碼並將蠕蟲放到彩信中發送出去,這種傳播方法是很容易實現的。但是存在兩個問題:第二個原因表明Cabir的作者並不希望對用戶造成經濟上的損失。與此相反,Comwar的作者對此則沒有任何良心上的不安。
1. 我們不知道發彩信手機是什麼型號的,我們也不知道目標手機是否能接收彩信或者運行這個蠕蟲;
2. 這種做法將消耗手機的話費。
這種通過彩信發送惡意代碼的技術,是它對其他病毒作者最有吸引力的地方,然而,到目前為止,我們也只看到了對原始蠕蟲的常規變化,即由一些初級黑客 改變文件名以及原始文件中的文本,而沒有對Comwar的功能作出任何改變。這是因為Comwar的源代碼並沒有被公開,以及腳本小子不清楚發送感染彩信 的流程。
目前,我們捕獲了這個蠕蟲的7個修改版本。其中四個包含了「作者簽名」:
CommWarrior v1.0b (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
Comwar.b:
CommWarrior v1.0 (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
Comwar.c:
CommWarrior Outcast: The dark side of Symbian Force.
CommWarrior v2.0-PRO. Copyright (c) 2005 by e10d0r
CommWarrior is freeware product. You may freely distribute it
in it's original unmodified form.
With best regards from Russia.
Comwar.d:
沒有包含任何區分性的文本。彩信內容被替換為了西班牙語。
Comwar.e:
WarriorLand v1.0A (c) 2006 by Leslie
此外,文本中包含了西班牙語。
Comwar.f:
沒有包含任何區分性的文本。彩信內容被替換為了西班牙語。
Comwar.g:
CommWarrior Outcast: The Dark Masters of Symbian.
The Dark Side has more power!
CommWarrior v3.0 Copyright (c) 2005-2006 by e10d0r
CommWarrior is freeware product. You may freely distribute it in it's original unmodified form.
除此以外,.g變種是第一個具有文件感染能力的變種。它在手機內存中搜索其他sis文件,並將自身代碼添加過去。因此,在傳統的藍牙和彩信之外,又多了一種傳播方法。
應當指出,到目前為止,Comwar還沒有產生其他家族那麼多數量的變種。前面提到過,這是因為其源代碼還沒有被公開。和Cabir一樣,它被用於 承載其他木馬程序。完全基於Comwar的新家族只有StealWar這一個。後者是一個組合了Cabir、Comwar和Pbstealer木馬的蠕 蟲。這種組合形式具有高度危險性和廣泛傳播的能力。
最終,不可避免地,通過彩信傳播成為了當前手機病毒最常用的傳播手段。將來可能會更加流行,因為Windows Mobile 2003上已經發現了一個嚴重的彩信處理漏洞,它可以導致一個緩衝區溢出和任意代碼執行。Collin Mulliner在2006年8月的DefCon大會上報告了這一漏洞。
在微軟發佈相關補丁之前,這個漏洞的詳細信息不會被披露給公眾。但是,缺少信息並不等於說漏洞的危險性就降低了。如果有人寫了一個不需要用戶交互就自動啟動的蠕蟲,並將其放到手機內存中,就有可能引發全球性的災難。
Comwar的.c變種實現了一種可以認為是rootkit的技術,為手機病毒技術的發展又做出了貢獻。該蠕蟲在進程列表中隱藏自身,在標準的正在 運行程序列表裡也看不到。Comwar將其進程指定為」system」的來實現這一點。雖然使用其他查看正在運行進程的軟件就可以看到它的進程,但這種隱 藏方法此前還沒有在Symbian的其他病毒中出現過。
彩信漏洞示例(Collin Mulliner, Advanced Attacks Against PocketPC Phones)
Skuller
前面提到過,Skuller是變種數最多的手機木馬家族:截至2006年9月1日,我們一共發現了它的31個變種。這並不奇怪,所有這些變種都是 Symbian下最原始的惡意程序。任何會使用工具創建sis文件的人,都可以製造出這種類型的木馬,而其他的工作已經由Symbian的漏洞完成了:通 過這些漏洞,可以覆蓋任何文件,包括系統的文件,而當系統遇到不是所期望的文件時(例如已損壞的文件,或者對特定系統版本而言非標準格式的文件)將變得極 度不穩定。所有的Skuller變種都基於兩類文件,一類我們稱為Skuller.gen,另一類是Skuller與其他類似功能家族(例如Doombot或Skudoo)相比具有區分性的文件:
- 一個與要替換文件同名且擴展名是aif的文件,大小是1601字節。這是一個圖標文件,包含了骷髏頭圖標。該文件還包含了一個字符串:「↑Skulls↑Skulls」;
- 一個與要替換文件同名且擴展名是app的文件,大小是4796字節。這是一個EPOC應用程序,一個「假」文件。
分類的問題
當前手機病毒研究中的一個主要問題是分類,尤其是如何準確標記一個新的樣本,根據行為將其歸入合適的類別裡。主要困難來自於絕大部分新病毒都是混合型的,包含了兩個或多個不同類型惡意代碼的功能。卡巴斯基實驗室的分類方法具有清晰的結構:
- 行為:表明了惡意代碼是什麼,做了什麼,例如:Email-Worm、Trojan-Downloader、Trojan-Dropper。
- 環境:操作系統或者惡意功能所需的特定應用程序,例如:Win32、MSWord、Linux、VBS。
- 家族名和變種標識(字母)。
有時候識別環境是很困難的。現在大部分手機病毒是Symbian系統的,我們記為SymbOS。但是,用戶越來越想知道某個病毒到底在哪個 Symbian系列上運行:「某個木馬只在Symbian Series 60 SE上運行嗎?還是也能攻擊Series 80設備?」等等。在我們的計算機病毒分類方法中,使用Win16、Win9x、Win32來區分不同版本的Windows。因此,將來也許會要為 Symbian的類別增加一個數字。
判斷Symbian的系列還只是最簡單的問題。當系統是Windows Mobile時,情況就複雜了。
比如說,有的病毒是針對Windows CE 2003編寫的,我們將這種環境命名為WinCE。然而,為Windows Mobile 5.0編寫的病毒在Windows CE下是無法工作的。此外,並不是只有Windows CE和Windows Mobile,還有Windows Pocket PC。Mobile和Pocket PC都使用了Windows CE的一些功能,但它們又都有各自的程序和特色。
因此,在現有的分類方法下,很難為惡意代碼命一個準確的名字以反映其行為。
此外,很多病毒的功能需要WinCE/Windows Mobile下安裝了.NET環境。在這些情況下,我們使用MSIL作為其環境名,這種環境名無法體現出該惡意代碼是為移動設備所寫的。
迷糊了吧?這還只是冰山的一角。手機病毒最複雜的部分還在於選擇其行為。雜交型病毒、跨平台病毒,以及不同反病毒廠商的命名機制,使得這一部分異常地複雜。
看幾個例子,就能體會到了。
假設有一個sis文件(本質上是一個打包的安裝文件),它包含來自Cabir、Comwar、Pbstealer木馬的文件,一些 Skuller.gen的文件,以及一些0字節的空文件(Locknut的標誌)。如果這還不夠,該文件還向手機的存儲卡中安裝一個Win32病毒(就像 Cardtrap木馬那樣)。
基於現有的分類方法,應該稱其為一個Trojan-Dropper。但是,因為安裝了Cabir,它會通過藍牙發送sis文件。這是否意味著它也是 一個蠕蟲呢?如果是,該怎麼稱呼它?Cabir?這肯定不行,我們不應該命名為Cabir並給它一個新的變種號,因為這個sis文件中90%的內容並不屬 於Cabir,將其命名為Cabir只會把用戶搞糊塗。
那命名為Skuller、Locknut或者Cardtrap呢?也沒有哪個單獨的名字是合適的,因為這個新樣本是一個混合體。最終,這個sis文 件很有可能定性為一個Trojan,並使用我們捕獲到的家族中一個已有的名字。這個名字將基於輔助特徵來確定,例如是否由相同的作者編寫等。
如此複雜的情況在計算機病毒中很少出現,但在手機病毒中是常態。有可能隨著破壞性木馬逐漸減少,手機病毒的世界會變得更具有結構性。
我們來看另一個例子。假設有一個蠕蟲運行於Win32環境。當它在PC上啟動後,除了其他行為以外,還在E:\drive下創建一個sis文件。根 據約定,Symbian手機通過這個drive來連接PC。該sis文件包含了一些空文件,用於覆蓋手機的大量系統程序。該sis文件還包含了這個 Win32蠕蟲本身,它會拷貝自身到手機存儲卡之中,並釋放一個autorun.inf文件。一旦被感染手機連接到一台幹淨的計算機,並從PC上訪問其存 儲卡,蠕蟲就可能啟動並感染乾淨的計算機。
這個跨平台病毒的例子可以在兩個操作系統下運行:Symbian和Windows。這樣的蠕蟲是存在的——Mobler。它應該怎麼分類呢?
對跨平台病毒,我們使用多重標識。比如Worm.Multi.Mobler?可惜的是,用戶無法從中看出它會對Symbian手機產生威脅。我們認 為最好的分類方法是將其分為兩個組件:win32文件命名為Worm.Win32.Mobler,而sis文件命名為 Worm.SymbOS.Mobler。
然而,其他反病毒廠商並沒有將sis文件歸為Mobler或者一個蠕蟲。他們將其稱之為Trojan.SymbOS.Cardtrap,因為根據他 們的分類方法,任何向存儲卡安裝Win32惡意程序的病毒都是Cardtrap。但這個病毒並不是安裝一個木馬,它安裝了自身的主要組件,將自身傳播到其 他操作系統中。因此,反病毒廠商嚴格的分類準則就像把方形的桌子腳強行塞到圓洞裡去一樣。最終所有的人都沒有得到好處——無論是用戶還是反病毒廠商自己。
如果我們一開始就假設大量手機病毒的傳播方法和行為會和以前接觸到的有本質上的差異,這就意味著需要建立全新的分類來體現這種特點。比如 說,Cabir(或者其他通過藍牙傳播的蠕蟲)可以被歸為Bluetooth-Worm(Mac OS系統的Inqtana蠕蟲也可以歸入這類)。一個通過彩信傳播的蠕蟲可以歸為MMS-Worm。但如果一個蠕蟲既利用藍牙又利用彩信發送自身呢?這兩 種傳播方法哪種是最重要的?卡巴斯基實驗室認為彩信是更主要的傳播方法,但是其他反病毒廠商可能不這麼認為,他們可能給藍牙更高的優先級。
反病毒產業在不久的將來就會面臨這樣的問題,它必須為手機病毒建立一套統一的分類方法。在形勢更加嚴峻之前,在避免PC病毒分類(以及不同廠商完全 不同的命名)造成的混亂波及到手機病毒的世界之前,這件事應該盡快完成。可惜的是,在創建PC病毒的統一分類方法上的失敗,給未來手機病毒的分類帶來了諸 多陰霾。
(Claud Xiao翻譯。本文的翻譯和發表沒有得到原文版權所有者的許可,請謹慎轉載和使用。)
轉自 http://blog.claudxiao.net/2011/07/mobile_malware_evolution_an_overview_part_1/#more-259
0 意見: