袁 源,慕德俊,戴冠中
(西北工業(yè)大學(xué)自動(dòng)化學(xué)院控制與網(wǎng)絡(luò)研究所,西安 710072)
智能手機(jī)[1]逐漸融合了聲音、圖像、視頻、網(wǎng)絡(luò)與電子商務(wù),成為強(qiáng)大的個(gè)人終端,但同時(shí)也開(kāi)始面臨巨大的安全威脅。為了兼容高耗能硬件和應(yīng)用程序,智能手機(jī)一般都配有完善的操作系統(tǒng)(諾基亞的Symbian、蘋(píng)果的iPhone、微軟的Windows Mobile、谷歌的Android 等),可以像計(jì)算機(jī)一樣安裝多種第三方軟件,功能不斷擴(kuò)展,如:藍(lán)牙、視頻通話、股票銀行業(yè)務(wù)、GPS(Global Positioning System,全球定位系統(tǒng))、WAP 上網(wǎng)等,使其成為黑客攻擊的新目標(biāo)[2-3]。2010年7 月在拉斯維加斯舉行的Defcon安全大會(huì)上,Trustwave 安全公司的研究人員展示一個(gè)內(nèi)核級(jí)的Rootkit,如果用戶在Andriod 手機(jī)上閱讀短信,就會(huì)自動(dòng)撥打一個(gè)未經(jīng)授權(quán)的長(zhǎng)途電話,并自動(dòng)開(kāi)啟GPS 進(jìn)行地理位置定位,安全隱患嚴(yán)重。如今,智能手機(jī)的安全問(wèn)題已逐漸涉及到個(gè)人隱私、企業(yè)發(fā)展甚至國(guó)家安全等方面,再加上針對(duì)智能手機(jī)的安全廠商緊缺稀少,該領(lǐng)域技術(shù)和安全機(jī)制的發(fā)展相對(duì)緩慢,手機(jī)用戶的安全防護(hù)意識(shí)較為不足,智能手機(jī)的安全威脅日益嚴(yán)峻。根據(jù)最近一份來(lái)自Mcafee的報(bào)告顯示,全球近14%的智能手機(jī)用戶已經(jīng)被惡意軟件感染,因此,關(guān)于智能手機(jī)安全技術(shù)的研究刻不容緩。
針對(duì)智能手機(jī)中Rootkits的技術(shù)原理與檢測(cè)方法進(jìn)行研究,結(jié)構(gòu)如下:第1 節(jié)介紹智能手機(jī)中Rootkits的主要功能;第2 節(jié)分析Rootkits的實(shí)現(xiàn)技術(shù);第3 節(jié)提出智能手機(jī)系統(tǒng)中Rootkits的檢測(cè)方案;最后總結(jié)全文,并就智能手機(jī)安全的重要性和未來(lái)發(fā)展方向進(jìn)行一定的討論。
Rootkits 可以讓攻擊者隱蔽地監(jiān)聽(tīng)或記錄智能手機(jī)通話的隱私數(shù)據(jù)。無(wú)論何時(shí)只要發(fā)生Rootkits感興趣的事件,惡意操作就會(huì)被激活。例如,當(dāng)日歷程序顯示的備注信息中含有某個(gè)關(guān)鍵詞(如會(huì)議)時(shí),Rootkits 就能激發(fā)惡意操作,悄悄撥打攻擊者的電話,從而遠(yuǎn)程監(jiān)聽(tīng)本次會(huì)議內(nèi)容。另外,當(dāng)受害者撥打某個(gè)指定電話時(shí),Rootkits 也可以激活并記錄本次通話的信息。
Rootkits 必須有能力攔截報(bào)警信號(hào),才能觸發(fā)。Rootkits 程序通過(guò)hook 系統(tǒng)調(diào)用表和用惡意寫(xiě)操作地址替換真實(shí)寫(xiě)操作系統(tǒng)調(diào)用地址來(lái)達(dá)到此目的[4]。當(dāng)報(bào)警信號(hào)發(fā)出后,Rootkits 程序?qū)懖僮鲾r截顯示在屏幕上的消息,檢測(cè)其中的三個(gè)子字符串。首先是“Windows Prop”子字符串,該字符串顯示當(dāng)前消息為通知類(lèi)型;然后檢查是否存在“Clock”字符串,該字符串用來(lái)驗(yàn)證消息是否來(lái)自時(shí)鐘程序;最后是“NETWM Type:6”子字符串,該字符串代表產(chǎn)生報(bào)警信號(hào)。通過(guò)匹配算法,如果字符串中含有預(yù)定義的關(guān)鍵詞,就激發(fā)后續(xù)的惡意操作。
當(dāng)Rootkits 激活?lèi)阂獠僮?,就?huì)模擬用戶空間通信應(yīng)用程序來(lái)?yè)艽螂娫?。正常的?yīng)用程序會(huì)向內(nèi)核發(fā)送一系列系統(tǒng)調(diào)用,用以啟動(dòng)GSM 設(shè)備,并設(shè)定其撥打指定的號(hào)碼。Rootkits 程序通過(guò)發(fā)送與內(nèi)核AT 命令相同的序列來(lái)達(dá)到此目的(電話號(hào)碼就是其中某個(gè)參數(shù))。AT 命令激活了電話子系統(tǒng),并成功建立起同攻擊者之間的連接。以Windows Mobile系統(tǒng)為例,創(chuàng)建呼叫是一個(gè)基本操作,利用了PhoneMakeCall 函數(shù),只需傳入兩個(gè)參數(shù):電話號(hào)碼和字符串false,就可以實(shí)現(xiàn)不需要確認(rèn)的自動(dòng)呼叫[5]。這樣一來(lái),處于手機(jī)一定范圍內(nèi)的所有聲音信息都會(huì)被監(jiān)聽(tīng)。而且手機(jī)的聲音接收裝置越敏感,它接收到的聲音就越細(xì)微。
GPS是一個(gè)串行設(shè)備,Rootkits 可以很容易地從內(nèi)核串行設(shè)備列表的成員變量名上定位到GPS 設(shè)備,然后從相關(guān)的tty_driver 結(jié)構(gòu)體中獲取目標(biāo)的當(dāng)前地理位置信息。即使用戶禁用了GPS,由于Rootkits 在內(nèi)核模式下運(yùn)行的特性,完全可以啟動(dòng)GPS設(shè)備。在獲得目標(biāo)地理位置信息后,Rootkits 會(huì)生成一條短信,通過(guò)GSM 調(diào)制解調(diào)器配置為文本模式來(lái)發(fā)送短信,最后Rootkits 會(huì)禁用該設(shè)備。這種攻擊非常隱秘,唯一可見(jiàn)的痕跡是收到電話清單時(shí),才會(huì)發(fā)現(xiàn)發(fā)送給未知號(hào)碼的短信。
GPS 和藍(lán)牙設(shè)備屬于高耗能服務(wù)。Rootkits 通過(guò)向GPS 和藍(lán)牙設(shè)備相應(yīng)的電源設(shè)備文件寫(xiě)入“1”指令,從而開(kāi)啟對(duì)應(yīng)的服務(wù)。這種攻擊會(huì)很快耗盡智能手機(jī)的電池,根據(jù)實(shí)驗(yàn)測(cè)試,同時(shí)開(kāi)啟GPS 和藍(lán)牙服務(wù),手機(jī)電池的待機(jī)時(shí)間只有原來(lái)的十分之一[4]。人們?cè)诰o急情況下越來(lái)越依賴于手機(jī),那么當(dāng)用戶最需要手機(jī)時(shí),該攻擊會(huì)導(dǎo)致拒絕服務(wù)攻擊。
手機(jī)殺毒軟件不僅可以遍歷手機(jī)文件系統(tǒng)中的文件信息,還可以對(duì)手機(jī)中的運(yùn)行任務(wù)進(jìn)行查詢監(jiān)視。如果Rootkits的一些特征符合某種已知病毒的特征碼,毫無(wú)疑問(wèn)這個(gè)Rootkits 程序就會(huì)被關(guān)閉。因此,Rootkits 必須實(shí)現(xiàn)自身文件、任務(wù)的隱藏。
對(duì)于任何手機(jī)Rootkits 來(lái)說(shuō),它首要的任務(wù)是隱藏自身。Rootkits 程序初次運(yùn)行在手機(jī)系統(tǒng)上時(shí),它會(huì)將手機(jī)存儲(chǔ)器上的文件刪掉。同時(shí),它監(jiān)視系統(tǒng)的狀態(tài)變化,一方面監(jiān)視手機(jī)上是否運(yùn)行了殺毒軟件,如果沒(méi)有就將自己重新創(chuàng)建在手機(jī)系統(tǒng)上;另一方面,它會(huì)監(jiān)視手機(jī)是否被關(guān)機(jī),如果是,它馬上將自己寫(xiě)入文件系統(tǒng),保證下次開(kāi)機(jī)時(shí)自己能順利啟動(dòng)。
Rootkits的文件隱藏還體現(xiàn)在一些對(duì)系統(tǒng)設(shè)置的利用上,如手機(jī)系統(tǒng)的注冊(cè)表文件(主要針對(duì)Windows Mobile)、設(shè)置文件為系統(tǒng)屬性(Symbian 系統(tǒng))等等。
智能手機(jī)系統(tǒng)與計(jì)算機(jī)操作系統(tǒng)有著一定的區(qū)別,因此很難利用計(jì)算機(jī)操作系統(tǒng)下的一些方法來(lái)實(shí)現(xiàn)任務(wù)/線程隱藏,例如鉤子技術(shù)。通常,手機(jī)系統(tǒng)會(huì)將手機(jī)運(yùn)行中的數(shù)據(jù)保存在一些關(guān)鍵的位置,以便能夠隨時(shí)使用和修改。Rootkits 通過(guò)對(duì)手機(jī)系統(tǒng)緩存中涉及到任務(wù)信息的核心數(shù)據(jù)進(jìn)行修改,從而改變手機(jī)系統(tǒng)的某些顯示而實(shí)現(xiàn)。
另一個(gè)方法是利用系統(tǒng)的漏洞。按照操作系統(tǒng)的設(shè)計(jì)理念,操作系統(tǒng)本身的代碼會(huì)運(yùn)行在系統(tǒng)的某一個(gè)高地址內(nèi)存中,這段內(nèi)存地址是不允許用戶程序訪問(wèn)的。如果訪問(wèn)到操作系統(tǒng)本身的地址,那么系統(tǒng)會(huì)立刻禁止此次訪問(wèn),給出一個(gè)警告提示??墒且恍┦謾C(jī)操作系統(tǒng)的設(shè)計(jì)者為了簡(jiǎn)單(或者為了加快系統(tǒng)的開(kāi)發(fā)成品時(shí)間),往往會(huì)去掉這部分代碼。這時(shí),如果手機(jī)系統(tǒng)將系統(tǒng)內(nèi)的所有任務(wù)/線程信息存儲(chǔ)在內(nèi)存高地址,Rootkits 程序就可以直接訪問(wèn)這個(gè)地址,然后修改該處的原始內(nèi)容,而手機(jī)系統(tǒng)會(huì)忽略這種改變,Rootkits 就可以輕易的隱藏自身,同時(shí)躲過(guò)殺毒軟件的查殺。
上述隱藏方法仍然屬于應(yīng)用層范疇,沒(méi)有涉及到系統(tǒng)內(nèi)核的層面,要實(shí)現(xiàn)隱藏程序行為顯得有點(diǎn)力不從心。內(nèi)核級(jí)的Rootkits 常常作為驅(qū)動(dòng)程序安裝在手機(jī)系統(tǒng)中,成為系統(tǒng)不可分割的一部分,并且能夠通過(guò)驅(qū)動(dòng)程序與系統(tǒng)的核心數(shù)據(jù)進(jìn)行交互。它可以改變系統(tǒng)的核心數(shù)據(jù),包括任務(wù)/線程信息,文件數(shù)據(jù)信息,甚至還可以修改系統(tǒng)的運(yùn)行狀態(tài)[6-7]。如果智能手機(jī)采用了Linux 操作系統(tǒng),可以利用文獻(xiàn)[6-7]中的LKM 技術(shù),截獲部分系統(tǒng)調(diào)用,輕松實(shí)現(xiàn)對(duì)Rootkits 文件、任務(wù)的隱藏。
例如,Android 系統(tǒng)使用select()和read()等函數(shù)從Modem 驅(qū)動(dòng)程序的相關(guān)文件描述符中讀取上報(bào)。如圖1 所示,一旦Rootkits 劫持了sys_read()系統(tǒng)調(diào)用,就可以截獲Modem 上報(bào)的一切外來(lái)通信,包括手機(jī)收到的短信和呼叫等。這樣一來(lái),Rootkit就能對(duì)目標(biāo)手機(jī)接收到的所有短信進(jìn)行截獲,并對(duì)短信中的內(nèi)容進(jìn)行分析,其攻擊行為就能得以觸發(fā)和實(shí)施。
圖1 截獲read 系統(tǒng)調(diào)用原理圖
目前,卡巴斯基、Symantec、Mcafee、小紅傘、瑞星等網(wǎng)絡(luò)安全公司都推出了相應(yīng)的手機(jī)殺毒軟件,功能比較完善。但是,由于手機(jī)殺毒軟件開(kāi)發(fā)需要的一些核心技術(shù)沒(méi)有被手機(jī)系統(tǒng)開(kāi)發(fā)商公布,以及程序調(diào)試難度大、手機(jī)病毒分析不夠完善、通用性等方面的問(wèn)題,仍然存在較多的弊端。
早期的Rootkits 主要是替換系統(tǒng)的二進(jìn)制文件,這樣可以通過(guò)Tripwire 和AIDE 等工具檢查系統(tǒng)文件的完整性來(lái)判斷。目前的Rootkits 在內(nèi)核模式下運(yùn)行,很容易規(guī)避用戶模式下反病毒軟件的檢測(cè),下面闡述其它一些檢測(cè)思想。
虛擬化技術(shù)的主要目標(biāo)是讓用戶能夠擁有多重功能,例如同一個(gè)電話可供多個(gè)賬戶使用。虛擬化一個(gè)很大的特性是同等性:程序在虛擬機(jī)上運(yùn)行時(shí)的行為和直接在本地硬件上運(yùn)行時(shí)的行為相同。Rootkits 檢測(cè)器利用這個(gè)特性,在一個(gè)單獨(dú)的虛擬機(jī)中執(zhí)行并監(jiān)視智能手機(jī)操作系統(tǒng)的內(nèi)存,從虛擬環(huán)境和物理環(huán)境差異性的角度進(jìn)行檢測(cè),比較流行的有四種對(duì)比算法:TSC時(shí)間檢測(cè)法、外部時(shí)間源檢測(cè)法、基于時(shí)間的TLB 檢測(cè)法和基于頁(yè)面內(nèi)容的TLB檢測(cè)法。目前,不少商家在努力建設(shè)智能手機(jī)虛擬監(jiān)視器,為在智能手機(jī)上實(shí)施Rootkits 檢測(cè)提供可行的途徑。需要注意的是,這類(lèi)Rootkits 檢測(cè)工具通常都采用計(jì)算密集型算法,定期獲取并掃描受監(jiān)視的操作系統(tǒng)內(nèi)存,這有可能會(huì)流失大量電量,從而導(dǎo)致該類(lèi)檢測(cè)工具的實(shí)用性受到質(zhì)疑,因此還需要開(kāi)發(fā)智能手機(jī)檢測(cè)相應(yīng)的新型節(jié)能技術(shù)。
文件回調(diào)函數(shù)檢測(cè)法是手機(jī)系統(tǒng)在發(fā)現(xiàn)文件系統(tǒng)變化后,由它提供給應(yīng)用程序的一個(gè)信號(hào)。應(yīng)用程序收到該信號(hào)就可以知道文件系統(tǒng)在哪里發(fā)生了變化,然后通過(guò)對(duì)比添加的文件是否具有病毒庫(kù)中某個(gè)病毒的特征判斷是否是Rootkits 程序。該方法的缺點(diǎn)是Rootkits種類(lèi)繁多,不可能記錄每一種Rootkits(特別是新出現(xiàn)的Rootkits)的特征信息,容易出現(xiàn)漏判。
針對(duì)智能手機(jī)的某些特性,可采用以下手段來(lái)輔助檢測(cè):
1)檢查手機(jī)系統(tǒng)開(kāi)機(jī)和關(guān)機(jī)配置文件。Rootkits 很可能通過(guò)這兩種配置文件來(lái)長(zhǎng)期駐留于手機(jī)系統(tǒng)中。
2)檢查手機(jī)電池的使用情況。智能手機(jī)Rootkits 在操作各手機(jī)硬件完成攻擊的同時(shí),勢(shì)必會(huì)大幅度降低手機(jī)電池使用時(shí)間。
3)查詢?cè)捹M(fèi)詳單。重點(diǎn)排查其中頻繁出現(xiàn)的陌生號(hào)碼。無(wú)論多么高超的手機(jī)Rootkits 技術(shù),只要攻擊者嘗試從遠(yuǎn)程控制目標(biāo)手機(jī),都無(wú)法改變基站中留下的通訊記錄,而這些記錄可以通過(guò)話費(fèi)詳單來(lái)體現(xiàn)。
通過(guò)分析智能手機(jī)中Rootkits 技術(shù)原理,并以此為基礎(chǔ),對(duì)其預(yù)防和檢測(cè)方法進(jìn)行了一定程度的討論。隨著3G時(shí)代的來(lái)臨,手機(jī)支持電子商務(wù)、電子支付、股票交易等增值業(yè)務(wù)的廣泛應(yīng)用,黑客已經(jīng)把目光鎖定到智能手機(jī)上。即使像Android 這類(lèi)具有強(qiáng)大技術(shù)背景支持的智能手機(jī)操作系統(tǒng),同樣可能被安裝內(nèi)核級(jí)Rootkits,實(shí)施各種攻擊行為。因此手機(jī)用戶、手機(jī)廠商都應(yīng)該對(duì)智能手機(jī)的安全予以足夠的重視,及時(shí)升級(jí)軟硬件系統(tǒng),彌補(bǔ)各種系統(tǒng)漏洞,不斷采用更為高效、全面、節(jié)能的檢測(cè)技術(shù),才有可能減少Rootkits 帶來(lái)的危害。未來(lái)智能手機(jī)中的Rootkits 技術(shù)將會(huì)越來(lái)越趨向于多樣化、隱蔽化、底層化和頑固化,其檢測(cè)技術(shù)也勢(shì)必變得更加復(fù)雜,只有不斷加強(qiáng)對(duì)Rootkits技術(shù)原理的研究,綜合利用各類(lèi)檢測(cè)手段,才能準(zhǔn)確地檢測(cè)出惡意軟件的存在。
[1]Duanwx131.智能手機(jī)[EB/OL].http://baike.baidu.com/view/535.htm.
[2]鄭昌興.手機(jī)病毒防治方法及其發(fā)展趨勢(shì)分析[J].信息技術(shù),2010(2):122-124.
[3]姜楠,王健.手機(jī)病毒與防護(hù)[J].計(jì)算機(jī)安全,2004(12):58-61.
[4]Jeffrey Bickford.Rootkits 技術(shù):智能手機(jī)的攻擊與啟示[J].黑客防線,2010(2):57-63.
[5]王繼剛.手機(jī)病毒大曝光[M].西安:西安交通大學(xué)出版社,2009:55-57.
[6]陳華亭.基于LKM的Rootkit 技術(shù)[J].計(jì)算機(jī)工程與科學(xué),2004,26(2):89-90.
[7]袁源,戴冠中.LKM 后門(mén)綜述[J].計(jì)算機(jī)科學(xué),2008,35(7):5-8.