• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于同源策略的移動(dòng)應(yīng)用細(xì)粒度隱私保護(hù)技術(shù)

      2020-02-08 07:11:16盧文雄王浩宇
      大數(shù)據(jù) 2020年1期
      關(guān)鍵詞:插樁細(xì)粒度訪問控制

      盧文雄,王浩宇

      北京郵電大學(xué)計(jì)算機(jī)學(xué)院,北京 100876

      1 引言

      近年來隨首移動(dòng)智能終端的快速發(fā)展,智能手機(jī)已經(jīng)融入人們的日常生活,多樣的移動(dòng)應(yīng)用帶來了豐富的功能和友好的用戶體驗(yàn)。目前各個(gè)主流移動(dòng)應(yīng)用市場(chǎng)中均有數(shù)百萬的移動(dòng)應(yīng)用[1],這些應(yīng)用及移動(dòng)終端中的海量用戶信息構(gòu)成了移動(dòng)應(yīng)用大數(shù)據(jù)生態(tài)系統(tǒng)。

      在移動(dòng)智能終端和多樣的移動(dòng)應(yīng)用給用戶帶來便利的同時(shí),移動(dòng)應(yīng)用大數(shù)據(jù)生態(tài)系統(tǒng)中各種新的安全和隱私問題也日益凸顯。一方面,移動(dòng)平臺(tái)的惡意軟件增長(zhǎng)迅速,這些惡意軟件會(huì)在用戶不知情的情況下,惡意扣費(fèi)、破壞系統(tǒng)、竊取用戶隱私等,給用戶帶來經(jīng)濟(jì)損失和隱私泄露問題;另一方面,移動(dòng)應(yīng)用隱私濫用情況嚴(yán)重,如很多應(yīng)用會(huì)獲取用戶的聯(lián)系人信息和地理位置信息,用于定制化廣告服務(wù)、第三方分析或者其他與應(yīng)用功能相關(guān)的服務(wù)等。智能手機(jī)上存儲(chǔ)著用戶的各種隱私信息(如聯(lián)系人、通話記錄、照片、地理位置信息等),這些信息很容易被應(yīng)用獲取并泄露。因此,移動(dòng)應(yīng)用大數(shù)據(jù)生態(tài)系統(tǒng)中的安全隱私問題十分嚴(yán)峻,成為用戶及研究者關(guān)注的焦點(diǎn)問題。

      當(dāng)前主流移動(dòng)平臺(tái)(如A n d r o i d 和iOS)均使用權(quán)限模型來控制移動(dòng)應(yīng)用對(duì)隱私信息的訪問。目前,Android和iOS移動(dòng)系統(tǒng)均使用運(yùn)行時(shí)權(quán)限,即在應(yīng)用第一次訪問隱私信息時(shí),系統(tǒng)會(huì)彈出一個(gè)提示框讓用戶決定是否允許該應(yīng)用訪問相應(yīng)隱私信息。如果用戶同意,則應(yīng)用就會(huì)獲得相應(yīng)權(quán)限,并且后續(xù)仍具有訪問該隱私信息的權(quán)限。然而,當(dāng)前的移動(dòng)平臺(tái)上廣泛存在權(quán)限濫用問題。很多應(yīng)用經(jīng)常申請(qǐng)不必要的敏感權(quán)限,這給用戶隱私信息帶來了被泄露的風(fēng)險(xiǎn)。很多應(yīng)用會(huì)在用戶不知情的情況下獲取并泄露用戶的隱私信息。用戶很多時(shí)候不了解應(yīng)用是否需要使用權(quán)限以及使用權(quán)限的原因,因此很難對(duì)應(yīng)用的權(quán)限進(jìn)行管理。

      當(dāng)前移動(dòng)平臺(tái)上基于權(quán)限的訪問控制通常采用“全有或者全無(a l l-o rnothing)”的方案,即要么允許應(yīng)用使用某個(gè)權(quán)限的所有行為,要么禁止應(yīng)用使用該權(quán)限,而不能根據(jù)應(yīng)用的行為選擇性地賦予其權(quán)限。移動(dòng)應(yīng)用的一個(gè)特點(diǎn)是廣泛使用第三方庫,且第三方庫與宿主應(yīng)用本身共享相同權(quán)限,因此很多第三方庫存在侵犯隱私或者越權(quán)行為,這就帶來了很多安全隱私問題[2-3]。然而,用戶無法了解應(yīng)用會(huì)如何使用隱私信息,更不能根據(jù)用戶隱私偏好對(duì)隱私信息使用細(xì)粒度控制(如只允許使用位置信息進(jìn)行地圖搜索,而不能使用位置信息進(jìn)行廣告推送和第三方分析)。

      針對(duì)這一問題,本文提出了基于同源策略的移動(dòng)應(yīng)用細(xì)粒度隱私保護(hù)技術(shù),將細(xì)粒度具體到開發(fā)者,可以允許或禁止特定開發(fā)者執(zhí)行特定敏感行為。

      2 研究背景及相關(guān)工作

      2.1 研究背景

      2.1.1 Android訪問控制機(jī)制

      Android系統(tǒng)采用權(quán)限模型對(duì)敏感信息的訪問進(jìn)行控制。如圖1所示,在早期Android版本(6.0版本以下)中,用戶根據(jù)應(yīng)用聲明的權(quán)限決定是否安裝,安裝即允許應(yīng)用使用相應(yīng)權(quán)限。自Android 6.0版本起,系統(tǒng)增加了運(yùn)行時(shí)的權(quán)限檢查機(jī)制,在目標(biāo)應(yīng)用程序接口(application programming interface,API)的版本號(hào)大于或等于23的應(yīng)用中,對(duì)于部分敏感權(quán)限,應(yīng)用需要在首次使用時(shí)向用戶發(fā)出請(qǐng)求,獲得允許后才能使用相關(guān)權(quán)限。

      在Android系統(tǒng)中,普通應(yīng)用采用的權(quán)限級(jí)別如下[1]。

      ● 正常權(quán)限:如藍(lán)牙、訪問網(wǎng)絡(luò)狀態(tài)。

      ● 危險(xiǎn)權(quán)限:如獲取聯(lián)系人、獲取位置信息。此外,還有一些事關(guān)系統(tǒng)安全的特殊權(quán)限,其保護(hù)級(jí)別要求更高,如“修改系統(tǒng)設(shè)置”。

      ● 危險(xiǎn)以上級(jí)別的權(quán)限:由于存在隱私泄露或系統(tǒng)安全風(fēng)險(xiǎn),需要經(jīng)用戶允許才可使用。

      Android 6.0及以上系統(tǒng)將危險(xiǎn)權(quán)限分為9個(gè)權(quán)限組,包括日歷、位置、聯(lián)系人、電話等,用戶可以根據(jù)應(yīng)用功能,以權(quán)限組為單位選擇是否允許使用權(quán)限。

      2.1.2 第三方庫引入的權(quán)限風(fēng)險(xiǎn)

      Android應(yīng)用中大量使用第三方庫,研究表明,移動(dòng)應(yīng)用中大約有60%的代碼屬于第三方庫[4]。這些第三方庫包括廣告庫(如Admob)、社交網(wǎng)絡(luò)庫(如Facebook)、第三方分析庫(如Google Analytic)等。第三方庫擁有與宿主應(yīng)用相同的權(quán)限,并且不能與應(yīng)用核心代碼進(jìn)行權(quán)限分離。應(yīng)用所用的第三方庫代碼和應(yīng)用本身的核心代碼均在同一個(gè)應(yīng)用的字節(jié)碼中,在權(quán)限模型中,一個(gè)應(yīng)用實(shí)際執(zhí)行時(shí),其權(quán)限聲明及設(shè)置的作用范圍是整個(gè)應(yīng)用,包括核心代碼及第三方庫。如果一個(gè)應(yīng)用被用戶授予與某種隱私相關(guān)的權(quán)限,則第三方庫也能訪問與之相關(guān)的隱私信息。在實(shí)際的使用過程中,這種授權(quán)方式存在越權(quán)訪問風(fēng)險(xiǎn)[3]。如導(dǎo)航應(yīng)用的開發(fā)者為了實(shí)現(xiàn)功能,聲明了與位置相關(guān)的危險(xiǎn)權(quán)限,用戶為了確定自己所在的位置,授予導(dǎo)航應(yīng)用獲取位置的權(quán)限。而現(xiàn)有權(quán)限機(jī)制下,同一個(gè)導(dǎo)航應(yīng)用中的廣告庫、分析庫等也可以訪問用戶的位置,用戶的位置信息通過上述越權(quán)訪問方式,在用戶及開發(fā)者對(duì)第三方庫均缺乏了解的情況下被泄露到非預(yù)期的域。

      2.2 相關(guān)工作

      2.2.1 面向第三方庫的安全分析和訪問控制

      關(guān)于第三方庫的越權(quán)訪問風(fēng)險(xiǎn),Ryan S等人[3]曾進(jìn)行相關(guān)研究,對(duì)比了廣告庫用到的權(quán)限與文檔說明的權(quán)限,發(fā)現(xiàn)很多廣告庫會(huì)使用文檔說明的權(quán)限之外的權(quán)限,并指出在應(yīng)用中使用廣告庫,實(shí)際上允許了廣告庫具有與宿主應(yīng)用相同的權(quán)限。當(dāng)廣告庫動(dòng)態(tài)檢測(cè)到所在應(yīng)用具有相應(yīng)權(quán)限時(shí),它們就會(huì)使用這些權(quán)限(其中很多是敏感權(quán)限),進(jìn)而使廣告提供者從用戶設(shè)備中提取相關(guān)信息。該研究還指出,不同于瀏覽器,Android應(yīng)用一旦被授予某種權(quán)限,第三方庫就會(huì)自動(dòng)獲得該權(quán)限,導(dǎo)致敏感信息泄露到應(yīng)用核心以外的域。

      針對(duì)第三方庫引入的安全隱私問題,學(xué)術(shù)界提出了一些細(xì)粒度訪問控制機(jī)制。例如,Liu B等人[5]提出了一個(gè)Android應(yīng)用細(xì)粒度訪問控制系統(tǒng),主要對(duì)第三方庫中廣告庫的安全風(fēng)險(xiǎn)進(jìn)行訪問控制。該研究中訪問控制的機(jī)制是利用機(jī)器學(xué)習(xí)區(qū)分應(yīng)用核心和廣告庫,以應(yīng)用為基準(zhǔn),允許/禁止應(yīng)用核心或廣告庫訪問特定資源,但不會(huì)影響其他第三方庫。系統(tǒng)對(duì)該應(yīng)用的所有廣告庫的同一類訪問采用相同的設(shè)置,即都禁止或都允許。例如,針對(duì)某款社區(qū)生活服務(wù)應(yīng)用,可以設(shè)置允許應(yīng)用核心訪問精確位置,但禁止所有廣告庫訪問精確位置,以此將應(yīng)用核心和廣告庫能訪問的信息進(jìn)行區(qū)分。AdSplit[6]對(duì)Android系統(tǒng)進(jìn)行了擴(kuò)展,使得應(yīng)用與其使用的廣告庫運(yùn)行在不同的進(jìn)程中,從而對(duì)廣告庫的行為進(jìn)行控制。AdDroid[7]引入針對(duì)廣告庫的API和權(quán)限,使得廣告庫的功能能夠從應(yīng)用中分離出來。在AdDroid提供的開發(fā)框架下,應(yīng)用不再需要集成廣告庫,而是通過使用擴(kuò)展的廣告API來集成廣告功能。應(yīng)用可通過廣告API配置一些信息(如要使用的廣告平臺(tái)以及廣告的上下文信息等),廣告API會(huì)從廣告平臺(tái)服務(wù)器獲取廣告,并處理用戶界面(user interface,UI)事件。Roesner F等人[8]提出通過修改Android系統(tǒng)來允許廣告的UI嵌入應(yīng)用界面,但并不賦予廣告庫敏感數(shù)據(jù)和權(quán)限。Perman[9-10]通過動(dòng)態(tài)代碼插樁技術(shù)對(duì)隱私信息的使用進(jìn)行細(xì)粒度控制,允許用戶指定策略來管理不同模塊(包括第三方庫和應(yīng)用本身)的權(quán)限。胡冰惠[11]提出了FineDroid系統(tǒng),用于追蹤分析隱私獲取、傳播、泄露及返回流接收、傳播的全過程,解決第三方庫隱私泄露問題。Diamantaris M等人[12]在不需要修改系統(tǒng)或者應(yīng)用的前提下,提出了一套動(dòng)態(tài)分析框架,能夠在運(yùn)行時(shí)準(zhǔn)確地判斷隱私信息的使用者是應(yīng)用本身還是嵌入的第三方庫,在此基礎(chǔ)上能夠?qū)Φ谌綆鞂?shí)現(xiàn)細(xì)粒度控制。

      2.2.2 移動(dòng)應(yīng)用權(quán)限的細(xì)粒度控制

      此外,學(xué)術(shù)界有大量的工作關(guān)注移動(dòng)應(yīng)用權(quán)限的細(xì)粒度訪問控制。例如,Wang HY等人[13-14]提出了基于權(quán)限使用意圖的訪問控制,即首先分析隱私信息使用的意圖(如使用位置信息進(jìn)行地圖搜索或者廣告推送),然后允許用戶指定基于意圖的訪問控制策略,在運(yùn)行時(shí)進(jìn)行實(shí)時(shí)控制。學(xué)術(shù)界提出了類似FlowDroid[15]的系統(tǒng)追蹤隱私信息流,并嘗試對(duì)信息流進(jìn)行分析,以此區(qū)分正常和異常的隱私信息使用[16]。另外,其他工作包括對(duì)權(quán)限進(jìn)行細(xì)化或者根據(jù)上下文進(jìn)行細(xì)粒度的訪問控制[17-18]、針對(duì)最小權(quán)限原則對(duì)應(yīng)用進(jìn)行分析和優(yōu)化[19-20]等。

      總體來看,雖然學(xué)術(shù)界有大量工作關(guān)注于細(xì)粒度訪問控制,然而目前的研究工作僅僅是針對(duì)單個(gè)應(yīng)用本身進(jìn)行細(xì)粒度控制的,并沒有考慮應(yīng)用中代碼的來源,即開發(fā)者。對(duì)于不同的開發(fā)者,用戶有不同的信任級(jí)別,而且同一個(gè)開發(fā)者的多個(gè)應(yīng)用中存在著隱私信息共享的情況,因此只需要對(duì)不同的開發(fā)者設(shè)置權(quán)限,而不是針對(duì)每個(gè)應(yīng)用單獨(dú)進(jìn)行權(quán)限管理。

      3 系統(tǒng)設(shè)計(jì)

      3.1 總體設(shè)計(jì)

      本文提出了一個(gè)基于同源策略的Android應(yīng)用訪問控制原型系統(tǒng),與之前的工作相比,區(qū)別在于引入了類似同源策略的訪問控制機(jī)制。本文提出的方法打破了應(yīng)用之間的界限,并將粒度細(xì)化到開發(fā)者,從單個(gè)應(yīng)用角度看,進(jìn)行了比原有Android權(quán)限模型更加細(xì)粒度的訪問控制,對(duì)單一應(yīng)用的同一敏感信息的訪問控制可以服從不同的規(guī)則,但對(duì)同一開發(fā)者的第三方庫的行為控制則服從相同的規(guī)則。此外,同一個(gè)開發(fā)者可能會(huì)開發(fā)多個(gè)第三方庫,很多流行的第三方庫往往會(huì)被多個(gè)應(yīng)用使用。如果用戶可以根據(jù)開發(fā)者選擇是否允許訪問指定隱私信息,將有助于減少特定開發(fā)者在多個(gè)應(yīng)用(或多個(gè)第三方庫)中給用戶隱私帶來的潛在風(fēng)險(xiǎn)。

      系統(tǒng)的整體設(shè)計(jì)思路如下:該系統(tǒng)需要用戶自行制定訪問控制策略,允許或者禁止特定開發(fā)者的代碼訪問特定資源。在敏感信息訪問處,需要?jiǎng)討B(tài)檢查訪問行為是否被用戶的策略設(shè)置為“允許”,應(yīng)用根據(jù)檢查結(jié)果,執(zhí)行相應(yīng)的訪問控制措施。

      為實(shí)現(xiàn)以上訪問控制措施,在應(yīng)用插樁階段,該系統(tǒng)需要對(duì)應(yīng)用進(jìn)行如下處理:對(duì)應(yīng)用中使用特定API獲取敏感信息的字節(jié)碼進(jìn)行靜態(tài)識(shí)別、分析,插樁用于修改或清除相關(guān)敏感信息的代碼段,并在應(yīng)用中增加設(shè)置檢查步驟。訪問控制的實(shí)現(xiàn)方式如圖2所示,即在請(qǐng)求訪問敏感信息之前,利用同源策略進(jìn)行授權(quán)檢查。

      為此,該系統(tǒng)需分塊實(shí)現(xiàn)以下功能。

      ● 針對(duì)Android應(yīng)用敏感信息使用行為進(jìn)行識(shí)別及代碼插樁,生成修改后的應(yīng)用。

      ● 允許用戶通過UI向系統(tǒng)中添加基于開發(fā)者的訪問控制設(shè)置。

      ● 對(duì)系統(tǒng)設(shè)置項(xiàng)進(jìn)行管理,并實(shí)現(xiàn)設(shè)置項(xiàng)與系統(tǒng)設(shè)置存儲(chǔ)的互通。

      ● 針對(duì)識(shí)別出的隱私信息使用行為,在運(yùn)行時(shí)檢查用戶設(shè)置,以進(jìn)行訪問控制。

      ● 在訪問控制過程中,針對(duì)具體行為對(duì)隱私信息進(jìn)行修改或訪問截?cái)唷?/p>

      該系統(tǒng)在結(jié)構(gòu)上由以下幾個(gè)模塊構(gòu)成。

      ● 一個(gè)靜態(tài)插樁工具,用于應(yīng)用的分析及修改。該工具基于Soot靜態(tài)分析工具實(shí)現(xiàn)。

      ● 一個(gè)允許用戶手動(dòng)添加、查看、修改、刪除相關(guān)設(shè)置的系統(tǒng)應(yīng)用。

      ● 一個(gè)后臺(tái)服務(wù),用于監(jiān)聽來自應(yīng)用的添加相關(guān)設(shè)置的請(qǐng)求,彈出窗口,允許用戶做出選擇。

      ● 一個(gè)用于管理用戶相關(guān)設(shè)置及進(jìn)行運(yùn)行時(shí)檢查的工具,對(duì)應(yīng)用提供一個(gè)可供調(diào)用的、用于檢查設(shè)置的API。

      ● 一個(gè)系統(tǒng)層面的隱私信息修改和攔截功能模塊。例如,針對(duì)位置信息,需要根據(jù)已知位置生成隨機(jī)偏差,得到模糊化處理后的位置。

      該系統(tǒng)的整體結(jié)構(gòu)如圖3所示。

      系統(tǒng)工作流程如下。

      (1)應(yīng)用修改

      將An droid應(yīng)用程序包(An droid application package,APK)文件及隱私信息修改/截?cái)喙ぞ哳惤y(tǒng)一導(dǎo)入Soot框架,并對(duì)給定應(yīng)用進(jìn)行特定敏感行為分析及代碼插樁,以改變應(yīng)用行為。

      (2)將修改后的應(yīng)用重新簽名,并安裝到Android手機(jī)上。

      (3)用戶設(shè)置

      用戶有兩條途徑對(duì)訪問控制進(jìn)行設(shè)置:一個(gè)是直接打開系統(tǒng)設(shè)置應(yīng)用,在界面上手動(dòng)添加或修改相關(guān)選項(xiàng),允許(或者禁止)特定開發(fā)者執(zhí)行指定的行為;另一個(gè)是在被修改的應(yīng)用運(yùn)行時(shí),檢查相關(guān)選項(xiàng),如果未設(shè)置,通知后臺(tái)服務(wù),該服務(wù)隨后會(huì)彈出一個(gè)對(duì)話框,內(nèi)容為相關(guān)代碼的開發(fā)者及敏感行為,提示用戶設(shè)置相關(guān)選項(xiàng),選擇允許或禁止。

      (4)運(yùn)行時(shí)訪問控制

      在修改版的應(yīng)用運(yùn)行時(shí),敏感行為代碼附近被插入的代碼段會(huì)進(jìn)行以下動(dòng)作:調(diào)用被插樁的靜態(tài)API,檢查用戶的相關(guān)設(shè)置,返回結(jié)果(允許/不允許),若未設(shè)置,則先請(qǐng)求設(shè)置;若結(jié)果為“不允許”,則調(diào)用相關(guān)工具類,對(duì)隱私信息做出模糊或清除處理,保護(hù)用戶隱私。

      3.2 應(yīng)用分析及插樁

      Soot是一個(gè)用于Java程序分析、優(yōu)化及修改的開源框架,接受各類字節(jié)碼、源碼等多種輸入,使用Jimple中間代碼作為統(tǒng)一表示。Android應(yīng)用APK文件中代碼的存在形式是Dalvik字節(jié)碼。利用Dexpler轉(zhuǎn)換工具,Soot可以將輸入的應(yīng)用APK文件反編譯成Jimple中間代碼,并將分析/修改后的中間代碼回編譯為Dalvik字節(jié)碼,輸出一個(gè)新的APK文件。

      本系統(tǒng)利用Soot分析框架,對(duì)Android應(yīng)用APK文件進(jìn)行靜態(tài)分析,找出獲取敏感信息(精確位置、聯(lián)系人)的特定代碼段,并在相應(yīng)位置插樁與本系統(tǒng)功能相關(guān)的代碼段,重新打包生成新的APK文件。利用Soot框架的Jimple分析功能,可以識(shí)別出應(yīng)用中每個(gè)類及其中方法的具體實(shí)現(xiàn),對(duì)于方法內(nèi)部的語句(賦值、調(diào)用等)也能做到逐條識(shí)別。本系統(tǒng)中,重點(diǎn)關(guān)注了敏感API調(diào)用的方法名、方法傳入的參數(shù)、返回值等信息以及方法所在包名(package name)中包含的開發(fā)者信息。此外,Soot框架還可以在Jimple代碼層對(duì)應(yīng)用進(jìn)行修改,包括添加/刪除語句、表達(dá)式,修改參數(shù)等。在本系統(tǒng)中表現(xiàn)為對(duì)應(yīng)用執(zhí)行行為的修改。

      根據(jù)Soot框架的應(yīng)用分析原理,本原型系統(tǒng)的應(yīng)用插樁過程如圖4所示。

      3.3 與訪問控制相關(guān)的用戶設(shè)置項(xiàng)

      目前,該系統(tǒng)針對(duì)Android應(yīng)用的兩類敏感行為(獲取位置信息、獲取聯(lián)系人)進(jìn)行訪問控制。該系統(tǒng)的用戶設(shè)置項(xiàng)可以對(duì)開發(fā)者的不同訪問行為,分別設(shè)置允許或禁止。用戶設(shè)置項(xiàng)由數(shù)量不定的規(guī)則條目構(gòu)成,每個(gè)規(guī)則條目對(duì)應(yīng)唯一一個(gè)開發(fā)者。

      現(xiàn)階段每條訪問控制規(guī)則都由一個(gè)三元組定義:T=(DEV,OP1,OP2)。DEV代表開發(fā)者,是條目的查詢關(guān)鍵字,采用字符串形式表示;“OPx”用整數(shù)表示,取值0,-1,-2,分別代表允許、不允許、該選項(xiàng)未設(shè)置。在工程實(shí)現(xiàn)上,依托Android系統(tǒng)的全局系統(tǒng)設(shè)置表(System.Settings.Global),以格式化字符串的形式存儲(chǔ)全部條目,并用Android系統(tǒng)設(shè)置相關(guān)API,實(shí)現(xiàn)設(shè)置讀寫。

      3.4 用戶設(shè)置工具應(yīng)用及系統(tǒng)服務(wù)

      為方便用戶查看、設(shè)置訪問控制相關(guān)選項(xiàng),本系統(tǒng)實(shí)現(xiàn)了一個(gè)用戶設(shè)置工具。為了在某個(gè)開發(fā)者的訪問控制選項(xiàng)未設(shè)置時(shí),彈窗提醒用戶進(jìn)行設(shè)置,本系統(tǒng)在該用戶設(shè)置工具上實(shí)現(xiàn)了后臺(tái)服務(wù)。

      用戶通過管理應(yīng)用,可以查看、添加、修改、刪除各個(gè)條目。當(dāng)修改后的應(yīng)用檢索不到某個(gè)開發(fā)者的訪問控制選項(xiàng)時(shí),啟動(dòng)后臺(tái)服務(wù)。此時(shí)正在使用的應(yīng)用會(huì)彈出提示窗口,詢問用戶是否允許開發(fā)者執(zhí)行此類行為。用戶只需設(shè)置一次,系統(tǒng)設(shè)置項(xiàng)中就會(huì)有相應(yīng)記錄。

      3.5 設(shè)置檢查與訪問控制

      在與敏感信息相關(guān)的代碼段執(zhí)行前,插入動(dòng)態(tài)檢查用戶設(shè)置的代碼段,并進(jìn)行用戶設(shè)置檢查。其中,開發(fā)者信息是利用應(yīng)用分析中獲取的敏感API方法所在類的包名,在插樁時(shí)以常量字符串的形式插入的。針對(duì)位置信息敏感數(shù)據(jù),通過設(shè)備位置改變時(shí)應(yīng)用的回調(diào)方法將位置參數(shù)進(jìn)行模糊處理。針對(duì)返回值,通過獲取已知位置的方法進(jìn)行模糊處理。針對(duì)聯(lián)系人信息敏感數(shù)據(jù),插入動(dòng)態(tài)檢查參數(shù)的代碼段及如下條件語句:若確為聯(lián)系人的統(tǒng)一資源標(biāo)識(shí)符(uniform resource identifier,URI),則執(zhí)行截?cái)嗖僮鳌?/p>

      4 系統(tǒng)實(shí)現(xiàn)及實(shí)驗(yàn)結(jié)果

      4.1 系統(tǒng)實(shí)現(xiàn)

      在移動(dòng)端,為方便應(yīng)用調(diào)用以及用戶設(shè)置,對(duì)Android 框架層進(jìn)行修改,重新編譯、安裝,并將本系統(tǒng)的設(shè)置應(yīng)用以系統(tǒng)應(yīng)用的形式安裝在測(cè)試用機(jī)上。在PC端,部署了Soot應(yīng)用分析框架運(yùn)行所需的 環(huán)境,并實(shí)現(xiàn)了應(yīng)用插樁相關(guān)工具類,可以對(duì)應(yīng)用的APK文件進(jìn)行插樁和重簽名操作,在Linux系統(tǒng)或者cygwin環(huán)境下均可啟動(dòng)運(yùn)行。將插樁處理并重簽名的應(yīng)用安裝到測(cè)試機(jī)上,即可實(shí)現(xiàn)對(duì)該應(yīng)用特定敏感行為的訪問控制。

      4.2 實(shí)驗(yàn)結(jié)果

      測(cè)試階段分兩部分進(jìn)行:第一部分驗(yàn)證具體的隱私信息處理措施及應(yīng)用內(nèi)的細(xì)粒度訪問控制是否起到了作用;第二部分驗(yàn)證以開發(fā)者為基準(zhǔn)的系統(tǒng)設(shè)計(jì)會(huì)對(duì)訪問控制過程及結(jié)果起到何種作用。

      在測(cè)試全過程中,為避免Android系統(tǒng)已有訪問控制機(jī)制對(duì)測(cè)試結(jié)果的影響,對(duì)于插樁處理后的應(yīng)用,啟動(dòng)前在“權(quán)限設(shè)置”里將其對(duì)“位置”“聯(lián)系人”的訪問權(quán)限全部設(shè)置為“允許”。在部署相應(yīng)模塊的開源Android系統(tǒng)上,對(duì)應(yīng)用進(jìn)行插樁、測(cè)試,結(jié)論如下。

      ● 通過對(duì)敏感API的判定、代碼插樁,可以改變應(yīng)用行為,實(shí)現(xiàn)訪問控制。

      ● 通過用戶策略的設(shè)置與運(yùn)行時(shí)檢查,可以根據(jù)敏感API調(diào)用代碼的開發(fā)者,并選擇性地進(jìn)行訪問控制,改變應(yīng)用的相關(guān)行為。

      4.2.1 細(xì)粒度訪問控制功能測(cè)試

      以與位置信息相關(guān)的應(yīng)用為例,說明對(duì)位置信息修改的測(cè)試。利用開發(fā)的插樁工具插樁該位置應(yīng)用,在插樁時(shí)設(shè)置位置信息偏移距離范圍2 km

      清空本系統(tǒng)相關(guān)設(shè)置條目,啟動(dòng)應(yīng)用,選擇“我的位置(mylocation)”選項(xiàng),屏幕上會(huì)出現(xiàn)Google地圖,地圖上會(huì)顯示通過設(shè)備硬件(在測(cè)試環(huán)境下是通過Wi-Fi網(wǎng)絡(luò))的定位結(jié)果以及該位置應(yīng)用根據(jù)該位置進(jìn)行的標(biāo)注。如果應(yīng)用是未修改的版本,二者應(yīng)該是同一位置。由于系統(tǒng)中未設(shè)置任何條目,已修改的應(yīng)用在運(yùn)行過程中先后彈出了2個(gè)窗口,如圖5所示,分別要求用戶對(duì)第三方開發(fā)者(com.google)和應(yīng)用核心功能開發(fā)者(com.prime)的位置相關(guān)行為進(jìn)行設(shè)置。

      通過對(duì)該應(yīng)用的原始版本進(jìn)行反編譯分析得知,在地圖標(biāo)注過程中,設(shè)備位置信息的流動(dòng)如圖6所示。

      由以上分析可知,本應(yīng)用中com.prime的地圖標(biāo)注點(diǎn)位置是通過監(jiān)聽com.google定位庫的定位結(jié)果間接獲得的。故在測(cè)試時(shí),在實(shí)驗(yàn)組中以上兩個(gè)開發(fā)者的“位置”設(shè)置項(xiàng)有且只有一個(gè)被設(shè)為“不允許”,以體現(xiàn)位置信息修改對(duì)應(yīng)用行為的影響。

      修改針對(duì)兩個(gè)開發(fā)者的設(shè)置項(xiàng),觀察標(biāo)注點(diǎn)情況,結(jié)果記錄見表1。

      表1中的“偏移量符合預(yù)期”,是指標(biāo)注點(diǎn)相對(duì)于設(shè)備位置的偏移距離大于2 km且小于5 km。

      為了與細(xì)粒度控制的實(shí)驗(yàn)組1、實(shí)驗(yàn)組2相比,對(duì)照組2將地圖標(biāo)記過程中所有涉及位置監(jiān)聽的開發(fā)者都設(shè)置為“不允許監(jiān)聽精確位置”,即進(jìn)行較粗粒度的訪問控制。標(biāo)記結(jié)果偏移量可能超出預(yù)期(不小于5 km或不大于2 km),結(jié)合應(yīng)用反編譯分析結(jié)果,推測(cè)可能的原因是在地圖標(biāo)記過程中的2個(gè)監(jiān)聽行為獲取到的位置信息均被加偏,且在位置信息傳遞過程中,兩次偏移量被疊加,導(dǎo)致總的偏移量不在預(yù)期范圍內(nèi),位置信息流動(dòng)示意圖如圖6所示。

      由以上測(cè)試可知,通過比較實(shí)驗(yàn)組1、實(shí)驗(yàn)組2和對(duì)照組1(無控制),系統(tǒng)中實(shí)現(xiàn)了“位置修改”動(dòng)作,對(duì)該應(yīng)用中監(jiān)聽器監(jiān)聽到的位置信息進(jìn)行了修改,并且對(duì)不同開發(fā)者的代碼行為采用不同的訪問控制設(shè)置。通過比較實(shí)驗(yàn)組1、實(shí)驗(yàn)組2與對(duì)照組2,結(jié)合反編譯分析結(jié)果,初步驗(yàn)證了該系統(tǒng)可以對(duì)應(yīng)用內(nèi)部不同開發(fā)者的代碼行為分別進(jìn)行控制,即實(shí)現(xiàn)應(yīng)用內(nèi)部的細(xì)粒度控制。對(duì)com.freshideas.airindex、com.tweakersoft.aroundme等應(yīng)用進(jìn)行測(cè)試,驗(yàn)證了對(duì)位置信息的修改。

      對(duì)聯(lián)系人信息截?cái)嗟臏y(cè)試,以與聯(lián)系人相關(guān)的應(yīng)用為例進(jìn)行說明。利用插樁工具插樁該應(yīng)用,并安裝到設(shè)備。由于該應(yīng)用在啟動(dòng)時(shí)會(huì)讀取聯(lián)系人列表,并顯示在主界面,故測(cè)試的預(yù)設(shè)條件為:系統(tǒng)中已有至少一個(gè)聯(lián)系人條目。進(jìn)行2次測(cè)試,測(cè)試條件及結(jié)果見表2,測(cè)試界面如圖7所示。

      由此可知,插樁的截?cái)啻a阻止了應(yīng)用通過調(diào)用查詢函數(shù)獲取聯(lián)系人。

      表1 位置信息修改及細(xì)粒度控制測(cè)試結(jié)果

      表2 聯(lián)系人信息截?cái)鄿y(cè)試結(jié)果

      4.2.2 訪問控制驗(yàn)證—— 跨應(yīng)用測(cè)試

      由于不同應(yīng)用可能會(huì)使用相同開發(fā)者的第三方庫執(zhí)行相似行為,因此在設(shè)計(jì)上,只要首次執(zhí)行時(shí)用戶選擇允許/禁止某開發(fā)者的代碼執(zhí)行某類行為,其后該開發(fā)者的代碼在其他應(yīng)用程序中再執(zhí)行同樣行為時(shí),也會(huì)被相應(yīng)允許/禁止,這是本文的系統(tǒng)與現(xiàn)有的訪問控制系統(tǒng)最主要的區(qū)別,即其他相關(guān)的訪問控制系統(tǒng)無法做到跨應(yīng)用的訪問控制。下面針對(duì)這一點(diǎn)進(jìn)行測(cè)試,以驗(yàn)證本文的系統(tǒng)對(duì)同一開發(fā)者同類敏感行為的訪問控制。

      某社區(qū)信息應(yīng)用以及某地圖應(yīng)用都是與位置信息相關(guān)的應(yīng)用,在定位時(shí)都需要用到“com.google”開發(fā)的定位庫。測(cè)試時(shí),先清空系統(tǒng)中相關(guān)設(shè)置,將兩個(gè)應(yīng)用分別進(jìn)行插樁,插樁時(shí)位置信息偏移距離范圍均設(shè)置為2 km

      此時(shí)啟動(dòng)該社區(qū)信息應(yīng)用,系統(tǒng)中后臺(tái)服務(wù)彈出窗口,詢問是否允許com.google訪問精確位置,如圖8所示。用戶選擇信任com.google的位置使用行為,點(diǎn)擊了“是”。從運(yùn)行結(jié)果看,該應(yīng)用正確地返回了設(shè)備位置周邊的公交車站等設(shè)施信息。

      關(guān)閉該應(yīng)用,再啟動(dòng)地圖應(yīng)用,選擇“位置”選項(xiàng),結(jié)果顯示該應(yīng)用的地圖標(biāo)注功能在地圖上正確標(biāo)注了設(shè)備位置,說明通過檢測(cè)系統(tǒng)中已存在的用戶相關(guān)設(shè)置,該應(yīng)用中com.google的定位庫使用了準(zhǔn)確的位置信息。

      回到同源權(quán)限助手應(yīng)用,與用戶的初始設(shè)置相反,此時(shí)將“com.google”設(shè)置為“不允許位置相關(guān)行為”,在兩款應(yīng)用中均觀察到了標(biāo)注或搜索偏差。

      由此可見,在本文提出的訪問控制系統(tǒng)中,基于開發(fā)者的訪問控制機(jī)制可以使用戶以同一設(shè)置項(xiàng)控制不同應(yīng)用中同一開發(fā)者的某一類訪問行為,信任粒度為開發(fā)者。這種控制機(jī)制的應(yīng)用意義在于,當(dāng)多個(gè)應(yīng)用中包含同一開發(fā)者的第三方庫(如廣告庫)時(shí),用戶可以通過單次設(shè)置來控制這些第三方庫的敏感行為,免于對(duì)每個(gè)應(yīng)用單獨(dú)設(shè)置。事實(shí)上,很多第三方庫會(huì)被多種應(yīng)用使用。在第三方庫訪問控制中,基于開發(fā)者的訪問控制設(shè)置能起到打破應(yīng)用邊界、擴(kuò)展控制范圍的作用。

      5 系統(tǒng)的限制

      由于需要對(duì)應(yīng)用進(jìn)行插樁,因此本文提出的訪問控制系統(tǒng)存在一些限制。首先,由于目前移動(dòng)應(yīng)用生態(tài)中重打包現(xiàn)象嚴(yán)重,一些應(yīng)用出于安全考慮會(huì)檢查代碼是否被修改,因此本文提出的自動(dòng)化插樁會(huì)受限。其次,應(yīng)用的加殼和混淆會(huì)影響對(duì)敏感API的分析和插樁。此外,在對(duì)應(yīng)用插樁時(shí),需要準(zhǔn)確識(shí)別第三方庫代碼,盡管可以利用學(xué)術(shù)界提供的工具來做,但是仍然可能存在檢測(cè)不準(zhǔn)確或者不全的情況。

      6 結(jié)束語

      本文借鑒同源策略,提出并設(shè)計(jì)了一個(gè)以應(yīng)用來源(開發(fā)者)為控制粒度的Android應(yīng)用細(xì)粒度訪問控制原型系統(tǒng)。提出的方法打破了應(yīng)用之間的界限,并將粒度細(xì)化到開發(fā)者,從單個(gè)應(yīng)用角度看,進(jìn)行了比原有Android權(quán)限模型更加細(xì)粒度的訪問控制。本文對(duì)主流Android應(yīng)用進(jìn)行插樁及測(cè)試,結(jié)果表明本系統(tǒng)能夠起到允許或限制特定開發(fā)者執(zhí)行特定敏感行為的作用,這也驗(yàn)證了對(duì)Android應(yīng)用基于代碼來源的細(xì)粒度訪問控制方式的可行性。

      猜你喜歡
      插樁細(xì)粒度訪問控制
      融合判別性與細(xì)粒度特征的抗遮擋紅外目標(biāo)跟蹤算法
      基于TXL的源代碼插樁技術(shù)研究
      細(xì)粒度的流計(jì)算執(zhí)行效率優(yōu)化方法
      基于性能分析的自適應(yīng)插樁框架
      基于雙線性卷積網(wǎng)絡(luò)的細(xì)粒度圖像定位
      基于記錄重播的嵌入式系統(tǒng)死鎖檢測(cè)方法
      ONVIF的全新主張:一致性及最訪問控制的Profile A
      支持細(xì)粒度權(quán)限控制且可搜索的PHR云服務(wù)系統(tǒng)
      動(dòng)態(tài)自適應(yīng)訪問控制模型
      淺析云計(jì)算環(huán)境下等級(jí)保護(hù)訪問控制測(cè)評(píng)技術(shù)
      科技| 临西县| 蚌埠市| 五大连池市| 牙克石市| 永济市| 托里县| 调兵山市| 连云港市| 镇江市| 巴东县| 上思县| 云霄县| 阿拉尔市| 乌什县| 固阳县| 浦县| 繁昌县| 榆社县| 西宁市| 昭苏县| 西华县| 尼木县| 汉川市| 子洲县| 浦东新区| 绿春县| 平谷区| 丰县| 西平县| 兴山县| 怀集县| 巴中市| 雷山县| 玛曲县| 囊谦县| 横山县| 房产| 永平县| 江达县| 平果县|