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