安卓應(yīng)用程序中非權(quán)限相關(guān)隱私數(shù)據(jù)的識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于程序信息安全檢測技術(shù)領(lǐng)域,具體設(shè)及利用自然語言處理、機(jī)器學(xué)習(xí) 技術(shù)和靜態(tài)信息流分析技術(shù),識別Amlroid應(yīng)用程序中非權(quán)限相關(guān)的隱私數(shù)據(jù)的方法。
【背景技術(shù)】
[000引談及Amlroid系統(tǒng)中的用戶隱私信息,大致可分為兩類,第一類為權(quán)限相關(guān)的用 戶隱私,第二類為非權(quán)限相關(guān)的用戶隱私。其中,權(quán)限相關(guān)的用戶隱私指的是通過調(diào)用 Amlroid系統(tǒng)權(quán)限模型提供的函數(shù)接口所能獲得的用戶隱私信息,如通過調(diào)用getlMElO 函數(shù)獲取手機(jī)序列號、調(diào)用getLocationO函數(shù)獲取用戶地理位置信息等。由于安卓自身 通過權(quán)限保護(hù)機(jī)制來管控該樣的隱私數(shù)據(jù),在調(diào)用此類函數(shù)獲取隱私信息之前必須聲明 相應(yīng)的權(quán)限,故稱此類隱私信息為權(quán)限相關(guān)的隱私信息。
[0003] 相對而言,非權(quán)限相關(guān)的用戶隱私設(shè)及范圍更廣,監(jiān)控難度更大。此類隱私并非應(yīng) 用通過調(diào)用系統(tǒng)函數(shù)獲得,而是通過直接與用戶交互獲取。如用戶在使用購物類應(yīng)用時所 輸入的網(wǎng)銀賬號信息,或是其他用戶名、密碼等信息,都屬于非權(quán)限相關(guān)的用戶隱私范疇。 應(yīng)用在獲取到此類信息之后,可能將其W文件形式進(jìn)行持久化存儲或通過網(wǎng)絡(luò)向服務(wù)器發(fā) 送W實現(xiàn)特定功能。
[0004] 對于權(quán)限相關(guān)的隱私數(shù)據(jù),由于其敏感數(shù)據(jù)源固定巧日上述getlMElO、 getLocationO等函數(shù)),故可通過傳統(tǒng)的靜態(tài)信息流分析,對數(shù)據(jù)進(jìn)行追蹤和監(jiān)控;而對于 非權(quán)限相關(guān)的隱私數(shù)據(jù)而言,敏感數(shù)據(jù)源將隨著具體應(yīng)用程序的不同而不同,敏感數(shù)據(jù)與 普通數(shù)據(jù)混雜在用戶界面當(dāng)中,因為它們均為用戶使用應(yīng)用所產(chǎn)生的數(shù)據(jù)。故從程序分析 的角度,無法通過信息流分析、污點跟蹤技術(shù)等對其進(jìn)行有效的檢測分析。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的是提供一種支持大規(guī)模批量、離線分析的,Amlroid應(yīng)用程序中非權(quán) 限相關(guān)隱私數(shù)據(jù)的自動識別方法。
[0006] 本發(fā)明提供的Amlroid應(yīng)用程序中非權(quán)限相關(guān)的隱私數(shù)據(jù)的識別方法,具有W下 特點: (1)僅憑借對代碼的靜態(tài)分析識別敏感數(shù)據(jù)源,無需額外的用戶交互信息; (2 )具備自適應(yīng)能力,分析應(yīng)用的速度快、資源消耗低; (3)W界面元素為依據(jù)對用戶隱私進(jìn)行識別,并自動判定界面元素與后臺函數(shù)的關(guān)系. 由于非權(quán)限相關(guān)的用戶隱私數(shù)據(jù)設(shè)及范圍較廣,且不同類別的用戶隱私設(shè)及的文本詞 匯都有較大差異,為了便于解釋說明,本發(fā)明將用戶隱私數(shù)據(jù)總結(jié)為=類: (1)AccountCredentialsandUserProfiles(賬戶相關(guān)的認(rèn)證信息W及用戶數(shù)據(jù)); (2) Location(地理位置數(shù)據(jù)); (3) Financial(金融支付類隱私數(shù)據(jù))。
[0007] 對于不同類別的隱私數(shù)據(jù),本發(fā)明所關(guān)注的文本特征略有差別。
[0008] 本發(fā)明提供的Amlroid應(yīng)用程序中非權(quán)限相關(guān)的隱私數(shù)據(jù)的識別方法,其架構(gòu)如 附圖1所示,整個識別過程分為四個階段: 1、數(shù)據(jù)預(yù)處理,包括;提取資源文件,文本預(yù)處理。 提取資源文件;首先對Android應(yīng)用程序進(jìn)行逆向工程,提取得到描述界面的資源文 件。在An化oid應(yīng)用程序中,用戶交互界面(UI)是由若干個界面元素所組成的,不同種類 的界面元素提供了展示信息、接受輸入等不同功能。Amlroid系統(tǒng)主要使用XML文件來描述 用戶交互界面。
[0009] 對于逆向后的Amlroid應(yīng)用程序,其描述界面的XML文件散布于不同的文件夾中。 其中,用W描述UI界面的布局文件位于文件夾下;界面元素和其16進(jìn)制ID的 對應(yīng)關(guān)系存儲于如/Wic. 文件中;界面中所展示的文本(即界面文本)位于/ 文件中。上述資源文件的內(nèi)容如附圖2的樣例所示。
[0010] 由于本發(fā)明分析的重點在于應(yīng)用的界面元素,所W本發(fā)明關(guān)注的信息主要有兩 類:界面文本和布局信息。
[0011] 界面文本指的是用戶在應(yīng)用界面上所能看到的文本數(shù)據(jù)。對于Amlroid應(yīng)用程序 而言,其W鍵值對形式存于/文件中,并可通過鑽簽7^ 的形式引用該些文本常量,也有部分文本被直接寫在界面布局文件中;而布局信息對應(yīng)于 錄下的XML文件中的內(nèi)容,布局信息描述了界面元素的排布方式,其中不 僅包含了上述的界面文本,還含有界面元素的其他屬性,如id,hint等。本發(fā)明提取了XML 文件中出現(xiàn)的文本、界面元素中id、text、contentDescription、prompt、hint等屬性中所 出現(xiàn)的文本W(wǎng)及各個界面元素相互之間的位置關(guān)系。本發(fā)明所提取的信息樣例如附下表1 所示: 表1
文本預(yù)處理;包括文本分詞、文本過濾、詞干提取。
[0012] 文本分詞;對于上述獲得的文本資源,有部分是普通的自然語言,而諸如界面布 局文件中的id屬性,往往是W變量名形式存在的文本,如"phonenumber"可能被表示為 "phone_number"或"phoneNumber",需要根據(jù)其分隔符或大小寫對其進(jìn)行分詞趣有一些文 本常量是由幾個單詞簡單拼接而成的,如"confirmpasswor壯ield",對于此類文本,本發(fā)明 從WordNet上獲取了詞表,并不斷從文本中切分出詞表中所能匹配到的最長詞,如此上述文 本被切分為"confirm"、"password"、"field"。
[0013] 文本過濾;對于處理后的文本,去除其中的數(shù)字和符號,僅保留單詞。同時去除其 中的停用詞,如"iS"、"the"等不影響語義的單詞。
[0014] 詞干提取;由于本發(fā)明關(guān)注的是文本所要傳達(dá)的語義,故需要通過詞干提取來剔 除時態(tài)、詞性的影響。
[0015] 經(jīng)過文本預(yù)處理之后,文本的變化如附圖3所示。
[0016]、隱私相關(guān)文本的分析 本發(fā)明借助卡方檢驗從一組特定的樣本中提取隱私相關(guān)的文本。本發(fā)明在此處的觀察 是:隱私相關(guān)的單詞更傾向于在特定的用戶交互界面中群聚出現(xiàn),如登陸界面、注冊界面、 設(shè)置界面等。通過設(shè)定一些"種子詞",借助卡方檢驗本發(fā)明便能提取訓(xùn)練集文本中與其相 關(guān)度較高的詞,從而擴(kuò)展本發(fā)明的敏感詞列表。
[0017] 卡方檢驗;卡方檢驗是統(tǒng)計學(xué)中一種常用的特征提取方法。在本發(fā)明中,通過考察 兩個詞在正負(fù)樣本中共同出現(xiàn)的次數(shù),便可利用卡方檢驗來衡量兩個詞的相關(guān)程度。
[0018] 本發(fā)明首先指定了一系列能夠準(zhǔn)確描述用戶隱私巧日email、location、credit card等)的詞匯,稱為種子詞。每個界面布局樣本文件中都包含了界面文本?;赪下兩 個條件,種子詞將被用W判定一個界面布局樣本文件是為隱私相關(guān)的界面: (1) 存在"動詞+種子詞"的模式,如(save,password); (2) 存在"物主代詞(主要是"your") +種子詞"的模式,如(your,username)。
[0019] 上述模式的出現(xiàn),意味著應(yīng)用在此界面中要求用戶輸入隱私相關(guān)的信息,對于 滿足上述兩個條件之一的界面布局樣本文件,將其標(biāo)記為隱私相關(guān)的(正樣本),同時由于 Amlroid系統(tǒng)允許界面布局文件相互嵌套,將其中所嵌套的其他界面布局文件也標(biāo)記為正 樣本;反之,若界面布局樣本文件未滿足該兩個條件,則標(biāo)記其為非隱私相關(guān)的(負(fù)樣本)。
[0020] 對于正樣本中出現(xiàn)的單詞,本發(fā)明對其進(jìn)行卡方檢驗,并將結(jié)果按數(shù)值從高到低 進(jìn)行排序。單詞具有高數(shù)值便意味著其能夠更好的表征其所在的界面或元素是隱私相關(guān) 的。
[0021] 下述例子能夠清晰地表現(xiàn)本發(fā)明在獲取Financial相關(guān)的文本時的過程。首先本 發(fā)明設(shè)定"creditcard"為種子詞,在附圖1中所示界面所對應(yīng)的界面布局文件中,出現(xiàn)了 (add,creditcard)模式,滿足了上述第一個條件,故被標(biāo)記為正樣本,其余類似的界面布 局文件也將同樣被標(biāo)記為正樣本。通過卡方檢驗,本發(fā)明便可獲得諸如"expire"、"date"、 "year"、"month"等詞。
[0022] 噪聲過濾;卡方檢驗?zāi)軌蛲卣闺[私相關(guān)的詞表,卻不可避免的引入噪聲,其原因在 于并非所有隱私相關(guān)界面上出現(xiàn)的單詞都是和隱私有關(guān)的。為了獲取準(zhǔn)確的詞表,避免誤 報,本發(fā)明在噪聲過濾階段引入少許人工干預(yù),通過遍歷卡方檢驗結(jié)果剔除與隱私無關(guān)的 詞匯。
[0023]、非權(quán)隱私相關(guān)界面元素的識別 本發(fā)明使用機(jī)器學(xué)習(xí)的方法,基于對元素的文本語義分析,實現(xiàn)非權(quán)隱私相關(guān)界面元 素的自動識別。通過訓(xùn)練集訓(xùn)練獲得分類器,對于給定的未分類界面元素,本發(fā)明能夠判定 其文本語義是否是與隱私相關(guān)。
[0024] 特征選??;本發(fā)明選取上一步所挑選出的隱私相關(guān)單詞作為特征。單個隱私相關(guān) 文本的出現(xiàn)并不足W標(biāo)識一個界面是否為隱私相關(guān)的,但通過多個單詞的組合,就能夠有 效地評判一個界面是否為與隱私相關(guān),該是由于一個界面的主題將隨著單詞的增加而逐漸 清晰。同時本發(fā)明也將界面元素之間的上下文關(guān)系納入了考慮的范疇,對于某個界面元素, 本發(fā)明不僅考慮元素自身的文本,還將考慮其前后兄弟節(jié)點的文本。如附圖1所示,絕大多 數(shù)的輸入框的輸入內(nèi)容,其實是由其旁邊的靜態(tài)標(biāo)簽所描述的。將前后兄弟節(jié)點納入考慮 范圍,能夠有效的增加語義信息,從而提高判定的準(zhǔn)確率。對于每個界面元素,其特征向量 的長度為詞表的長度,特征向量的每一維度為對應(yīng)單詞的詞頻,此處的詞頻為元素自身和 其前后兄弟節(jié)點的詞頻和。
[002引訓(xùn)練集:對于Amlroid應(yīng)用而言,為了使開發(fā)者能夠限制輸入框所接受的輸入類 型,An化oid系統(tǒng)提供了an化oid:i噸utType屬性。例如,若一個輸入框的i噸utType為textEmailAcMress,則用戶必須在此輸入框內(nèi)輸入email地址。在an化oid:i噸utType的 取值范圍中,就有一些屬性值表征了對應(yīng)輸入框?qū)⒔邮毡景l(fā)明所關(guān)注的隱私數(shù)據(jù),屬性值 列表如表2所示。
[0026] 表 2
對于那些具有inputType屬性,且屬性值在上述取值范圍之內(nèi)的元素,本發(fā)明將其標(biāo) 記為訓(xùn)練集中的正樣本。同時,由于Financial相關(guān)的正樣本無法通過上述手段獲得,本發(fā) 明人工標(biāo)注了一定量的訓(xùn)練集作為補(bǔ)充。
[0027] 分類器選擇;分類器的選擇并非本發(fā)明中的重要問題,對于一組良好設(shè)計的特征 向量和合理規(guī)范的訓(xùn)練集而言,各個訓(xùn)練器的表現(xiàn)并無太大差距。在此本發(fā)明選用支撐向 量機(jī)SVM作為本發(fā)明的分類器。
[0028] 、基于代碼靜態(tài)信息流分析的結(jié)果過濾 上述的識別手段完全基于界面元素的語義信息,而通過檢測界面元素背后的代碼行 為,本發(fā)明能夠了解一個元素是否真正接受了用戶的輸入,從而能夠過濾那些雖然具有隱 私相關(guān)的語義,卻不具備獲取隱私數(shù)據(jù)能力的界面元素巧日一個標(biāo)有"yourpassword"的靜 態(tài)柄簽)。
[0029] 用戶輸入數(shù)據(jù)是在用戶與應(yīng)用交互的過程中生成的。在Amlroid系統(tǒng)中,應(yīng)用要 從用戶交互界面中獲取數(shù)據(jù)必須通過調(diào)用特定API來完成,同時應(yīng)用獲取用戶輸入數(shù)據(jù)