四、 系統實作
4.4 資料轉換以及 Weka 應用
在 MalCatcher 中我們利用了一套機器學習分析的免費軟體”Weka”來幫助我 們訓練 MalCatcher 使其擁有偵測惡意程式的能力,在本章節中我們會詳細地解釋如 何利用 Weka 對我們收集到的資訊進行分析並且得到偵測惡意程式的判斷能力。
若要利用 Weka 來分析資訊,首先我們必須將這些資訊轉換成 Weka 能接受的 檔案格式,也就是 ARFF(Attribute-Relation File Format)檔案格式,範例如圖 6
26
圖 10 ARFF 格式範例檔
“@RELATION”這項屬性是用來表示在此一檔案中的資訊是有關於何事何物,
也可以想像成是檔案名稱,對於 Weka 分析不會造成任何影響,只是能方便使用者 能快速地從這項屬性了解這些資訊的來源。”@ATTRITUBE”這項屬性主要是宣告 讓 Weka 了解在此檔案中的每筆資料中的各個元素是代表什麼意義,例如第三 行”@ATTRIBUTE SMS_NET NUMERIC”宣告了每筆資料中的第一個元素是表示 簡訊經由網路洩漏出去的行為並且此元素是數字,同時由於我們為了讓 MalCatcher 能透過多筆已知類別的資料來訓練得到偵測惡意程式的能力,因此在最後我們額外 多 加 了 一 個 屬 性 , 也 就 是 圖 10 中 的 第 19 行 ”@ATTRIBUTE class
27
{MALWARE,NORMAL}”,宣告了一項名為”class”的屬性並且此屬性的質只能 是”MALWARE”或是”NORMAL”,透過這項屬性我們能告訴 Weka 每筆資料是 屬於哪一類別的記錄,”MALWARE”表示是屬於惡意程式,”NORMAL”表示 是屬於正常 APP。”@DATA”這項屬性表示了在這一屬性之後的文字是需要被分析 的資料,以圖 10 為例,在第 21 行”@DATA”以下的每一行文字都代表著一筆需 要被分析的資料。
將資料轉換為 Weka 可接受分析的檔案格式之後,接下來至 Weka 官網下載 Weka 最新的主程式並且安裝,為了能使用 Weka 中的”LibSVM”演算法,至 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 此 一 網 址 下 載 由 第 三 方 作 者 撰 寫 LibSVM 壓縮檔並解壓縮,之後將其中的 libsvm.jar 以及 wlsvm.jar 複製到 Weka 安 裝目錄中,利用記事本之類的軟體開啟 Weka 安裝目錄中的”RunWeka.ini”將 cmd_default=javaw -Dfile.encoding=#fileEncoding# -Xmx#maxheap# #javaOpts#
-classpath "#wekajar#;#cp#" #mainclass#
改成
cmd_default=javaw -Dfile.encoding=#fileEncoding# -Xmx#maxheap# -classpath
"#wekajar#;wlsvm.jar;libsvm.jar;#cp#" #mainclass#"
之後再將
cmd_console=cmd.exe /K start cmd.exe /K "java -Dfile.encoding=#fileEncoding#
-Xmx#maxheap# -classpath "#wekajar#;#cp#" #mainclass#"
改成
cmd_console=cmd.exe /K start cmd.exe /K "java -Dfile.encoding=#fileEncoding#
-Xmx#maxheap# -classpath "#wekajar#;wlsvm.jar;libsvm.jar;#cp#" #mainclass# "
完成之後透過 RunWeka.bat 執行 Weka 程式並且點即”Exploer”選項出現主畫 面如下圖 11,透過”Open file…”選項來選擇想要用來訓練 MalCatcher 的 ARFF 格式檔案,選擇完成之後左下方即會出現此檔案中所宣告的所有屬性列表,同時右
28
下方會顯示出此一屬性在這一群資料中的狀況,我們可以透過右下方的列表對此檔 案中的屬性進行刪除、修改,接下來透過畫面上方標籤移動到”Classify”畫面,如 圖 12,在此一頁面中我們可以利用 Weka 程式提供的多種不同的機器學習演算法來 分析導入的資料,訓練 MalCatcher 偵測惡意程式的能力,透過 Classifer 下的”Choose”
選向來選擇想要使用的演算法,選擇完成之後可以點擊右邊的輸入方框來對演算法 做進一步的參數設定,設定好之後為了確保訓練的效果,使用了 Cross-validation 選項其中數值預設為 10,選擇完成之後即可透過”Start”選向來分析資料訓練 MalCatcher,執行的結果會顯示在畫面右邊的視窗之中,訓練完成後我們可以透 過”Supplied test set”選向來選擇 testing set 檔案,之後從右下方的視窗中隊相對 應的演算法點擊右鍵並且選擇”Re-evaluate model on current test set”來對 testing set 資料進行分類測試,同樣地結果會顯示在右方視窗中。
圖 11 Weka 程式 Preprocess 畫面
29
圖 12 Weka 程式 Classify 畫面
30