?

基于函數指紋的違法APK 檢測

2022-10-14 02:01◆肖?漢
網絡安全技術與應用 2022年9期
關鍵詞:特征向量決策樹指紋

◆肖?漢

(公安部第三研究所 上海 200000)

1 引言

近年來,隨著通信技術和移動互聯網的高速發展,通過手機進行交友、獲取資訊、購物逐漸成為了人們生活中不可或缺的一部分[1]。但與此同時,移動互聯網也逐漸成為不法分子的活躍平臺,以APK為載體從事網絡色情、賭博、釣魚等違法活動日益猖獗,對人民的身心健康以及財產安全帶來了巨大的安全隱患。能夠高效準確完成違法APK 的自動識別,成為了保障網絡安全、維護社會和諧穩定中的重要一環。

本文提出了一種基于函數指紋的違法APK 檢測模型,該模型引入了函數指紋的概念,在此基礎上利用TF-IDF 和隨機森林算法完成了分類模型的構建。該模型具有構建復雜度低、準確率高等特點,能夠有效完成違法APK 的自動識別分類。

2 相關工作

在移動互聯網平臺上,針對在APK 分析領域中的分類研究已經有一定的成果[2],例如,2013 年,B San 等人[2]提取APK 的權限列表,通過分析惡意APK和正常APK權限的統計特征進行惡意APK識別。2016 年SY Yerima 等人[3]根據APK 的API、OPCODE、權限三種類型特征構造貝葉斯網絡對惡意APK 進行分類。2018 年,Q.Zhou 等人[4]利用APK 中的Syscall 構造二分類模型。2019 年,Wang S 等人[5]監控APK 運行過程中TCP 流量信息來進行惡意APK 識別。2021年褚堃等人[6]將APK 轉換為灰度圖,使用卷積神經網絡進行惡意APK 識別。但這些APK 分類的研究主要集中對木馬、間諜、后門等惡意APK 的進行分類驗證,這些惡意APK 往往會有較為明顯的異常特征。而賭博、色情、詐騙這些違法APK 其隱蔽性更強,檢測更為困難。而對這些違法APK 分類識別的相關研究尚屬空白。

3 具體實現

本文提出的違法APK 檢測模型的框架由以下三個主要部分組成:函數指紋抽取、TF-IDF 特征構建、分類器構建。檢測模型框架圖如圖1 所示。

圖1 檢測模型框架圖

3.1 特征抽取

函數是軟件程序的基本構成元素,是程序實現軟件功能的基礎核心。每一個函數都有其核心功能。由于核心函數往往是通過調用底層系統或第三方庫的API 函數實現的,故函數中的API 調用序列是函數功能的一項重要標識。本文正是基于此提出函數指紋這種新概念,將函數中的API 調用序列作為函數的標識特征,也就是函數的指紋。例如圖2 所示的sendinfo 函數,其函數指紋S(sendinfo)可以表示為:

圖2 示例函數sendinfo

S(sendinfo)={…,getDeviceId,getSubScriberId,execute,…}(1)

特征抽取模塊主要工作就是利用Androguard 逆向工具[7]對APK文件進行反編譯,將APK 文件逆向成java 代碼,然后分析APK 中的所有函數,計算所有函數的API 調用序列。抽取函數指紋具體步驟如下:

3.2 特征向量構建

TF-IDF(Term Frequency-Inverse Document Frequency)是一種用于資訊檢索與資訊探勘的常用加權技術[8]。這種統計方法,用以評估字詞對于一個文件集或一個語料庫的重要程度,常用于文本分類。一般來說一個字詞的重要性隨著它在文件中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。根據理論,TF-IDF 值越高的特征越具有區分性,故我們通過TF-IDF 完成發特征向量的構建。令APK 樣本庫D={d1,d2,d3…dn},函數指紋庫S={s1,s2,s3…sm},di為樣本庫中第 i 個 APK 樣本,di=為函數指紋sk在di出現的頻次。

利用公式(4)計算每一個函數指紋的TF-IDF 值,選取TF-IDF 值較高的TOP(K)構建樣本的特征向量。

3.3 分類模型

在分類模型模塊中,我們選擇使用隨機森林算法[8]進行分類模型構建。隨機森林就是構造多棵決策樹,每棵決策樹都是一個分類器,那么對于一個輸入樣本,每一個決策樹都會產生一個結果。N 棵樹會有N 個分類結果。隨機森林集成了所有的分類投票結果,將投票次數最多的類別指定為最終的輸出。決策樹的構成過程則是遍尋特征向量,不斷找出信息增益最大的特征,從而構造一棵分類樹。隨機森林分類模型生成具體步驟如下:

1) 假設違法APK 總訓練集大小為N,隨機森林由M 棵樹組成。

2) 每棵樹隨機且又放回的從訓練集N 中抽取D 個樣本,作為該分類樹的訓練集。

3) 假設每個樣本的特征向量維度為n,從中隨機抽取m 個特征組成特征向量。

4) 對于特征向量中的每一個特征A,根據其是否存在將訓練集分割為D1 和D2,利用公式計算在A 的條件下樣本集合D 基尼系數Gini(D,A),其中k 為分類個數。Ck為D 中屬于第k 類的樣本子集。

5) 選擇基尼指數最小的特征及其對應的切分點作為最有特征和最優切分點。從現節點生成兩個子節點,將訓練數據集依特征分配到兩個子節點中。

6) 重復3)、4)操作,最終生成分類決策樹。

7) 重復2)到5)直到完成M 棵決策樹的構造。

4 實驗驗證

4.1 實驗準備

為了驗證檢測框架效果,我們從某違法網站平臺上收集了違法APK 樣本1144 個,同時從華為應用市場下載了298 個正常APK 樣本,總計1442 個APK 作為本次實驗的數據集,70%用作訓練集,30%用作驗證集。其中違法APK 樣本又分為涉賭APK、詐騙投資APK、涉黃APK 三類。其具體類型與數量分布如表1 所示。

表1 實驗樣本數據

4.2 實驗結果分析

為了評價檢測模型的效果,我們引入準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 值(F1)四種評估指標對實驗結果進行綜合評價。其中F1 是精準率和召回率的綜合衡量,其值越高,檢測分類結果越好。本次實驗分別測試檢測模型在k=10,k=50,k=100,k=200,k=500,k=1000,k=2000 七種情況下的檢測分類效果,其中k 為特征向量的維度,檢測值取10 次交叉驗證結果的平均值。具體檢測結果如圖3 和表2 所示。

圖3 不同特征向量維度下的檢測結果圖

表2 不同特征向量維度下的檢測結果表

從圖3 和表2 可以看出。準確率、精確率、召回率、F1 四種檢測指標的變化趨勢一致,準確率和召回率甚至完全相同。四種指標都隨著k 值的增大不斷升高,在到達200 后開始下降。說明在k=200時,該模型檢測效果最好,四種檢測指標均超過了0.92。

5 總結

本文提出了一種基于函數指紋的違法APK 檢測模型。該模型抽取APK 的函數指紋特征,利用TF-IDF 篩選、構建特征向量,并引入隨機森林分類模型完成檢測模型的構建。該檢測模型實現復雜度低且具有較好的分類效果。實驗結果表明,該檢測模型對常見的幾種違法APK檢測準確率高達92%。下一步,我們將進一步收集違法APK,驗證該模型在大規模數據集下的檢測效果。同時嘗試引入其他維度特征,進一步提高該模型對違法APK 的檢測效果。

猜你喜歡
特征向量決策樹指紋
二年制職教本科線性代數課程的幾何化教學設計——以特征值和特征向量為例
克羅內克積的特征向量
像偵探一樣提取指紋
為什么每個人的指紋都不一樣
一種針對不均衡數據集的SVM決策樹算法
決策樹和隨機森林方法在管理決策中的應用
一類特殊矩陣特征向量的求法
EXCEL表格計算判斷矩陣近似特征向量在AHP法檢驗上的應用
基于決策樹的出租車乘客出行目的識別
基于自適應稀疏變換的指紋圖像壓縮
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合