999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于移動(dòng)應(yīng)用UI和權(quán)限的產(chǎn)品安全性分析

2023-11-24 08:17:50
關(guān)鍵詞:功能分析

何 鍇 琦

(吉林大學(xué) 大數(shù)據(jù)和網(wǎng)絡(luò)管理中心,長春 130012)

隨著移動(dòng)應(yīng)用(app)的快速發(fā)展,人們已經(jīng)習(xí)慣通過手指的簡(jiǎn)單操作完成各種事務(wù).不僅包括簡(jiǎn)單的網(wǎng)上交流和游戲,也包括一些安全敏感性的活動(dòng),如電子銀行和商務(wù)處理等.在這種應(yīng)用環(huán)境下,用戶不再只關(guān)注于移動(dòng)app功能方面的體驗(yàn),而是越來越重視自己的隱私信息安全.

移動(dòng)應(yīng)用需要使用智能手機(jī)上的敏感信息以實(shí)現(xiàn)產(chǎn)品功能,在使用這些敏感信息前,移動(dòng)應(yīng)用需要向用戶申請(qǐng)相應(yīng)的權(quán)限才能訪問敏感數(shù)據(jù).考慮到具有類似功能的產(chǎn)品應(yīng)該使用相似的敏感權(quán)限[1-3],并且移動(dòng)應(yīng)用的功能信息與權(quán)限信息可通過挖掘其UI(user interface)和代碼有效地獲取,因此本文提出一種分析移動(dòng)應(yīng)用安全性的方法.首先,通過分析產(chǎn)品的UI挖掘移動(dòng)應(yīng)用具有的功能信息;然后,通過分析代碼中使用的API確定移動(dòng)應(yīng)用實(shí)際使用的敏感權(quán)限;最后,將具有類似功能的產(chǎn)品聚類到一起,使用孤立森林算法識(shí)別每個(gè)簇中異常使用了敏感權(quán)限的應(yīng)用,進(jìn)而完成安全性分析.

1 方法設(shè)計(jì)

為支持后續(xù)app產(chǎn)品的安全分析工作,首先需要了解每個(gè)app具有的功能.受UI測(cè)試工具的啟發(fā)[4],本文開發(fā)一個(gè)UI探索工具完成挖掘app功能的任務(wù).

用戶是通過各種動(dòng)作與app產(chǎn)品進(jìn)行交互的(如點(diǎn)擊、滑動(dòng)和編輯等).本文UI探索工具基于該原理分析app的apk文件,進(jìn)而獲取其具有的功能.將apk文件作為輸入,UI探索工具首先以app產(chǎn)品的一個(gè)UI頁面為起始點(diǎn),嘗試識(shí)別當(dāng)前UI頁面的可進(jìn)行交互的UI組件,并且通過分析這些組件的屬性推測(cè)它們具有的交互功能.然后,該工具模擬人類動(dòng)作觸發(fā)相應(yīng)的UI事件,從而自動(dòng)化地探索app產(chǎn)品的不同部分.在該過程中,工具可以收集app產(chǎn)品的UI截圖.以圖1為例,本文工具從UI-1出發(fā),通過模擬動(dòng)作滑動(dòng)和兩次點(diǎn)擊依次跳轉(zhuǎn)到UI-2,UI-3和UI-4,從而收集到該app產(chǎn)品的4個(gè)UI截圖.

圖1 UI探索工具探索app產(chǎn)品的UI截圖實(shí)例Fig.1 UI explorer tool explores UI screenshot instances of app products

在探索過程中,使用UI Automator導(dǎo)出每個(gè)頁面對(duì)應(yīng)的xml文件.UI Automator是安卓平臺(tái)提供的界面測(cè)試框架,UI Automator中提供了dump功能,該功能可用于導(dǎo)出移動(dòng)應(yīng)用當(dāng)前的UI運(yùn)行時(shí)前端代碼,該代碼以xml文件格式展示.該前端代碼對(duì)應(yīng)的xml文件的形式可參考圖2中的示例,圖2的左側(cè)展示了一個(gè)UI截圖,右側(cè)是其對(duì)應(yīng)的xml文件.

圖2 一個(gè)UI截圖及其對(duì)應(yīng)的xml文件Fig.2 A UI screenshot and its corresponding xml file

由圖2可見,xml由很多節(jié)點(diǎn)(node)按層次結(jié)構(gòu)進(jìn)行組織.每個(gè)節(jié)點(diǎn)都有一系列屬性,例如: text屬性代表該節(jié)點(diǎn)的文本標(biāo)簽;class屬性反應(yīng)了該節(jié)點(diǎn)的類型;clickable節(jié)點(diǎn)反應(yīng)了該節(jié)點(diǎn)是否是可點(diǎn)擊的.這些node有ViewGroup類型的(如FrameLayout),也有View類型的(如ImageView,TextView).通過分析該文件,可以獲取UI頁面中具有的組件、組件的屬性以及這些組件的層次結(jié)構(gòu).

基于這些xml文件,可以分析UI截圖上提供的功能.通過實(shí)際觀察app產(chǎn)品,絕大多數(shù)提供功能的UI組件都是通過點(diǎn)擊方式進(jìn)行的(在本文觀察的與功能相關(guān)組件中,97%的UI組件激發(fā)動(dòng)作是點(diǎn)擊).相應(yīng)地,在分析xml文件時(shí),也僅分析可點(diǎn)擊屬性為true的UI組件.為了解某個(gè)可點(diǎn)擊組件實(shí)現(xiàn)的功能,本文制定4條分析規(guī)則用于對(duì)可點(diǎn)擊組件進(jìn)行分析,規(guī)則如下.

規(guī)則1) 若可點(diǎn)擊UI組件的text屬性不為空,則text屬性的值為該組件的功能.Text屬性用于設(shè)置顯示在UI組件上的文字,通過組件上的文字,用戶能了解與該組件實(shí)現(xiàn)的功能.如圖3(A)所示,藍(lán)框圈出的按鈕用于實(shí)現(xiàn)Send功能,該按鈕的text屬性值為Send.

規(guī)則2) 若可點(diǎn)擊UI組件為ViewGroup類型的組件,則使用其子節(jié)點(diǎn)的text值作為該組件的功能.ViewGroup類型的組件是用于存放其他UI組件的布局容器.當(dāng)這類組件的clickable屬性為true時(shí),其子節(jié)點(diǎn)的text屬性值可用于說明點(diǎn)擊該ViewGroup組件所實(shí)現(xiàn)的功能.如圖3(B)所示,藍(lán)框圈出的ViewGroup組件具有兩個(gè)子節(jié)點(diǎn),由第二個(gè)子節(jié)點(diǎn)的text屬性可知該組件實(shí)現(xiàn)的功能是Translate.

規(guī)則3) 若可點(diǎn)擊UI組件為圖片組件(ImageView,ImageButton),則使用其相鄰節(jié)點(diǎn)的text屬性作為組件的功能.當(dāng)可點(diǎn)擊組件為圖片組件時(shí),圖片旁邊的相鄰節(jié)點(diǎn)通常會(huì)給出描述性文字用于對(duì)圖片對(duì)應(yīng)的功能進(jìn)行說明.如圖3(C)所示,通過分析相鄰節(jié)點(diǎn)可知,藍(lán)框部分圈出的ImageView組件的功能是Camera.

規(guī)則4) 若通過以上規(guī)則無法獲取有效的功能信息,則對(duì)UI組件的id屬性進(jìn)行分析,從而獲得組件的功能.為保證開發(fā)時(shí)的代碼便于閱讀和理解,開發(fā)者通常會(huì)使用能表現(xiàn)組件功能的文本作為組件的id值.因此,通過對(duì)組件的id值進(jìn)行分析可獲得組件代表的功能.如圖3(A)所示,通過對(duì)組件id進(jìn)行分析,可知紅框圈出的組件功能為choose stickers.

圖3 UI組件及其對(duì)應(yīng)的頁面UI代碼Fig.3 UI component and its corresponding page UI code

對(duì)于一個(gè)app,先使用UI探索工具遍歷獲得它具有的頁面及對(duì)應(yīng)的xml文件后,再根據(jù)以上4條規(guī)則對(duì)每個(gè)頁面的xml文件進(jìn)行分析.這樣就能獲得一個(gè)app所具有的功能.

由于同一個(gè)功能在不同的app中會(huì)有不同的表述方式,因此需要對(duì)提取出的功能進(jìn)行聚類.首先,將功能轉(zhuǎn)換成向量: 給定一個(gè)功能,使用BERT[5]將功能中的單詞依次轉(zhuǎn)換成詞向量,取所有單詞詞向量的平均值作為該功能的向量表示.BERT是基于Transformer架構(gòu)的用于自然語言處理的預(yù)訓(xùn)練技術(shù).與基于word embedding的word2vec[6]相比,BERT在為單詞生成詞向量時(shí),會(huì)考慮單詞出現(xiàn)的上下文.例如,詞“蘋果”的word2vec詞向量在“我愛吃蘋果”和“我買了一部蘋果手機(jī)”中相同.而BERT則會(huì)根據(jù)上下文的不同含義提供不同的詞向量.完成功能的向量化后,使用Mean shift算法[7]對(duì)功能向量進(jìn)行聚類.Mean shift算法是一種基于聚類中心的聚類算法,與傳統(tǒng)的k-means[8]聚類算法相比,Mean shift算法不需要提前設(shè)置聚類的類別個(gè)數(shù)k,能較好處理聚類個(gè)數(shù)未知的情形.對(duì)于給定d維空間d中的n個(gè)樣本點(diǎn)xi(i=1,2,…,n),對(duì)于x點(diǎn),其Mean shift的向量形式為

(1)

其中:

(2)

G(x)是一個(gè)單位的核函數(shù);H是一個(gè)正定的對(duì)稱d×d矩陣,稱為帶寬矩陣,是一個(gè)對(duì)角矩陣;w(xi)≥0是每個(gè)樣本的權(quán)重.對(duì)角矩陣H的形式為

(3)

完成app的功能分析后,先基于app的功能進(jìn)行風(fēng)險(xiǎn)app檢測(cè)工作,過程如圖4所示.

圖4 風(fēng)險(xiǎn)app檢測(cè)過程Fig.4 Detection prosess of risk app

首先,根據(jù)app具有的功能為其建立一個(gè)功能向量,并使用Mean shift算法對(duì)app進(jìn)行聚類.App的功能向量建立過程如圖4(A)所示,app功能向量的維數(shù)與集合中的功能簇?cái)?shù)量一致,向量中的每個(gè)元素與集合中的每個(gè)功能簇具有對(duì)應(yīng)關(guān)系.將app中具有的功能與集合中的功能簇依次進(jìn)行比較,若app擁有簇中的某個(gè)功能,則將該簇對(duì)應(yīng)維的值設(shè)為1,否則設(shè)為0.基于Mean shift算法完成聚類工作后,可得到一個(gè)app的簇集合,屬于同一個(gè)簇的app具有相似功能.

其次,利用孤立森林(isolation forest,iForest)算法[9]對(duì)每個(gè)簇進(jìn)行分析,以識(shí)別出可能異常使用了敏感權(quán)限的風(fēng)險(xiǎn)app產(chǎn)品.iForest是一種無監(jiān)督異常檢測(cè)算法,廣泛應(yīng)用于數(shù)據(jù)的異常檢測(cè)中,如網(wǎng)絡(luò)安全中的攻擊檢測(cè)、金融交易欺詐檢測(cè)、疾病偵測(cè)和噪聲數(shù)據(jù)過濾等.孤立森林算法的理論基礎(chǔ)有兩點(diǎn): 1) 異常數(shù)據(jù)占總樣本量的比例很小;2) 異常點(diǎn)的特征值與正常點(diǎn)的差異很大.基于上述理論基礎(chǔ),查找異常點(diǎn)的策略如下: 假設(shè)用一個(gè)隨機(jī)超平面切割數(shù)據(jù)空間,切一次可以生成兩個(gè)子空間.然后再繼續(xù)用一個(gè)隨機(jī)超平面切割每個(gè)子空間,循環(huán)進(jìn)行,直到每個(gè)子空間中只有一個(gè)數(shù)據(jù)點(diǎn)為止.那些密度很高的簇被切割很多次才能停止,即每個(gè)點(diǎn)都單獨(dú)存在于一個(gè)子空間內(nèi).但那些密度很低的點(diǎn)會(huì)很早停止切割.如何對(duì)數(shù)據(jù)空間進(jìn)行切割是孤立森林設(shè)計(jì)的核心思想.iForest由t個(gè)孤立樹(isolation tree,iTree)組成,每個(gè)iTree是一個(gè)二叉樹結(jié)構(gòu).iTree的訓(xùn)練算法如下.

算法1iTree(X′)算法.

輸入:X′;

輸出: iTree;

步驟1) ifX′不能被分割 then

步驟2) return exNode{Size←|X′|};

步驟3) end

步驟4) else

步驟5) 設(shè)Q為X′中屬性的列表;

步驟6) 隨機(jī)選擇一個(gè)屬性q∈Q;

步驟7) 在X′中的屬性q的最大值和最小值之間隨機(jī)選擇一個(gè)分割點(diǎn)p;

步驟8)Xl←filter(X′,q

步驟9)Xr←filter(X′,q≥p);

步驟10) return inNode{Left←iTree(Xl),right←iTree(Xr)},SplitAtt←q,SplitValue←p};

步驟11) end.

1) 從訓(xùn)練數(shù)據(jù)中隨機(jī)選擇Ψ個(gè)樣本點(diǎn)作為子樣本,放入樹的根節(jié)點(diǎn);

2) 隨機(jī)指定一個(gè)維度,在當(dāng)前節(jié)點(diǎn)數(shù)據(jù)中隨機(jī)產(chǎn)生一個(gè)切割點(diǎn)p(切割點(diǎn)產(chǎn)生于當(dāng)前節(jié)點(diǎn)數(shù)據(jù)中指定維度的最大值和最小值之間);

3) 以此切割點(diǎn)生成一個(gè)超平面,然后將當(dāng)前節(jié)點(diǎn)數(shù)據(jù)空間劃分為兩個(gè)子空間: 把指定維度中小于p的數(shù)據(jù)放在當(dāng)前節(jié)點(diǎn)的左邊,把大于等于p的數(shù)據(jù)放在當(dāng)前節(jié)點(diǎn)的右邊;

4) 在子節(jié)點(diǎn)中遞歸步驟2)和3),不斷構(gòu)造新的子節(jié)點(diǎn),直到子節(jié)點(diǎn)中只有一個(gè)數(shù)據(jù)(無法再繼續(xù)切割)或子節(jié)點(diǎn)已到達(dá)限定高度.

同一個(gè)簇的app具有相似的功能,相應(yīng)地,這些產(chǎn)品也應(yīng)該使用類似的敏感權(quán)限.安卓官方文檔將28個(gè)權(quán)限定義為敏感權(quán)限,這些權(quán)限涉及到用戶的隱私及安全問題,例如短信權(quán)限、位置權(quán)限等.獲得app使用權(quán)限的一種方式是從apk的manifest文件中的權(quán)限聲明部分直接獲取.但研究表明30%的app聲明權(quán)限會(huì)比實(shí)際使用的權(quán)限更多[10].為避免這種分析方法帶來的誤差,本文通過分析app中實(shí)際調(diào)用的API進(jìn)一步獲得其使用權(quán)限.本文使用安卓靜態(tài)分析工具androguard(https://github.com/androguard/androguard)對(duì)apk文件進(jìn)行反編譯,并獲取程序中調(diào)用的API.論文PScout[11]為安卓應(yīng)用的API與權(quán)限之間建立了映射關(guān)系,從而為根據(jù)調(diào)用API獲得其使用權(quán)限提供了基礎(chǔ): 若app調(diào)用了與某個(gè)權(quán)限有映射關(guān)系的API,則該app使用了此權(quán)限.根據(jù)app對(duì)這28個(gè)敏感權(quán)限的使用情況,為每個(gè)app生成一個(gè)28維的權(quán)限向量,向量中每個(gè)元素代表該app是否使用了相應(yīng)的敏感權(quán)限: 1表示使用了相應(yīng)的權(quán)限;0表示未使用.完成上述工作后,再使用孤立森林算法對(duì)獲取的向量進(jìn)行處理,以識(shí)別出其中的異常點(diǎn),進(jìn)而判斷app是否異常使用了敏感權(quán)限.孤立森林算法會(huì)為每個(gè)app生成一個(gè)位于[0,1]內(nèi)的異常得分,異常得分越接近于1,說明該app的權(quán)限使用情況越異常.本文將異常得分高于0.5的app識(shí)別為風(fēng)險(xiǎn)app.

2 實(shí)驗(yàn)及驗(yàn)證

下面通過實(shí)驗(yàn)對(duì)上述方法進(jìn)行驗(yàn)證.本文從Google play應(yīng)用商店中選取4個(gè)類別的app作為研究對(duì)象,這4個(gè)類別分別為Social,Photograph,Music&Audio,Navigation.分別從這4個(gè)類別中隨機(jī)選取1 000個(gè)app,組成一個(gè)共包含4 000個(gè)app的集合.按照本文方法對(duì)該集合中的app進(jìn)行分析,從而識(shí)別出其中的風(fēng)險(xiǎn)app.對(duì)于每個(gè)類別,從中隨機(jī)選取20個(gè)被本文方法識(shí)別為風(fēng)險(xiǎn)的app和20個(gè)被識(shí)別為安全的app作為實(shí)驗(yàn)的測(cè)試集.

建立完實(shí)驗(yàn)測(cè)試集后,由3個(gè)具有安卓應(yīng)用開發(fā)經(jīng)驗(yàn)的開發(fā)者對(duì)測(cè)試集中app的安全性進(jìn)行評(píng)估.首先,為開發(fā)者提供app的描述文本信息,通過分析API得到的app使用的權(quán)限列表以及app的apk安裝包,開發(fā)者閱讀描述文本和權(quán)限列表后,將apk安裝到手機(jī)上進(jìn)行實(shí)際操作和使用.然后,開發(fā)者判斷該app是否異常使用了敏感權(quán)限,若使用了則標(biāo)記為風(fēng)險(xiǎn)app,否則標(biāo)記為安全app.若3名開發(fā)者對(duì)同一個(gè)app的標(biāo)記情況不一致,則3人進(jìn)行討論并得到最終標(biāo)記結(jié)果.將本文方法得到的識(shí)別結(jié)果與實(shí)驗(yàn)人員的標(biāo)記結(jié)果進(jìn)行比較以評(píng)估本文方法的有效性.

表1列出了風(fēng)險(xiǎn)app識(shí)別方法的評(píng)估結(jié)果.實(shí)驗(yàn)結(jié)果表明,本文方法能完成app的安全分析工作: 利用本文方法得到的80個(gè)風(fēng)險(xiǎn)app中,超過半數(shù)的app(65.00%)被開發(fā)者標(biāo)記為風(fēng)險(xiǎn)app;利用本文方法獲得的80個(gè)安全app中,有72個(gè)被開發(fā)者標(biāo)記為安全應(yīng)用程序.有28個(gè)安全app被本文方法錯(cuò)誤地識(shí)別為風(fēng)險(xiǎn)app,對(duì)這些app進(jìn)行分析并總結(jié)了分析錯(cuò)誤的主要原因: 某些app使用了大量的圖標(biāo)用于表示產(chǎn)品中的功能,這些圖標(biāo)周圍并未給出對(duì)圖標(biāo)功能的說明性文本,從而導(dǎo)致本文方法無法準(zhǔn)確地獲取app具有的功能,最后導(dǎo)致分析結(jié)果的錯(cuò)誤.

表1 風(fēng)險(xiǎn)app識(shí)別方法的評(píng)估結(jié)果

綜上所述,針對(duì)移動(dòng)應(yīng)用隱私信息的安全性問題,本文提出了一種移動(dòng)應(yīng)用安全性分析方法,它通過挖掘UI與代碼中的信息識(shí)別出產(chǎn)品具有的功能與實(shí)際使用的敏感權(quán)限,并且基于具有相似功能的應(yīng)用應(yīng)該使用相似敏感權(quán)限的思想分析移動(dòng)應(yīng)用是否具有風(fēng)險(xiǎn).實(shí)驗(yàn)結(jié)果表明,該方法能有效完成移動(dòng)應(yīng)用的安全分析.

猜你喜歡
功能分析
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
隱蔽失效適航要求符合性驗(yàn)證分析
電力系統(tǒng)不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
關(guān)于非首都功能疏解的幾點(diǎn)思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡(jiǎn)直”和“幾乎”的表達(dá)功能
電力系統(tǒng)及其自動(dòng)化發(fā)展趨勢(shì)分析
中西醫(yī)結(jié)合治療抑郁癥100例分析
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
辨證施護(hù)在輕度認(rèn)知功能損害中的應(yīng)用
主站蜘蛛池模板: 国产精品自拍露脸视频 | 国产一区在线观看无码| 久久综合色天堂av| 欧美第二区| 欧美日韩一区二区三区四区在线观看 | 久久精品国产电影| 狠狠操夜夜爽| 一区二区欧美日韩高清免费| 毛片大全免费观看| 亚洲国产成人久久77| 国产视频入口| 日本高清免费不卡视频| 最新国产高清在线| 91外围女在线观看| 国产高潮流白浆视频| jizz在线观看| 国产精品亚洲五月天高清| 中文字幕无码制服中字| 欧美日韩资源| 欧美伦理一区| 久久国产V一级毛多内射| 国产精品国产三级国产专业不| 无码有码中文字幕| V一区无码内射国产| 最新加勒比隔壁人妻| 国产主播喷水| 黑色丝袜高跟国产在线91| 中字无码精油按摩中出视频| 国产国拍精品视频免费看 | 孕妇高潮太爽了在线观看免费| 草逼视频国产| 欧美无专区| 国产打屁股免费区网站| 97色伦色在线综合视频| 久久久久免费精品国产| 国产欧美日韩综合一区在线播放| 天堂网国产| 欧美在线综合视频| 91精品啪在线观看国产91九色| 波多野结衣第一页| 久久精品视频一| 精品伊人久久久大香线蕉欧美| 精品欧美一区二区三区在线| 久久精品人人做人人爽电影蜜月| 亚洲男女天堂| 久久黄色一级片| h网址在线观看| 国产国产人成免费视频77777| 国产成人一区在线播放| 99久久无色码中文字幕| A级全黄试看30分钟小视频| 2021亚洲精品不卡a| 国产美女91视频| 国产成人毛片| 亚洲第一天堂无码专区| 亚洲色图综合在线| 国产v精品成人免费视频71pao | 欧美一级黄色影院| AV不卡无码免费一区二区三区| 国产无遮挡裸体免费视频| 自慰高潮喷白浆在线观看| 国产精品无码作爱| 国产大片黄在线观看| 日韩天堂在线观看| 欧美第二区| 欧洲免费精品视频在线| 国产手机在线观看| 在线无码九区| 欧美国产日本高清不卡| 国产色网站| 久久6免费视频| 萌白酱国产一区二区| 伊人激情综合网| 国产在线视频欧美亚综合| 亚洲国产成人自拍| 91精品国产一区自在线拍| 97精品久久久大香线焦| 中文无码影院| 日韩福利视频导航| 免费毛片全部不收费的| 91av成人日本不卡三区| 国产精品99久久久久久董美香 |