王 浩,白 鵬
(山西省自動化研究所,山西 太原 030006)
智能設(shè)備在移動互聯(lián)網(wǎng)時代是必不可少的,功能也從最開始的打電話、發(fā)短信轉(zhuǎn)變?yōu)楝F(xiàn)在主流的移動支付、移動辦公、通訊服務(wù)等功能的產(chǎn)業(yè)鏈??萍嫉陌l(fā)展也是一把雙刃劍,智能機(jī)給人們帶來更好的功能體驗(yàn)的同時,也帶來了更加嚴(yán)重的安全保密隱患。用戶的私密信息可能遭到泄露,且一些基于收費(fèi)的軟件可以自動撥打或悄無聲息用發(fā)短信的方式來新增一些付費(fèi)增值服務(wù),用戶可能在毫不知情的情況下使用一些付費(fèi)增值業(yè)務(wù),致使用戶的手機(jī)賬單日益飆升,給用戶帶來不可預(yù)估的損失;甚至泄露的那些信息有可能是重要的商業(yè)信息,更甚至泄漏的是國家安全信息,這無疑是用戶、企業(yè)、乃至國家在這信息時代的重大的安全隱患。因此,Android移動設(shè)備的安全防護(hù)研究迅速成為Android平臺發(fā)展方向的一個重要組成部分。
隨著Android系統(tǒng)的普及,惡意軟件的威脅將日益凸顯,據(jù)悉,在所有手機(jī)平臺惡意軟件中,Android平臺的惡意軟件份額已超過46%,并且呈迅速增長趨勢。在另一份報告中,發(fā)出警告說,自2010年夏季以來,Android惡意軟件增長了400%[1]。
通過調(diào)研表明智能設(shè)備的信息安全隱患有如下幾方面[2]:
1) 智能手機(jī)硬件存在漏洞。用戶在輸入密碼或在通話時黑客可以通過手機(jī)的觸摸屏輸入,內(nèi)置芯片等輕松的盜取用戶隱私信息。
2) 智能手機(jī)App存在很大的風(fēng)險。智能手機(jī)市場快速發(fā)展的同時,給用戶帶來了數(shù)之不盡的App,隨之而來的病毒、惡意軟件等會通過更加隱蔽手段未經(jīng)允許的訪問和竊取到用戶的手機(jī)私人信息。
3) 云計(jì)算、云平臺存在信息安全威脅。用戶使用云計(jì)算等服務(wù),對用戶的信息安全產(chǎn)生重大挑戰(zhàn)。
由于Android特有的開放性等特點(diǎn),存在以下主要的安全威脅[3]:
1) 惡意軟件:竊聽、流氓軟件、手機(jī)木馬等軟件攻擊。現(xiàn)在全世界已經(jīng)發(fā)現(xiàn)的惡意軟件達(dá)700多種,且數(shù)量還在快速的增長。這些快速增長的惡意軟件會給擁有智能手機(jī)的用戶帶來很多安全隱患:會私自實(shí)現(xiàn)訂購服務(wù),發(fā)送批量消息,并在用戶不知情的情況下執(zhí)行惡意付款,從而給用戶造成經(jīng)濟(jì)損失;某些惡意軟件會根據(jù)手機(jī)通訊錄中的列表發(fā)送垃圾郵件或傳播病毒,這將會損害用戶的信用;某些惡意軟件甚至?xí)p壞手機(jī)硬件,導(dǎo)致手機(jī)運(yùn)行緩慢,崩潰甚至徹底損壞。
2) 惡意騷擾:騷擾電話,垃圾郵件等。由于用戶普遍攜帶手機(jī),所以手機(jī)惡意騷擾對用戶影響較大。如今4G網(wǎng)絡(luò)的高帶寬為惡意騷擾提供了便利,移動廣告的內(nèi)容和呈現(xiàn)的方式也日益多樣化。隨著社會的進(jìn)步,各種資源越來越便宜,但是人們的關(guān)注資源越來越昂貴,手機(jī)也因其特有的特點(diǎn),已成為搶奪人們關(guān)注資源的最佳途徑之一,因此惡意騷擾是智能手機(jī)用戶不得不去面對的問題。
3) 隱私泄露:智能手機(jī)正快速成為用戶的信息和計(jì)算中心,用戶將在智能手機(jī)上存儲越來越多的個人隱私信息。如果個人信息被泄露,則對用戶的損失是不可估量的。從傳播渠道來看,目前的惡意代碼可以通過紅外線、藍(lán)牙、短信、彩信、無線上網(wǎng)、電腦線、手機(jī)存儲卡等方式進(jìn)行傳輸個人的隱私信息。
安卓手機(jī)上的惡意軟件攻擊方法主要包括以下幾種[4]:
1) 基于硬件的攻擊。由于硬件的通用性,因此在最高操作權(quán)限方面有一定的漏洞,況且在手機(jī)使用過程中幾乎不能對硬件進(jìn)行相關(guān)的升級和維護(hù),因此當(dāng)硬件防御難度增加,受到攻擊時危害更大。
2) 基于Linux內(nèi)核的攻擊[11]。Linux內(nèi)核的安全性存在很大的隱患。經(jīng)過數(shù)據(jù)分析,每年有近百個Linux系統(tǒng)的安全漏洞被挖掘[8]。非法用戶利用這些漏洞,進(jìn)一步的可以獲得安卓系統(tǒng)的根權(quán)限,然后實(shí)施一些非法攻擊。另一方面,由于Linux內(nèi)核的高配置性,在手機(jī)的硬件資源較少的情況下,一些廠商為了減少手機(jī)內(nèi)存的消耗,一些安全配置的選項(xiàng)經(jīng)常被廠商禁用。
3) 基于System核心進(jìn)程的攻擊。Android系統(tǒng)的核心程序依賴系統(tǒng)本地庫、基礎(chǔ)的Java類庫、以及Java虛擬機(jī)。系統(tǒng)本地庫主要包含一些底層的API和一些較復(fù)雜計(jì)算函數(shù)等,但由于這些方法的編寫是使用的底層的C/C++,因此就缺少了類似java的強(qiáng)制性安全機(jī)制,系統(tǒng)內(nèi)存空間被侵占或被惡意代碼執(zhí)行的風(fēng)險成指數(shù)倍增長。由于核心程序的開源性,默認(rèn)都能獲取系統(tǒng)的較高權(quán)限,因此更多的攻擊者將目標(biāo)轉(zhuǎn)向了系統(tǒng)核心進(jìn)程。
4) 基于手機(jī)App的攻擊。用戶根據(jù)個人的喜好選擇并安裝一些手機(jī)App,很多的App都會提示用戶獲取一些權(quán)限,這使得手機(jī)App成為攻擊者的首選目標(biāo)。然而在手機(jī)App安裝過程中,大部分用戶缺乏相關(guān)的安全意識,因此也無法識別哪些是惡意程序,直接賦予其權(quán)限,這將極大地削弱應(yīng)用程序的權(quán)限控制。
Android系統(tǒng)本身也存在很多的安全隱患,大概歸納為以下幾個要點(diǎn)[5]:
1) 基于Android平臺的安全特性分析力度不夠
Android系統(tǒng)的安全機(jī)制依賴于Linux和Android的安全機(jī)制,Android系統(tǒng)繼承了Linux系統(tǒng)安全機(jī)制,在此基礎(chǔ)上又結(jié)合自身的優(yōu)勢研發(fā)了相關(guān)的權(quán)限審核機(jī)制、簽名機(jī)制等一系列的安全防御措施。雖然已經(jīng)有了很大的進(jìn)步,但對Android系統(tǒng)可能存在的漏洞挖掘和安全威脅性的探究還差很遠(yuǎn)。
2) 基于Android平臺的特征內(nèi)容收集不夠
首先說明,此處說的特征內(nèi)容指的是惡意軟件或病毒與正常軟件App之間的差異。只要利用好這些差異,就可以區(qū)分哪些是病毒或惡意代碼,哪些是正常的手機(jī)App。
如果能充分利用Android系統(tǒng)中的某些更多潛在特征內(nèi)容,就能夠在系統(tǒng)安全性等方面取得突破性的進(jìn)展。此處舉個實(shí)例加以說明,某一款視頻播放器App請求賦予通訊錄的權(quán)限,根據(jù)理論上的分析則可以推斷出該App的請求是可疑的,進(jìn)而再經(jīng)過深層次的分析與對比確認(rèn)這個App是否已經(jīng)被感染。站在動態(tài)角度分析,基本上所有的惡意代碼或病毒會在后臺收集用戶信息并靜默打包發(fā)送,若是正常的App是沒有該行為的。因此,通過對后臺程序行為的監(jiān)控與分析,一旦發(fā)現(xiàn)某個后臺程序有類似行為,就可把該程序認(rèn)為是可疑的。但是目前威脅的特征收集由于人力物力的原因還不夠,而且隨著時間推移,這個特征也在不斷的變化中,這無形中增加了收集特征的難度。
3) 行為監(jiān)控的審計(jì)不夠
行為監(jiān)控是一種監(jiān)控和檢測系統(tǒng)中程序行為的統(tǒng)稱。大多數(shù)惡意行為區(qū)別于正常App的是未經(jīng)用戶授權(quán)時執(zhí)行的。所謂的行為監(jiān)控技術(shù)大多是通過對回調(diào)函數(shù)、基礎(chǔ)函數(shù)的調(diào)用或攔截以及通過識別和控制某些行為模式然后加以分析實(shí)現(xiàn)的。但行為監(jiān)控在實(shí)際操作中增加了程序內(nèi)存訪問量,且審計(jì)的力度不夠,這便避免不了不少很多手機(jī)隱患。
國內(nèi)外對Android平臺的安全防護(hù)的研究可以歸納為二大類:
一類是分析惡意軟件,然后在受到攻擊之前破解惡意代碼并及時處理,從而達(dá)到對隱私信息保護(hù)。
另一類則是對Android系統(tǒng)安全性的研究,從底層角度來加強(qiáng)操作系統(tǒng)的安全級別[6]。
主流的對手機(jī)惡意軟件App的分析是靜態(tài)分析和動態(tài)分析互補(bǔ)的結(jié)果。全球重要的殺毒防護(hù)軟件廠商,無論是國內(nèi)騰訊管家、360安全套裝、金山毒霸套裝、網(wǎng)秦防護(hù),還是國外的卡巴斯基和McAFREE目前都采用了“云殺”的方法。也就是說,Android手機(jī)通過和防護(hù)軟件廠商云服務(wù)器的對接,從而對病毒、惡意程序和其他安全威脅的檢測,對比其云安全服務(wù)器集群中的惡意軟件和云數(shù)據(jù)庫,進(jìn)一步確認(rèn)平臺的安全性。但是這樣的分析方式還有很大問題,大部分手機(jī)惡意軟件的分析都是通過手動分析完成的,這消耗了巨大的人力、物力和財(cái)力[10]。
另外,國內(nèi)著名廠商均在 Android 平臺的安全性防御上,采取了不同的方式,可歸結(jié)為以下幾個方面。
1) 訪問控制
眾所周知Android系統(tǒng)是基于Linux內(nèi)核研發(fā)的操作系統(tǒng),因此可從增強(qiáng)Linux內(nèi)核級別的角度來加強(qiáng)(如Trust-Droid項(xiàng)目)訪問控制。此外,Android框架組件之間也有數(shù)據(jù)訪問,可以增強(qiáng)組件之間的訪問控制(如XManDroid項(xiàng)目)。惡意代碼和病毒代碼的傳播首先必須具有一定的訪問權(quán)限才能達(dá)到訪問和破壞其他程序與文件的目的,惡意代碼達(dá)到其目的可能需拿到更高的權(quán)限,因此在Android系統(tǒng)中使用數(shù)據(jù)和重要功能時,應(yīng)用程序必須具有適當(dāng)?shù)牟僮鳈?quán)限。如果能夠?qū)υL問程序的權(quán)限有效的控制,盡量賦予其只能完成其正常工作的最小權(quán)限,即使該程序中可能含有惡意代碼,也可以降低該惡意代碼執(zhí)行程度,從而達(dá)到一定的防護(hù)[7][9]。
2) 基于簽名的惡意代碼靜態(tài)檢測技術(shù)
與PC上的軟件簽名機(jī)制類似,簽名機(jī)制也可以用作針對移動平臺上的惡意軟件的保護(hù)措施。使用簽名機(jī)制可通過對惡意軟件的分析從而提取惡意軟件的簽名。在系統(tǒng)平臺進(jìn)行防護(hù)時,將每個軟件的簽名與已知惡意軟件數(shù)據(jù)庫的簽名進(jìn)行比較。這意味著檢測到的軟件如果包含惡意軟件數(shù)據(jù)庫內(nèi)的任一個的簽名,則可確認(rèn)其是危險的。此方法雖然簡單高效,但缺乏對未知惡意軟件的檢測。若惡意軟件將自己的簽名進(jìn)行某種變形或偽裝,則無法以這種方式判斷。
3) 基于行為的惡意代碼動態(tài)檢測技術(shù)
基于行為的惡意軟件動態(tài)檢測技術(shù)通常是在這些模擬環(huán)境中運(yùn)行的。通過對程序行為的監(jiān)聽與分析,判斷程序是否屬于惡意程序。由于動態(tài)行為檢測方法的實(shí)際操作是在模擬環(huán)境中執(zhí)行的,因此準(zhǔn)確性很高。但是這種方法的缺點(diǎn)也很明顯,在對軟件行為的分析需要消耗大量的資源。如何通過對程序行為分析,自動運(yùn)行待檢測的程序并確定其惡意程度,也是動態(tài)監(jiān)控需要解決的問題。
4) 數(shù)據(jù)標(biāo)記
據(jù)相關(guān)報道,研究人員提出了Taint-Droid方法以研究私人信息的泄漏途徑,這是一個在Android平臺上實(shí)時監(jiān)控私人信息的項(xiàng)目。
5) 安全域分割
根據(jù)程序的功能性、重要性等多個因素對其進(jìn)行分類,為每類程序設(shè)置一定的安全級別,然后統(tǒng)計(jì)這些安全級研究其相關(guān)的安全策略。從而形成安全權(quán)限的梯度模型,由外圍到中心域的安全等級逐漸升高,因此位于中心域中的程序具有最高的權(quán)限。但這只能對單方向限制惡意軟件,處于同一級別的安全域若存在惡意軟件則沒有設(shè)置額外的防御措施。
6) 系統(tǒng)增強(qiáng)
除了以上五種安全強(qiáng)化方法外,還要對Android系統(tǒng)的安全性進(jìn)行更深層次的改進(jìn),例如SEAndroid安全機(jī)制和 L4Android安全機(jī)制[12]。
本文分析了Android智能手機(jī)的信息安全的特點(diǎn),綜述了Android智能手機(jī)的主要威脅和可能面臨的攻擊方式,簡述了目前Android平臺的手機(jī)信息安全的需求分析,闡述了惡意代碼檢測和防御技術(shù)。