◆王 喆
?
Android移動終端數據安全檢測方法研究
◆王 喆
(核工業計算機應用研究所 北京 100048)
移動終端數據安全一直是信息安全防護體系的薄弱點。實施數據安全檢測可及時發現終端設備敏感信息存在的安全隱患,有效防范信息泄露、賬號竊取及數據污染。但受移動終端軟件高開放性、低準入性以及設備多樣性的影響,很難形成統一的數據安全檢測標準和方法。本文以目前市場占有率較高的Android移動終端數據安全為研究對象,根據敏感信息機密性、完整性、可用性原則,分析了移動終端數據存儲和傳輸兩個重要環節中的安全防護要素,并基于此研究提出了一種Android移動終端數據安全檢測評價方法。
信息安全;移動應用安全;企業業務安全;數據安全
隨著互聯網及移動通信的匯聚融合,移動終端互聯網應用已融入人類世界的各個層面。人們在享受移動辦公、移動支付、網絡社交及資訊、娛樂等便利的同時,也面臨著更大的數據安全威脅和隱患。(1)開放平臺特性造成移動終端系統本身存在諸多漏洞,為病毒、木馬的侵入提供了條件。截止到2017年底,CNNVD收錄Andorid系統漏洞1082個[1],抽樣調查顯示,每一移動終端出廠前平均包含5個未修復漏洞,高危及以上漏洞超過90%,并且數量成快速增加的趨勢。(2)軟件APP的準入門檻低,安全防護技術滯后,難以有效遏制惡意程序的傳播擴散。目前Android平臺有近300萬個惡意程序,流氓行為類居多[2],其次是惡意扣費類、資費消費類,惡意程序危害巨大,可為其他惡意行為創造進入條件,是當前移動終端最大的安全隱患。③病毒、木馬、釣魚網站泛濫,移動終端成為網絡攻擊的新目標。據某安全公司監測數據顯示,僅2017年上半年Android病毒數已超過1000萬,釣魚網站攻擊事件超過3000萬起。除此之外,針對移動通信過程的新攻擊手段也層出不窮,CSFB(電路切換回退,4G LTE網絡中的安全漏洞)、Broadpwn(wifi基帶漏洞)都可能引發嚴重的安全事件[3]。
移動終端安全防護的重心是數據安全,數據安全檢測是防范敏感信息數據防泄漏和抗污染的手段之一。然而,目前多數安全檢測類產品僅提供對移動終端系統和應用的自動化檢測服務,對其敏感信息數據并未做更多細致的過濾分析和保護,無法真正保證數據存儲和傳輸安全;同時,考慮市場競爭、技術發展以及操作難度等因素,國家層面并未就移動終端數據安全檢測制定單獨統一的標準規范和強制合規性要求,生產企業和應用企業只能按照一些行標條款制定自己產品和應用場景的安全基線,缺乏有效的檢測手段和方法。因此,在移動終端數據安全問題日益嚴重的今天,相應安全檢測方法研究無論是技術需求還是規范標準的探索都是迫切且必要的。本文以市場占有率較高的Android移動終端數據安全為研究對象,通過分析數據靜態存儲和動態傳輸兩個重要環節的安全因素,探索移動終端數據安全檢測評價方法。
數據存儲在開發中是使用最頻繁的,在這里主要介紹Android平臺中實現數據存儲的4種方式:(1)SharedPreferences是Android平臺上一個輕量級的存儲類,主要是保存一些常用的配置比如窗口狀態[4]。SharedPreferences對象與SQLite數據庫相比,免去了創建數據庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲五種簡單的數據類型,比如其無法進行條件查詢等;(2)關于文件存儲,Activity提供了openFileOutput()方法可以用于把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的;(3)SQLite是輕量級嵌入式數據庫引擎,它支持 SQL 語言,并且只利用很少的內存就有很好的性能。面向資源有限的設備,沒有服務器進程,所有數據存放在同一文件中跨平臺,可自由復制;(4)一個程序可以通過實現一個Content Provider的抽象接口將自己的數據暴露出去,外界可以通過這一套標準及統一的接口和程序里的數據打交道,可以讀取程序的數據,也可以刪除程序的數據,當然,中間也會涉及一些權限的問題。
大多數的Android應用程序都會使用HTTP協議來發送和接收網絡數據,而Android中主要提供了兩種方式來進行HTTP操作,HttpURLConnection和HttpClient。這兩種方式都支持HTTPS協議、以流的形式進行上傳和下載、配置超時時間、IPV6、以及連接池等功能。在2.3及以后的版本中,HttpURLConnection是最好的選擇,它簡單的API以及輕量級非常適合Android。壓縮和緩存機制降低了網路使用,提高了速度、節省了電量。但是在連接管理和線程安全方面,HttpClient仍然具有很大的優勢,其提供了大量的可擴展的穩定的APIs,但是在不破壞其兼容性的前提下,很難對其諸多API進行修改,升級和擴展。
加密算法在應用中可對關鍵信息進行保護。在代碼的關鍵點如登陸注冊等需要與后臺進行交互的位置使用加密算法,在一定程度上可以保護用戶信息以及關鍵代碼的實現。但加密算法強度過于簡單,或加密算法的完全缺失會暴露關鍵信息以及重要邏輯,威脅到用戶和企業的信息安全。
(1)數據存儲安全檢測評價方法
數據的存儲即數據本身的安全,主要是指采用現代密碼算法對數據進行主動保護,如數據保密、數據完整性、雙向強身份認證等[5]。如果敏感數據遭受到攻擊可能導致劫持、嗅探、破解、竊取等危害,導致非法修改和刷新、個人隱私數據的非法讀取訪問、病毒和惡意代碼的破壞,甚至移動終端被盜等。
對存儲數據的檢查要針對本地存儲的敏感數據,并且對其采用的加密措施進行判斷。Android本地數據存儲有四種方式:SharedPreferences存儲數據、文件存儲數據、SQLite數據庫存儲數據、ContentProvider存儲數據。每種數據的存儲對應相應的目錄和接口。通常需要首先查看相關目錄查看相關目錄(/data/data/[package_name]/Shared_Pref、/data/data/[package_name] /files、/data/data/[package_name]/database)里的數據文件,是否可以通過相關瀏覽工具直接打開;如果經過加密處理,分析數據讀寫操作處的加密和解密接口實現是否安全。因此,對于敏感的數據一定要先經過加密,并選擇加密算法盡量成熟、安全系數高的算法再存儲[6]。
本地通訊權限檢測要評估樣本是否存在超越權限的通訊或信息泄露行為。查看配置文件Mainfest.XML文件中是否有Broadcast,如果有,查看對應的avtivity中發送的是否為敏感信息,如果為敏感信息,查看是否經過加密,如果是加密后的數據,可以認為安全。如果未經加密,查看是否為sendOrderedBroadcast廣播機制,有沒有使用指定發送的Andro類,如果沒有指定,則敏感信息容易在廣播中被截獲,存在安全問題因此,要信息的傳遞方式進行改進,對權限進行最小化處理[7]。
完整性校驗檢查可通過對應用進行反編譯,查看是否具有反編譯防護措施;反編譯后回打包重簽名,查看應用是否可以重打包成功;二次打包運行后,查看應用是否有運行時的校驗;審計和跟蹤應用邏輯,查看應用校驗算法實現方式和保護機制,對起保護強度等級進行評估。因此,要對應用添加保護標志和校驗代碼,是反編譯和二次打包后的運行失效,并對應用進行加固處理。
(2)數據傳輸安全檢測評價方法
數據的傳輸安全適用各種網絡協議數據傳輸加密(如身份認證,交易接口,數據加密等)各種網絡協議,尤其在用戶登陸認證,交易接口等方面[8]。數據在傳輸過程沒有對關鍵數據進行加密處理,就容易面臨被獲取進行抓包分析、敏感信息隨意被分析篡改等風險,同時,也可以通過界面劫持和鍵盤監聽的方式截取到本地存入的數據,都會對應用的安全性造成影響。
遠程數據通訊協議對數據傳輸過程中的協議進行檢查。使用抓包工具,對于非http類型的協議建議使用Wireshark對協議進行解析,對于http/https協議使用fiddler。通過手動的方式,可以將連接在電腦上的手機通過給程序授權777讀寫權限,使用命令./data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap抓取數據,使用工具分析數據。獲取到的數據可以進行分析和修改,判斷其安全性。因此,在傳輸過程中敏感數據不能用明文傳輸,使用加密協議進行數據傳輸。
移動終端數據安全檢測以數據的安全視角評價終端安全,既能積極指導生產企業加強對自身終端、系統、APP軟件的數據安全防護,優化產品;又能幫助使用移動辦公的用戶企業了解數據在終端上可能存在的安全隱患,并根據自身實際應用場景確立安全基線。隨著移動互聯網應用的飛速發展,作為數據安全防護的組成部分,移動終端數據安全檢測技術和方法須緊跟產品和技術創新,形成科學系統的體系,從而促進和推動領域內相關標準的制定和實踐。
[1]中國信息安全測評中心.2017年度國家信息安全態勢評估.時事出版社,2017.
[2]互聯網安全中心.2017年Android惡意軟件專題報告,2017.
[3]康亮.移動通信終端IOT測試技術研究.工業和信息化部電信研究院,2013.
[4]李剛.瘋狂Android講義(第3版),2017.
[5]韓芳.針對2017年度數據安全的基本分析,2017.
[6]趙旭.數據加密算法分析與改進[D].哈爾濱工業大學,2012.
[7]郭霖.第一行代碼:Android(第2版),2017.
[8]孫洪濤.基于網絡傳輸的數據信息加密方法研究[D].吉林大學,2014.