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