文/王碩鋒
隨著互聯網技術的快速發展,移動終端市場和應用市場發展也很迅速,諸多軟件廣泛應用在生活和工作中的各個方面。目前,安卓手機系統應用最為廣泛,在全世界手機市場中占比達到86.1%。但是,安卓系統所具有的不足之處也逐漸顯現出來,依據調查資料,在所調查的180款手機軟件中,存在安全漏洞的手機應用軟件占調查總數的98%。其存在原因主要是由于軟件開發人員在開發軟件時缺乏安全意識,對其所編寫的程序存在安全漏洞而這些應用程序在用戶使用過程中被惡意侵入,就可能對用戶的個人信息和財產帶來巨大的安全隱患。
據此,本文根據現階段存在的安卓系統漏洞問題,對應用層中的安全漏洞防護措施進行研究,總結出工作內容大致如下:
(1)依據國家信息安全漏洞共享平臺(CN-VD)、開源社區獲取的安卓應用漏洞相關資料,建立漏洞特征信息庫。
(2)在建立的漏洞特征信息庫基礎上,靜態檢測安卓應用中是否存在漏洞,并按照判斷規則來進行判斷。
(3)在判斷手機軟件存在漏洞前提下,針對不同的漏洞建立漏洞修復模型,根據修復模型通過安全加固形式在應用中植入代碼,從而增強手機軟件漏洞修復能力。
目前,安卓手機系統屬于開源移動操作系統,其系統構成部分主要分為應用系統、內核系統、框架系統以及系統運行庫四個部分。應用系統的主要功能是實現軟件頁面交互,在我們使用手機軟件過程中需要在不同軟件間進行切換,當我們每切換一個軟件應用時,應用系統可以保證每個軟件之間的平穩運行;框架系統的主要功能是為手機軟件提供運行環境;系統運行庫為安卓應用提供運行中所需的系統庫和虛擬機;內核系統的主要功能是保證操作系統內部存儲空間,例如對手機CPU進行管理。
系統工作人員根據安卓系統的四層架構,將應用漏洞細分為7類,分別為:運行時代碼加載漏洞、組件權限泄露漏洞、敏感數據泄露漏洞、Webview組件遠程代碼執行漏洞、弱隨機數漏洞、SQL注入漏洞、Intent注入漏洞。然而,這種分類方式并沒有將全部的漏洞形式都涵蓋在內。我國在2017年發布了安全漏洞分類標準,在標準中對分類的維度、原則等進行了明確的定義:漏洞的分類應當趨于合理,擁有一定的通用性和擴展性,不可單純的局限在符合漏洞評估上。
在對手機軟件進行安全檢測時,主要是通過靜態檢測方式進行,靜態檢測是指在手機處于待機狀態時,手機檢測系統對手機軟件應用進行檢測的一種方式。靜態檢測是目前手機安全漏洞檢測中效率最高的檢測方式,其優點是效率高、實用性強,能夠修復絕大部分應用層漏洞。
安全加固是由軟件開發人員提出的一種防護應用層漏洞的安卓系統漏洞加固理念,其主要加固方式是通過掃描系統中Dex文件來防止手機漏洞的出現,從而對系統加固起著一定的約束作用。在安全加固方面,陶元旭提出通過手機DexClassLoader文件內存動態加載技術來避免應用程序被逆向解析。但是現階段這些應用加固理念都沒有著眼于特定安全風險防護措施,只是一些通用的安全防護解決方案。
軟件漏洞指的是在軟件開發人員對開發手機軟件時,由于系統本身緣故,程序代碼中會存在一定的缺陷,這就是系統的Bug,通常也被成為軟件漏洞。而這些漏洞多是由于軟件中存在缺陷或是系統安全機制存在問題造成的,如果對其植入病毒就能夠對被攻擊者的主機形成控制,進而實現在攻擊者未授權的狀況中私自對被攻擊者的系統進行訪問和控制,盜取被攻擊者設備中的資料。而軟件漏洞一般能夠分成兩種形式:

圖1:安全防護系統架構
(1)功能性邏輯缺陷:功能缺陷主要是指軟件無法正常運行,其主要表現形式為軟件無法正常安裝、軟件運行錯誤、軟件安裝失敗等;
(2)安全性邏輯缺陷:安全性邏輯缺陷是軟件漏洞中較為嚴重的一種漏洞,如果不加以解決,一旦被不發分子利用則可能造成用戶個人信息泄露。其主要運行機制是黑客通過在手機軟件中植入惡意代碼,在軟件運行時惡意代碼自動讀取用戶個人信息,甚至能夠越過屬性限制進行信息的發送或調動系統內部的其他功能,并為被攻擊者帶來巨大的安全威脅。軟件漏洞的威脅主要有如下幾個方面:
某些惡意軟件會自動讀取用戶信息,在未經用戶同意的基礎上向外界泄露以獲取利益。而用戶的信息一旦被泄露,不單單會使使用者面臨廣告和垃圾信息的侵擾,還會面臨詐騙的可能性。
惡意西非軟件是指用戶在使用軟件過程時“惡意扣費”程序自動運行,在用戶不知情情況下運行軟件扣費程序,并禁止向用戶發送扣費信息。另外,惡意代碼還會裝作各種其他應用,在用戶進行安裝之后根據預設的指令惡意控制安裝者的移動終端設備。
捆綁軟件是目前所有應用層漏洞中最為常見的漏洞,其主要是在用戶下載軟件過程中捆綁程序自動下載某些推廣應用軟件,有時甚至強制用戶安裝。而對于移動終端設備的使用者而言,被捆綁安裝的軟件并不一定是他們所想要安裝的,并且這些捆綁安裝的軟件其安全性也有待商榷。因此,為更完善的保護自身的個人信息和財產,就需要對一些捆綁軟件和網站鏈接等謹慎對待。
借助在系統中嵌入的安全防護代碼,可以主動切斷攻擊路徑,以實現應用層漏洞的主動防御,提升移動應用的安全程度。通過制定安卓應用程序中的安全加載方案,其具體方式是通過加密原始Dex文件,并借助過殼程序展開動態加載,安全防護系統架構如圖1所示。其具體防護措施如下:
(1)根據WebView組件的應用風險,通過借助WebView系統組件的集成,設計具有漏洞統一屏蔽程序的接口,例 如 重 寫addJavascriptInterface接 口;對 searchBoxJavaBridge、accessibility和accessihilityTraversal等操作接口予以移除。
(2)對于Logcat信息泄露,由于應用可能在Logcat調試過程中對敏感信息進行泄露,所以有必要著眼于Logcat的原理進行跟蹤分析,在一些關鍵節點當中,比如native層的android_util_Log_println_native函數實行重新加載,避免日志信息被泄露。
(3)Zip解壓縮文件覆蓋風險,攻擊者借助檢查應用中未命名格式的文件,將文件名中帶有“../”進行設計,以突破安卓系統中的沙盒隔離體系。所以應當對ZipEntry類的getName方法展開重新編寫,對文件名中帶有“../”的文件實行過濾,以實現系統的安全防護。
智能手機的普及在為人們的生活帶來便捷的同時,也帶來了很大的安全隱患,現階段智能手機的安全防護主要還是靠人們的自我安全認知,主要包括個人信息的防護,不和未知信息交互、對手機運行狀況進行關注并日常進行安全檢查等。隨著移動互聯網技術的不斷發展,網絡攻擊的形式也開始變得更加難以防護,而一旦遭遇網絡攻擊,就需要及時通過終止信息交互和惡意進程的運行來避免損失的擴大,并借助法律武器來維護網絡環境的整潔。