• 沒有找到結果。

在過去惡意程式分析的經驗,許多惡意行為會以順序性發生,比起以 Android API 函式呼叫進行分析,以順序性 API 函式呼叫分析可更加確認惡意行為的發生。因此根 據此一特性,本研究使用資料探勘中的分類分析技術,希望能夠藉由惡意程式和非惡 意程式之間順序性行為的差異,作為偵測未知惡意程式的分類條件。除此之外,本研 究也會評估使用 API 函式呼叫順序特徵有無的差異。在本研究中,將會從樣本中收集 Android APK 中的權限、 API 函式呼叫, API 函式呼叫順序資訊,讓預測模型進行學 習,此研究系統架構如圖 4 所示:

圖 4 Android 惡意程式偵測系統架構

3.1 Android 惡意程式偵測系統架構

在此系統架構中,本研究將會分成兩個部份來說明。第一部分,將從定量的 Android 惡意程式與正常程式中提取出各程式之權限要求、Android API 函式,以及 Android API 函式呼叫先後順序作為原始資料。最後將應用程式權限、 Android API 函 式呼叫,以及 API 函式呼叫順序、各個特徵使用組合的方式合併成不同類別組合而成 的向量集,使用有或沒有代表每一項屬性值。第二部分,將第一部份所產生的訓練資 料集,利用五種資料探勘中的分類分析技術,分別為梯度提升、極限梯度提升、決策 樹、支援向量機以及單純貝氏分類,學習得到資料集中屬性與類別的關係。最後會評

17

估此五種分類分析技術,在本研究之 Android 惡意程式偵測中,何種效果最好。未來,

當本研究之 Android 惡意程式偵測系統接收到未知的 Android 應用程式時,便可依據之 前所學得之模型對其做分類預測,判斷此 Android 應用程式是否為惡意程式。

3.2 實驗變數

本研究使用 Android 權限、Android API 函式及 Android API 函式呼叫順序作為特 徵來源。在訪問特定資源或敏感性資料時,應用程式須先取得相關權限,隨後才能搭 配相對應之 Android API 函式執行相關動作。然而,通常應用程式之行為,皆由多個 API 函式所組合而成,且須依照特定順序呼叫,才能成功執行相關動作。例如:若惡 意 程 式 欲 持 續 探 測 藍 芽 裝 置 , 並 蒐 集 相 關 資 訊 。 應 用 程 式 得 先 呼 叫 API 函 式 BluetoothAdapter.isDiscovering 函式,檢查手機是否正在探測周圍環境中其他藍牙裝置。

若無,則呼叫 API 函式 BluetoothAdapter.startDiscovery 函式。也因此顯示出,不僅關 鍵 Android API 函式是否被呼叫為重要參考變數,其被呼叫之先後順序,更是具重要參 考價值之變數。此外,呼叫 API 函式 BluetoothAdpter.isDiscovering 函式 及 API 函式 BluetoothAdpter.startDiscovery 函 式 皆 須 請 求 授 予 相 對 應 之 權 限 BLUETOOTH 及 BLUETOOTH_ADMIN。這也顯示出,應用程式請求授予之 Android 權限與 Android API 函式之使用,具高度連動關係。也因此,我們將 Android 權限納為重要特徵變數。

其中,三種特徵變數內容之取得,皆來自 Androzoo 樣本資料集中之應用程式此三種重 要變數如表 1 所示。

表 1 實驗變數

變數類別名稱 說明

應用程式權限 資料集中應用程式所使用之權限

Android API 函式呼叫 資料集中應用程式所使用之 Android API 函式 Android API 函式呼叫順序

資料集中應用程式所使用之 Android API 函式呼叫先後 順序

18

3.3 特徵篩選

由於在本研究中所蒐集到的特徵變數相當多,因此,在本研究中將會透過資訊獲 利、獲利比率以及單一規則此三種篩選特徵方法來挑選對於分類效果較好之特徵變 數,以此減少對於分類效果幫助不大之特徵變數。

 資訊獲利(Information Gain)

資訊獲利為在資料探勘中被用於分類分析技術的決策樹篩選節點的衡量指標,決 策樹是透過建立一個樹狀結構的模型,藉由每一個特徵變數作為樹枝的節點,越上層 的節點則代表對於分類資料之效果越好,而這些決策樹節點的選擇,就是仰賴資訊獲 利的數值,資訊獲利是決策樹作為選擇該層之分類節點為何種特徵的指標,資訊獲利 越大,代表對於區分資料之效果越好,並以此來挑選最適合的特徵變數來作為當前樹 枝的節點。而資訊獲利的計算,則需透過對於資料集之熵值(Entropy)來取得,若一資 料集 S 中具有 C 個不同的類別,則此資料集之熵值計算公式為:

Entropy(𝑆) = − ∑ 𝑝

𝐶𝑖 𝑖

log

2𝑝𝑖

其中 pi

則代表著該類別 i 在資料集 S 中出現的機率,如果一個資料群的屬性皆為

一致,則此資料群的熵值為零,反之,若一資料群可將資料一分為二,並且數量均等,

則資料群的熵值為一。而每一個節點的資訊獲利的計算方法,為資料集 S 的熵值減去 資料子集合的熵值,則為該節點之資訊獲利,並依此方法類推所有節點之資訊獲利。

而當前節點的挑選,則是選出資訊獲利最大之特徵變數。因此在挑選當前最好的分類 節點,為選擇目前資料集中之熵值最低的分類特徵變數,同時便可取得最大的資訊獲 利。

 獲利比率(Gain Ratio)

獲利比率為基於資訊獲利方法的改良,在建構決策樹的模型時,我們會利用資訊 獲利的熵值來評估該節點該選何種特徵,然而這樣的方法當遇到決策樹分支過多的時 候,資訊獲利偏向選擇數值較多的特徵,使得原本的決策樹模型出現問題,導致一種

19

情況為雖然擁有很高的資訊獲利但卻使得分類出現不合理的情況。因此後續有學者提 出獲利比率,對比於資訊獲利,獲利比率加入了考量分支的數量,使得在建構決策樹 時,能有更佳客觀的衡量標準。

 單一規則(One Rule)

單一規則是屬於一種簡單且有效的分類演算法,單一規則從資料中的每一個特徵 變數產生一個規則,並從中挑選分類誤差最小的規則作為單一規則。單一規則建立規 則的方法是統計所有特徵的每一個數值出現次數,依照資料中的特徵變數建立一個頻 率表格,從表中計算每一個特徵對於分類的總誤差率,並挑選總誤差率最小的特徵,

因為總誤差率最低意味著對於分類預測越有更高的可預測性。儘管準確度相對於目前 較新的分類演算法較為低,但產生的規則卻較容易使人理解,而本研究將會透過單一 規則計算總誤差率的方法,挑選排名較為前面的特徵變數。

3.4 分類預測模組

本研究所提出之 Android 惡意程式偵測系統中,使用目前資料探勘中較為常見的 五種分類分析技術作為建構自動學習分類預測模組。此五種分類分析技術分別為梯度 提升、極限梯度提升、決策樹、支援向量機以及單純貝氏分類進行分析。藉由此五種 資料探勘技術,並利用現有的樣本作為訓練資料集,分析 Android 應用程式各項資訊 屬性值與該類別之關係,以此建立一個分類預測系統,當未來有新的應用程式需要判 斷是否為惡意程式時,即可利用此預測系統進行類別判定。本研究挑選此五種分類分 析技術,其目的為在大量的 Android 惡意程式中,能夠在短時間內,即可快速判斷是 否為惡意程式。而此五種分類演算法也各有其優點,支援向量機能夠將分類惡意程式,

藉由二次函數分類模型的建立,在處理惡意程式此種二元分類之資料有良好的分類速 度。而決策樹則是訓練一個樹狀分支之分類模型,藉由各個變數對於分類效果之權重 高低來進行樹節點的安排,對於分類效果影響程度越高,則越在樹枝的上層。一旦模 型訓練完成後,當新的資料進來時,便不出需要龐大的運算即可快速完成預測結果。

而單純貝氏分類只需要根據少量的訓練資料,便可建立出一個條件機率模型,該條件 機率模型可使我們快速分類惡意程式。而梯度提升和極限梯度提升則是近年來較為被

20

分類預測廣泛使用之機器學習演算法,透過 Boosting 的技術,每一次的模型訓練皆會 基於前一個訓練的結果,並不斷修正整體模型,在訓練速度以及準確性皆有相當不錯 的效果,本研究亦將此兩類演算法加入此實驗中作為評估對於 Android 惡意程式分類 之效果。

21

相關文件