国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Android安全機(jī)制及應(yīng)用軟件安全性的研究

2013-08-15 00:49李文龍王靈莉
關(guān)鍵詞:進(jìn)程應(yīng)用程序短信

李文龍 王靈莉

(中國(guó)海洋大學(xué)信息科學(xué)與工程學(xué)院,青島 266100)

1 概述

Android是以Linux為內(nèi)核的開放式的手機(jī)操作系統(tǒng),采用了整合的策略思想,包括底層Linux操作系統(tǒng)、中間層的中間件和上層的Java應(yīng)用程序。Android系統(tǒng)是由應(yīng)用程序?qū)?、?yīng)用程序框架層、Android程序庫、Android運(yùn)行庫、Linux內(nèi)核層組成的。

應(yīng)用程序?qū)樱簯?yīng)用程序包包括E-mail客戶端、SMS短消息、日歷、地圖、瀏覽器、聯(lián)系人管理程序等。

應(yīng)用程序框架層:開發(fā)者完全可以訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序架構(gòu)用來簡(jiǎn)化組件軟件的重用,任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其他的應(yīng)用程序都可以使用其發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應(yīng)用程序重用機(jī)制使得組件可以被用戶替換。

Android程序庫層:各種不同組件所使用的C/C++庫集。該庫通過Android應(yīng)用程序框架為開發(fā)者提供服務(wù)。主要包括:系統(tǒng)C庫、媒體庫、Surface Manager、LibWebCore、SGL、SQLite等。

Android運(yùn)行庫層:核心庫提供了Java編程語言核心庫的大多數(shù)功能。由Dalvik Java虛擬機(jī)和基礎(chǔ)的Java類庫組成。

Linux內(nèi)核層:核心系統(tǒng)服務(wù)依賴于Linux 2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件堆棧之間的硬件抽象層。

2 Android的安全機(jī)制

Android是一個(gè)支持多任務(wù)的系統(tǒng),而且每一個(gè)應(yīng)用程序或者是系統(tǒng)程序都只在自己的進(jìn)程中運(yùn)行。在一定程度上,由于Android采用了Linux內(nèi)核,每一個(gè)應(yīng)用程序都會(huì)被分配用戶和組群ID號(hào),在這種情況下,系統(tǒng)和應(yīng)用程序之間的安全性就大大加強(qiáng)了。而且Android對(duì)于像修改系統(tǒng)文件等的特殊操作進(jìn)行了限制,只有那些得到用戶允許的應(yīng)用程序才能夠進(jìn)行。在Android的框架層,谷歌已經(jīng)綁定了幾種安全機(jī)制。這些安全機(jī)制大致可以歸為三類:Linux機(jī)制,運(yùn)行環(huán)境特性和Android固有機(jī)制。

2.1 Linux機(jī)制

每個(gè)安裝在Android設(shè)備上的應(yīng)用程序,Android就會(huì)給予一個(gè)UID(user ID)。這個(gè)UID可連結(jié)到該應(yīng)用程序的 AndroidManifest.xml檔案的內(nèi)容。所以用戶在安裝應(yīng)用程序時(shí),就可以在屏幕上查看這個(gè) AndroidManifest.xml檔案的內(nèi)容。通過查看這個(gè)檔案,用戶可以了解到應(yīng)用程序的目的、權(quán)限等。當(dāng)用戶接受這個(gè)應(yīng)用程序的意圖、權(quán)限說明之后,Android才進(jìn)行安裝,并給它一個(gè)UID。如果在應(yīng)用程序執(zhí)行期間有越軌(企圖做出非權(quán)限范圍)的行為時(shí),用戶將會(huì)得到Android的警告訊息。而且Android還引入了沙箱的概念來實(shí)現(xiàn)應(yīng)用程序之間分離并且具有允許或拒絕一個(gè)應(yīng)用程序訪問另一個(gè)應(yīng)用程序資源的權(quán)限。

Android應(yīng)用程序運(yùn)行在它們自己的Linux進(jìn)程上,并被分配一個(gè)惟一的UID。默認(rèn)情況下,運(yùn)行在基本沙箱進(jìn)程中的應(yīng)用程序沒有被分配權(quán)限,因而防止了此類應(yīng)用程序訪問系統(tǒng)文件或資源文件。但是Android應(yīng)用程序可以通過AndroidManifest.xml檔案請(qǐng)求權(quán)限或者與其他受信任的應(yīng)用程序運(yùn)行在同一進(jìn)程中,從而共享對(duì)其數(shù)據(jù)資源的訪問,這樣,Android應(yīng)用程序就可以允許其他應(yīng)用程序訪問其資源。這就像在通信錄中調(diào)用短信應(yīng)用給一個(gè)聯(lián)系人發(fā)短信,然后可以編輯短信、發(fā)送短信、也可以在短信中添加一些資源作為附件。雖然短信是通過通信錄調(diào)用的,但是在通信錄中不能直接進(jìn)行編輯短信,發(fā)送短信等操作,也不能訪問那些短信應(yīng)用能訪問的資源。

在Android系統(tǒng)中,對(duì)文件(包括應(yīng)用程序文件和系統(tǒng)文件)的訪問都要遵循Linux許可機(jī)制。在Android中的每一個(gè)文件都會(huì)被賦予用戶和組群ID,還有能代表其屬性的三元組-rwx。在三元組中,第一個(gè)元素代表擁有人的權(quán)限,第二個(gè)元素代表同組群的權(quán)限,第三個(gè)代表其他非本組群的權(quán)限。一般來說Android的系統(tǒng)文件的所有者都是系統(tǒng)或者root用戶,而應(yīng)用程序文件的所有者都是應(yīng)用程序指定的用戶。對(duì)不同文件的訪問權(quán)限是有Linux的用戶管理機(jī)制所制訂的,換句話說,對(duì)同一個(gè)文件的訪問權(quán)限,不同的用戶是不相同的。同樣的道理,由于用戶ID不同,普通用戶不能像操作應(yīng)用程序一樣操作系統(tǒng)文件,這樣也就保護(hù)系統(tǒng)文件免受破壞。而由應(yīng)用程序所創(chuàng)建的文件,由于用戶ID不同,其他的應(yīng)用程序是不能訪問的,除非通過sharedUserID,多個(gè)應(yīng)用程序分享同一個(gè)ID,這樣就能陪著多個(gè)應(yīng)用程序到一個(gè)進(jìn)程內(nèi),相互之間就能訪問數(shù)據(jù)。

另一方面,由于系統(tǒng)鏡像是以只讀形式掛載的,以上說提及的各種安全措施的安全性就又進(jìn)一步加強(qiáng)了。而且,重要的可執(zhí)行文件和配置文件都存儲(chǔ)在ramdisk(也是只讀的)或者系統(tǒng)鏡像里,就算在厲害的黑客,在沒有得到root權(quán)限之前也是不能替換或者修改重要文件的。

2.2 運(yùn)行環(huán)境

一個(gè)現(xiàn)代操作系統(tǒng)的必要條件,是內(nèi)存管理單元--對(duì)進(jìn)程分配不同的虛擬內(nèi)存空間的硬件設(shè)備。進(jìn)程只能訪問自身分配的內(nèi)存空間,而不能訪問其它進(jìn)程所占用的內(nèi)存空間。因此,進(jìn)程的權(quán)限提升的可能性受到限制,因?yàn)槠洳荒苓\(yùn)行在系統(tǒng)特權(quán)級(jí)內(nèi)存空間。

類型的安全性所指的是系統(tǒng)所用編程語言的特性。Android系統(tǒng)所用的Java語言可以說是目前最安全的一種程序設(shè)計(jì)語言。Java的安全在語言級(jí)上提供了良好的安全措施,主要是:嚴(yán)格遵循面向?qū)ο蟮囊?guī)范、無指針運(yùn)算、數(shù)組邊界檢查、強(qiáng)制類型轉(zhuǎn)換、語言對(duì)線程安全的支持。此外,java的安全還通過編譯器、檢驗(yàn)器、類裝載器、建立安全策略等方式保證了java程序的安全性。

2.3 Android固有機(jī)制

在Android系統(tǒng)中,應(yīng)用程序?qū)幼钪匾陌踩珯C(jī)制就是權(quán)限控制。這種權(quán)限控制能夠有效的限制應(yīng)用程序只能進(jìn)行權(quán)限所賦予的操作。應(yīng)用程序的權(quán)限是由包管理器在安裝時(shí)賦予的,在運(yùn)行時(shí)由應(yīng)用程序框架層執(zhí)行權(quán)限控制。在Android系統(tǒng)中大約有一百個(gè)內(nèi)建的權(quán)限,這些權(quán)限控制如下的操作:撥號(hào)(CALL_PHONE)、拍照(CAMERA)、訪問互聯(lián)網(wǎng)(INTERNET)、鍵值監(jiān)聽(READ_INPUT_STATE)、編寫短信(WRITE_SMS)等。任何一個(gè)應(yīng)用程序都需要在安裝的時(shí)候在配置文件(AndroidManifest.xml)中聲明所要取得的權(quán)限。每一種權(quán)限都有一個(gè)保護(hù)級(jí)別,而每一種保護(hù)級(jí)別則代表了此種權(quán)限對(duì)于系統(tǒng)和其他進(jìn)程的威脅。保護(hù)級(jí)別總共分為四種:normal,dangerous ,signature ,signatureorsystem。normal的權(quán)限只要申請(qǐng)了就可以使用;dangerous的權(quán)限在安裝時(shí)需要用戶確認(rèn)才可以使用;signature和signatureorsystem的權(quán)限需要使用者的app和系統(tǒng)使用同一個(gè)數(shù)字證書。

通過組件封裝,應(yīng)用程序的內(nèi)容能被其它程序訪問。除此之外,Android組件內(nèi)容不允許被其它程序訪問。這種功能主要通過組件中定義讀?。╡xported)操作。如果設(shè)置為否,則組件只能被程序本身或擁有同一ID的程序訪問。反之,則可以被其它應(yīng)用程序調(diào)用或訪問。

Android中每一個(gè)程序都被打包成apk格式以方便安裝。apk文件與 Java標(biāo)準(zhǔn) jar文件相似,它包含了應(yīng)用程序所需的全部代碼。apk文件也包括所有非代碼資源文件,如圖片、聲音等。Android要求所有應(yīng)用程序都經(jīng)過數(shù)字簽名認(rèn)證。簽名文件通常是 Android確認(rèn)不同應(yīng)用程序是否來自同源開發(fā)者的依據(jù)。

3 安全隱患

從上面的分析來看,Android已經(jīng)內(nèi)置了各種安全機(jī)制來保護(hù)系統(tǒng)安全和用戶隱私。一個(gè)應(yīng)用程序在未獲得權(quán)限的情況下不能訪問系統(tǒng)文件和用戶文件,更不能修改這些文件。但是這種看似完美的權(quán)限機(jī)制也存在著安全隱患。Android系統(tǒng)相比IOS、Windows Phone等手機(jī)操作系統(tǒng)來說,其優(yōu)勢(shì)在于Android是一款開放式的手機(jī)操作系統(tǒng)。所謂開放式操作系統(tǒng)就是源碼公開,用戶可以在此基礎(chǔ)之上做相應(yīng)修改。對(duì)于大多數(shù)Android手機(jī)使用者來說,買回來手機(jī)的第一件事就獲取手機(jī)的root權(quán)限,刷人自己喜歡的rom,把手機(jī)打造成獨(dú)一無二的的樣式,而非IOS等的千篇一律。并且在各大論壇上就能免費(fèi)的下到最新的應(yīng)用程序。這也許就是Android的魅力所在,但是絕大多數(shù)的用戶在獲得root權(quán)限,安裝這些免費(fèi)軟件的時(shí)候根本不會(huì)在意Android的應(yīng)用程序所取得的權(quán)限,而這恰恰將用戶和手機(jī)陷入各種安全隱患之中。

通過專業(yè)反編譯工具Java Decomplier對(duì)應(yīng)用程序源碼分析后就能清楚的得知有些應(yīng)用程序所隱含的目的。在對(duì)常用的100個(gè)應(yīng)用程序反編譯分析得出,有13個(gè)應(yīng)用程序具有竊取用戶信息的特質(zhì)。

在這些竊取用戶信息的程序中主要是針對(duì)用戶的手機(jī)號(hào)碼,手機(jī)IMIE碼和位置信息。而這些信息的獲取都是需要獲得權(quán)限的,這正是Android的核心安全機(jī)制所在。但是大多數(shù)用戶最為關(guān)心的是實(shí)用和方便,并不在意權(quán)限的分配,這就使其淪為安全隱患。加之地下灰色產(chǎn)業(yè)鏈利潤(rùn)的驅(qū)動(dòng)之下,使得這些竊取用戶信息的應(yīng)用程序更具有商業(yè)價(jià)值。

結(jié)語

本文在對(duì)目前市場(chǎng)占有率第一的Android系統(tǒng)的安全機(jī)制進(jìn)行了分析,對(duì)其系統(tǒng)架構(gòu)和存在的安全隱患進(jìn)行了介紹。不可否認(rèn),Android手機(jī)操作系統(tǒng)得到了世界范圍內(nèi)的喜愛。Android手機(jī)用戶不在局限于單一的系統(tǒng)樣式,不在需要購(gòu)買價(jià)格不菲的游戲或者應(yīng)用,但是手機(jī)用戶應(yīng)該清楚的認(rèn)識(shí)到這免費(fèi)的午餐中所存在的隱患。Android是一款非常出色的智能手機(jī)操作系統(tǒng),在其快速發(fā)展中不可避免的存在不完善的地方,相信google也會(huì)在今后的發(fā)展制定出有效得應(yīng)用程審核和管理機(jī)制,這樣就能減少用戶的損失。

[1]郭宏志.Android應(yīng)用開發(fā)詳解.北京:電子工業(yè)出版社,2010.

[2]Shabtai A,Fledek Y,Kanonov U,et al.GoogleAndroid:acomprehensive security assessment.IEEE Security&Privacy,2010:35-38.

[3]Burns J.Developing Secure Mobile Applications for Android[R].Technical Report,iSEC,2008.

[4]Enck W,Ongtang M,McDaniel P.Understanding android security.IEEE Security&Privacy,2009;7(1):53-54.

猜你喜歡
進(jìn)程應(yīng)用程序短信
債券市場(chǎng)對(duì)外開放的進(jìn)程與展望
刪除Win10中自帶的應(yīng)用程序
道歉短信
代發(fā)短信
社會(huì)進(jìn)程中的新聞學(xué)探尋
我國(guó)高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
三星電子將開設(shè)應(yīng)用程序下載商店
“八一”節(jié)日短信之一
微軟軟件商店開始接受應(yīng)用程序