1、Android移動終端操作系統(tǒng)的架構(gòu)
Android是一個基于Linux內(nèi)核并使用Java語言編寫應(yīng)用的開源的移動終端操作系統(tǒng),主要用于便攜設(shè)備,如手機、平板電腦等。Android系統(tǒng)采用四層軟件疊層的架構(gòu)例,如圖1所示,至下往上分別為:
(1)Linux內(nèi)核層,以Linux 2.6內(nèi)核為基礎(chǔ),采用C語言開發(fā),提供了包括內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)管理、安全設(shè)置和硬件驅(qū)動等在內(nèi)的基本功能;
(2)運行庫層,由Android本地函數(shù)庫(C/C++庫文件),包括C標(biāo)準(zhǔn)庫、安全套接字協(xié)議、2D圖像引擎、數(shù)據(jù)庫引擎、瀏覽器內(nèi)核等,核心Java庫和Dalvik虛擬機組成,采用C++語言開發(fā);
(3)應(yīng)用程序框架層,提供完成應(yīng)用功能的基本類庫,包括豐富而又可擴展的視圖、內(nèi)容提供器、資源管理器、通知管理器和活動管理器,由java語言開發(fā);
(4)應(yīng)用層,包含各種應(yīng)用軟件,如短信、電話、郵件等,以Java作為編程語言。
在Android系統(tǒng)中Dalvik虛擬機非常重要,它允鈞Android操作系統(tǒng)為每一個應(yīng)用分配一個進(jìn)程,更確切的說,Android中每一個應(yīng)用都運行在一個單獨的Dalvik虛擬機中,每一個單獨的Dalvik虛擬機都運行在單獨的進(jìn)程中。如果一個應(yīng)用程序崩潰,它將不會影響到設(shè)備上運行的其他應(yīng)用程序。這樣意味著,任何應(yīng)用程序都不依賴于另一個。
另一方面,Android整個操作系統(tǒng)都工作在內(nèi)核空間,也就意味著設(shè)備驅(qū)動程序和內(nèi)核擴展程序(不是所有的)能夠完全訪問到硬件設(shè)備,并且運行在內(nèi)核空間的程序能夠搶占運行在用戶空間的程序。例如文件系統(tǒng)運行在用戶空間中,而顯示驅(qū)動運行在內(nèi)核空間,顯示驅(qū)動進(jìn)程能夠搶占文件系統(tǒng)進(jìn)程。
2、Android系統(tǒng)安全機制分析
Android系統(tǒng)在采用linux 2.6版本的內(nèi)核安全機制的基礎(chǔ)上,使用了谷歌公司專門為移動設(shè)備設(shè)計的增強安全機制,例如用戶標(biāo)識符(UID)、組別標(biāo)識符(GID)、permission機制和簽名機制,并使用類型安全的Java編程語言及其類庫來增強系統(tǒng)的安全性。
2.1 Android系統(tǒng)的UID與GID
Android是一個權(quán)限分離的系統(tǒng),建立在Linux操作系統(tǒng)已有的權(quán)限管理機制的基礎(chǔ)上,并對Linux操作系統(tǒng)的相關(guān)權(quán)限管理機制進(jìn)行了擴展。具體來說,Android為每一個應(yīng)用分配不同的UID和GID,使得不同應(yīng)用之間的訪問和私有數(shù)據(jù)達(dá)到相互隔離的目的。
Android系統(tǒng)中,每安裝一個應(yīng)用程序,系統(tǒng)就會為它分配一個獨特的UID。在Linux系統(tǒng)中,所有用戶也都有UID,其中,除了Root用戶對所有文件都有讀寫和執(zhí)行的權(quán)限之外(其UID等于0),每個用戶對于每個文件都有不同的權(quán)限,分別為R(可讀)、W(可寫)和X(可執(zhí)行)。Android系統(tǒng)中的每個應(yīng)用程序都會被分配給一個屬于自己的用戶標(biāo)識,每個應(yīng)用程序都有自己的UID,只有攜帶著該UID,才能存取其所涌蓋的有關(guān)資料。
GID也在Android系統(tǒng)的權(quán)限管理中發(fā)揮重要的作用。GID是一組整飯的集合,由框架在應(yīng)用安裝過程中生成,與應(yīng)用申請的具體權(quán)限相關(guān)。應(yīng)用每申請一個權(quán)限,GID就會加人一個對應(yīng)的整數(shù),因此可以將GID理解為一個應(yīng)用申請的所有權(quán)限的集合。對于普通應(yīng)用程序來說,其GID等于UID。Android中每個應(yīng)用都在不同的進(jìn)程中運行,每個進(jìn)程都有不同的UID和權(quán)限。Android系統(tǒng)使用沙箱的概念來實現(xiàn)應(yīng)用程序之間的分離和權(quán)限限制,系統(tǒng)為每個應(yīng)用程序創(chuàng)建一個沙箱,以防止它影響其它程序(或者其它程序影響它)。
2.2 Android系統(tǒng)的權(quán)限管理機制
權(quán)限許可(permission)是為保障Android系統(tǒng)的安全而設(shè)定的安全標(biāo)識,同時也是程序?qū)崿F(xiàn)某些特殊操作的基礎(chǔ)。Android系統(tǒng)提供的權(quán)限管理機制主要是用來對應(yīng)用可以執(zhí)行的某些具體操作進(jìn)行權(quán)限細(xì)分和訪問控制。
Android中的一個權(quán)限主要包含三個方面的信息:權(quán)限的名稱、屬于的權(quán)限組以及保護(hù)級別。其中,一個權(quán)限組是指把權(quán)限按照功能分成的不同集合,例如在 COST_MONEY權(quán)限組中包含android.permission.SEND_SMS, android.permission.CALL_PHONE等和費用相關(guān)的權(quán)限,而每個權(quán)限通過保護(hù)級別(protection Level)來標(biāo)識。Android定義了四個保護(hù)級別:normal、dangerous、signature, signature or system,不同的保護(hù)級別代表了程序要使用此權(quán)限時的認(rèn)證方式。比如,normal的權(quán)限只要申請了就可以使用;dangerous的權(quán)限在安裝時需要用戶確認(rèn)才可以使用。signature和signature or system的權(quán)限則需要使用者的應(yīng)用和系統(tǒng)使用同一個數(shù)字證書。
Android的權(quán)限許可機制強制限制應(yīng)用執(zhí)行某些操作。目前,Android擁有大約100個內(nèi)置的權(quán)限要求來限制應(yīng)用的相關(guān)操作,包括撥打電話(CALLPHONE)、照相(CAMERA )、使用網(wǎng)絡(luò)(INTERNET)、發(fā)送短信(SEND_SMS)等等。任何Android的應(yīng)用能夠申請默認(rèn)權(quán)限以外的額外權(quán)限,當(dāng)然在安裝過程中需要用戶確認(rèn)應(yīng)用所申請的額外權(quán)限。
一個基本的Android應(yīng)用程序如果沒有與其相關(guān)聯(lián)的權(quán)限,意味著它不能做任何影響用戶體驗或設(shè)備中數(shù)據(jù)的有害操作,用戶的“敏感”數(shù)據(jù)也就不會被某些未經(jīng)授權(quán)的程序所損害。更進(jìn)一步,不同的應(yīng)用程序運行在不同的沙箱中,這樣就算運行了惡意代碼,也僅僅只能破壞其所在的沙箱,對系統(tǒng)及用戶并不能造成很大的影響。
2.3 Android系統(tǒng)的簽名機制
Android系統(tǒng)的另一個安全措施是其簽名機制。Android中系統(tǒng)和應(yīng)用都是需要簽名的,簽名的主要作用是限制對于程序的修改,使其僅來自于同一來源。Android系統(tǒng)的簽名機制分兩個階段:包(package)掃描階段和權(quán)限創(chuàng)建階段。
包掃描階段需要進(jìn)行完整性和證書的驗證。普通包的簽名和證書必須先經(jīng)過驗證,即需要對manifest下的文件進(jìn)行完整性檢查,完整性檢查包括壓縮包(jar包)中的所有文件。如果是系統(tǒng)包的話,則需要使用AndroidMenifest. xml文件提取簽名和驗證信息。
權(quán)限創(chuàng)建階段主要對包進(jìn)行權(quán)限創(chuàng)建。如果該包來自系統(tǒng)應(yīng)用,則信任它,而且使用新的簽名信息去替換舊的信息。如果該包與其它包共享一個UID,并且共享UID在對應(yīng)的共享用戶(sharedUser)中保存的簽名與之不一致,那么簽名驗證失敗。
Android系統(tǒng)在安裝應(yīng)用程序時,對一個包的簽名驗證的主要邏輯是在JarVerifier.Java文件的verifyCertificate函數(shù)中實現(xiàn)的。其主要的思路是通過提取證書和簽名信息,獲取簽名算法等信息,然后按照之前對apk簽名的方法進(jìn)行計算,最后比較得到的簽名和摘要信息與apk中保存的內(nèi)容是否匹配。
如果是已安裝的程序進(jìn)行升級,Android系統(tǒng)則需要檢查新舊程序的簽名證書是否一致,如果不一致則會安裝失敗。而對于申請權(quán)限的保護(hù)級別為signature或者signature or system的,Android系統(tǒng)則會檢查權(quán)限申請者和權(quán)限聲明者的證書是否是一致的。
3、Android系統(tǒng)面臨的安全威脅的發(fā)展現(xiàn)狀
盡管Android巳經(jīng)擁有了較好的安全機制來保證系統(tǒng)安全,但是在巨大商業(yè)利益的激勵下,無數(shù)攻擊者針對系統(tǒng)及軟件漏洞,以各種方式對Android用戶展開了各種形式的攻擊。
2009年11月10日Android平臺出現(xiàn)了第一個惡意間諜軟件一Mobile Spy。隨后針對Android平臺的攻擊與其市場份額一樣,呈現(xiàn)了爆炸式的增長。根據(jù)網(wǎng)秦“云安全”監(jiān)側(cè)平臺統(tǒng)計數(shù)據(jù)顯示,2012年三季度共查殺到手機惡意代碼23375款(其中94%為Android平臺惡意代碼),環(huán)比增長92.7%,查殺款數(shù)超過2012年上半年總和(17676款)。三季度感染惡意代碼的智能手機總計991萬部,環(huán)比增長30.3%。
目前,Android系統(tǒng)面臨的惡意代碼種類多樣,危害方式及特點各異。惡意扣費是國內(nèi)最為常見的Android惡意代碼的主要功能,其中典型的惡意代碼是Randen.b,它通過發(fā)送扣費短信牟利,并能根據(jù)手機位置信息選擇不同SP服務(wù)商。此外,HippoSMS也是一款短信惡意代碼,它如果侵入用戶手機后會通過向一個硬編碼保險收費號碼發(fā)送短信,從而增加使用戶增加額外的手機費用。
而在偽裝方式上,惡意代碼多采用重新包裝的方式隱藏自己,比如DroidDream采用與合法應(yīng)用一起打包的方式來隱藏,當(dāng)用戶下載、安裝并運行了加載DroidDream的偽合法應(yīng)用時,DroidDream就會隨之啟動起來。與DroidDrean。相同,DroidKungFu也是采用重新包裝的方式隱藏自身,當(dāng)被感染的應(yīng)用被用戶啟動時,它首先收集用戶信息,然后采用HTTPPost的方式將數(shù)據(jù)發(fā)送給硬編碼的遠(yuǎn)程服務(wù)器。
惡意代碼一般采用遠(yuǎn)程服務(wù)器方式對其控制。比如RomSmsSender. a是一個潛藏在ROM里面的惡意代碼,會自動向遠(yuǎn)程服務(wù)器上傳用戶手機上的信息,包括手機IMEI、手機號碼、SD卡容量等隱私信息,并不斷試圖獲取手機root權(quán)限,進(jìn)行一系列高危操作。GamblerSMS也是一種間諜軟件,被描述為“短信間諜”,它的作用是監(jiān)視每一條進(jìn)出Android用戶手機的短信和打出的每一個電話。NickiBot是一款屬于NickiSpy家族的惡意代碼,不同的是它的遠(yuǎn)端服務(wù)器完全依賴于短消息對其進(jìn)行控制。而GoldDream惡意代碼則暗中監(jiān)視用戶收到的短信和呼入、打出的電話號碼,并且在用戶沒意識到的時候上傳到遠(yuǎn)程服務(wù)器,此外,它還可以從遠(yuǎn)程服務(wù)器獲取命令并且執(zhí)行相應(yīng)的操作。
總的來說,目前Android系統(tǒng)正遭遇巨大的安全挑戰(zhàn)和威脅,嚴(yán)重地威脅著用戶的使用安全,并且隨著Android系統(tǒng)市場份額的持續(xù)增加,安全威脅也必將進(jìn)一步增強。
4、Android系統(tǒng)安全威脅存在的原因分析
帶來Android系統(tǒng)安全威脅的原因種類多樣,具體而言,主要有以下幾點:
1)開放模式帶來的脆弱性
Android采用開放的應(yīng)用程序分發(fā)模式,比如采用Android應(yīng)用商店(Android Market)分發(fā)應(yīng)用,同時還允許用戶安裝來自于應(yīng)用商店以外的應(yīng)用源的應(yīng)用,比如國內(nèi)的安卓市場、機鋒市場等。在Android應(yīng)用商店中,當(dāng)應(yīng)用程序上傳之后,將會強制執(zhí)行安全檢查。然而,在其他Android應(yīng)用市場中,強制安全檢查可能沒有得到很好的執(zhí)行,Android應(yīng)用程序甚至能夠像PC軟件一般在各種網(wǎng)站上下載后拷貝到手機中安裝運行。
這種過度開放的分發(fā)模式,給了惡意代碼開發(fā)者入侵用戶手機的機會。惡意代碼開發(fā)者從Android應(yīng)用商店下載合法的熱門應(yīng)用,然后將它跟惡意代碼重新打包,再發(fā)布到其他應(yīng)用商店和網(wǎng)站。重新打包的偽合法應(yīng)用與原合法應(yīng)用雖然擁有不同的數(shù)字簽名,但是由于國內(nèi)的應(yīng)用市場或者手機論壇基本上都沒有相關(guān)的檢測手段,這使得Android的簽名機制形同虛設(shè)。根據(jù)騰訊安全實驗室公布的2012年第三季度數(shù)據(jù),從應(yīng)用市場或者手機論壇感染惡意代碼的Android用戶占所有被感染用戶的49%。
2)權(quán)限許可機制的問題
在Android的安全模型中,應(yīng)用程序的權(quán)限在其安裝時進(jìn)行聲明,并在之后不能改變。當(dāng)安裝應(yīng)用程序時,其所要求的權(quán)限列表將會在用戶面前呈現(xiàn),并讓用戶判斷這些權(quán)限是否是應(yīng)用完成正常功能需要的。如果一個應(yīng)用的權(quán)限要求過度,用戶可以選擇不安裝該應(yīng)用或者將該應(yīng)用標(biāo)記為可疑。這一機制似乎很好的控制了應(yīng)用對系統(tǒng)資源的訪問,防止了惡意代碼進(jìn)行超出正常應(yīng)用的操作。但是,這一機制依賴于用戶擁有評估正常應(yīng)用權(quán)限的能力,這顯然不合適,也不合理。
由于大多數(shù)用戶并不是開發(fā)者,因此他們對這一機制并不了解,甚至不會去理會這一機制。特別是,許多惡意代碼采用的是自動更新的方式下載安裝到用戶手機中。這種模式下,惡意代碼開發(fā)者首先發(fā)布一款不含惡意代碼的合法應(yīng)用,然后再提示用戶更斷,在更新中則攜帶惡意代碼,并要求更多的權(quán)限,由于用戶已經(jīng)使用并信任了之前的合法應(yīng)用,因此,這一方式很容易就入侵了用戶手機。
3)操作系統(tǒng)漏洞造成的攻擊
在任何復(fù)雜的軟件系統(tǒng)中,都必然有缺陷和安全漏洞,Android系統(tǒng)也一樣。Android系統(tǒng)采用沙箱來隔離應(yīng)用程序,使得惡意代碼僅能運行在自己所在的沙箱中,以達(dá)到保護(hù)系統(tǒng)的目的。另一方面,通常移動設(shè)備不會給予用戶系統(tǒng)的完全控制權(quán),如果要獲取Android系統(tǒng)的完全控制權(quán)就必須使用root權(quán)限。
但是Android系統(tǒng)本身存在很多漏洞,很多惡意代碼利用這些漏洞突破沙箱,獲取系統(tǒng)root權(quán)限。例如,惡意代碼DroidDream就是利用“Exploid”和“RageAgainstTheCage"來突破沙箱,獲取root權(quán)限。而用戶為了使用方便或者其他目的會主動root手機,這樣也給惡意代碼可乘之機。同時,root手機的唯一辦法就是利用漏洞,因此為了獲取root權(quán)限,某些正常應(yīng)用研究者也會去挖掘系統(tǒng)漏洞,同時也不希望現(xiàn)有漏洞被修補。這就促進(jìn)了惡憊代碼的發(fā)展。一旦獲取了root權(quán)限,不但可以做到應(yīng)用程序的靜默安裝,還可以訪問其他應(yīng)用程序以及隨意讀寫用戶隱私數(shù)據(jù),修改或側(cè)除非其他應(yīng)用程序的文件等等,對用戶的Android手機造成安全隱患。
4)應(yīng)用軟件漏洞帶來的攻擊
軟件漏洞是指應(yīng)用程序本身設(shè)計實現(xiàn)時存在的問題,使得惡憊代碼開發(fā)者能夠利用這些漏洞攻擊安裝了這些應(yīng)用的手機。Web瀏覽器是其中最為危險的漏洞軟件。Android Web瀏覽器以及能夠通過瀏覽器裝載的軟件(如Flash player, PDF閱讀器、或者圖片瀏覽器)包含了大量可供惡意網(wǎng)頁攻擊的漏洞代碼,例如webkit(流行的渲染引攀)。同時Web瀏覽器又是Android必不可少的組成部分以及用戶使用時間最長的應(yīng)用,因此危害極大。而且瀏覽器漏洞也很難修復(fù),因為移動瀏覽器和其相關(guān)的庫一般是跟固件同版本的,升級很慢。
此外,為了獲得更好的、更加定制化的服務(wù)或者為了體驗新的服務(wù),據(jù)統(tǒng)計,還有大量的Android用戶喜歡刷機。這使得市場上出現(xiàn)了各種各樣的由個人提供的定制優(yōu)化版本。這些發(fā)布在手機論壇的ROM役有任何的審核機制,并且對于惡意代碼制作者而言,將惡意代碼嵌人到定制ROM中能夠使得惡意代碼更加隱蔽、功能更加強大。根據(jù)騰訊安全實驗室的數(shù)據(jù),2012年第三季度,通過內(nèi)嵌 ROM的方式感染惡意代碼的Android用戶大約占所有感染用戶的10%。
5、Android安全的未來發(fā)展需求
綜上所述,盡管Android系統(tǒng)提供了三大安全機例來為系統(tǒng)安全保駕護(hù)航,但是在巨大利益的驅(qū)動下,Android系統(tǒng)已經(jīng)攀露出了巨大的安全威脅,嚴(yán)重的威脅著用戶的使用安全,并且隨著Android系統(tǒng)市場份額的增加,安全威脅也必將進(jìn)一步增強。因此,在Android系統(tǒng)現(xiàn)有安全機制之外,急需新的安全機制來應(yīng)對開放模式、權(quán)限許可機制、操作系統(tǒng)漏洞、應(yīng)用軟件漏洞等安全威脅。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:Android移動終端操作系統(tǒng)的安全分析
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/10839513668.html