亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android應用隱私條例與敏感行為一致性檢測*

        2019-01-17 06:32:26王靖瑜徐明昆王浩宇徐國愛
        計算機與生活 2019年1期
        關鍵詞:連詞狀語文檔

        王靖瑜,徐明昆,王浩宇,徐國愛

        1.北京郵電大學 網(wǎng)絡技術研究院,北京 100876

        2.北京郵電大學 計算機學院,北京 100876

        3.北京郵電大學 網(wǎng)絡空間安全學院,北京 100876

        1 引言

        在移動智能終端和多樣的移動應用給用戶帶來便利的同時,移動平臺上各種新的安全和隱私問題也日益凸顯。當前的移動平臺(尤其Android平臺)上廣泛存在權(quán)限濫用的問題。很多應用經(jīng)常申請不必要的敏感權(quán)限,使用戶隱私面臨被泄露的風險。用戶很多時候不了解應用是否需要使用權(quán)限以及為什么使用權(quán)限,很難對應用的權(quán)限進行管理。

        Google建議開發(fā)者在上傳應用時發(fā)布隱私條例文檔[1],即開發(fā)者需要聲明用戶相關的隱私信息如何被使用、收集或分享,其目的是使用戶了解隱私信息如何被使用,從而更好地保護用戶隱私。盡管應用開發(fā)者為了向用戶說明軟件潛在的隱私風險而發(fā)布相關的隱私條例,但是用戶很難直觀地判斷文檔的正確性,當應用收集或分享了隱私條例中聲明之外的信息時,用戶對此并不知情。相關研究表明[2-4],很多應用行為與其隱私條例的不一致性存在濫用權(quán)限和隱私泄露的風險。Android應用中大量使用第三方庫,因此隱私條例中應該包含第三方庫隱私信息的行為。然而,相關研究工作表明很多應用開發(fā)者對第三方庫的行為并不了解[5]。一方面,第三方庫一般不會提供源代碼,并且數(shù)據(jù)的收集也非透明化。另一方面,很多第三方庫存在越權(quán)行為[6],僅通過第三方庫的文檔很難了解這些行為。此外,很多應用(包括一些惡意應用)會故意隱藏其敏感行為,通過編寫虛假的隱私條例使用戶相信該應用的安全性。美國對隱私信息的收集要求很嚴格,不準確的隱私條例會造成罰款,例如,F(xiàn)TC將會對未獲得父母同意收集孩子個人信息的應用罰款$800 000[7]。因此,檢測移動應用的隱私條例是否與應用行為相一致對于保護用戶隱私至關重要。

        近年來,有不少相關研究關注于隱私條例分析,然而準確進行隱私條例與應用行為的一致性分析還存在以下主要挑戰(zhàn):

        (1)隱私條例文檔中句子形式復雜多樣,因而使用非人工的手段分析和提取有用信息是很困難的。若要提取出關鍵成分,需要使用自然語言處理方法生成句子間詞語的依賴關系和層次關系,從中找出信息特征(主謂賓定狀補)。同時,還要解決句子中關聯(lián)詞組、連詞和狀語成分等的提取問題,因為這些成分無法直接從句子的依賴關系和層次關系獲得,需要再次進行分析。在之前的研究工作中[8],沒有對狀語、連詞和詞組進行分析,會造成提取的信息不完整的現(xiàn)象。例如“we collect information about your device ID,phone number.”,若沒有分析狀語和詞組,“about”修飾的“device ID”和“phone number”將無法提取出來,造成假陰性,使得實驗結(jié)果中隱私條例不完整的比例增大。

        (2)隱私條例中包含第三方庫隱私信息的行為,之前研究工作通常使用白名單方法來檢測第三方庫。然而白名單方法覆蓋率不全,現(xiàn)有工作標記的白名單遠遠少于可用的第三方庫數(shù)量,并且不能應對代碼混淆問題。研究表明,超過50%的第三方庫都存在不同程度的代碼混淆[9]。不能準確檢測第三方庫會導致應用行為分析得不準確,從而導致一致性分析出現(xiàn)漏報的問題。

        (3)現(xiàn)有的隱私條例一致性分析工作均使用靜態(tài)分析來檢測應用的敏感行為,然而靜態(tài)分析在處理Java反射和動態(tài)加載時存在局限性,導致應用行為分析得不準確[10]。

        為了解決這些挑戰(zhàn),本文首先使用一種改進的自然語言處理的方法對應用開發(fā)者編寫的隱私條例文檔進行分析,準確提取開發(fā)者聲明的應用敏感行為。本文基于Standford Parser設計了提取特征的算法,并增加了連詞、修飾賓語的狀語和關聯(lián)詞組成分的分析,相對于之前研究工作,提取出的隱私信息更加完善,然后通過將提取出的信息進行歸類,用于一致性分析。其次,使用靜態(tài)分析和動態(tài)分析相結(jié)合的方法分析應用實際的隱私行為,提高了應用行為分析的準確性。此外,區(qū)別于傳統(tǒng)的白名單對照方式,使用基于聚類的第三方庫的檢測方法提高了第三方庫檢測的準確性。通過在455個應用上進行實驗表明,工具在隱私條例中提取隱私信息的準確率達到94.75%,并檢測出有49.7%的應用存在隱私條例一致性的問題。

        2 研究背景及相關工作

        2.1 隱私條例

        隱私條例包含的信息類型主要包括可體現(xiàn)用戶身份的信息、應用程序運行時可能會使用或分享的個人信息、信息使用的目的性等[11]。例如,圖1為應用com.appsbar.JosephWeather的隱私條例示例,示例中展示了應用中聲明使用信息的方式。

        Fig.1 Privacy policy of com.appsbar.JosephWeather圖1 com.appsbar.JosephWeather的隱私條例

        2.2 問題定義

        本文的研究目標為自動識別應用隱私條例與應用行為的不一致性,主要存在3種問題:

        Fig.2 Privacy policy and sensitive behavior of air.mwe.cookingcuteheartcupcake圖2 air.mwe.cookingcuteheartcupcake的隱私條例描述和應用敏感行為

        (1)不完整的隱私條例:正確的隱私條例應該包含應用使用的所有的隱私數(shù)據(jù)及其使用方式,否則認為該應用侵犯用戶隱私。圖2為air.mwe.cooking-cuteheartcupcakes應用的隱私條例聲明,在隱私條例中沒有聲明使用位置信息,但在實際行為中,在代碼中調(diào)用getLastKnownLocation()獲取位置信息。

        (2)不正確的隱私條例:不正確的隱私條例是指應用在隱私條例中聲明不會收集、使用或分享某些隱私信息,但實際進行了這種行為。例如,圖3中,應用com.macropinch.hydra.android的隱私條例聲明不會使用位置信息“We will not collect personal information,including your geographic location information,names…”,然而卻在代碼中發(fā)現(xiàn)它調(diào)用了<android.location.LocationManager getLastKnownLocation()>獲取用戶的位置信息。

        Fig.3 Privacy policy and sensitive behavior of com.macropinch.hydra.android圖3 com.macropinch.hydra.android的隱私條例描述和應用敏感行為

        (3)不一致的隱私條例:當應用聲明不會使用某些隱私信息,但在第三方庫中使用了這些隱私信息時,就產(chǎn)生了不一致問題。例如,圖4中,應用com.bestringtonesapps.cuteringtones在隱私條例中聲明“We do not collect information such as your name,address,phone number…”,但其使用的第三方庫Fabric使用了READ_PHONE_STATE權(quán)限。

        Fig.4 Privacy policy and the third library used of com.bestringtonesapps.cuteringtones圖4 com.bestringtonesapps.cuteringtones的隱私條例描述及其使用的第三方庫

        2.3 相關工作

        Slavin等人[4]使用拓撲圖將隱私信息進行層次關聯(lián),將聲明不確切的信息和沒有聲明的信息進行違規(guī)的程度判定,但是,其靜態(tài)分析中沒有考慮內(nèi)容提供商使用的隱私信息和應用運行時加載和Java反射中的應用行為,且沒有分析使用的第三方庫。

        Yu等人[5,8]研究了應用隱私條例文檔及應用行為的不一致性問題。研究中使用Standford Parser獲取隱私條例聲明的信息,并使用靜態(tài)分析獲取應用行為。然而,在隱私條例分析沒有進行連詞和狀語分析,會導致部分文檔中聲明的隱私信息無法提取。此外,在分析應用使用的第三方庫時,使用了白名單的方式,無法解決代碼混淆問題。此外,只使用靜態(tài)分析的方式可能無法應對動態(tài)加載及Java反射機制,造成應用行為分析不準確,影響檢測結(jié)果。

        Reyes等人[12]對Google Play中的針對于13歲以下的青少年或兒童的應用進行隱私權(quán)限的分析,使用監(jiān)控網(wǎng)絡流量和運行時截圖的方式獲取其使用的敏感信息和交互行為,但卻使用人工的方式將其與隱私條例進行匹配,過多的人工干預,使得準確率和效率都大幅下降。

        本文使用自然語言處理工具來分析隱私條例信息,在相關研究工作[8]的基礎上,增加了狀語、連詞和詞組成分的分析,使得提取出的隱私條例信息更完善。此外,除了使用靜態(tài)分析的方式檢測應用行為,本文還使用動態(tài)分析的方法獲取動態(tài)加載和Java反射產(chǎn)生的應用行為,同時使用基于聚類的第三方庫檢測工具檢測應用中第三方庫使用的隱私行為獲取應用行為信息,解決白名單方式第三方庫檢測不全和無法獲取第三方庫實際應用行為的問題。最后,使用顯示語義分析的方法將隱私條例信息和應用行為進行一致性判定。

        3 研究方法

        3.1 總體介紹

        系統(tǒng)總體流程圖如圖5所示。如圖5所示,對于每個應用,首先提取應用對應的隱私條例中信息,包括信息的類型以及信息的使用行為,然后對應用進行靜態(tài)分析和動態(tài)測試獲得應用實際的敏感行為,最后將二者分析的結(jié)果進行一致性檢測,判斷隱私條例是否存在不完整、不正確或者不一致的現(xiàn)象。

        Fig.5 Flow chart of whole system圖5 系統(tǒng)總體流程圖

        3.2 隱私條例分析

        3.2.1 句子結(jié)構(gòu)

        一個常見的隱私條例的句子結(jié)構(gòu)如圖6所示。如圖6所示,隱私條例中的句子主要包含3個關鍵部分,包括執(zhí)行者、動作和資源,其他的成分如條件(在什么條件下使用該信息)、目的(使用該信息的目的)、時間(什么時候使用)等是可選成分。

        Fig.6 Common structure of privacy policy圖6 一個常見的隱私條例的句子結(jié)構(gòu)

        執(zhí)行者:是收集、保存或分享隱私信息的實體,即應用開發(fā)者或第三方庫開發(fā)者。執(zhí)行者是動作的發(fā)出者,通常是主語。如圖6的“We”。

        動作:執(zhí)行者的行為,例如:收集、保存或分享,如圖6的“collect”。

        資源:是動作的執(zhí)行對象,即隱私信息的部分,在圖6中為“your device information”。

        3.2.2 動詞分類

        本文隨機從谷歌應用商店中挑選出50個隱私條例文檔,對其進行動詞(行為)特征提取,并根據(jù)文獻[13]中的結(jié)果,將隱私條例中常見的動詞分為3類:

        (1)Collect動詞:用于描述應用使用過程中對信息的收集和使用的行為,例如:collect、use等。

        (2)Store動詞:用于描述應用使用過程中對隱私信息進行保存的行為,例如:retain、store、save等。

        (3)Share動詞:用于描述應用使用過程中把隱私信息分享給第三方的行為,例如:share、disclose等。

        基于以上3種行為,將隱私條例中分析的結(jié)果分為AppCollect、AppStore、AppShare 3種,分別對應代碼中收集、保存、分享的隱私信息。同時,文檔中可能存在否定句的成分,因此相反的,否定句的結(jié)果分為 3 種:AppNotCollect、AppNotStore、AppNotShare。分別對應代碼中不會收集、保存、分享的隱私信息。

        3.2.3 隱私條例分析方法

        隱私條例分析的目的是提取出隱私條例文檔中聲明的隱私信息及其行為,通過對隱私條例的主謂賓、狀語、連詞、詞組和否定特征等分析,篩選出信息進行歸類。圖7為該隱私條例分析方法。

        Fig.7 Analysis of privacy policy圖7 隱私條例分析

        (1)預處理

        該工具需要從文本中提取出隱私條例內(nèi)容,然后將其切分為句子的形式。使用了Beautiful Soup[14]將文本轉(zhuǎn)化成html的格式,隱私條例文檔中存在著大量的特殊符號,可能會在分析時產(chǎn)生錯誤,因此將非ASCII符號進行替換,使Standford Parser進行分析時不會產(chǎn)生句子分割錯誤的現(xiàn)象。同時,將文本中的所有字符都轉(zhuǎn)換為小寫字母。

        (2)語義分析

        預處理后可以得到需要分析的隱私條例文檔的內(nèi)容。為了完成(4),本文使用Standford Parser[15]將文檔中的例句“we share your information with the third party to improve service”轉(zhuǎn)換成句子對應的層次結(jié)構(gòu)和依賴關系結(jié)構(gòu)。

        層次結(jié)構(gòu):層次結(jié)構(gòu)中的句子被拆分成短語,每一層代表一個短語,每一個單詞和短語都分別有一個詞性標簽,常見的標簽有:名詞(NN)、動詞(VB)、形容詞(ADJ)等。圖8為層次結(jié)構(gòu)圖,動詞為“share”,名詞詞組是“your information”。

        Fig.8 Analysis of hierarchy structure圖8 層次結(jié)構(gòu)分析

        依賴關系:圖9為例句的依賴關系圖。依賴關系描述了句子中每個單詞間的相關關系,常見的關系有:sbj代表主語,root代表依賴關系的根節(jié)點,nsubjpass代表被動語態(tài)中的主語,cc或conj代表并列關系(and,or等)。圖9中句子的根節(jié)點“share”,主語是“we”,賓語是“information”[16]。

        Fig.9 Analysis of dependency structure圖9 依賴關系分析

        (3)特征提取

        由于隱私條例文檔中的內(nèi)容包含多種信息,如應用介紹等與本文無關的信息,同時隱私條例沒有固定的格式,句子冗余信息過多。因此,需提取主要特征簡化句子結(jié)構(gòu)。首先,利用依賴關系提取句子模式為“主語—謂語—賓語”的部分。本文對50個不同的隱私條例文檔進行TF-IDF(term frequencyinverse document frequency)分析提取謂語特征,然后篩選出最常見的39個動詞放入動詞白名單中,用于篩選隱私條例中的動作,例如:collect、share、disclose、keep等,進而可以剔除一些不相關的隱私行為(make、have等)。其次,根據(jù)有效動詞從依賴關系中提取其主語和賓語成分,構(gòu)成主謂賓最短的句子模式;若句子的結(jié)構(gòu)為主語—be allowed/accessed to+動詞—賓語模式或者主語—be able to+動詞—賓語模式,則根據(jù)依賴關系提取“xcomp”或“ccomp”成分作為實際的隱私信息行為,例如“we are allowed to collect your phone number”。為了過濾掉特征中的無意義詞語,本文使用停用詞列表[17]去除特征中的無用詞,例如your、our等;對于賓語去掉于隱私信息分析無用的詞,例如service等。

        為了提高隱私信息提取的準確性,本文還進行狀語、連詞和詞組成分的提取。

        首先,部分隱私條例的隱私信息會出現(xiàn)在狀語中,忽略狀語的分析可能使得提取出的信息不完整。例如,facebook的隱私條例其中一句是“we collect information about the purchase or transaction.”,只提取主謂賓的成分后獲得的信息是“we collect information”,“information”是一個無意義的信息,真正修飾“information”的成分為about后的狀語內(nèi)容。為了解決這類問題,提取出賓語子樹成分中含有“about”“of”“from”“including”“such as”等詞為子樹根節(jié)點的名詞短語部分,放入資源列表中。

        其次,相關研究工作[8]沒有考慮連詞成分的提取,導致信息提取不全。例如,應用LeadBolt的隱私條例其中一句為“We may also collect and store information locally on your device using mechanisms such as local storage identifiers.”,只提取主謂賓成分后獲得的信息是“we collect information”,無法提取出其連詞成分store,而store也是本文關注的隱私行為,因此可能會在一致性檢測中造成不完整的問題發(fā)生。此外,名詞并列情況如“And also you may choose to submit an e-mail address and password for account recover process(Log-in)and later communication.”,若不進行連詞成分提取,將忽略信息“password”。因此,本文還根據(jù)句子依賴關系“cc”“conj_”,提取出謂語和賓語的連詞成分添加到資源列表和行為列表中。最后,有些隱私信息并不是單一詞形式,例如“device Id”“phone number”等,若只根據(jù)依賴關系,只能提取出一個詞“Id”“number”,會造成一致性檢測匹配失敗。例如,應用“com.facebook.katana”中其中一條隱私條例為“you may choose to submit account information in order to…”,若不做詞組成分分析,那本句提取出的賓語是information,是停用詞列表中詞,那么本句將無隱私信息提出,造成假陰性;而使用詞組成分分析,可以提取出account information,不會造成假陰性。因此,本文根據(jù)句子依賴關系“nn”“compound”“amod”對賓語列表中的賓語進行詞組拼接解決以上問題。

        (4)句子選擇

        在隱私條例文檔中,6種模式的句子將被提取出來,其余的將被過濾掉,不做進一步分析。表1中為6種句子模式的語義模型和例句。

        S1和S2模式的匹配:從句子的依賴關系中提取出根節(jié)點,判斷其是否存在于動詞篩選列表中,若是,則繼續(xù)分析其相關的成分;否則,找到與根節(jié)點相關的連詞成分和主語后,過濾掉該動詞。

        S3模式的匹配:從句子的依賴關系中提取出根節(jié)點,判斷其是否是“allowed”或者“able”,若是,則找到其補語“xcomp”或者“ccomp”關系,判斷該動詞是否存在于動詞篩選列表中,若是,繼續(xù)分析相關成分;否則,過濾掉該動詞。

        S4模式的匹配:從句子的依賴關系中提取出根節(jié)點,然后找到其“xcomp”關系的引導詞,判斷兩個動詞是否在動詞篩選列表中,若是,則繼續(xù)分析相關成分;否則,過濾掉該動詞。

        S5模式的匹配:該模式主要用于提取出的資源的子樹中的其他資源,當獲取資源列表后,通過層次結(jié)構(gòu)關系,判斷其子樹的根節(jié)點中是否包含“about”等介詞,若有,則提取出子樹中的名詞和名詞短語部分,添加到資源列表中。

        S6模式的匹配:用于句子中包含多個并列行為和資源的情況,從句子的依賴關系中提取出根節(jié)點,判斷其是否存在于動詞篩選列表中,然后檢查是否有連詞關系“conj_”,若有則進入篩選階段,然后將其加入行為列表或資源列表中。

        (5)否定分析

        本文從兩方面判斷句子是否具有否定含義:

        ①資源為nothing,例如“Nothing will be used”。

        ②句子中根節(jié)點被否定含義詞修飾,例如:“wewill not/hardly collect information”,使用了否定詞[17]列表來確定該句子是否具有否定含義。

        Table 1 Six sentence types表1 6種句子模式

        3.3 應用行為分析

        本文首先使用靜態(tài)分析的方式獲取敏感行為,然后使用動態(tài)分析的方式獲取應用在使用動態(tài)加載和Java反射技術應用的敏感行為,最后使用第三方庫檢測工具分析第三方庫的行為。

        3.3.1 靜態(tài)分析

        (1)反編譯

        在進行靜態(tài)分析之前,首先應先獲得該應用的代碼,但通常情況下,應用的開發(fā)者不會公開其源代碼,因此本文使用apktool[18]將輸入apk文件反編譯,獲得應用的smali代碼、AndroidManifest.xml文件和一些其他的文件。

        (2)權(quán)限提取

        應用可以通過兩種方式獲取隱私權(quán)限。一種是調(diào)用敏感API,例如調(diào)用getCellLocation()來獲取設備的位置信息;另一種是通過內(nèi)容提供商獲取應用使用的敏感信息,如調(diào)用android.content.ContentResolver.query(),參數(shù)為 content://com.android.calendar來獲取日歷信息。

        本文中,為了確定應用中使用的隱私權(quán)限,從Pscout[19-20]選取89個包含隱私信息的敏感API,這些隱私信息為:device ID、subscriber ID、sim serial number、location、account、calendar、phone number、camera、audio、device version、message、log。這些隱私信息為隱私條例中的常見信息,也是用戶最關注的信息。然后,從smali代碼中與這些敏感API的特征(包名、方法名)進行對比,如果smali代碼中存在一致的特征,則認為調(diào)用了該敏感API,記錄下該API使用的權(quán)限。同時,本文還從文獻[19]中挑選了12個涉及隱私信息的URI,若應用調(diào)用了這些URI,根據(jù)該URI記錄下其使用的權(quán)限信息。提取敏感API和URI的權(quán)限的同時,根據(jù)Google Java Style[21]的駝峰式函數(shù)命名方式,可以將實際使用的權(quán)限信息和隱私信息進行映射,例如:getDeviceId()需要聲明READ_PHONE_STATE權(quán)限來獲取device ID信息,因此可以將READ_PHONE_STATE和device ID進行關聯(lián),同理,Pscout將content://contacts映射為android.permision.READ_CONTACTS,因此可以將其與“contact”關聯(lián)。

        3.3.2 動態(tài)分析

        Android應用中動態(tài)加載和Java反射機制使用得很普遍,惡意軟件可以使用Java反射機制獲取Android的隱藏API并獲取到系統(tǒng)內(nèi)部才能夠調(diào)用的API和權(quán)限[22],對用戶安全造成極大威脅。而只使用靜態(tài)分析的方式并不能檢測出動態(tài)加載和Java反射過程中使用到的權(quán)限信息,因此,為了完整地獲取應用使用的隱私權(quán)限,本文使用動態(tài)分析和靜態(tài)分析的方式獲取權(quán)限。

        本文使用Xposed框架和Droidbot[23-24]對應用進行動態(tài)測試。Droidbot是一種基于應用UI界面的自動化測試工具,可以觸發(fā)應用運行時的所有可能行為,包括apk在運行時的截圖(用戶點擊行為、彈框等)、調(diào)用敏感API及其使用的權(quán)限、應用請求方式以及請求的URL等。此外,本文在Droidbot中添加應用運行時的調(diào)用棧,判斷被調(diào)用的API的位置是第三方庫還是應用本身。圖10為應用astrology.jyothishadeepthi.tamil.demo.apk的部分調(diào)用棧。將動態(tài)分析的結(jié)果和第三方庫分析出的包名和權(quán)限比對,可篩選出程序中非第三方庫產(chǎn)生的敏感行為,進一步與靜態(tài)分析的結(jié)果相結(jié)合,可以獲得應用中所有使用的敏感行為信息。

        3.3.3 第三方庫分析

        Android應用中經(jīng)常使用第三方庫,包括廣告庫、社交網(wǎng)絡庫、開發(fā)工具庫等。但實際上,開發(fā)者對第三方庫所使用的權(quán)限信息甚至功能并沒有完整的了解。相關研究均使用白名單方法檢測第三方庫,然而白名單方法存在覆蓋不完整和不能處理代碼混淆等缺點。本文使用Libradar[9]來替代白名單方式進行第三方庫的分析。Libradar是一種基于聚類的第三方庫檢測方法,能夠快速準確檢測應用中使用的第三方庫、類別、包名及其使用的權(quán)限等信息。此外,本文使用Libradar檢測第三方庫的實際應用行為而不使用第三方庫聲明的隱私條例的原因是:(1)第三方庫聲明的隱私條例也可能會出現(xiàn)與實際應用使用的隱私信息不一致,直接進行隱私條例的比較獲得的結(jié)果不準確。(2)第三方庫沒有聲明隱私條例的,將無法進行隱私條例不一致性的分析。

        Fig.10 Some callback of astrology.jyothishadeepthi.tamil.demo.apk圖10 astrology.jyothishadeepthi.tamil.demo.apk的部分調(diào)用棧

        3.4 一致性檢測

        一致性檢測目的是檢測應用聲明的隱私條例文檔和應用實際的敏感行為是否存在不完整、不正確和不一致的問題。圖11為一致性檢測的流程,檢測分為三方面。

        Fig.11 Flow chart of consistency detection module圖11 一致性檢測模塊流程圖

        (1)不完整性檢測:將應用分析中應用本身的行為與隱私條例分析的使用的信息進行對比。

        (2)不正確性檢測:將應用分析中應用本身的行為與隱私條例分析的不使用的信息進行對比。

        (3)不一致性檢測:將應用分析中應用使用的第三方庫與隱私條例分析的不使用的信息進行對比。

        完成隱私條例分析和應用行為分析后,進而將從代碼中提取的信息(codeCollect、CodeThird)和隱私條例文檔中所聲明的信息(AppCollect/AppNotCollect、AppShare、AppStore)作為一致性檢測的對象。

        3.4.1 不完整隱私條例檢測

        如果代碼中檢測出的隱私權(quán)限對應的隱私信息未在隱私條例文檔中聲明,則判定為不完整的隱私條例。確定應用行為分析中使用的權(quán)限(CodeCollect)是否出現(xiàn)在隱私條例文檔的聲明中(AppCollect、AppShare、AppStore)。若沒有,則記錄下該權(quán)限和信息內(nèi)容。

        匹配代表代碼中的權(quán)限和隱私條例文檔中的信息指的是相同的信息。但是代碼分析中提取出的信息是根據(jù)使用的方法(getDeviceId())或權(quán)限映射(ACCESS_FINE_LOCATION對應location)[25]。二者的表達方式通常存在著很大的差異,本文使用ESA(explicit semantic analysis)[26]來比較兩個文本間語義的相似程度,ESA通過比較與詞相關的維基文檔的權(quán)重向量來計算相似度,每個維基概念都是由出現(xiàn)在這個文章中的詞向量來表示,向量的矢量是通過TF-IDF模型得出的權(quán)值,這些權(quán)值表明了詞和概念之間聯(lián)系的緊密度。因此,當兩個文本間的相似度值到達一個閾值時,則認為這兩個文本所指的是同一事物。本文中閾值設定為0.5,在該閾值下通過人工確認,可以將大多數(shù)描述不同的同類信息匹配成功。

        但是在進行代碼中權(quán)限信息和隱私條例中信息匹配過程中,需要先確定隱私條例中聲明的信息具體對應的權(quán)限,因此需要將該信息與權(quán)限映射的所有關鍵詞(例如:ACCESS_FINE_LOCATION映射關鍵詞之一為location)頻繁匹配,通過ESA計算找到隱私條例聲明信息的對應權(quán)限,使得效率大幅降低。因此本文對匹配模型優(yōu)化,將進行相似度計算的信息的結(jié)果存儲到權(quán)限對照表中,例如,格式為phone number:READ_PHONE_STATE。當再次遇到該信息時,首先查找權(quán)限對照表中是否存在該信息,若存在,直接提取出權(quán)限;若不存在,再使用ESA計算隱私信息之間文本間相似度,進而確定使用的隱私權(quán)限。通過這種方法,可以將隱私條例中的信息與其對應的權(quán)限一一匹配。然后,將代碼中的權(quán)限與隱私條例進行比較,若代碼中的權(quán)限不存在于隱私條例中,則記錄下該權(quán)限,并判定為不完整;否則,則判定為一致,不存在不完整的問題。

        3.4.2 不正確隱私條例檢測

        如果隱私條例中聲明不會使用某隱私信息,但是卻在代碼中檢測出來,則判定為不正確的隱私條例。將隱私條例中聲明不會使用的信息通過ESA相似度計算或查找權(quán)限對照表的方式找到其對應的權(quán)限,然后遍歷除第三方庫外代碼中使用的權(quán)限,若在代碼中的權(quán)限中找到了該權(quán)限,則判定為不正確;否則,則判定為一致,不存在不正確的問題。

        3.4.3 不一致隱私條例檢測

        如果隱私條例中聲明不會使用某隱私信息,但是卻在第三方庫中檢測出來,則判定為不一致的隱私條例。將3.4.2節(jié)中隱私條例文檔中的信息經(jīng)過ESA計算后獲取的權(quán)限的結(jié)果與代碼中第三方庫使用的信息進行匹配,如果第三方庫使用了隱私條例中聲明的不會使用的權(quán)限,則判定為不一致;否則,則判定為一致,不存在不一致的問題。

        4 實驗結(jié)果

        實驗對Google Play中所有類別的排名前60的應用共2 940個進行了隱私條例的鏈接的爬取,其中1 765(60%)個應用存在隱私條例的鏈接,本文隨機從中選取455個有隱私條例聲明的應用作為本次實驗的數(shù)據(jù)集。

        4.1 隱私條例分析

        為了驗證隱私條例分析的準確率,從120個隱私條例文檔中隨機選取了400個句子進行分析,其中肯定句300個,否定句100個,總詞數(shù)8 296個。然后獲取隱私條例分析的結(jié)果,進行人工檢查,相關數(shù)據(jù)見表2。

        Table 2 Extraction result of 400 sentences表2 特征提取400個句子分析結(jié)果

        以上結(jié)果表明,隱私條例的模塊的句子分析平均準確率為94.75%。

        (1)肯定句:有18個肯定句未能準確提取信息,其原因是Standford Parser未分析出詞組形式的連詞,例如,在“We may use log information as specifically indicated in the Mobile App,as well as to assess...”例句中,連詞是“as well as”,但被分析為“multi-word expression”,不是連詞特征,無法提取出之后的行為及資源信息。

        (2)否定句:有3個否定句未能準確提取信息,未提取出否定形式的隱私行為的原因是否定信息沒有出現(xiàn)在主語、謂語或者修飾謂語的副詞中,而使用了合成形容詞,“This non-personally-identifiable information may be shared with third-parties to provide more relevant services and advertisements to users.”例句中存在著否定含義的名詞(賓語)“non-personallyidentifiable”,在分析中沒有將其歸類到否定句中。

        為了驗證狀語、連詞和合并詞成分提取的有效性,人工選取了15個隱私條例文檔進行:(1)提取狀語、連詞和詞組成分;(2)只提取狀語和詞組;(3)只提取連詞和詞組;(4)不提取狀語、連詞和詞組的對比分析。圖12為實驗結(jié)果。

        數(shù)據(jù)表明15個隱私條例文檔聲明了40個隱私信息,缺失連詞分析時可以提取出36(90%)個信息,缺失狀語分析時可以提取出30個(75%)隱私信息,缺失狀語、連詞和合并詞分析只能提取出6個(15%)隱私信息。實驗結(jié)果表明,在不分析狀語、連詞和詞組的情況下[10],只能提取出15%聲明的信息,缺失了大部分的信息,而使用狀語、連詞和詞組分析后使得準確率大幅度提升。

        4.2 應用行為分析

        Fig.12 Comparative experiment of modifier,conjunction and phrase圖12 狀語、連詞和詞組對比實驗

        本文采用了動態(tài)和靜態(tài)分析結(jié)合的方式對455個應用行為進行分析,如圖13所示,使用靜態(tài)分析共檢測出1 158個敏感信息,其中使用次數(shù)最多的兩種信息分別是location和deviceID。

        Fig.13 Static analysis of sensitive information圖13 靜態(tài)分析隱私信息

        在動態(tài)分析中,使用Droidbot檢測應用前40 s的動態(tài)行為,實驗中共檢測出70個動態(tài)運行時應用的權(quán)限信息。圖14為動態(tài)分析使用的隱私信息(包括應用本身和第三方庫使用的)。

        Fig.14 Dynamic analysis of sensitive information圖14 動態(tài)分析隱私信息

        4.3 第三方庫分析

        本文使用第三方庫檢測工具Libradar對455個應用的apk文件中使用的隱私信息和權(quán)限進行分析,同時對分析結(jié)果進行統(tǒng)計。實驗結(jié)果表明在455個應用中,有430個應用(94.5%)使用至少一種第三方庫。實驗檢測出第三方庫的類型11種(其中一種沒有歸類,使用“Unknown”替代),455個應用中每一類被使用的具體數(shù)量如圖15所示。如果使用白名單方式,只檢測最常見的3類(Development Aid、Advertisement、Social Network)第三方庫,只能檢測出1 576個(59.1%)第三方庫,無法分析其他類別及混淆的第三方庫。

        Fig.15 Type and number of the third library圖15 第三方庫類別和數(shù)量

        4.4 一致性檢測

        4.4.1 不完整隱私條例信息

        該工具對455個應用進行了不完整隱私條例的檢測,共檢測出224個不完整的隱私條例,圖16中列出了不完整的隱私條例應用個數(shù),通過人工方式對150個進行準確性判斷,發(fā)現(xiàn)了12例誤判現(xiàn)象。

        假陰性:實驗中的第一種假陰性是由于Standford Parser中依賴結(jié)構(gòu)分析錯誤導致,例如:“We use the email address you upload…”,錯誤地將email定位為address的賓語,將address定位為動詞;第二種情況是因為動詞白名單中缺少該動詞導致,如“we ask for your personal information such as…”,“ask for”未在白名單中,導致聲明的隱私信息未被提取出來。

        Fig.16 Uncompleted information圖16 不完整的信息

        假陽性:實驗中未發(fā)現(xiàn)該類型錯誤。

        4.4.2 不正確隱私條例信息

        本文中共檢測出4個不正確的隱私條例,經(jīng)過人工的校驗,發(fā)現(xiàn)這些隱私條例都是不正確的隱私條例,沒有出現(xiàn)誤判的情況。表3中列舉了實驗中不正確的隱私條例對應的應用及信息。

        Table 3 UncompletedApps and sensitive information表3 不正確應用及隱私信息

        4.4.3 不一致隱私條例信息

        本文共檢測出兩個不一致的隱私條例,應用為com.bestringtonesapps.cuteringtones和com.nimblebit.vegas,使用的權(quán)限為READ_PHONE_STATE,使用該權(quán)限的第三方庫分別是Fabric和Javax,這些不一致的應用中,經(jīng)過人工的校驗,發(fā)現(xiàn)這些隱私條例都是不一致的隱私條例,沒有出現(xiàn)誤判的情況。

        4.4.4 結(jié)果分析

        本文從四方面論述Android應用隱私條例與敏感行為一致性檢測方法的準確性。首先,使用隱私條例分析檢驗400個隱私條例達到94.75%的準確率;其次,使用動態(tài)分析的方式檢測出70個動態(tài)加載或Java反射觸發(fā)的隱私行為;然后,對455個應用中使用的第三方庫進行分析,實驗結(jié)果表明94.5%的應用使用了第三方庫;最后,通過對455個應用的一致性檢測發(fā)現(xiàn)其中有224個不完整的隱私條例,4個不正確的隱私條例和2個不一致的隱私條例,經(jīng)人工抽樣檢測,準確率達到了92.3%。

        5 討論

        本文使用Standford Parser處理復雜的隱私條例文檔,提取主謂賓、狀語、連詞、詞組等特征篩選隱私信息及其行為,然后將其與應用分析結(jié)果進行比對,分析隱私條例中是否存在不完整、不正確和不一致3種問題。但是為了提高分析的準確性,隱私條例分析方法可以從兩方面進一步進行優(yōu)化:

        (1)將隱私條例中復雜的條件狀語進行分析:比如“if you don’t agree”,“without your permission”等,這些條件可能會影響句子的實際含義。

        (2)將隱私條例中的從句進行分析:實驗中,大量假陽性和假陰性的例子是由于Standford Parser無法分析無引導詞的定語從句或賓語從句造成的,比如“Information gathered through cookies and Web server logs may include the date…”,分析時會將“gathered”當成root節(jié)點,導致依賴關系錯誤,因此應增加對從句中有效成分的分析。

        6 總結(jié)

        本文提出一種對Android應用隱私條例敏感行為一致性的檢測方式,能夠檢測隱私條例中存在的3種問題:不完整、不準確和不一致性問題。本文在隱私條例分析時增加了對狀語、連詞和詞組成分的分析,提高了隱私信息提取的準確性。此外,在靜態(tài)分析的基礎上,使用動態(tài)分析和第三方庫檢測工具分別獲得應用使用的動態(tài)行為和第三方庫使用的權(quán)限,使得提取出的應用行為更完善。其中,隱私條例分析能達到94.75%的準確率,代碼分析較傳統(tǒng)的方式進行優(yōu)化并增加動態(tài)分析,使得結(jié)果更加準確和完整,共檢測出70個應用使用的隱私信息使用動態(tài)加載和Java反射。在第三方庫檢測中,檢測到94.5%應用使用11種類型的第三方庫。針對455個流行應用的分析表明,49.7%的應用的隱私條例存在不一致問題。

        猜你喜歡
        連詞狀語文檔
        你會用連詞嗎?
        有人一聲不吭向你扔了個文檔
        連詞that引導的賓語從句
        狀語從句熱點透視
        as引導狀語從句的倒裝語序
        在狀語從句中探“虛實”
        基于RI碼計算的Word復制文檔鑒別
        西夏語中的對比連詞 djij2
        西夏學(2016年1期)2016-02-12 02:24:02
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        狀語從句
        精品人妻av区乱码色片| 日韩亚洲欧美中文在线| 久久无码av三级| 国产高清国内精品福利99久久| 亚洲国内精品一区二区在线| 国产精品女直播一区二区| 麻豆国产精品va在线观看不卡| 国产成年无码v片在线| 女人体免费一区二区| 人妻少妇激情久久综合| 亚洲国产综合人成综合网站| 国产乱妇无码大片在线观看| 后入内射欧美99二区视频| 久久久久久久久久免免费精品| av一区二区在线免费观看| 亚洲人成电影网站色| 国产免费午夜a无码v视频| 无遮高潮国产免费观看韩国| 人妻经典中文字幕av| 国产超碰人人做人人爽av大片 | 国产亚洲一区二区手机在线观看| 免费二级毛片在线播放| 亚洲av本道一本二本三区| 亚洲精品久久久久久久蜜桃| 日本强好片久久久久久aaa| 午夜视频免费观看一区二区| 午夜桃色视频在线观看| 久久久久亚洲av成人片| 国产精品久久久久久妇女6080| 亚洲日产AV中文字幕无码偷拍| 久久久中文字幕日韩精品| 337p西西人体大胆瓣开下部| 久久精品无码专区东京热| 超碰青青草手机在线免费观看| 亚洲国产精品亚洲一区二区三区| 边啃奶头边躁狠狠躁| 国产又黄又爽又无遮挡的视频| 最新亚洲av日韩av二区一区| 国产精品一区二区三区在线免费 | av网站免费线看精品| 日本高清www无色夜在线视频|