文/王碩鋒
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,移動終端市場和應(yīng)用市場發(fā)展也很迅速,諸多軟件廣泛應(yīng)用在生活和工作中的各個方面。目前,安卓手機(jī)系統(tǒng)應(yīng)用最為廣泛,在全世界手機(jī)市場中占比達(dá)到86.1%。但是,安卓系統(tǒng)所具有的不足之處也逐漸顯現(xiàn)出來,依據(jù)調(diào)查資料,在所調(diào)查的180款手機(jī)軟件中,存在安全漏洞的手機(jī)應(yīng)用軟件占調(diào)查總數(shù)的98%。其存在原因主要是由于軟件開發(fā)人員在開發(fā)軟件時缺乏安全意識,對其所編寫的程序存在安全漏洞而這些應(yīng)用程序在用戶使用過程中被惡意侵入,就可能對用戶的個人信息和財產(chǎn)帶來巨大的安全隱患。
據(jù)此,本文根據(jù)現(xiàn)階段存在的安卓系統(tǒng)漏洞問題,對應(yīng)用層中的安全漏洞防護(hù)措施進(jìn)行研究,總結(jié)出工作內(nèi)容大致如下:
(1)依據(jù)國家信息安全漏洞共享平臺(CN-VD)、開源社區(qū)獲取的安卓應(yīng)用漏洞相關(guān)資料,建立漏洞特征信息庫。
(2)在建立的漏洞特征信息庫基礎(chǔ)上,靜態(tài)檢測安卓應(yīng)用中是否存在漏洞,并按照判斷規(guī)則來進(jìn)行判斷。
(3)在判斷手機(jī)軟件存在漏洞前提下,針對不同的漏洞建立漏洞修復(fù)模型,根據(jù)修復(fù)模型通過安全加固形式在應(yīng)用中植入代碼,從而增強(qiáng)手機(jī)軟件漏洞修復(fù)能力。
目前,安卓手機(jī)系統(tǒng)屬于開源移動操作系統(tǒng),其系統(tǒng)構(gòu)成部分主要分為應(yīng)用系統(tǒng)、內(nèi)核系統(tǒng)、框架系統(tǒng)以及系統(tǒng)運(yùn)行庫四個部分。應(yīng)用系統(tǒng)的主要功能是實(shí)現(xiàn)軟件頁面交互,在我們使用手機(jī)軟件過程中需要在不同軟件間進(jìn)行切換,當(dāng)我們每切換一個軟件應(yīng)用時,應(yīng)用系統(tǒng)可以保證每個軟件之間的平穩(wěn)運(yùn)行;框架系統(tǒng)的主要功能是為手機(jī)軟件提供運(yùn)行環(huán)境;系統(tǒng)運(yùn)行庫為安卓應(yīng)用提供運(yùn)行中所需的系統(tǒng)庫和虛擬機(jī);內(nèi)核系統(tǒng)的主要功能是保證操作系統(tǒng)內(nèi)部存儲空間,例如對手機(jī)CPU進(jìn)行管理。
系統(tǒng)工作人員根據(jù)安卓系統(tǒng)的四層架構(gòu),將應(yīng)用漏洞細(xì)分為7類,分別為:運(yùn)行時代碼加載漏洞、組件權(quán)限泄露漏洞、敏感數(shù)據(jù)泄露漏洞、Webview組件遠(yuǎn)程代碼執(zhí)行漏洞、弱隨機(jī)數(shù)漏洞、SQL注入漏洞、Intent注入漏洞。然而,這種分類方式并沒有將全部的漏洞形式都涵蓋在內(nèi)。我國在2017年發(fā)布了安全漏洞分類標(biāo)準(zhǔn),在標(biāo)準(zhǔn)中對分類的維度、原則等進(jìn)行了明確的定義:漏洞的分類應(yīng)當(dāng)趨于合理,擁有一定的通用性和擴(kuò)展性,不可單純的局限在符合漏洞評估上。
在對手機(jī)軟件進(jìn)行安全檢測時,主要是通過靜態(tài)檢測方式進(jìn)行,靜態(tài)檢測是指在手機(jī)處于待機(jī)狀態(tài)時,手機(jī)檢測系統(tǒng)對手機(jī)軟件應(yīng)用進(jìn)行檢測的一種方式。靜態(tài)檢測是目前手機(jī)安全漏洞檢測中效率最高的檢測方式,其優(yōu)點(diǎn)是效率高、實(shí)用性強(qiáng),能夠修復(fù)絕大部分應(yīng)用層漏洞。
安全加固是由軟件開發(fā)人員提出的一種防護(hù)應(yīng)用層漏洞的安卓系統(tǒng)漏洞加固理念,其主要加固方式是通過掃描系統(tǒng)中Dex文件來防止手機(jī)漏洞的出現(xiàn),從而對系統(tǒng)加固起著一定的約束作用。在安全加固方面,陶元旭提出通過手機(jī)DexClassLoader文件內(nèi)存動態(tài)加載技術(shù)來避免應(yīng)用程序被逆向解析。但是現(xiàn)階段這些應(yīng)用加固理念都沒有著眼于特定安全風(fēng)險防護(hù)措施,只是一些通用的安全防護(hù)解決方案。
軟件漏洞指的是在軟件開發(fā)人員對開發(fā)手機(jī)軟件時,由于系統(tǒng)本身緣故,程序代碼中會存在一定的缺陷,這就是系統(tǒng)的Bug,通常也被成為軟件漏洞。而這些漏洞多是由于軟件中存在缺陷或是系統(tǒng)安全機(jī)制存在問題造成的,如果對其植入病毒就能夠?qū)Ρ还粽叩闹鳈C(jī)形成控制,進(jìn)而實(shí)現(xiàn)在攻擊者未授權(quán)的狀況中私自對被攻擊者的系統(tǒng)進(jìn)行訪問和控制,盜取被攻擊者設(shè)備中的資料。而軟件漏洞一般能夠分成兩種形式:
圖1:安全防護(hù)系統(tǒng)架構(gòu)
(1)功能性邏輯缺陷:功能缺陷主要是指軟件無法正常運(yùn)行,其主要表現(xiàn)形式為軟件無法正常安裝、軟件運(yùn)行錯誤、軟件安裝失敗等;
(2)安全性邏輯缺陷:安全性邏輯缺陷是軟件漏洞中較為嚴(yán)重的一種漏洞,如果不加以解決,一旦被不發(fā)分子利用則可能造成用戶個人信息泄露。其主要運(yùn)行機(jī)制是黑客通過在手機(jī)軟件中植入惡意代碼,在軟件運(yùn)行時惡意代碼自動讀取用戶個人信息,甚至能夠越過屬性限制進(jìn)行信息的發(fā)送或調(diào)動系統(tǒng)內(nèi)部的其他功能,并為被攻擊者帶來巨大的安全威脅。軟件漏洞的威脅主要有如下幾個方面:
某些惡意軟件會自動讀取用戶信息,在未經(jīng)用戶同意的基礎(chǔ)上向外界泄露以獲取利益。而用戶的信息一旦被泄露,不單單會使使用者面臨廣告和垃圾信息的侵?jǐn)_,還會面臨詐騙的可能性。
惡意西非軟件是指用戶在使用軟件過程時“惡意扣費(fèi)”程序自動運(yùn)行,在用戶不知情情況下運(yùn)行軟件扣費(fèi)程序,并禁止向用戶發(fā)送扣費(fèi)信息。另外,惡意代碼還會裝作各種其他應(yīng)用,在用戶進(jìn)行安裝之后根據(jù)預(yù)設(shè)的指令惡意控制安裝者的移動終端設(shè)備。
捆綁軟件是目前所有應(yīng)用層漏洞中最為常見的漏洞,其主要是在用戶下載軟件過程中捆綁程序自動下載某些推廣應(yīng)用軟件,有時甚至強(qiáng)制用戶安裝。而對于移動終端設(shè)備的使用者而言,被捆綁安裝的軟件并不一定是他們所想要安裝的,并且這些捆綁安裝的軟件其安全性也有待商榷。因此,為更完善的保護(hù)自身的個人信息和財產(chǎn),就需要對一些捆綁軟件和網(wǎng)站鏈接等謹(jǐn)慎對待。
借助在系統(tǒng)中嵌入的安全防護(hù)代碼,可以主動切斷攻擊路徑,以實(shí)現(xiàn)應(yīng)用層漏洞的主動防御,提升移動應(yīng)用的安全程度。通過制定安卓應(yīng)用程序中的安全加載方案,其具體方式是通過加密原始Dex文件,并借助過殼程序展開動態(tài)加載,安全防護(hù)系統(tǒng)架構(gòu)如圖1所示。其具體防護(hù)措施如下:
(1)根據(jù)WebView組件的應(yīng)用風(fēng)險,通過借助WebView系統(tǒng)組件的集成,設(shè)計具有漏洞統(tǒng)一屏蔽程序的接口,例 如 重 寫addJavascriptInterface接 口;對 searchBoxJavaBridge、accessibility和accessihilityTraversal等操作接口予以移除。
(2)對于Logcat信息泄露,由于應(yīng)用可能在Logcat調(diào)試過程中對敏感信息進(jìn)行泄露,所以有必要著眼于Logcat的原理進(jìn)行跟蹤分析,在一些關(guān)鍵節(jié)點(diǎn)當(dāng)中,比如native層的android_util_Log_println_native函數(shù)實(shí)行重新加載,避免日志信息被泄露。
(3)Zip解壓縮文件覆蓋風(fēng)險,攻擊者借助檢查應(yīng)用中未命名格式的文件,將文件名中帶有“../”進(jìn)行設(shè)計,以突破安卓系統(tǒng)中的沙盒隔離體系。所以應(yīng)當(dāng)對ZipEntry類的getName方法展開重新編寫,對文件名中帶有“../”的文件實(shí)行過濾,以實(shí)現(xiàn)系統(tǒng)的安全防護(hù)。
智能手機(jī)的普及在為人們的生活帶來便捷的同時,也帶來了很大的安全隱患,現(xiàn)階段智能手機(jī)的安全防護(hù)主要還是靠人們的自我安全認(rèn)知,主要包括個人信息的防護(hù),不和未知信息交互、對手機(jī)運(yùn)行狀況進(jìn)行關(guān)注并日常進(jìn)行安全檢查等。隨著移動互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)攻擊的形式也開始變得更加難以防護(hù),而一旦遭遇網(wǎng)絡(luò)攻擊,就需要及時通過終止信息交互和惡意進(jìn)程的運(yùn)行來避免損失的擴(kuò)大,并借助法律武器來維護(hù)網(wǎng)絡(luò)環(huán)境的整潔。