1 移動(dòng)應(yīng)用隱私合規(guī)檢測(cè)背景簡(jiǎn)介
移動(dòng)應(yīng)用的隱私合規(guī)檢測(cè),從技術(shù)形態(tài)上可以分為靜態(tài)檢測(cè)方案與動(dòng)態(tài)檢測(cè)方案。以下分別作簡(jiǎn)要介紹。
1.1 靜態(tài)檢測(cè)
靜態(tài)檢測(cè)方案通過對(duì)移動(dòng)應(yīng)用的安裝包進(jìn)行反編譯,進(jìn)而通過靜態(tài)數(shù)據(jù)流、控制流分析等技術(shù),檢測(cè)移動(dòng)應(yīng)用中可能存在的隱私泄露問題。在該領(lǐng)域中,常用到以下工具:
? Apktool [1]: 反編譯安卓Apk,可以反編譯資源,并在進(jìn)行修改之后重新打包Apk
? dex2jar [2]: 將Apk反編譯成Java源碼(classes.dex轉(zhuǎn)化成jar文件)
? Soot [3]:Soot最初是Java優(yōu)化框架,發(fā)展至今已廣泛應(yīng)用于分析優(yōu)化和可視化Java和Android應(yīng)用程序。
? Flowdroid [4]: 基于IFDS算法實(shí)現(xiàn)的針對(duì)Android的靜態(tài)污點(diǎn)分析框架
利用上述工具,開發(fā)者可以制定相應(yīng)的規(guī)范檢測(cè)項(xiàng),從而檢測(cè)到應(yīng)用中存在的隱私泄露隱患。
1.2 動(dòng)態(tài)檢測(cè)
動(dòng)態(tài)檢測(cè)方案通過運(yùn)行待檢測(cè)應(yīng)用于真實(shí)手機(jī)或者模擬器沙箱,通過監(jiān)控移動(dòng)應(yīng)用對(duì)系統(tǒng)內(nèi)敏感資源的訪問,結(jié)合移動(dòng)應(yīng)用的隱私政策聲明分析,檢測(cè)移動(dòng)應(yīng)用是否包含隱私違規(guī)行為。應(yīng)用運(yùn)行則可以由人工進(jìn)行或者UI自動(dòng)化。
1.2.1 敏感行為監(jiān)測(cè)
運(yùn)行時(shí)敏感行監(jiān)測(cè)實(shí)時(shí)監(jiān)控應(yīng)用對(duì)用戶隱私敏感數(shù)據(jù)的訪問。在實(shí)現(xiàn)上分為兩種:一種是直接在源碼中添加監(jiān)控代碼。如在AOSP代碼中的getLastLocation中直接添加代碼,記錄API訪問行為。另一種則是通過hook方案,不直接修改源碼,而是在系統(tǒng)運(yùn)行APP時(shí)添加邏輯鉤子,在APP調(diào)用特定敏感API時(shí),先跳轉(zhuǎn)至hook函數(shù),最后再返回調(diào)用原敏感API。其中,hook函數(shù)負(fù)責(zé)記錄應(yīng)用的API訪問行為。
1.2.2 UI自動(dòng)化
移動(dòng)應(yīng)用自動(dòng)化即通過程序控制移動(dòng)應(yīng)用UI交互。該領(lǐng)域典型的工具有: monkey [5],進(jìn)行UI界面隨機(jī)點(diǎn)擊以及系統(tǒng)級(jí)事件。第三方UI自動(dòng)化工具:uiautomator2 [6]和AndroidViewClient [7], 基于系統(tǒng)工具uiautomator實(shí)現(xiàn),能夠?qū)崿F(xiàn)基本的自動(dòng)化UI測(cè)試功能編程。
2 目標(biāo)檢測(cè)技術(shù)在隱私合規(guī)檢測(cè)領(lǐng)域的應(yīng)用
深度學(xué)習(xí)中的目標(biāo)檢測(cè),主要用于在視圖中檢測(cè)出物體的類別和位置,如下圖所示。目前業(yè)界主要有YOLO [7],SSD [8]和RCNN [9]三類深度學(xué)習(xí)算法。
以Faster RCNN為例,該算法是RCNN算法的演進(jìn)。在結(jié)構(gòu)上,F(xiàn)aster RCNN將特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一個(gè)網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測(cè)速度方面尤為明顯。Faster RCNN主要分為4個(gè)主要內(nèi)容:
- Conv layers。作為一種CNN網(wǎng)絡(luò)目標(biāo)檢測(cè)方法,F(xiàn)aster RCNN首先使用一組基礎(chǔ)的conv+relu+pooling層提取image的feature maps。該feature maps被共享用于后續(xù)RPN層和全連接層。
- Region Proposal Networks。RPN網(wǎng)絡(luò)用于生成region proposals。該層通過softmax判斷anchors屬于positive或者negative,再利用bounding box regression修正anchors獲得精確的proposals。
- Roi Pooling。該層收集輸入的feature maps和proposals,綜合這些信息后提取proposal feature maps,送入后續(xù)全連接層判定目標(biāo)類別。
- Classification。利用proposal feature maps計(jì)算proposal的類別,同時(shí)再次bounding box regression獲得檢測(cè)框最終的精確位置。
2.1 應(yīng)用點(diǎn)
在UI自動(dòng)化中,常常存在基于uiautomator的工具無法識(shí)別的UI布局。主要有兩種原因?qū)е逻@種情況:1、UI內(nèi)容由整張圖片渲染而成;2、UI控件原因,某些用戶編寫的UI控件沒有支持無障礙服務(wù),導(dǎo)致uiautomator無法獲取UI布局。此時(shí),使用UI圖片目標(biāo)識(shí)別,可以判斷可點(diǎn)擊的有效區(qū)域。
.jpg)
如上圖所示,在Sechunter的UI自動(dòng)化中,我們需要獲取應(yīng)用的隱私聲明文件鏈接,以及相應(yīng)的“同意”、“不同意”的位置。在uiautomator無法獲得UI布局的情況下,可以進(jìn)行目標(biāo)識(shí)別,通過圖像獲得可點(diǎn)擊位置,從而推進(jìn)UI自動(dòng)化測(cè)試的繼續(xù)執(zhí)行。
2.2 目標(biāo)檢測(cè)技術(shù)的應(yīng)用
在模型訓(xùn)練中,主要困難在于數(shù)據(jù)集收集。Sechunter的解決方案是,先通過傳統(tǒng)的圖片處理方案獲取初步的數(shù)據(jù)集,這里我們使用了圖片處理領(lǐng)域的顯著區(qū)域識(shí)別。這個(gè)過程的關(guān)鍵是要有一個(gè)驗(yàn)證模塊,對(duì)隱私聲明鏈接而言,即驗(yàn)證該區(qū)域點(diǎn)擊跳轉(zhuǎn)后內(nèi)容的確是隱私聲明。我們使用了LDA主題模型來判斷文本內(nèi)容是否是隱私政策。通過驗(yàn)證的樣本都收納到數(shù)據(jù)集中,然后用這些標(biāo)注數(shù)據(jù)進(jìn)行第一版的目標(biāo)識(shí)別模型訓(xùn)練。
訓(xùn)練出來的模型只是利用傳統(tǒng)圖像處理能夠識(shí)別成功的圖片進(jìn)行學(xué)習(xí)。對(duì)于不成功的圖片,我們進(jìn)一步使用OCR。OCR能夠識(shí)別出圖像中的文字內(nèi)容及其位置。結(jié)合第一階段的目標(biāo)識(shí)別模型進(jìn)行結(jié)果融合,可以得到更為精確的可點(diǎn)擊區(qū)域結(jié)果,并且這個(gè)時(shí)候的融合方案已經(jīng)初步可以使用了。隨著數(shù)據(jù)集的積累,目標(biāo)檢測(cè)模型的檢測(cè)結(jié)果也變得更精確。最終能夠只使用目標(biāo)識(shí)別方案。
3 小結(jié)
移動(dòng)應(yīng)用隱私合規(guī)檢測(cè)對(duì)保護(hù)個(gè)人信息安全有著重要作用。但目前市場(chǎng)上的工具自動(dòng)化檢測(cè)能力普遍都還比較有限。Sechunter在自動(dòng)化隱私合規(guī)檢測(cè)領(lǐng)域做了一些積極探索,進(jìn)行了眾多跨領(lǐng)域技術(shù)調(diào)研,本文介紹的目標(biāo)識(shí)別技術(shù)能夠幫助自動(dòng)化工具更快更準(zhǔn)地識(shí)別UI可點(diǎn)擊區(qū)域。
審核編輯:湯梓紅
-
移動(dòng)應(yīng)用
+關(guān)注
關(guān)注
0文章
65瀏覽量
15575 -
目標(biāo)檢測(cè)
+關(guān)注
關(guān)注
0文章
211瀏覽量
15664
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論