為了打擊在Android中的潛在有害應用程式(Potentially Harmful Applications,PHAs),Google使用全面性的Android安全服務Google Play Protect,合併應用監督式和非監督式機器學習技術,以精確檢測並且分類PHA

檢測PHA是一項工程浩大的工作,需要投入大量的資源,Google需要了解應用程式與使用者互動的過程,分析複雜訊號以了解PHA的行為。為了可以快速且大規模的偵測PHA,Google利用機器學習,讓系統在不需要人為介入的情況下就能自動搜尋PHA,而且只要透過增加運算能力,就能增加分析的規模。Google提到,機器學習比起人可以更有效的從資料中,找到訊號之間隱藏的關聯。

Google Play Protect機器學習保護主要由兩個部分構成,分別是資料以及和機器學習模型,而資料來源又分為應用程式的資料,以及使用應用程式的體驗資料。首先,應用程式的資料來自Google Play Protect分析網路上找到的所有應用程式。透過拆解應用程式的APK,並且深入分析提取PHA訊號來創建資料集,這些資料除了特定特徵外,還包含像是SMS詐欺、網路釣魚或是權限提升等行為。

Google Play Protect會對APK檔案中的各種資源,進行靜態和動態分析,這兩種方法相輔相成,Google表示,只要程式碼經過混淆技術,就會阻礙靜態分析,但是動態分析透過執行應用程式,因此一樣能找出問題所在,而靜態分析則能檢測在實作中可以繞過動態分析,試圖隱藏在程式碼的惡意部分。綜合動態與靜態分析,產生應用程式特徵資訊,作為機器學習的資料來源之一。

除了應用程式的資料,機器學習的資料還需要使用者使用應用程式的體驗資料,這些資料來自Google Play的使用者回饋,包括安裝、卸載、用戶評分和評論的數量等資訊,另外,有關開發人員的資訊,像是使用的憑證以及發布應用程式的歷史紀錄,也都是可用來辨識PHA的資訊。應用程式的體驗資料,由每天開發人員提交的應用程式,以及數百萬Google Play使用者產生,能幫助Google了解應用程式的品質、行為和目的,以辨識新的PHA行為。

通常這些資料來源提供的都是原始訊號,需要經過轉換才能給機器學習使用,雖然部分原始訊號具有明確語意意義能直接被利用,但是大多數情況,需要重新設計資料以找出更強而有力的特徵。像是匯總特定開發人員擁有所有的應用程式評分,個別對每位開發人員進行評分,用來驗證未來的應用程式。也會使用嵌入技術,為稀疏資料創建壓縮表示,或是為了簡化資料使其更容易被模型使用,以特徵選擇技術,根據目標不同保留最相關的訊號,並移除不相關的訊號。

Google提到,機器學習模型設計對於有效且精準的偵測PHA很重要,但是要辨識特定類型像是SMS詐欺或網路釣魚等PHA行為並不容易,這些行為都只是廣義的名詞,實際上符合定義的可能包含了廣泛的樣本。抑或是,同一個PHA活動,是由一群應用程式構成,這些應用程式共享部分程式碼和行為。

為了應付複雜的PHA行為,Google使用多種建模技術以修正使用的機器學習方法,包括監督式與非監督式的方法。Google使用監督式邏輯回歸來偵測大部分的PHA,邏輯回歸模型結構簡單可以快速訓練,可用來分析不同PHA和應用程式特徵的重要性,進而改變特徵工程程序。經過幾輪的訓練、評估和改進之後,便能產生生產用的最佳模型。

而針對其他更為複雜的PHA案例,Google使用深度學習,以捕捉不同PHA特徵間複雜的互動,並找出隱藏的關聯。由於 Google Play中存在數百萬個應用程式,提供了豐富的資料集,很適合用於訓練深度學習模型,而且除了目標特徵工程外,由於深度神經網路有擁有許多層,每層具有多神經元,可以用來處理訊號,Google透過改變層數以及每層的神經元,來改變模型行為。此外,Google還使用了非監督式的機器學習方法,因為許多PHA使用相同技術,非監督式方法可以用來定義行為相似的應用程式群集,而這能更加有效識別並減輕PHA的威脅。

但Google也提到,PHA不斷發展,所以他們的模型也需要不端的更新,而且訓練資料也要使用近期的應用程式資料,才能維持相關性,透過維護機器學習模型的建立和更新循環,才能確保系統偵測的精確度。

熱門新聞

Advertisement