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