移動應用隱私合規檢測簡介及目標檢測技術的應用

科技怪授發表於2022-10-12

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個主要內容:

1.   Conv layers。作為一種CNN網路目標檢測方法,Faster RCNN首先使用一組基礎的conv+relu+pooling層提取image的feature maps。該feature maps被共享用於後續RPN層和全連線層。

2.   Region Proposal Networks。RPN網路用於生成region proposals。該層透過softmax判斷anchors屬於positive或者negative,再利用bounding box regression修正anchors獲得精確的proposals。

3.   Roi   Pooling。該層收集輸入的feature maps和proposals,綜合這些資訊後提取proposal feature maps,送入後續全連線層判定目標類別。

4.   Classification。利用proposal feature maps計算proposal的類別,同時再次bounding box regression獲得檢測框最終的精確位置。

 

2.1   應用點

UI自動化中,常常存在基於uiautomator的工具無法識別的UI佈局。主要有兩種原因導致這種情況:1、UI內容由整張圖片渲染而成;2、UI控制元件原因,某些使用者編寫的UI控制元件沒有支援無障礙服務,導致uiautomator無法獲取UI佈局。此時,使用UI圖片目標識別,可以判斷可點選的有效區域。

 

如上圖所示,在Sechunter的UI自動化中,我們需要獲取應用的隱私宣告檔案連結,以及相應的“同意”、“不同意”的位置。在uiautomator無法獲得UI佈局的情況下,可以進行目標識別,透過影像獲得可點選位置,從而推進UI自動化測試的繼續執行。

2.2   目標檢測技術的應用

在模型訓練中,主要困難在於資料集收集。Sechunter的解決方案是,先透過傳統的圖片處理方案獲取初步的資料集,這裡我們使用了圖片處理領域的顯著區域識別。這個過程的關鍵是要有一個驗證模組,對隱私宣告連結而言,即驗證該區域點選跳轉後內容的確是隱私宣告。我們使用了LDA主題模型來判斷文字內容是否是隱私政策。透過驗證的樣本都收納到資料集中,然後用這些標註資料進行第一版的目標識別模型訓練。

訓練出來的模型只是利用傳統影像處理能夠識別成功的圖片進行學習。對於不成功的圖片,我們進一步使用OCR。OCR能夠識別出影像中的文字內容及其位置。結合第一階段的目標識別模型進行結果融合,可以得到更為精確的可點選區域結果,並且這個時候的融合方案已經初步可以使用了。隨著資料集的積累,目標檢測模型的檢測結果也變得更精確。最終能夠只使用目標識別方案。

3   小結

移動應用隱私合規檢測對保護個人資訊保安有著重要作用。但目前市場上的工具自動化檢測能力普遍都還比較有限。Sechunter在自動化隱私合規檢測領域做了一些積極探索,進行了眾多跨領域技術調研,本文介紹的目標識別技術能夠幫助自動化工具更快更準地識別UI可點選區域。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70022614/viewspace-2918102/,如需轉載,請註明出處,否則將追究法律責任。

相關文章