• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2013-08-15 00:49:27李文龍王靈莉
      中國新技術(shù)新產(chǎn)品 2013年4期
      關(guān)鍵詞:系統(tǒng)文件進(jìn)程應(yīng)用程序

      李文龍 王靈莉

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

      1 概述

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

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

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

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

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

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

      2 Android的安全機制

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

      2.1 Linux機制

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

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

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

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

      2.2 運行環(huán)境

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

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

      2.3 Android固有機制

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

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

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

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

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

      結(jié)語

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

      [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.

      猜你喜歡
      系統(tǒng)文件進(jìn)程應(yīng)用程序
      債券市場對外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      刪除Win10中自帶的應(yīng)用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      中壓電子束焊工控機Windows NT系統(tǒng)文件丟失故障的修復(fù)方法
      從檔案管理角度談OA系統(tǒng)文件管理功能建設(shè)
      參花(下)(2018年8期)2018-05-14 09:01:15
      替換文件讓系統(tǒng)更加的得心應(yīng)手
      電腦迷(2014年2期)2014-04-29 19:21:13
      社會進(jìn)程中的新聞學(xué)探尋
      我國高等教育改革進(jìn)程與反思
      Linux僵死進(jìn)程的產(chǎn)生與避免
      關(guān)閉應(yīng)用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設(shè)應(yīng)用程序下載商店
      贺兰县| 洮南市| 承德市| 夏邑县| 威海市| 定兴县| 遂川县| 百色市| 佛教| 新昌县| 谢通门县| 邵东县| 隆子县| 临城县| 菏泽市| 佛学| 阳高县| 通州市| 湖北省| 且末县| 西乌珠穆沁旗| 余干县| 三亚市| 陆丰市| 洞口县| 洛浦县| 台南市| 陇西县| 巴马| 惠水县| 湄潭县| 崇信县| 梁河县| 灵川县| 上饶县| 沛县| 凤城市| 石柱| 铜梁县| 二连浩特市| 五寨县|