5.1 權限過濾器與Kirin的比較
5.2.2 長度區間的效率
在這一節中,我們將比較使用長度區間過濾掉相似度不可能大於臨界值的方法字串 和沒有使用長度區間的差別。
44
圖 5.6 使用長度區間的效率
我們的資料庫裡面有 Basebridge、Geinimi、Kmin、Pjapps 和 Yzhc 這 5 個惡意軟體 的惡意方法字串,其中 Geinimi 有三個惡意方法,只要應用程式和任何一個相似度超過 臨界值就會被判斷為 Geinimi。以 200 個正常的應用程式當作要詢問的對象,這 200 個 應用程式總共有 515461 個方法,我們想要知道使用長度區間,只需要去計算多少數量 的方法。所以用 200 個應用程式,看資料庫裡面每一個字串需要計算多少個方法。圖 5.6 顯示每一個惡意字串只需要計算一個應用程式多少比率的方法。以 Basebridge 為例,
一個應用程式以 2500 個方法來計算,使用長度區間的話 Basebridge 字串大概只要偵測 50 個方法。
我們的模擬環境是使用 Java 來編譯,2.0GHz Dual CPU,3GB 的記憶體,作業系統 是 Windows XP SP3。現在知道了只需要對少部分的方法做比對就好,我們還需要知道真 正運作的時間。如圖 5.7,顯示了使用長度區間和未用長度區間在字串比對時間上的比 較,其中橫軸代表 200 個應用程式,縱軸代表比對的時間單位是秒。我們可以發現一個 應用程式有越多方法的時候,使用長度區間減少的效率會越好。但是應用程式的方法很
45
多,就算使用長度區間,比對時間還是會比方法少的應用程式還要久,因為計算編輯距 離佔了大部分的時間,方法越多比對的時間也越久。
圖 5.7 使用和未用長度區間的時間比較 5.2.3 MethSI 和 Q-gram 的比較
在這一節,我們要比較 MethSI 和 Q-gram 在時間上和偵測惡意軟體的能力的優缺點。
在資料庫中有 Basebridge、Geinimi、Kmin、Pjapps 和 Yzhc 這 5 個惡意軟體,MethSI 是存相關的惡意方法字串,Q-gram 是存特性向量。如我們之前提的在 Q-gram 方法中只 需要先把應用程式的字串轉成特性向量,在跟資料庫中的向量做相似度的計算,向量的 相似度計算花費的計算時間很小。而 MethSI 需要跟資料庫中的每個字串比較經過長度 區間過濾所剩下來的方法字串。
46
圖 5.8 MethSI 和 Q-gram 檢測的時間比較
圖 5.8 顯示兩個方法的計算時間,橫軸代表有 200 個應用程式,縱軸代表運算的時 間單位是秒,環境控制在同樣的狀況下,都只有開 Java 的編輯平台 Eclipse。由圖 5.8 可以很明顯的發現在某些情況下 MethSI 的偵測時間很大,其主要原因是應用程式的方 法很多,在字串比對上面需要花較多的時間。使用 Q-gram 的平均時間是 0.5455 秒,而 使用 MethSI 的平均時間是 0.7717 秒。
接下來我們要比較兩種方法在偵測 Basebridge、Geinimi、Kmin、Pjapps 和 Yzhc 這五類變種惡意軟體的能力。在 Q-Gram 方法的資料庫中存放每一類惡意軟體中的一個 惡意程式的特性向量,而 MethSI 方法的資料庫中存放一樣的惡意程式中的惡意方法字 串。我們想知道只存放一個惡意軟體的資訊,兩種方法偵測變種惡意程式或混淆的惡意 程式的能力,如表 5-4、5-5、5-6、5-7 和 5-8。以表 5-4 為例,MethSI 方法中我們以 其中一個 Basebridge 的惡意方法字串去比較同一類惡意軟體的相似度,取所有方法中 最大的相似度來代表。而 Q-gram 方法中我們用同一個 Basebridge 的特性向量跟同一類 惡意軟體的特性向量做比較,統計他們的相似度分布的情形。
47
表 5-4 兩種方法統計 Basebridge 相似度的結果
表 5-5 兩種方法統計 Geinimi 相似度的結果
表 5-6 兩種方法統計 Kmin 相似度的結果
表 5-7 兩種方法統計 Pjassp 相似度的結果
表 5-8 兩種方法統計 Yzhc 相似度的結果
48
圖 5.9 是使用 Q-gram 的方法比較 5 個惡意軟體跟 200 個正常的應用程式計算相似度 統計的結果,在 Q-gram 方法中的臨界值我們選定為 0.7。MethSI 和 Q-gram 在偵測 200 個正常軟體時都不會判斷為惡意軟體,誤報率皆為 0。而根據表 5-4 到 5-8 我們統計了 偵測惡意軟體的能力,如表 5-9。MethSI 和 Q-gram 的資料庫中都是存放同樣的惡意軟 體,但是我們可以發現 MethSI 在偵測變種的能力比 Q-gram 好很多。
表 5.9 偵測能力
圖 5.9 使用 Q-gram 統計正常程式和惡意軟體的相似度
49
第六章
結論
在這篇論文中,我們提出了使用兩層的系統架構去偵測 Android 的惡意軟體。第一 層先檢查應用程式使用的權限,其結果分為三類:正常、可疑和惡意。只有權限過濾器 判斷為可疑的應用程式才需要經過第二層的靜態分析。在靜態分析中我們提出只使用方 法來偵測惡意軟體,因為惡意軟體中一定會有某個或某幾個方法來實現惡意行為。但是 一個應用程式有可能會有非常多個方法,我們推導出一個字串的長度區間,要詢問的字 串的長度落在區間內才需要去計算相似度,若沒有落在長度區間內則不需要去計算相似 度,因為相似度不可能超過臨界值。模擬的結果顯示,只使用惡意的方法來偵測同一類 的惡意軟體會比使用整個應用程式的偵測能力還要好,但是因為一個程式會有很多的方 法,所以比對起來也會比較慢。目前花費最多計算時間在計算編輯距離的部分,或許還 有其他更好的字串比對演算法來改進計算時間。
50
參考文獻
[1] Gartner,Android Market Share Doubles, iOS Drops In Q3
http://articles.businessinsider.com/2011-11-15/tech/30400455_1_ios-iphone-smartphone -market
[2] Wikipedia, ”Symbian”, http://en.wikipedia.org/wiki/Symbian [3] Wikipedia, ”Android”, http://en.wikipedia.org/wiki/Android
[4] Wikipedia, ”HTC_Dream”, http://en.wikipedia.org/wiki/HTC_Dream
[5] Lookout, “mobile threat report”, https://www.mylookout.com/mobile-threat-report [6] Wikipedia, ”Android_(operating_system)” ,
http://en.wikipedia.org/wiki/Android_(operating_system)
[7] Wikipedia, ”Dalvik_(software)”, http://en.wikipedia.org/wiki/Dalvik_(software) [8] Google, “Developer”, http://developer.android.com/index.html
[9] Eric Chien, “Motivations of Recent Android Malware,” Symantec Security Response [10] Cesare, Silvio, Yang Xiang, “Malware Varant Detection Using Similarity Search over
Sets of Control Flow Graphs,” in IEEE International Conference on TrustCom, Nov.
2011
[11] William Enck, Machigar Ongtang, Patrick McDaniel, “On Lightweight Mobile Phone Application Certification,” in Proc. ACM CSS’09 , 2009
[12] Wei Tang, Guang Jin, Jiaming He, Xianliang Jiang, “Extending Android Security Enforcement with A Security Distance Model,” in IEEE International Conference on iTAP, Aug. 2011.
51
[13] WIRED, “Android Market 下載次數突破百億,付費 App 大降價”, http://wired.tw/2011/12/14/android-market-downloads-apps/index.html [14] Anthony Desnos, “Androguard,” http://code.google.com/p/androguard/
[15] contagio- malware dump,
http://contagiodump.blogspot.tw/2011/03/take-sample-leave-sample-mobile-malware.html [16] VirusTotal, https://www.virustotal.com/
101