摘 要: 隨著Android系統(tǒng)在各移動(dòng)終端中的廣泛應(yīng)用,系統(tǒng)的安全尤為重要。從Android平臺(tái)架構(gòu)及存在的安全隱患出發(fā),分析了Android平臺(tái)的安全機(jī)制,提出了更有效的安全解決方案。
關(guān)鍵詞: Android;安全機(jī)制;安全隱患;解決方案
0 引言
隨著移動(dòng)終端的廣泛應(yīng)用,Android操作系統(tǒng)走入人們的生活,成為眾多操作系統(tǒng)中最受歡迎的操作系統(tǒng),由于Android是一個(gè)開放的系統(tǒng),在給人們提供便利的同時(shí),也產(chǎn)生了許多安全隱患,故系統(tǒng)的安全尤為重要。本文從Android平臺(tái)架構(gòu)及存在的安全隱患出發(fā),分析了Android平臺(tái)的安全機(jī)制,提出了更有效的安全解決方案。
1 Android平臺(tái)架構(gòu)
Android是一種應(yīng)用于便攜設(shè)備的操作系統(tǒng),它是基于Linux的開放系統(tǒng)。其系統(tǒng)框架采用了分層的形式,從下至上分為4個(gè)部分:Linux內(nèi)核層、系統(tǒng)運(yùn)行庫(kù)層、應(yīng)用程序框架層和應(yīng)用程序?qū)覽1]。Android系統(tǒng)結(jié)構(gòu)圖如圖1所示。
?。?)Linux內(nèi)核層:處于最底層,其基于Linux內(nèi)核,主要功能是為Android系統(tǒng)提供如管理進(jìn)程、內(nèi)存、安全、驅(qū)動(dòng)和網(wǎng)絡(luò)等核心系統(tǒng)服務(wù)。
?。?)系統(tǒng)運(yùn)行庫(kù)層:是Linux內(nèi)核層和應(yīng)用程序框架層的中間層,它包括功能豐富的C/C++庫(kù)和Android Runtime[2]。Android Runtime是Android應(yīng)用程序運(yùn)行環(huán)境,所有Android應(yīng)用程序運(yùn)行在彼此獨(dú)立的Dalvik虛擬機(jī)上[3],Dalvik虛擬機(jī)對(duì)應(yīng)用程序起到保護(hù)作用,使之免受破壞。
(3)應(yīng)用程序框架層:程序員可以快速地在此層進(jìn)行應(yīng)用程序的開發(fā)。因?yàn)樗峁┝藨?yīng)用程序的API框架,并提供了程序數(shù)據(jù)共享及調(diào)用機(jī)制。
?。?)應(yīng)用程序?qū)樱菏桥c用戶交互層,Android系統(tǒng)提供一系列采用Java語言編寫的應(yīng)用程序,例如:瀏覽器、日歷、電子郵件、地圖、SMS等,方便用戶下載使用。
2 Android平臺(tái)安全隱患
Android是一個(gè)開放的系統(tǒng),提供免費(fèi)開放的源代碼,共任何人使用,這樣就給攻擊者可乘之機(jī),他們可以很容易修改源代碼或找到源代碼的漏洞,從而惡意攻擊系統(tǒng)。下面列舉幾個(gè)常見的安全隱患。
2.1 惡意軟件侵入
目前,Android系統(tǒng)安全的主要威脅是惡意軟件的侵入[4]。惡意軟件種類繁多,如:扣費(fèi)類軟件、Rom內(nèi)置軟件、消耗流量軟件及隱私竊取類軟件等。它們的入侵方式多種多樣,可以通過發(fā)送短/彩信、撥打電話、藍(lán)牙、WiFi、Internet網(wǎng)絡(luò)連接等實(shí)現(xiàn)。
2.2 系統(tǒng)Root權(quán)限的非法獲取
Android系統(tǒng)安全的重大威脅是Root權(quán)限的非法獲取。攻擊者通過系統(tǒng)漏洞或刷機(jī)等,獲得系統(tǒng)的Root權(quán)限(即最高管理員權(quán)限),這樣就可以方便地對(duì)系統(tǒng)數(shù)據(jù)和文件進(jìn)行任意的修改。
2.3 用戶安全意識(shí)薄弱
用戶在自己安裝應(yīng)用軟件時(shí),對(duì)惡意程序無法辨別,安全意識(shí)薄弱,任意下載安裝,給惡意程序提供了可乘之機(jī)。同時(shí),用戶為更輕松、方便地使用手機(jī),往往主動(dòng)選擇Root手機(jī),這樣也會(huì)造成病毒侵入、數(shù)據(jù)暴露和系統(tǒng)不穩(wěn)定等。
3 Android安全機(jī)制分析
由于Android是一個(gè)開放的系統(tǒng),因此要求有更強(qiáng)的安全機(jī)制加以保障。Android繼承了原有的Linux安全機(jī)制,同時(shí)對(duì)其加以創(chuàng)新,設(shè)計(jì)了特有的Android安全機(jī)制,這樣大大提高了Android系統(tǒng)的安全性。
3.1 Linux安全機(jī)制
3.1.1 POSIX User
各應(yīng)用程序在移動(dòng)設(shè)備上安裝時(shí),Android系統(tǒng)會(huì)給每個(gè)應(yīng)用程序一個(gè)ID,并且這個(gè)ID是唯一的,應(yīng)用程序在各自的進(jìn)程中運(yùn)行。這樣,每個(gè)應(yīng)用程序就形成一個(gè)沙箱,防止應(yīng)用程序?qū)ο到y(tǒng)的其他資源或別的程序產(chǎn)生惡意行為。因此,在沒有明確授權(quán)的情況下,不允許對(duì)其他資源訪問。例如,程序1若要獲取程序2的短信、電話功能等數(shù)據(jù)就會(huì)遭到拒絕。
3.1.2 文件訪問權(quán)限控制
文件訪問管理源于Linux權(quán)限機(jī)制[5]。各文件訪問與用戶ID、所在組號(hào)及Read/Write/RWX三個(gè)向量組密切相關(guān)。每個(gè)文件擁有各自的ID,不被其他程序訪問(設(shè)為全局或擁有共同ID的除外)。同時(shí),系統(tǒng)鏡像掛載設(shè)為只讀。配置文件及重要程序置于Firmware中,在系統(tǒng)初始化中加載;程序數(shù)據(jù)及用戶置于數(shù)據(jù)分區(qū)中;進(jìn)而對(duì)文件訪問實(shí)現(xiàn)合理控制。
3.2 Android特有的安全機(jī)制
3.2.1 應(yīng)用程序權(quán)限機(jī)制
安全機(jī)制中權(quán)限機(jī)制是核心[6]。各應(yīng)用程序只能在各自的權(quán)限中運(yùn)行來獲得權(quán)限內(nèi)的資源,不能訪問權(quán)限以外的其他內(nèi)容。包管理器在程序安裝中賦予其權(quán)限,應(yīng)用程序框架層在程序運(yùn)行時(shí)對(duì)其進(jìn)行權(quán)限控制。Android的權(quán)限控制有100多種,例如收發(fā)信息、撥打電話、藍(lán)牙、網(wǎng)絡(luò)訪問等。權(quán)限的獲得必須在安裝時(shí)申請(qǐng),Android通過用戶交互和簽名檢查給予權(quán)限。應(yīng)用程序只有獲得權(quán)限后方能執(zhí)行其他操作。此外,可以配置防護(hù)等級(jí)屬性,其可以決定權(quán)限被授權(quán)的幾種情況。
3.2.2 組件封裝
對(duì)應(yīng)用程序?qū)嵭薪M件封裝,通過“exporter”屬性定義,實(shí)現(xiàn)組件內(nèi)容是否被程序訪問的操作。若“exporter”屬性設(shè)置為否,則該組件只能被本身(或具有同一ID)程序訪問;否則能被其他程序訪問或調(diào)用。
3.2.3 程序簽名
Android系統(tǒng)中,所有的應(yīng)用程序必須有數(shù)字簽名,沒有數(shù)字簽名的程序安裝時(shí)會(huì)遭到拒絕。數(shù)字簽名通常作為標(biāo)識(shí)開發(fā)者或升級(jí)程序的依據(jù)。應(yīng)用程序的數(shù)字簽名可以是自簽名的,也可以是第三方機(jī)構(gòu)授權(quán)的。
3.3 其他保護(hù)機(jī)制
除Linux安全機(jī)制及Android特有安全機(jī)制外,系統(tǒng)的硬件、語言、手機(jī)載體等技術(shù)環(huán)境也實(shí)施了一些安全機(jī)制。例如,MMU(內(nèi)存管理單元)保證各進(jìn)程訪問自己的內(nèi)存空間,限制了特權(quán)提升;強(qiáng)制類型安全語言的應(yīng)用,阻止了變量的不當(dāng)或錯(cuò)誤的使用;移動(dòng)設(shè)備安全中引用AAA系統(tǒng),實(shí)現(xiàn)認(rèn)證、審計(jì)和授權(quán)的操作。
4 安全解決方案
盡管Android系統(tǒng)本身具有強(qiáng)大的安全機(jī)制,但也很難保證系統(tǒng)的絕對(duì)安全。結(jié)合Android系統(tǒng)存在的安全隱患及安全機(jī)制中的不足,提出以下幾個(gè)安全解決方案。
4.1 惡意軟件檢測(cè)系統(tǒng)的完善
目前,惡意軟件的侵入是Android的主要安全隱患,檢測(cè)惡意軟件是保證安全的重要方面?,F(xiàn)有的檢測(cè)系統(tǒng)主要包括異常檢測(cè)和特征檢測(cè)兩個(gè)方面。特征檢測(cè)僅能對(duì)已存在的惡意軟件進(jìn)行檢測(cè),對(duì)新的惡意軟件則無法檢測(cè),當(dāng)今一些移動(dòng)終端通常采用此方式。異常檢測(cè)通過將系統(tǒng)指標(biāo)參數(shù)與惡意軟件產(chǎn)生的系統(tǒng)指標(biāo)參數(shù)進(jìn)行對(duì)比,進(jìn)而找出新的惡意軟件,此檢測(cè)方式極具實(shí)際意義。故對(duì)惡意軟件檢測(cè)系統(tǒng)的不斷完善勢(shì)在必行。
4.2 加強(qiáng)Android自身安全建設(shè)
Android系統(tǒng)即使安全性很高,也難免存在漏洞,故要不斷加強(qiáng)系統(tǒng)自身安全建設(shè)(如數(shù)據(jù)加密、遠(yuǎn)程管理、郵件過濾等),不斷推出強(qiáng)化安全套件,以提高系統(tǒng)的安全性。
4.3 提高終端用戶的安全意識(shí)
再安全的系統(tǒng),也必然存在漏洞,這就需要用戶提高各自的安全意識(shí)(如安裝安全保護(hù)軟件,對(duì)不必要軟件進(jìn)行卸載,減少藍(lán)牙、GPS及WiFi的使用,程序下載到安全的應(yīng)用程序商店等),以達(dá)到安全的目的。
5 結(jié)論
Android系統(tǒng)是當(dāng)前最為流行的開放式操作系統(tǒng),被廣泛應(yīng)用到各移動(dòng)終端中,這就對(duì)系統(tǒng)安全提出了更高的要求。只有不斷加強(qiáng)自身安全機(jī)制建設(shè),不斷對(duì)惡意軟件檢測(cè)系統(tǒng)進(jìn)行完善,不斷提高用戶的安全意識(shí),以及綜合運(yùn)用各種安全手段,Android系統(tǒng)才能越來越安全地為人們提供服務(wù)。
參考文獻(xiàn)
[1] Android. A new Android market for phones[EB/OL]. (2010-11-03)[2011-07-01].http://www. android.com.
[2] ENCK W, ONGTANG M, MCDANIEL P. Understanding Android security[J]. IEEE Security and Privacy, 2009,7(01):50-57.
[3] 蔣紹林,王金雙,張濤,等.Android安全研究綜述[J].計(jì)算機(jī)應(yīng)用與軟件,2012(10):205-210.
[4] 李凡.Android系統(tǒng)安全機(jī)制的分析與增強(qiáng)[D].武漢:華中科技大學(xué),2012.
[5] 廖明華,鄭力明.Android安全機(jī)制分析與解決方案初探[J].科學(xué)技術(shù)與工程,2011,11(26):6350-6355.
[6] 宋杰,黨李成,郭振朝,等.Android OS手機(jī)平臺(tái)的安全機(jī)制分析和應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(06):152-155.