2012年1月中旬,美國國家安全局(National Security Agency,NSA)正式發(fā)布第一版Android操作系統(tǒng)安全強(qiáng)化套件(Security Enhanced Android,SE Android),并隨之釋出一些相關(guān)源代碼;此舉被許多人譽(yù)為是Android裝置安全性向上提升的重要一大步。 事實(shí)上,美國國家安全局近來所發(fā)布的代碼叢輯(Code Base),對Wind River這類Android專家而言是再孰悉也不過的事物,因?yàn)閃ind River多年來均持續(xù)為類型廣泛的各式Android裝置設(shè)計(jì)并導(dǎo)入復(fù)雜的軟件安全層(Security Layer)。只不過,現(xiàn)在這些有助強(qiáng)化安全性的開發(fā)成果,在媒體描繪下似乎已被媲美為可解決所有安全疑慮的全方位解決方案,我認(rèn)為如此看待這些成果稍顯粗略,而且也過度簡化了Android安全性相關(guān)議題的復(fù)雜程度。 簡單來說,這套SE Android代碼叢輯并非萬靈丹,即使將其編譯并重新安裝至您的Nexus S裝置,也無法確保您的裝置就百分之百地“安全”。Wind River支持Android裝置至今已將近五年時間。這段期間的經(jīng)驗(yàn)累積,加上在移動Linux裝置領(lǐng)域身為技術(shù)先驅(qū)超過十年所沉淀的心得,讓W(xué)ind River得以歸納出以下四項(xiàng)最為關(guān)鍵的Android安全性議題要點(diǎn): (一)Android的安全性議題就好比一塊高難度的拼圖,是由許多困難的零碎片段構(gòu)成,必須費(fèi)心組裝才能開發(fā)出真正安全的Android裝置。 (二)安全性其實(shí)是一個以使用案例(Use Case)為基礎(chǔ)所推演出的概念。舉例來說,一部軍用移動通訊終端裝置對安全性的定義及軟硬件需求,就完全不同于運(yùn)行于車載信息娛樂應(yīng)用(In-Vehicle Infotainment,IVI)系統(tǒng)上的Android軟件堆疊(Software Stack) 。 (三)安全機(jī)制的建置,并非“一次性(Fire-and-Forget)”的做法。務(wù)必費(fèi)心建立一套可長可久的系統(tǒng),不但要足以抵擋新型態(tài)的攻擊,還要可以現(xiàn)地升級至最新的Android版本(必要的話,最好還能針對特定安全防護(hù)面向持續(xù)更新),同時又能繼續(xù)維持或進(jìn)一步強(qiáng)化其先前的安全層級設(shè)定。 (四)最后,光是宣稱一套軟件的建置與導(dǎo)入是“安全的”仍有所不足,必須要有一套測試框架(Framework)以及全自動測試腳本,可以讓待測裝置(DUT,Device Under Test)接受耐壓測試,或是對其模擬各類攻擊并提供可供量測的證明要點(diǎn)(Proof Points),以確保這些類型的攻擊不會影響我們賦予目標(biāo)裝置的主要使用案例。這套測試框架必須具備擴(kuò)充能力,可以快速針對已安裝最新版本Android平臺的裝置進(jìn)行驗(yàn)證;此外也必須具備足夠彈性,以便納入最新攻擊的腳本。 接下來,我們再深入些探討這四大要點(diǎn)。 根據(jù)我們的分析,Wind River已經(jīng)可以區(qū)隔出十幾項(xiàng)領(lǐng)域各異的Android安全性議題,其中包括了使用者身分辨識及驗(yàn)證、橫跨多重存儲位置(Memory Locations)的用戶數(shù)據(jù)保護(hù)、如何分別過濾接收及傳送之?dāng)?shù)據(jù)、執(zhí)行事件紀(jì)錄(Event Recording)以利遠(yuǎn)端稽核(Remote Audit)進(jìn)行、各類密碼技術(shù)(Cryptography)的選用及導(dǎo)入、可信賴路徑(Trusted Paths)、數(shù)據(jù)保護(hù)之版權(quán)管理(Rights Management)技術(shù)、虛擬化技術(shù)以及空(間)域/時(間)域(Spatial/Temporal Domain)區(qū)隔、可信賴開機(jī)(Trusted Boot)、惡意軟件(Malware)防制、固件(Firmware)更新保護(hù)、應(yīng)用程序安裝管理等等,族繁不及備載。 這邊有個例子,或許能讓您對上述內(nèi)容有更鮮明的理解。最近因探親之便,我剛好有機(jī)會參觀一艘舊式蘇聯(lián)潛.艇,這艘潛.艇內(nèi)建數(shù)百個控制閥門,加以熟練操作便可順利管控艇上各式系統(tǒng)。要順利操控這艘船,很明顯得具備兩方面的專業(yè),首先是對各控制閥門功能的明確掌握,另外則是該如何善加管控這些閥門的知識。 掌控Android系統(tǒng)就好比操控這艘潛水.艇,必須了解在什么時點(diǎn)下需要開啟哪個“閥門”,以及需要將它開啟到何種程度。此外,對應(yīng)用處理器(Application Processor)技術(shù)(例如ARM架構(gòu)或英特爾IA架構(gòu))的選用,也將對使用方式有所影響,Wind River Hypervisor這類嵌入式虛擬化技術(shù)就是一例。 由于Wind River多年來已針對廣泛類型的各式裝置設(shè)計(jì)并導(dǎo)入Android安全機(jī)制,故可充份滿足上述第二要點(diǎn)之需求。Wind River服務(wù)過的裝置包羅萬象,從客制化開發(fā)的企業(yè)用平板電腦(Tablet)、多媒體話機(jī)(Media Phone)、智能手機(jī)、通用型平板電腦、車載資訊娛樂應(yīng)用(IVI)系統(tǒng),乃至于公共安全應(yīng)用或是醫(yī)療用途的裝置。 有趣的是,縱觀所有已發(fā)布的Android計(jì)劃,當(dāng)中有一項(xiàng)共通之處,那就是若要真正確保Android安全性無虞,面對不同類型的裝置便得采取幾乎完全不同的方法才有效果,并無可供一體適用的單一作法。換言之,在導(dǎo)入安全技術(shù)的過程中,不同裝置的使用案例具有不同程度的影響力,也因此必須對Android做出不同的客制化調(diào)整,甚至連軟件驗(yàn)證的概念也會因而各異。 對此,若您希望有個具體范例可供了解,不妨參考McAfee和Wind River共同完成的一份技術(shù)白皮書,其中針對車載信息娛樂應(yīng)用列出了一系列安全考量要點(diǎn)。總之,關(guān)鍵在于必須了解各類裝置的使用案例,并將其與Android安全性相關(guān)的專業(yè)知識緊密結(jié)合。 至于固件管理,在移動應(yīng)用領(lǐng)域可說是再尋常也不過的概念。以O(shè)MA-DM(Open Mobile Alliance Device Management)為例,這項(xiàng)標(biāo)準(zhǔn)不但行之有年,更已被應(yīng)用至全球億萬臺移動終端裝置中。對Android裝置來說,現(xiàn)階段浮現(xiàn)的挑戰(zhàn)主要來自于智能手機(jī)世界之外;因?yàn)樵诔苿討?yīng)用外的其他應(yīng)用領(lǐng)域中,這類以營運(yùn)商為出發(fā)點(diǎn)的裝置、使用者、服務(wù)、以及策略管理(Policy Management)的相關(guān)基礎(chǔ)建設(shè),可說幾乎一概欠缺。 為滿足此項(xiàng)需求,我們開發(fā)出一整套Android解決方案加速開發(fā)軟件“Wind River Solution Accelerators for Android”,可提供固件管理功能,使Android裝置得以持續(xù)升級至最新版本Android安全性軟件。另一方面,眾多Wind River伙伴廠商也已開發(fā)出多款以提升安全性為主軸的策略管理解決方案,可用以因應(yīng)特定使用案例。 最后,請務(wù)必借助專業(yè)的測試方案來確認(rèn)Android安全機(jī)制是否已順利導(dǎo)入目標(biāo)裝置。當(dāng)然,某些測試內(nèi)容是可以手動完成的,但是若能善用業(yè)界領(lǐng)先的自動化測試工具,例如Wind River針對Android的自動化軟件測試框架(Framework for Automated Software Testing,F(xiàn)AST)解決方案,即可大幅提升測試效率并取得更具意義的測試結(jié)果。 尤其當(dāng)Android待測裝置(DUT)需要被置于超載的環(huán)境下測試時,善用工具的助益將更為顯著:例如您可能因?yàn)槠跍y試(Soak Test)的需要,而正在執(zhí)行一個加速的每日測試情境,此時您還可以同步執(zhí)行一連串預(yù)設(shè)的攻擊腳本,以模擬待測裝置的反應(yīng),而如此龐大的測試負(fù)載量,就需要好的工具來助您一臂之力。 所以,若要真正確保Android裝置安全無虞,事實(shí)上并沒有任何一體通用或一成不變的單一作法。新推出的Android操作系統(tǒng)安全強(qiáng)化套件(SE Android)可被視為一個新的元件,能協(xié)助我們開發(fā)出實(shí)用且合乎市場需要的軟件解決方案,以進(jìn)一步提升Android軟件疊層的安全性。 由于各類技術(shù)選擇五花八門,各類裝置衍生出的使用案例也包羅萬象,選擇實(shí)在過多之下,借助專家的智慧通常仍是必要之舉。如果您對于開發(fā)安全的Android裝置有任何疑問或顧慮,請不吝求助專業(yè)團(tuán)隊(duì),向外尋求資源通常是解決問題的最佳途徑! 作者:Chris Buerger,Wind River |