摘" 要: 針對涉詐類APP分類難的問題,通過N-gram、主成分分析法等方法對Dalvik字節碼與權限特征形成的特征碼進行降維,利用K-Means++聚類算法構建APK涉詐家族分析模型,實現對涉詐類APP進行分類的目的。
關鍵詞: 涉詐類APP; Dalvik字節碼; 權限; K-Means++
中圖分類號:TP391.4" " " " " 文獻標識碼:A" " "文章編號:1006-8228(2023)12-81-04
Research on analysis model of fraud-related APP based on mixed features
Xia Yidan, Li Qiaoyu, Shi Junfan
(Zhejiang Police College, Hangzhou, Zhejiang 310000, China)
Abstract: Aiming at the problem of difficult classification of fraud-related APPs, N-gram, principal component analysis and other methods are used to reduce the dimension of the feature codes formed by Dalvik bytecode and permission features, and K-Means++ clustering algorithm is used to construct the analysis model of APK fraud-related family, so as to achieve the purpose of classifying fraud-related APPs.
Key words: fraud-related APP; Dalvik bytecode; permission; K-Means++
0 引言
隨著智能手機在我國普及,人們上網的方式也隨之發生變化。據《第50次中國互聯網絡發況統計報告》,截至2022年6月,我國網民規模為10.51億,其中手機網民規模有10.47億,占比高達99.6%。在此形勢下,電信詐騙的主戰場從主機端遷移到了手機端,智能手機應用程序(以下簡稱APP)中披著“正常”外衣的惡意軟件層出不窮,大量隱私泄露和濫用權限的現象在Android 平臺廣泛存在[1],個人信息安全左支右絀。用戶在享受應用軟件所帶來便利的同時,涉詐類APP悄無聲息地成為詐騙的踏板,幫助涉詐分子引誘用戶上鉤,逐漸成為犯罪分子實施電信詐騙的主要工具。
著眼于惡意APP分辨難的問題,本文重點選取Dalvik字節碼與權限作為研究特征,通過降維的方法將選取的兩類特征合成一種新的特征碼,運用聚類算法實現涉詐APP的分類。
1 背景研究
互聯網信息時代來臨,安卓手機應用程序(Android application package,簡稱APK)日趨智能化、多樣化,同時,涉詐類APP也不斷更新。如何對涉詐APP分類,對其犯罪行為給予精確打擊,是本文研究的方向。通過大量文獻研究發現,Ahmed Mumtaz[2]等將惡意軟件簽名建模為二維圖像,發現InceptionV3的遷移學習方法在測試數據集上的分類準確率較高;劉新宇[3]等提出一種基于啟發式學習的機器學習檢測方法對應用特征進行提取,重點將惡意與正常APK的界限進行了區分,在一定程度上改善了傳統驗證方式誤報率較高的問題;韓曉光[4]等提出一種基于圖像識別的指紋框架識別方法,提升了檢測相同族類惡意 APK 的效率;張景蓮[5]等對病毒反編譯文件及其灰度圖進行特征提取,融合惡意代碼特征與RF算法實現惡意代碼家族的有效分類;盧建赟[6]提出在特征中加入類型區分度較高的安全漏洞,擴充了Android惡意應用檢測相關工作的方法。
綜上,現有文獻表明,目前APK 的逆向分析主要從權限、圖像、安全漏洞、惡意代碼族類分析等維度出發,解決了誤報率高、惡意代碼變種檢測難的問題,但仍存在針對特定族類 APK檢測和分類的準確率低等不足。同時,現有研究大多是針對惡意程序,即對手機具有明顯破壞性的APK,而針對隱蔽性高、破壞性低,作為詐騙橋梁的涉詐型服務流APK,現有分類方式和研究成果較少,值得深入探索。
本文針對APK特征提取過于冗雜、零散的特點,采用N-gram、人工篩選、主成分分析法等方法對Dalvik字節碼與權限特征進行降維處理,形成新的特征碼,擇優選擇K-Means++算法,從而構建APK涉詐家族分析模型,實現了通過聚類模型對涉詐APK進行分類的目的。
2 特征提取
APK內包含的信息十分豐富,通過反編譯等手段可以獲取到APK的權限信息、字節碼特征、圖標、簽名[7]等特征信息。其中APK的字節碼特征可較好識別APK的不同功能,對于涉詐APK分類的影響較大;同時,APK權限特征是基于APK用途而產生的,對于APK按作用分類具有重大意義。因此,本文將Dalvik字節碼與權限特征作為研究重心。
2.1 Dalvik字節碼降維
APK文件格式通常都包含一個classes.dex文件,該DEX(Davilk executableformat)文件[8]由dex header、string_ids等多個結構體構建而成,封裝了可被Davilk 虛擬機執行的全部字節碼。
本文利用APKtool對APK文件進行反編譯,提取Davilk操作碼進行抽象,并將其簡化為指令符號[9]。為方便對APK進行進一步理解,本文通過自然語言處理領域常用的N-gram算法,對Dalvik指令符號進行N-gram編碼,以實現序列特征的精準分析。
經過大量實驗對比發現,針對本文選取的APK樣本,將文本內容按照字節進行大小為5的滑動窗口操作,形成長度為5的字節片段序列,更利于后續的分析。5-gram特征頻率的統計表如表1所示。
2.2 權限篩選閾值
權限用來描述APK擁有做某件事的權力,當犯罪嫌疑人涉詐意圖不同時,作為工具的APK所需權限也不盡相同。因此,權限作為描述APK作用的重要內容,可以反映其是否涉詐,本文將此作為研究的必要指標之一。
篩選權限的閾值會影響本文整個聚類模型對涉詐APK的類別判斷,經大量實驗數據分析,當某種權限僅被20%的涉詐APK擁有時,說明該權限對涉詐APK整體而言影響較小,因此,權限篩選閾值設定為20%。
2.3 主成分分析法PCA
為簡化龐雜的數據集,本文利用主成分分析法將經N-gram算法降維后的Dalvik 字節碼與人工降維過的權限信息融合成全新的特征碼,作為后續進行聚類操作的樣本集,融合后的實驗樣本主成分分析結果如表2所示。
表2樣本數據按占比大小將其降序排序,清晰發現,成分1-4已占總比的89%,涵蓋絕大部分的信息,其余每一成分所占比例均極小可以忽略。因此,本文選定前四種成分作為主成分,樣本數據隨之確定為四維。
為確定每種主成分中的關鍵影響因素和基本構成,本文運用主成分因子載荷識別確定每種影響因素在每種主成分中的影響程度,如表3所示。
3 模型建立
3.1 K-means++聚類算法
聚類算法可較好自動實現涉詐APK分類的目的,本文通過主成分分析法,將Dalvik字節碼與權限特征融合成全新的特征碼作為聚類算法的樣本集進行研究。
為找到最適合的聚類算法,搭建最為合適、高效的聚類算法模型,通過大量文獻的閱讀,本文利用輪廓系數(silhouette_score)、戴維森堡丁系數(davies_
bouldin_score)、CH分數(calinski_harabasz_score)三個內部評價指標對聚類算法進行評分篩選,如表4所示。
由此可見,確定K-Means++算法的聚類效果最好,更適合被選取為搭建本文的聚類算法模型的支撐算法,實現對涉詐APK的聚類分析。
因此,本文最終選擇K-Means++算法作為涉詐特征的聚類方式。為驗證K-Means++算法對涉詐APK的聚類效果,本文將涉詐情況已知的樣本提取特征作為測試集,將其進行研究分析。
3.1.1 運用K-Means++聚類算法
⑴ 選擇初始化的k個樣本作為初始聚類中心 [a=a1,a2,…,ak]
⑵ 針對數據集中每個樣本[xi],計算它到k個聚類中心的距離并將其分到距離最小的聚類中心所對應的類中;
⑶ 針對每個類別[aj],重新計算它的聚類中心 [aj=1cix∈cix](即屬于該類的所有樣本的質心);
重復上面⑵⑶兩步操作,直到達到某個中止條件(迭代次數、最小誤差變化等)。
3.1.2 應用K-Means++聚類算法
本文分別將3578個APK樣本進行Dalvik字節碼的N-gram處理及權限的主成分分析處理后的數據集作為分類變量,按照前文的所述的步驟,實施K-Means++聚類算法。
3.2 具體建立過程
3.2.1 確定聚類數量
肘部法是跟據數據的改變程度而繪制的圖,本文可以根據其平均畸變程度下降的程度來確定最佳聚類數量。
如圖1所示,從k值變化帶來的畸變程度來看,當k=3的時候,肘部圖的畸變程度變化最小,線段坡度最為平緩。說明此時每個樣本與同簇的其他樣本距離最小,聚類數量為3時分類效果最佳。因此本文選擇將樣本集聚成三類。
3.2.2 聚類結果
通過K-Means++聚類算法將APK樣本聚成三類,最終聚類結果如表5所示。
3.2.3 敏感性分析
本文對低于閾值的權限進行舍棄,此閾值通過更改N值大小測試聚類的準確率得出。3578個混合的詐騙樣本作為本文的研究對象,閾值對準確率的影響結果如表6所示。
通過上表數據的可知,在本文隨機樣本條件下,以賭博類型樣本為例,當閾值為20%時,其準確率最高,高達78.11%。
4 結果檢驗
本測試集中,共有涉及賭博詐騙的樣本 498個,詐騙樣本總數為3578,代入上文建立的K-Means++聚類模型,分類結果如表7所示。
表7" 混合樣本檢驗結果
[APK名稱 51創業 .京.東.金.融. .招.聯.好.期. 得利 抖賺 … 類別 1 2 2 1 1 … ]
經過K-Means++聚類,形成三類涉詐APK。經過分析,類別1判定為涉及賭博詐騙類樣本,同時精準聚入此類樣本的為389個,聚類準確率為78.11%。由此可見,本文利用APK的字節碼及權限特征濃縮而成的新的特征碼作為APK 聚類依據搭建的K-Means++聚類模型準確率較高,可較好地實現本文研究目的。
5 總結
調研相關文獻發現,目前惡意APK檢測研究較多,涉詐型服務流APK檢測分類方法少。本文針對涉詐APK的Dalvik 字節碼與權限特征進行特征分析,并降維融合成全新的特征碼進行聚類研究,以輪廓系數(silhouette_score)、戴維森堡丁系數(davies_bouldin_score)、CH分數(calinski_harabasz_score)三個內部評價指標作為分析聚類算法優劣的重要依據,得出K-Means++算法的聚類效果相較DBSCAN、BIRCH算法,對涉詐型服務流APK的分類效果最好的結果,是對涉詐APK分類的一個補充。同時,根據數據驗證所得,K-Means++算法針對指定類型的涉詐APK分類準確率可達78.11%,能較好實現涉詐APK家族分類的目的。
本文聚類模型在一定程度上解決了涉詐型服務流APK檢測分類難的問題,是檢測方式上的一種創新,但也存在缺陷,需后續改進。下一步改進方向主要包括如下二個方面:
⑴ 采用K-Means++聚類算法,其不同的初始聚類中心可能導致不同的聚類結果,具有一定的不穩定性,選取初始中心聚類的時候應遵循初始的聚類中心之間距離應盡可能遠的原則,以增強算法的全局穩定性;
⑵ 對涉詐APK類型判斷的依據應該更加全面,本文特征提取僅考慮了Dalvik 字節碼與權限特征,之后應將動、靜態提取技術相結合,多方位考慮涉詐APK的相關信息,對其進行分析。
參考文獻(References):
[1] 曹勇,李軍虎,陳曉升.基于靜態分析的APK安全檢測系統的
設計與實現[J].計算機與數字工程,2018,46(10):2146-2150.
[2] Ahmed Mumtaz,Afreen Neda,Ahmed Muneeb,Sameer
Mustafa,Ahamed Jameel. An inception V3 approach for malware classification using machine learning and transfer learning[J]. International Journal of Intelligent Networks,2023,4.
[3] 劉新宇,翁健,張悅,等.基于APK簽名信息反饋的Android惡
意應用檢測[J].通信學報,2017,38(5):190-198.
[4] 韓曉光,曲武,姚宣霞,等.基于紋理指紋的惡意代碼變種檢測
方法研究[J].通信學報,2014,35(8):125-136.
[5] 張景蓮,彭艷兵.基于特征融合的惡意代碼分類研究[J].計算
機工程,2019,45(08):281-286,295.
[6] 盧建赟.Android惡意應用自動檢測方法的研究與實現[D].
北京:北京郵電大學,2021.
[7] 翟福龍.一種涉詐APP分析方法[J].網絡安全技術與應用,
2022(4):135-138.
[8] 楊益敏,陳鐵明.基于字節碼圖像的Android惡意代碼家族
分類方法[J].網絡與信息安全學報, 2016,2(6):38-43.
[9] 陳鐵明,楊益敏,陳波.Maldetect:基于Dalvik指令抽象的
Android惡意代碼檢測系統[J].計算機研究與發展,2016,53(10):2299-2306.
[10] 張家旺,李燕偉.基于N-gram算法的惡意程序檢測系統研
究與設計[J].信息網絡安全,2016,188(8):74-80.
[11] 郭繼東,鄭可晗,張晶,等.基于主成分分析的學習效果因素
調查分析研究[J].機電工程技術,2022,51(5):165-169.
[12] FAHAD A,ALSHATRI N,TARI Z,et al. A survey of
clustering algo‐rithms for big data:taxonomy and empirical analysis[J].IEEE Transac‐tions on Emerging Topics in Computing,2014,2(3):267-279.
[13] 郝鈺蓉.基于改進BIRCH算法的AD患者rs-fMRI數據的
腦功能分區[D].保定:河北大學,2020.
[14] 劉磊.基于Spark平臺的大數據聚類算法研究及其應用[D].
南京:南京郵電大學,2018.
[15] 劉歡,李富年,顏永逸,等.DBSCAN和GRU算法在橋梁
監測系統的研究_劉歡[J].現代電子技術,2022,45(20):114-118.