王新宇,牛犇,李鳳華,賀坤
(1. 中國(guó)科學(xué)院信息工程研究所,北京 100093;2. 中國(guó)科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,北京 100049)
隨著信息化服務(wù)的快速普及和移動(dòng)互聯(lián)網(wǎng)相關(guān)技術(shù)的發(fā)展,智能設(shè)備的使用已經(jīng)滲透人們的日常生活。用戶在享受智能設(shè)備帶來(lái)便捷服務(wù)的同時(shí),也承受著日益嚴(yán)峻的隱私信息泄露的風(fēng)險(xiǎn)[1]。據(jù)調(diào)查,85.2%的受訪者曾因使用APP導(dǎo)致個(gè)人隱私信息泄露[2];Android平臺(tái)申請(qǐng)使用“讀取通訊錄”權(quán)限的APP中,89.69%的APP存在濫用該權(quán)限的情況[3]。在上述調(diào)查中,由于智能設(shè)備中APP過(guò)度申請(qǐng)權(quán)限,導(dǎo)致用戶隱私信息泄露事件的頻發(fā)。因此,亟需針對(duì)權(quán)限配置的管理方案,保護(hù)用戶的個(gè)人隱私數(shù)據(jù)不被泄露。
APP中包含的第三方服務(wù)提供商可以在用戶沒(méi)有察覺(jué)的情況下獲取隱私信息。目前,智能設(shè)備的操作系統(tǒng)(例如Android、iOS等)使用權(quán)限管理機(jī)制保護(hù)設(shè)備中的隱私數(shù)據(jù)。以APP為單位控制訪問(wèn)權(quán)限,只有獲得相應(yīng)權(quán)限的APP才能讀取用戶隱私數(shù)據(jù)。但現(xiàn)實(shí)中,由于APP集成了來(lái)自第三方服務(wù)(例如廣告、支付等服務(wù)),使權(quán)限管理機(jī)制的保護(hù)效果降低。第三方服務(wù)以庫(kù)文件的形式被包入宿主 APP,這些庫(kù)文件為服務(wù)提供商(SP, service provider)發(fā)布的二進(jìn)制文件,常見(jiàn)的文件后綴名有“.jar”“.so”“.tdb”等,且同一服務(wù)可以被打包到多個(gè) APP中,在權(quán)限管理機(jī)制下,其擁有與宿主APP相同的權(quán)限。若從每個(gè) APP獲得部分敏感權(quán)限,則 SP能獲得用戶全部與隱私信息相關(guān)的敏感權(quán)限;進(jìn)而繪制完整的用戶畫像,并以此牟利。因?yàn)椴僮飨到y(tǒng)沒(méi)有向用戶提示是宿主 APP還是第三方服務(wù)在申請(qǐng)使用權(quán)限,所以用戶對(duì)發(fā)生的隱私信息泄露事件一無(wú)所知。
為解決上述問(wèn)題,本文提出了一種系統(tǒng)整體的隱私信息泄露風(fēng)險(xiǎn)評(píng)估及保護(hù)方案 PRAS (privacy risk assessing scheme)。該方案從隱私信息傳播的廣度和深度構(gòu)建模型來(lái)評(píng)估隱私泄露風(fēng)險(xiǎn),最終給出權(quán)限管理方案。其中,傳播廣度是指隱私信息傳播給了那些服務(wù)提供商,一個(gè)服務(wù)提供商可能從多個(gè)APP中獲取隱私信息;傳播深度是指用戶隱私信息泄露的程度,Android設(shè)備中通過(guò)權(quán)限機(jī)制管理隱私信息,本文以服務(wù)提供商獲得的權(quán)限數(shù)量和其敏感度來(lái)計(jì)算隱私信息泄露的深度。PRAS中量化了權(quán)限的敏感度,在量化過(guò)程中考慮權(quán)限組合對(duì)隱私泄露風(fēng)險(xiǎn)帶來(lái)的非線性影響。由于搭載Android系統(tǒng)的智能設(shè)備數(shù)量巨大,且研究成果具有普遍性,本文以Android系統(tǒng)為實(shí)現(xiàn)平臺(tái)設(shè)計(jì)方案,驗(yàn)證了所提方案的有效性。本文的主要貢獻(xiàn)如下。
1) 提出了一種新的隱私信息泄露風(fēng)險(xiǎn)評(píng)估模型,該模型重點(diǎn)考慮了第三方服務(wù)提供商在用戶不知情的情況下獲取隱私信息的情況。
2) 基于惡意侵犯隱私的APP集合與正常APP集合之間申請(qǐng)權(quán)限的差異,量化了權(quán)限的敏感度,加入了權(quán)限組合對(duì)隱私泄露帶來(lái)的非線性影響。
3) 均衡服務(wù)質(zhì)量與隱私保護(hù),建立了個(gè)性化最優(yōu)模型,提供了整體的權(quán)限管理方案,在保證服務(wù)質(zhì)量的同時(shí),盡量降低隱私信息泄露風(fēng)險(xiǎn)。
早期研究通過(guò)白名單機(jī)制識(shí)別第三方服務(wù)庫(kù)。Grace等[4]利用白名單識(shí)別出100個(gè)廣告庫(kù),白名單機(jī)制雖然簡(jiǎn)單易行,但抗干擾能力差。Chen等[5]在檢測(cè)APP克隆時(shí)列出了73個(gè)第三方服務(wù)庫(kù)的模塊名,假如模塊名被修改后,這種方法就失效了。
由于第三方服務(wù)庫(kù)會(huì)被重用,可以通過(guò)提取代碼特征或比對(duì)代碼的相似性來(lái)識(shí)別。在提取代碼特征的方案[6-11]中,Narayanan等[6]和Liu等[7]對(duì)APP進(jìn)行分析后,提取代碼的特征訓(xùn)練識(shí)別器,特征如所使用的Android組件、權(quán)限、API等,利用機(jī)器學(xué)習(xí)的方法識(shí)別廣告庫(kù)。廣告庫(kù)的特征明顯,易于區(qū)分。而其他類型的第三方服務(wù)庫(kù)(例如社交網(wǎng)絡(luò)、游戲、地圖等)則難于識(shí)別[10],利用聚類的方法,可以將包含相同第三方服務(wù)庫(kù)的 APP聚集到相同的簇中,對(duì)聚類結(jié)果進(jìn)行分析就能識(shí)別宿主應(yīng)用中的第三方服務(wù)庫(kù)。Crussell等[8]和Wang等[9]通過(guò)提取 APP調(diào)用其他類庫(kù)的代碼特征,以大量的 APP為基礎(chǔ),使用聚類算法識(shí)別第三方服務(wù)庫(kù)。Ma等[10]和Li等[11]在前人的基礎(chǔ)上[9],提出了多層級(jí)聚類的概念。例如“a/b/c”“a/b/d”和“a/b/e”這 3個(gè)模塊,根據(jù)模塊之間包含關(guān)系,將這3個(gè)模塊聚集在一簇中。在基于代碼相似性的方案中,Backes等[12]提出基于相似度匹配的第三庫(kù)檢測(cè)方法,該方法將APP反編譯后的代碼按照方法、類和包的層級(jí)組織成Merkle樹,樹的葉子節(jié)點(diǎn)的值是方法的簽名。在大規(guī)模 APP的對(duì)比中,匹配到散列值相同或者最相似的模塊即認(rèn)為是同一個(gè)第三方服務(wù)庫(kù)。
以上方案能準(zhǔn)確識(shí)別出 APP中包含的各種類型的第三方服務(wù)庫(kù)。
調(diào)查[13]指出,只有17%的用戶會(huì)留意權(quán)限的警告。目前,已有大量的文獻(xiàn)研究如何幫助用戶管理權(quán)限,這些文獻(xiàn)[14~19]可以分為基于上下文環(huán)境的權(quán)限管理和基于眾包的權(quán)限管理這兩類。
1) 基于上下文環(huán)境的權(quán)限管理
Fawaz等[14]提出了LP-Guardian方案幫助用戶決策授予/撤銷位置權(quán)限。Tsai等[15]使用機(jī)器學(xué)習(xí)的方法,根據(jù)用戶使用APP的反饋和運(yùn)行的上下文環(huán)境對(duì)APP的權(quán)限進(jìn)行管理。
2) 基于眾包的權(quán)限管理
Agarwal等[16]收集用戶的權(quán)限設(shè)置,根據(jù)多數(shù)人對(duì)權(quán)限授予/撤銷的選擇給出推薦結(jié)果。Liu等[17]通過(guò)分析用戶對(duì)權(quán)限設(shè)置的記錄,使用支持同量機(jī)算法將用戶分為若干類,然后根據(jù)分類推薦權(quán)限設(shè)置。Liu等[18]通過(guò)向用戶提問(wèn)的方式,找出對(duì)隱私期望相近的用戶,采用協(xié)同過(guò)濾算法推薦權(quán)限配置。Rashidi等[19]從收集的用戶權(quán)限設(shè)置中尋找“專家用戶”,并根據(jù)“專家用戶”的設(shè)置推薦權(quán)限配置結(jié)果。
然而,上述權(quán)限管理方案都沒(méi)有考慮第三方服務(wù)商造成的隱私泄露。
為了保護(hù)用戶的隱私數(shù)據(jù),Android系統(tǒng)采用基于權(quán)限管理的隱私保護(hù)機(jī)制,在該機(jī)制下,APP需在配置文件中聲明要使用的權(quán)限,經(jīng)用戶同意后,才能訪問(wèn)權(quán)限所對(duì)應(yīng)的硬件或讀寫數(shù)據(jù)。在Android 6.0(Marshmallow)版本之前,用戶安裝APP軟件時(shí),彈出窗口提示APP運(yùn)行時(shí)需要用到的權(quán)限。如果用戶同意,則授予權(quán)限繼續(xù)安裝,否則停止安裝APP的流程。從Android 6.0版本開(kāi)始,Android系統(tǒng)將權(quán)限分為非敏感權(quán)限(normal permission)和運(yùn)行時(shí)權(quán)限(runtime permission)。非敏感權(quán)限不直接涉及用戶隱私,比如網(wǎng)絡(luò)、藍(lán)牙、NFC等,APP安裝時(shí)默認(rèn)授權(quán),且用戶無(wú)法取消授權(quán)。運(yùn)行時(shí)權(quán)限直接涉及用戶隱私,比如通訊錄、短信、位置等,APP首次使用時(shí)在界面上彈出窗口讓用戶授權(quán),授權(quán)后可以在系統(tǒng)設(shè)置界面動(dòng)態(tài)管理該權(quán)限。此外,基于Android深度定制的系統(tǒng)(如華為公司的Emotion UI、小米公司的MIUI等操作系統(tǒng))中除了對(duì)運(yùn)行時(shí)權(quán)限設(shè)置外,在其系統(tǒng)設(shè)置界面中可以對(duì)一般權(quán)限進(jìn)行管理。雖然這種模式能讓用戶更好地了解和控制權(quán)限,但是其將隱私信息的授予/撤銷的決定權(quán)交給了用戶,用戶能否正確地理解權(quán)限的具體含義是這種模式成功的關(guān)鍵。
關(guān)聯(lián)規(guī)則學(xué)習(xí)(association rule learning)是一種在大型數(shù)據(jù)庫(kù)中發(fā)現(xiàn)變量之間有趣性關(guān)系的方法。假設(shè)是項(xiàng)的集合,給定一個(gè)數(shù)據(jù)庫(kù)其中每個(gè)事物是I的非空子集,即t?I。關(guān)聯(lián)規(guī)則是形如a?b的蘊(yùn)含式,其中a、b?I且a∩b=?,a和b分別稱為關(guān)聯(lián)規(guī)則的先導(dǎo)(antecedent)和后繼(consequent)。關(guān)聯(lián)規(guī)則a?b在D中的支持度(support)是D中事物包含a和b的百分比,即概率其中,a∪b表示ti中同時(shí)包含a和b。置信度(confidence)是包含a的事物且包含b的百分比,即條件概率。如果同時(shí)滿足最小值支持度閾值和最小置信度閾值,則認(rèn)為關(guān)聯(lián)規(guī)則是有趣的,這些閾值由用戶或領(lǐng)域?qū)<襾?lái)設(shè)定。為了表示a和b之間的相關(guān)性,使用提升度(lift)來(lái)表示,lift定義為
當(dāng)a和b互相獨(dú)立時(shí)lift=1,說(shuō)明兩者沒(méi)有任何關(guān)聯(lián)。
Eclat算法[20]是一種基于深度優(yōu)先的關(guān)聯(lián)規(guī)則挖掘算法,將數(shù)據(jù)庫(kù)D中數(shù)據(jù)由倒排為在此基礎(chǔ)上,通過(guò)k-頻繁項(xiàng)集之間的交集,迭代計(jì)算-頻繁項(xiàng)集。
將用戶設(shè)置權(quán)限的事件看作隨機(jī)變量χ且相互獨(dú)立,隨機(jī)變量χ服從伯努利分布撤銷權(quán)限Pi為事件1,授予權(quán)限Pi為事件0。若用戶以概率p撤銷權(quán)限,則,其中,概率p為未知參數(shù),需要通過(guò)收集樣本估算得出。收集樣本容量為n的用戶權(quán)限配置集合則統(tǒng)計(jì)量為
用戶撤銷權(quán)限比例的極大似然估計(jì)量為
當(dāng)樣本空間較大時(shí),Sn近似服從均值μ=np、方差的正態(tài)分布,其中,σ2包含未知參數(shù)p,可用來(lái)近似,于是近似服從標(biāo)準(zhǔn)正態(tài)分布。參數(shù)p的置信度為置信區(qū)間(lθ,uθ)為
上式可計(jì)算為
PRAS方案由客戶端和服務(wù)器組成,如圖 1中虛線框所示,運(yùn)行時(shí)涉及智能設(shè)備用戶和APP中包含的服務(wù)提供商??蛻舳俗x取智能設(shè)備中安裝的APP列表和權(quán)限設(shè)置,并發(fā)送給服務(wù)器。服務(wù)器負(fù)責(zé)評(píng)估隱私泄露風(fēng)險(xiǎn)并計(jì)算權(quán)限配置方案。計(jì)算完成后,將數(shù)據(jù)反饋給客戶端,客戶端接收數(shù)據(jù)并向用戶展示權(quán)限配置結(jié)果。從圖1中可以看出,在PRAS方案執(zhí)行前,服務(wù)提供商可能獲取用戶全部的隱私信息。而在執(zhí)行該方案后,服務(wù)提供商只能獲取用戶部分的隱私信息。
PRAS方案客戶端工作流程為:1) 用戶選擇個(gè)性化隱私保護(hù)參數(shù),讀取APP列表、APP的版本號(hào)和授予的權(quán)限列表,將讀取的信息發(fā)送給服務(wù)器,并等待回復(fù);2) 收到回復(fù)后,向用戶展示風(fēng)險(xiǎn)評(píng)估結(jié)果和權(quán)限管理方案。
PRAS方案服務(wù)器工作流程分為2個(gè)階段:預(yù)備階段和服務(wù)階段。預(yù)備階段為風(fēng)險(xiǎn)評(píng)估做好準(zhǔn)備:1) 利用現(xiàn)有技術(shù)[6-12],識(shí)別出APP中包含的所有服務(wù)提供商;2) 收集用戶權(quán)限設(shè)置樣本,量化權(quán)限管理的隱私信息的敏感度;3) 收集 APP集合,計(jì)算權(quán)限組合對(duì)敏感度帶來(lái)的非線性影響。在服務(wù)階段,工作流程為:1) 識(shí)別 APP列表中服務(wù)提供商,并統(tǒng)計(jì)出每個(gè)服務(wù)商擁有的權(quán)限,評(píng)估系統(tǒng)的隱私泄露風(fēng)險(xiǎn);2) 根據(jù)用戶權(quán)限設(shè)置樣本,計(jì)算APP服務(wù)質(zhì)量損失;3) 計(jì)算權(quán)限配置方案,將結(jié)果反饋給客戶端。
4.2.1 服務(wù)提供商識(shí)別
服務(wù)提供商包括第三方服務(wù)的提供商和宿主APP。宿主APP采集用戶的隱私信息,因此其開(kāi)發(fā)者也被認(rèn)為是單獨(dú)的服務(wù)提供商。
現(xiàn)有研究成果[6-12]可以大規(guī)模地識(shí)別出APP中包含的第三方服務(wù)商。首先基于相似度匹配的方法[12]檢測(cè)宿主APP中包含的第三方服務(wù)庫(kù)。然后在所找出的第三方服務(wù)庫(kù)中,通過(guò)提取特征(例如 URL字符串、使用了網(wǎng)絡(luò)通信的接口等特征),能夠準(zhǔn)確地將服務(wù)提供商開(kāi)發(fā)的動(dòng)態(tài)庫(kù)識(shí)別出來(lái)。Liu等[7]利用這些特征訓(xùn)練分類器識(shí)別廣告庫(kù),可以達(dá)到98%以上的準(zhǔn)確率。在識(shí)別過(guò)程中,同一服務(wù)商可能同時(shí)發(fā)布開(kāi)源的動(dòng)態(tài)庫(kù)和二進(jìn)制的動(dòng)態(tài)庫(kù),雖然這些庫(kù)的使用目的有所不同,但模塊名的前綴相同,例如檢測(cè)到的“com.google.ads”和“com.google.protobuf”這 2個(gè)模塊,前者是廣告庫(kù),以二進(jìn)制的形式被打包到宿主APP中;后者是開(kāi)源項(xiàng)目,不會(huì)主動(dòng)向其服務(wù)器發(fā)送數(shù)據(jù),所以該模塊不是服務(wù)提供商。另外,有些服務(wù)商既發(fā)布APP,又發(fā)布二進(jìn)制的第三方服務(wù)庫(kù),例如Google、Facebook等。如果用戶安裝了某服務(wù)商開(kāi)發(fā)的APP,又安裝了包含其第三方服務(wù)庫(kù)的APP,則認(rèn)為該服務(wù)商獲得了2個(gè)APP所有的權(quán)限。
圖1 隱私風(fēng)險(xiǎn)評(píng)估及管理方案框架
識(shí)別出服務(wù)提供商后,PRAS需要統(tǒng)計(jì)其獲得用戶的隱私信息,可以使用靜態(tài)分析[21]和動(dòng)態(tài)分析[22]結(jié)合的方法分析庫(kù)文件,判斷用戶的隱私數(shù)據(jù)是否泄露到外部服務(wù)器上。靜態(tài)分析通過(guò)分析APP的二進(jìn)制代碼,判斷是否有侵犯用戶隱私信息的行為發(fā)生,但由于動(dòng)態(tài)加載技術(shù)的存在,APP可能在運(yùn)行時(shí)下載侵犯用戶隱私的代碼并執(zhí)行,這種情況下會(huì)發(fā)生漏判隱私泄露事件的情況,因此,靜態(tài)分析評(píng)估的風(fēng)險(xiǎn)值偏低。動(dòng)態(tài)分析(如TaintDroid等[22]方案)在 APP使用的過(guò)程中記錄敏感信息的調(diào)用情況,對(duì)隱私泄露事件監(jiān)測(cè)較準(zhǔn)確,但需要性能開(kāi)銷較大,且需要root權(quán)限,只能在代碼安全檢測(cè)的場(chǎng)景中適用,應(yīng)用市場(chǎng)上并沒(méi)有類似應(yīng)用。PRAS方案的目的是讓普通用戶實(shí)時(shí)掌握隱私泄露情況,方便其管理權(quán)限,防止在用戶一無(wú)所知的情況下,隱私信息流向不可信的第三方服務(wù)商,因此,本文假設(shè)服務(wù)商獲得權(quán)限后,就獲得了權(quán)限對(duì)應(yīng)的隱私信息。在該假設(shè)下,PRAS評(píng)估的隱私泄露風(fēng)險(xiǎn)相對(duì)偏高,但優(yōu)點(diǎn)是可以方便地部署在各種類型的 Android系統(tǒng)中,且不會(huì)帶來(lái)額外性能開(kāi)銷,偏高的風(fēng)險(xiǎn)評(píng)估結(jié)果也可以更好地給對(duì)用戶起警示作用。
4.2.2 權(quán)限隱私敏感度量化
基于用戶授予/撤銷權(quán)限的情況可以計(jì)算權(quán)限的敏感度[23]。與用戶隱私相關(guān)的敏感權(quán)限集合P中,權(quán)限Pi的敏感度βi體現(xiàn)用戶對(duì)iP所管理隱私信息的重視程度,敏感度越高,用戶越重視,則該權(quán)限被撤銷的可能性越大。使用第3.3節(jié)中介紹的參數(shù)估計(jì)方法,可由式(2)估算出用戶撤銷權(quán)限iP的概率。
本文中權(quán)限的隱私敏感度iβ定義為將從[0,1]映射到[1,+∞ ),以方便下文計(jì)算權(quán)限組合的非線性影響。敏感度iβ為
4.2.3 權(quán)限組合對(duì)敏感度的非線性影響
收集標(biāo)準(zhǔn)APP集合Dn和惡意侵犯隱私的集合Dm,其中,Dn選自APP市場(chǎng)中每種類型排名前若干位的APP,因?yàn)槠湎螺d量大,在采集隱私信息方面受到關(guān)注度較多,對(duì)申請(qǐng)的權(quán)限與實(shí)際功能較相符,所以選為標(biāo)準(zhǔn)APP集合;Dm選自APP市場(chǎng)中申請(qǐng)敏感權(quán)限最多的若干個(gè)APP,其申請(qǐng)的權(quán)限越多,且APP排名不高,則認(rèn)為對(duì)用戶隱私侵犯越嚴(yán)重,因此選入惡意集合中。
權(quán)限的非線性影響由Dn和Dm之間對(duì)權(quán)限申請(qǐng)次數(shù)的差異產(chǎn)生。權(quán)限在Dm和Dn中被申請(qǐng)的次數(shù)相差越大,該權(quán)限被濫用的情況越嚴(yán)重,則對(duì)其敏感度的非線性影響越大。對(duì)于Dn和Dm中APP申請(qǐng)的敏感權(quán)限,分別使用關(guān)聯(lián)規(guī)則算法找出k-頻繁項(xiàng)集,頻繁項(xiàng)集是由權(quán)限組成的集合A。關(guān)聯(lián)規(guī)則參數(shù)k表示A中權(quán)限數(shù)目,k∈[1,K],K是權(quán)限組合A中包含權(quán)限數(shù)目的最大值。權(quán)限組合A的權(quán)限敏感度由式(2)累加得出,即
其中,k是組合A中權(quán)限的數(shù)目。
對(duì)權(quán)限組合A而言,關(guān)聯(lián)規(guī)則支持度supp(A)的含義是該權(quán)限組合在APP集合中出現(xiàn)的比例,對(duì)APP集合D來(lái)說(shuō),其支持度為
其中,suppD(A)表示權(quán)限組合A在數(shù)據(jù)集D的支持度,表示數(shù)據(jù)集中包含 APP的數(shù)目,表示D中使用權(quán)限組合A的APP次數(shù)。在關(guān)聯(lián)規(guī)則 Eclat算法執(zhí)行之前先設(shè)定最低的支持度閾值。如果權(quán)限組合A的支持度supp(A)小于該閾值,則忽略該組合。
在2個(gè)數(shù)據(jù)集上分別執(zhí)行關(guān)聯(lián)規(guī)則算法后,得到2個(gè)權(quán)限組合的集合set對(duì)應(yīng)集合setn,Dm對(duì)應(yīng)集合setm。對(duì)setm中的權(quán)限組合Aj,在Dn和Dm之間的差異()diffAj表示權(quán)限組合Aj是否被濫用。()diffAj表示為
diff'(A)計(jì)算完成后,對(duì)權(quán)限所管理隱私信息的敏感度進(jìn)行量化。在setm中挑選出包含的權(quán)限的組合組成集合權(quán)限的非線性敏感度定義為
根據(jù)contriij,則權(quán)限的權(quán)重定義為權(quán)限對(duì)Aj貢獻(xiàn)度,如式(1)所示。
與式(5)相類似,權(quán)限組合Aj的非線性敏感度量化為
4.3.1 隱私泄露風(fēng)險(xiǎn)評(píng)估
權(quán)限iP泄露的隱私信息風(fēng)險(xiǎn)定義[23]為
根據(jù)預(yù)備階段識(shí)別出的服務(wù)提供商,PRAS的服務(wù)器輸入包含N個(gè)APP的列表list,,其中APPi被授權(quán)了m條敏感權(quán)限,。輸出從list中識(shí)別出M個(gè)第三方服務(wù)提供商,SPj從不同APP中共獲得L條權(quán)限。隱私信息泄露給服務(wù)提供商SPj的風(fēng)險(xiǎn)為
4.3.2 APP服務(wù)質(zhì)量損失
在權(quán)限管理時(shí)必須考慮 APP的可用性。對(duì)APP而言,權(quán)限撤銷的越多,隱私泄露的風(fēng)險(xiǎn)越低,其服務(wù)質(zhì)量也越低。極端情況下,將所有的權(quán)限都撤銷,隱私泄露的風(fēng)險(xiǎn)最低,但其正常功能將無(wú)法使用。同時(shí),APP的可用性與用戶的主觀認(rèn)識(shí)相關(guān),可以從用戶對(duì)同類 APP的權(quán)限設(shè)置體現(xiàn)出趨勢(shì),例如若80%的用戶對(duì)社交類APP撤銷了位置權(quán)限,則說(shuō)明撤銷該權(quán)限后對(duì)此類服務(wù)質(zhì)量損失不大;若沒(méi)有用戶對(duì)地圖類 APP撤銷位置權(quán)限,則說(shuō)明撤銷后對(duì)地圖類 APP服務(wù)質(zhì)量損失非常大。因此,需要定義撤銷權(quán)限iP對(duì)c類APP服務(wù)質(zhì)量損失。權(quán)限越敏感,撤銷的比例越少,則說(shuō)明對(duì)c類APP越重要,撤銷后服務(wù)質(zhì)量損失越大。使用第3.3節(jié)中介紹的參數(shù)估計(jì)方法,可由式(2)估算出用戶對(duì)c類 APP撤銷權(quán)限iP的概率。
撤銷權(quán)限iP對(duì)c類APP服務(wù)質(zhì)量損失定義為
若APPi屬于ci類,撤銷權(quán)限前授予的權(quán)限數(shù)為m,撤銷后授予的權(quán)限數(shù)為m′,撤銷的權(quán)限集合為m-m′。則APPi服務(wù)質(zhì)量損失為
在此基礎(chǔ)上,整個(gè)系統(tǒng)損失的服務(wù)質(zhì)量為N個(gè)APP服務(wù)質(zhì)量損失之和,即
其中,每個(gè)APP的服務(wù)質(zhì)量損失由式(12)得出。
4.3.3 權(quán)限配置方案
減少服務(wù)提供商 SPj獲得的權(quán)限數(shù)量可以降低隱私泄露的風(fēng)險(xiǎn)。
給定應(yīng)用列表,N個(gè)APP的權(quán)限配置表示為表示APPi授予/撤銷權(quán)限的情況。所有的conf可能出現(xiàn)的情況組成權(quán)限配置空間Γ,對(duì)任意conf,有conf∈Γ。在conf配置下,系統(tǒng)隱私信息泄露的風(fēng)險(xiǎn)如式(10)所示,表示為risk( conf)。服務(wù)質(zhì)量損失如式(13)所示,表示為loss( conf)。權(quán)限管理的最優(yōu)化目標(biāo)是,搜索權(quán)限配置空間Γ,找到配置conf',在滿足一定約束條件下,系統(tǒng)隱私泄露風(fēng)險(xiǎn)值下降最大。
搜索整個(gè)Γ空間使PRAS方案計(jì)算量過(guò)大,通過(guò)減少搜索配置空間Γ次數(shù)來(lái)降低運(yùn)算量。權(quán)限配置空間大小為為權(quán)限的數(shù)量。若配置conf''中出現(xiàn)的權(quán)限是conf的真子集,則conf''中授予的權(quán)限在conf中定會(huì)被授予,conf中授予的權(quán)限在conf''中不一定被授予,此時(shí)conf''<conf,且有因此,在計(jì)算權(quán)限配置方案時(shí),剪裁配置空間Γ,選取所有''conf<conf的配置。個(gè)性化權(quán)限配置方案最優(yōu)化模型為
其中,conf'為最優(yōu)權(quán)限配置結(jié)果表示conf'中單個(gè) APP服務(wù)損失的最大值和最小值;LOSSdiff和LOSS為個(gè)性化隱私保護(hù)參數(shù)。LOSSdiff表示最大值與最小值差值的百分比,該閾值避免計(jì)算最優(yōu)化方案時(shí)對(duì)單一 APP撤銷過(guò)多的權(quán)限,LOSSdiff∈(0,1),LOSS表示系統(tǒng)整體服務(wù)質(zhì)量損失的百分比,由conf→conf'時(shí),系統(tǒng)整體服務(wù)質(zhì)量的損失不能超過(guò)LOSS,LO SS∈(0,1)。
本文基于Android 6.0(API level 23)實(shí)現(xiàn)PRAS方案客戶端,因?yàn)閺拇税姹鹃_(kāi)始可在運(yùn)行時(shí)授予/撤銷控制權(quán)限,PRAS方案計(jì)算出最佳的權(quán)限配置方案后,用戶可以隨時(shí)對(duì)權(quán)限進(jìn)行設(shè)置。Android低版本的APP支持運(yùn)行在高版本的系統(tǒng)中,因此PRAS方案客戶端可運(yùn)行在所有Android 6.0以上系統(tǒng)。
權(quán)限集Android系統(tǒng)的權(quán)限從 6.0版本開(kāi)始分為一般權(quán)限和運(yùn)行時(shí)權(quán)限,其中,一般權(quán)限在安裝時(shí)默認(rèn)授予,運(yùn)行時(shí)權(quán)限與用戶隱私信息相關(guān)。Android的運(yùn)行時(shí)權(quán)限分為10個(gè)權(quán)限組,共26條權(quán)限,本文實(shí)驗(yàn)中敏感權(quán)限集合P是基于運(yùn)行時(shí)權(quán)限。另外,由于讀取Wi-Fi列表的權(quán)限與位置隱私直接相關(guān)[24],將該權(quán)限加入P中。因此,權(quán)限集合P中權(quán)限數(shù)量
用戶數(shù)據(jù)集本文模擬了50位用戶的APP安裝列表和權(quán)限配置作為實(shí)驗(yàn)數(shù)據(jù)集Y。安裝的APP從每類排名前20的APP中隨機(jī)產(chǎn)生,平均每位用戶安裝了17個(gè)APP,其中,最多安裝24個(gè),最少安裝7個(gè)。
APP集合基于非官方的開(kāi)源項(xiàng)目[25],本文從Google官方的應(yīng)用商店(Google play store)抓取2 089 169個(gè)APP詳情,這些APP在商店中被分為39類。本文選取每類APP排名前50的APP作為標(biāo)準(zhǔn)APP集合Dn,故相應(yīng)地,對(duì)集合Dm而言,選取使用敏感權(quán)限最多的2 000個(gè)APP作為惡意侵犯隱私的集合,且。集合Dn和Dm中權(quán)限的統(tǒng)計(jì)信息如表1所示。
表1 APP使用權(quán)限數(shù)目統(tǒng)計(jì)
使用關(guān)聯(lián)規(guī)則Eclat算法,在Dm上挖掘頻繁出現(xiàn)的權(quán)限組合。根據(jù)Dn和Dm數(shù)據(jù)集上權(quán)限組合出現(xiàn)的差異,計(jì)算權(quán)限非線性敏感度。
頻繁權(quán)限組合的挖掘過(guò)程中,最小支持度對(duì)算法產(chǎn)生的權(quán)限組合的影響如圖2所示。圖2中左縱坐標(biāo)軸為最小支持度與setm中申請(qǐng)敏感權(quán)限數(shù)目的關(guān)系。雖然P中有些權(quán)限與用戶隱私相關(guān),但APP申請(qǐng)的次數(shù)較少,支持度較低,因此在算法挖掘出的權(quán)限組合中不會(huì)出現(xiàn)。從圖2中分析出,當(dāng)最小支持度低于0.775之后,涉及的權(quán)限數(shù)目保持不變。圖2中右縱坐標(biāo)軸表示最小支持度與setm中挖掘出權(quán)限組合數(shù)之間的關(guān)系。最小支持度suppm越低,出現(xiàn)的權(quán)限組合越多。具體來(lái)說(shuō),當(dāng)時(shí)當(dāng)414;當(dāng)suppm=0.70時(shí),
圖2 最小支持度與setm之間變化關(guān)系
PRAS方案計(jì)算出的權(quán)限量化結(jié)果如表2所示。量化實(shí)驗(yàn)中,用戶撤銷權(quán)限iP的概率p的最大似然估計(jì)為,當(dāng)置信度γ=0.95時(shí),α=0.05,查表得,置信度區(qū)間為為權(quán)限量化的敏感度,為考慮權(quán)限組合因素后的敏感度量化結(jié)果。表2中按照相對(duì)iβ的增長(zhǎng)率排序,反映Dn和Dm之間的差異對(duì)權(quán)限敏感度的提升,其中除了“access_wifi_state”之外其他都可以被撤銷。最小值支持度suppm=0.75時(shí),涉及敏感權(quán)限集合P中的15條權(quán)限,其余權(quán)限在集合之間的差異不夠大,因此忽略。根據(jù)收集用戶權(quán)限設(shè)置數(shù)據(jù)集Y,iβ由式(6)計(jì)算得出。iβ與用戶對(duì)權(quán)限的敏感度成正比。權(quán)限被撤銷越多,則對(duì)用戶越敏感,iβ越大。其中有部分權(quán)限沒(méi)有被撤銷過(guò),則iβ=1。權(quán)限以組的方式被撤銷/授予。例如APP 申請(qǐng)權(quán)限“read contacts”和“write contacts”,系統(tǒng)界面只提示一次,同一權(quán)限組內(nèi)的權(quán)限被撤銷次數(shù)相同,因此iβ都相等,iβ=1.933。'iβ表示權(quán)限組合在Dn和Dm之間的差異對(duì)敏感度影響的結(jié)果。表2中排名前五的權(quán)限都有超過(guò)100%的增長(zhǎng)率,這些權(quán)限用戶撤銷的比例較低,在基于撤銷比例的風(fēng)險(xiǎn)評(píng)估結(jié)果[23]中,這些權(quán)限的權(quán)重不高,不能引起用戶關(guān)注。但是,現(xiàn)有研究成果發(fā)現(xiàn)惡意 APP利用“access wifi state”權(quán)限[24]和“read call log”權(quán)限[26]可獲取用戶隱私信息。在PRAS中,這些權(quán)限對(duì)隱私泄露風(fēng)險(xiǎn)評(píng)估的重要性可以明顯地體現(xiàn)出來(lái),達(dá)到了方案設(shè)計(jì)的目的。
當(dāng)suppm=0.75時(shí),非線性敏感度'Aβ的統(tǒng)計(jì)結(jié)果如圖3所示。其中,橫坐標(biāo)表示setm中組合權(quán)限數(shù)k,左縱坐標(biāo)軸與柱狀圖表示k條權(quán)限的組合數(shù)。圖3中大部分組合包含3或4條,最多包含6條敏感權(quán)限。圖3右縱坐標(biāo)軸與箱型圖表示k條權(quán)限時(shí)權(quán)限組合A非線性敏感度。箱型圖上/下沿表示k-權(quán)限時(shí),的最大/小值。圖3中,2-權(quán)限的最小值為2.66,最大值為4.08,平均值為3.36,6-權(quán)限最大值為9.95,最小值為9.47,平均值為9.66,隨著k增加,敏感度也隨之增加,說(shuō)明頻繁出現(xiàn)的權(quán)限組合A中,出現(xiàn)權(quán)限數(shù)目越多,A管理的隱私信息也越多,A就越敏感。
圖3 關(guān)聯(lián)規(guī)則算法最小支持度0.75時(shí),414個(gè)權(quán)限組合統(tǒng)計(jì)
表2 權(quán)限敏感度量化值
在用戶數(shù)據(jù)集Y中,不撤銷權(quán)限的情況下,識(shí)別出服務(wù)商從用戶獲取權(quán)限的統(tǒng)計(jì)如圖4所示。其中,橫坐標(biāo)為用戶索引號(hào),按包含的服務(wù)商的數(shù)目從大到小排序。左縱坐標(biāo)軸和柱狀圖為系統(tǒng)中所有服務(wù)提供商的數(shù)目,其中0號(hào)設(shè)備中包含67個(gè)服務(wù)商,49號(hào)設(shè)備中包含24個(gè)服務(wù)商,平均每個(gè)用戶包含 48個(gè)服務(wù)商。右縱坐標(biāo)軸和箱型圖表示服務(wù)提供商從智能設(shè)備中獲取權(quán)限詳情,箱型圖上/下沿表示獲得權(quán)限最多/最少的服務(wù)商。所有識(shí)別出的服務(wù)商中,平均每個(gè)服務(wù)商從用戶獲得 11條權(quán)限。每部設(shè)備中,獲得最多權(quán)限的服務(wù)商平均得到19條權(quán)限,獲得權(quán)限最少的服務(wù)商平均獲得2條,使用最多3條權(quán)限以依次“read phone state”“access wifi state”和“read external storage”。
圖4 單臺(tái)智能手機(jī)中包含的服務(wù)商統(tǒng)計(jì)
以數(shù)據(jù)集中0號(hào)用戶作為典型示例,分析其隱私信息泄露風(fēng)險(xiǎn),如圖5所示。其中,橫坐標(biāo)為包含的服務(wù)商索引號(hào),左縱坐標(biāo)軸表示隱私泄露風(fēng)險(xiǎn),右縱坐標(biāo)軸表示服務(wù)商獲取權(quán)限來(lái)源APP的數(shù)目。從圖5中可以看出,0號(hào)服務(wù)提供商從15個(gè)APP中獲取權(quán)限,隱私信息泄露風(fēng)險(xiǎn)為31.38;5~ 13號(hào)服務(wù)提供商從2個(gè)APP中獲取權(quán)限,由于得到的權(quán)限數(shù)目及敏感度不同,風(fēng)險(xiǎn)值由 13.79變化到28.3;14~66號(hào)服務(wù)提供商從一個(gè)APP中獲取權(quán)限,風(fēng)險(xiǎn)值由3.29變化到29.72。
圖5 典型用戶的隱私泄露詳情
智能設(shè)備中隱私泄露的風(fēng)險(xiǎn)與權(quán)限決策優(yōu)化結(jié)果如圖6所示,選取優(yōu)化后,單個(gè)應(yīng)用服務(wù)質(zhì)量損失的最大值和最小值的差值不超過(guò) 20%,且整體服務(wù)質(zhì)量損失不超過(guò)30%。圖中橫坐標(biāo)為用戶索引號(hào),按照隱私泄露風(fēng)險(xiǎn)值從大到小對(duì)用戶排序,縱坐標(biāo)為隱私泄露的風(fēng)險(xiǎn)值。從圖 6中可以看出,按照式(14)優(yōu)化后,每位用戶隱私信息泄露的風(fēng)險(xiǎn)得到不同程度的降低。優(yōu)化后,用戶隱私泄露風(fēng)險(xiǎn)最大下降29.4%,最少下降9.6%,平均下降18.5%,下降百分比的中位數(shù)為18.2%。
圖6 典型用戶隱私泄露風(fēng)險(xiǎn)優(yōu)化
為緩解移動(dòng)設(shè)備日益嚴(yán)峻的隱私信息泄露風(fēng)險(xiǎn),本文針對(duì)智能設(shè)備中APP包含第三方服務(wù)提供商非法讀取用戶隱私信息的問(wèn)題,提出了一種風(fēng)險(xiǎn)評(píng)估方案。該方案通過(guò)頻繁項(xiàng)集 Eclat算法挖掘常用權(quán)限組合,計(jì)算惡意侵犯隱私的APP集合與正常APP集合之間權(quán)限組合支持度的差異,量化權(quán)限組合對(duì)權(quán)限敏感度的影響,識(shí)別出系統(tǒng)中包含的服務(wù)提供商,構(gòu)建模型評(píng)估系統(tǒng)整體的隱私信息泄露風(fēng)險(xiǎn)。在APP整體的服務(wù)質(zhì)量與隱私保護(hù)之間做出均衡分析,構(gòu)建個(gè)性化最優(yōu)模型,計(jì)算系統(tǒng)整體的權(quán)限管理方案。實(shí)驗(yàn)結(jié)果進(jìn)一步地驗(yàn)證了所提方案的有效性和高效性。