洪瑤彥
摘要:手機應(yīng)用敏感行為元數(shù)據(jù)獲取并記錄是判斷應(yīng)用程序是否存在安全隱私行為的關(guān)鍵證據(jù)之一。目前對隱私泄露的主要關(guān)注在于對于敏感信息存儲和提取及敏感操作請求。當前敏感元數(shù)據(jù)并未完全考慮追蹤目的,故本文在深入理解安卓系統(tǒng)實現(xiàn)源代碼基礎(chǔ)上,從框架層提出能作為敏感操作及敏感存取的監(jiān)測點,利用虛擬機hook技術(shù)全面、精確地收集敏感信息并抽取行為元數(shù)據(jù)。
關(guān)鍵詞: 安卓系統(tǒng);元數(shù)據(jù);隱私保護;敏感行為;hook技術(shù)
中圖分類號:TP309 文獻標識碼:A 文章編號:1009-3044(2015)01-0188-02
1 問題提出與定義
為了保護用戶隱私,需知道敏感信息在手機中存儲方式,追蹤信息在系統(tǒng)運行時如何被采集并傳輸,應(yīng)用如何操作隱私信息。這些行為考量維度組成了敏感元數(shù)據(jù)。該文提出問題如下:
1) 目前手機平臺的元數(shù)據(jù)表示并未將關(guān)注點集中于行為追蹤,僅考慮敏感信息流向。
2) 現(xiàn)有的監(jiān)測點主要在共享庫及系統(tǒng)調(diào)用中,其優(yōu)點在于上層framework庫的改動不影響其監(jiān)測,缺陷在于不能明確提供滿足信息追蹤所需必要信息,即應(yīng)用名、操作具體內(nèi)容及存取文件路徑。
現(xiàn)代智能手機平臺可下載第三方應(yīng)用,許多應(yīng)用提供云服務(wù)時需要用戶本地信息,訪問用戶隱私數(shù)據(jù),然而用戶必須保證數(shù)據(jù)使用合理性,即在使用服務(wù)同時隱私數(shù)據(jù)是否未經(jīng)同意擅自泄露至遠程服務(wù)器,是否保持其保密性,完整性及可用性。
1.1 敏感元數(shù)據(jù)
敏感元數(shù)據(jù)采集的目的在于獲取隱私泄露的證據(jù)。計算機取證方面,目前關(guān)于移動設(shè)備取證研究較少,PC端研究精力在于入侵取證。為了保證數(shù)據(jù)完整性,采用SHA方法生成摘要,利用秘密共享機制完成數(shù)據(jù)驗證;在數(shù)據(jù)分析方面,采取形式化分析,包括根本原因、語意完整性檢測、有限狀態(tài)機、基于假設(shè)的入侵調(diào)查方式。另有研究通過文本分類方法進行證據(jù)特征提取,用K-最臨近及貝葉斯分類器對證據(jù)分類,最終實現(xiàn)自動化取證。入侵取證的目的在于是否第三方是否存在惡意攻擊行為,其數(shù)據(jù)采集只是通過API函數(shù)調(diào)用獲取歷史數(shù)據(jù),并沒有在其內(nèi)部實施監(jiān)測或攔截,易被惡意軟件使用其他方式繞過特定API或篡改數(shù)據(jù)。而本文關(guān)注軟件敏感行為,數(shù)據(jù)采集除了行為本身還應(yīng)關(guān)注行為作用的數(shù)據(jù)敏感性,而實時監(jiān)測方式可使采集的數(shù)據(jù)更具可靠性。
1.2 安卓平臺動態(tài)監(jiān)測信息方式
監(jiān)測技術(shù)方面,由于安卓系統(tǒng)基于linux及java虛擬機,故存在兩類已有hook方式完成動態(tài)監(jiān)測目的。此外,虛擬機攔截機制也可作為監(jiān)測方式之一。
基于linux的hook技術(shù)利用ptrace在進程中斷注入so庫,寫入hook函數(shù),結(jié)合動態(tài)鏈接機制,定位至got表查詢hook點的函數(shù)入口及其參數(shù),之后返回至原函數(shù)。基于虛擬機hook技術(shù)在其孵化器Zygote載入app_process進程安卓框架時獲得JNI環(huán)境指針后利用java類加載器的反射機制,對框架層組件函數(shù)進行hook,虛擬機hook確保系統(tǒng)無穿透性。
1.3 安卓系統(tǒng)的敏感行為監(jiān)測點
根據(jù)敏感信息流追蹤必要數(shù)據(jù)采集因素及敏感行為特點,將敏感事件元祖定義為:<信息源,信息,操作,信息目的地,時間>。
2 敏感元數(shù)據(jù)定義與采集
2.1 元數(shù)據(jù)定義要素
為體現(xiàn)信息使用意圖,元數(shù)據(jù)從三個維度描述:信息類型,信息獲取(改動)主體,操作時間。
信息類型根據(jù)其信息源分為高帶寬信息即大型可共享數(shù)據(jù)buffer及文件等內(nèi)容;低帶寬信息即傳感信息;設(shè)備識別符,唯一標識設(shè)備或用戶,如手機號碼、SIM卡識別符如ICC-ID、IMSI以及IMEI號;數(shù)據(jù)庫信息,包含聯(lián)系人,SMS及即時聊天記錄。主體體現(xiàn)為具體應(yīng)用,使用PID,UID描述,雖然行為主體可能是用戶,但一般情況下均通過應(yīng)用實現(xiàn)操作。
2.2 關(guān)鍵信息操作元數(shù)據(jù)定義
2.2.1 短信操作元數(shù)據(jù)
將短信收發(fā)操作元數(shù)據(jù)定義為。其中,S為發(fā)送者,R為接收者,TY為短信類型即sms或mms;C為短信內(nèi)容,在短信收發(fā)操作時,若得到應(yīng)用查詢其他信息記錄,則可獲得收發(fā)敏感信息的證據(jù),短信內(nèi)容采集步驟可略去;O為操作類型即發(fā)送或接收,T為操作時間。
2.2.2 文件操作元數(shù)據(jù)
對文件敏感操作的行為是個人信息管理的重要部分,根據(jù)增刪改查四類操作,將文件元數(shù)據(jù)定義為
2.2.3 位置信息元數(shù)據(jù)
目前對位置信息元數(shù)據(jù)保護主要有K匿名等方式,采集位置信息時將其替換為位置標識符最為元數(shù)據(jù)要素之一。然而此方式保護位置信息對于地區(qū)流動性變化不可預(yù)測,故在元數(shù)據(jù)內(nèi)加入需動態(tài)因素。位置信息元數(shù)據(jù)定義為:
2.3 安卓框架層攔截實現(xiàn)
2.3.1 改進孵化器進程文件
安卓系統(tǒng)的孵化進程由初始化進程啟動,為系統(tǒng)及應(yīng)用程序進程提供虛擬機實例。首先調(diào)用app_process繼而啟動安卓運行時環(huán)境,調(diào)用運行時main函數(shù),完成孵化器進程創(chuàng)建,最后啟動系統(tǒng)服務(wù),并等待應(yīng)用程序socket請求。
2.3.2 虛擬機層hook
虛擬機層hook核心思想為修改監(jiān)測函數(shù)屬性為本地函數(shù),通過JNI滲入C/C++層,調(diào)用虛擬機觸發(fā)方法執(zhí)行被監(jiān)測函數(shù),并將參數(shù)狀態(tài)記錄至日志。
3 實驗分析
敏感行為監(jiān)測廣度分析:
實驗?zāi)康臑闄z查敏感信息監(jiān)測點對各種敏感行為元數(shù)據(jù)采集的有效性。 對百度手機助手上應(yīng)用軟件分別每類取2例監(jiān)測,6款應(yīng)用使用adb方式安裝。
表1的數(shù)據(jù)說明了日志中應(yīng)用發(fā)生操作敏感行為及存儲敏感行為是否被記錄。其中監(jiān)測操作行為五項,存取行為五項,adb安裝應(yīng)用可全部檢測到,可見此方案具有較高監(jiān)測廣度。結(jié)果表明,本方案較系統(tǒng)日志方法能有效監(jiān)測應(yīng)用敏感行為。
4 結(jié)束語
本文提出的手機安卓監(jiān)測方式,從安卓關(guān)鍵通信機制Binder出發(fā),對敏感行為涉及組件廣播及內(nèi)容提供監(jiān)測關(guān)鍵變量及方法,使敏感數(shù)據(jù)采集有效且具層次化。全面記錄應(yīng)用的敏感行為,并以日志事件形式,突出隱私追蹤所需必要信息,同時為之后的行為隱私級別判定提供可靠數(shù)據(jù)。比安卓審計系統(tǒng)更加細化了敏感行為定義及所關(guān)聯(lián)的監(jiān)測點,比安卓平臺信息流系統(tǒng)增加了應(yīng)用主體的數(shù)據(jù),更能有利于追蹤與分析。
參考文獻:
[1] 周洪偉,韋大偉,郭淵博.一種數(shù)字取證完整性方案[J].計算機應(yīng)用研究,2007(12).
[2] 李均濤,唐鄭熠,李祥.基于行為時序邏輯的入侵取證研究[J].計算機應(yīng)用研究,2011(7).
[3] 羅會明,易軍凱.Android智能手機取證研究[M].北京:北京化工大學,2013.
[4] Chen T,Kan M Y.Creating a live, public short message service corpus: The NUS SMS corpus[J].Language Resources and Evaluation,2013,47(2):299-335.