国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于字節(jié)碼圖像的Android惡意代碼家族分類方法

2016-09-23 06:22:10楊益敏陳鐵明
網(wǎng)絡與信息安全學報 2016年6期
關鍵詞:字節(jié)紋理灰度

楊益敏,陳鐵明

(浙江工業(yè)大學計算機科學與技術學院,浙江 杭州 310023)

基于字節(jié)碼圖像的Android惡意代碼家族分類方法

楊益敏,陳鐵明

(浙江工業(yè)大學計算機科學與技術學院,浙江 杭州 310023)

面對Android惡意代碼高速增長的趨勢,提出基于字節(jié)碼圖像的Android惡意代碼家族分類方法,通過將Android惡意應用的字節(jié)碼轉化為256階灰度圖形式的字節(jié)碼圖像,利用GIST算法提取圖像的紋理特征,并結合隨機森林算法對特征進行分類。對常見的14種Android惡意代碼家族的樣本進行了實驗驗證,并與DREBIN方法進行比較,實驗結果表明,該方法可有效進行Android惡意代碼家族分類,具有檢測精度高且誤報率低的優(yōu)點。

安卓;惡意代碼家族;圖像紋理;字節(jié)碼

1 引言

隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,移動應用的種類與數(shù)量快速增長,同時,移動應用的惡意代碼規(guī)模也呈現(xiàn)指數(shù)級增長。阿里聚安全的2015移動安全病毒年報指出,Android平臺約5.6臺設備中就有1臺染毒,設備感染率高達18%,約95%的應用都存在病毒仿冒[1]。

雖然惡意代碼的數(shù)量每年都在增加,但大部分新的變種是在原有惡意代碼的基礎上經(jīng)過一些變換操作得到的[2]。惡意軟件編寫者在生成惡意軟件的過程中,往往采用模塊重用或自動化工具等手段來編寫變種。這些同源的惡意代碼家族很大程度上共用祖先的大部分代碼,具有一定的內(nèi)在關聯(lián)性、相似性。因此,對惡意代碼的分類研究尤為重要,是影響惡意代碼檢測效果的一個關鍵因素。

惡意代碼可視化方法在學術領域已經(jīng)有不少研究[3~5],該類方法的基本思路是將惡意代碼的特征轉換為圖像層面的特征,通過分析圖像的特征來間接實現(xiàn)檢測惡意代碼或對惡意家族進行分類的效果。

本文采用了一種惡意代碼可視化的方法對Android惡意代碼家族進行分類,先將APK中的Dalvik字節(jié)碼轉換為一種灰度圖形式的字節(jié)碼圖像并用GIST算法提取圖像中的特征,最后結合機器學習算法對特征進行分類。

2 相關工作

在PC平臺,惡意代碼的可視化方法已有一定的研究。例如,2011年, Nataraj等[6]提出了一種將Windows平臺的惡意代碼轉化為紋理圖像的方法來進行惡意代碼分類,該方法具有無需執(zhí)行代碼、無需反匯編等優(yōu)點。2012年,Wu等[7]提出一種點圖可視化方法并對惡意代碼進行聚類。2013年,Han等[8]將惡意代碼通過反匯編后提取出OpCode,并用散列函數(shù)將OpCode序列生成像素點的坐標信息與RGB信息,最后,通過計算圖像的相似度對惡意代碼家族進行分類。2014年,Shaid等[9]用不同的色系表示不同的API調用風險程度,生成彩圖來可視化惡意代碼的行為,此方法對于識別惡意代碼的變種有較高的精準度。國內(nèi)也有學者進行了相關研究,韓曉光等[10]將惡意代碼映射為圖片,并用灰階共生矩陣算法提取圖片的紋理指紋特征作為惡意代碼的指紋,該方法對惡意代碼變種有較好的識別能力。目前,相對于PC平臺,Android平臺利用可視化方法來檢測惡意代碼變種的相關研究尚屬空白。

2012年,北卡羅萊納州立大學Zhou等[11]第一次對Android惡意家族進行了系統(tǒng)性的研究,他們的研究團隊從2010年8月到2011年10月收集了Android平臺共計1 200個惡意樣本,并對Android惡意家族的特征與演化過程進行了系統(tǒng)化的研究。2014年,Arp等[12]收集了5 560個惡意樣本,并提出DREBIN方法,該方法將申請的權限、可疑的API函數(shù)調用和網(wǎng)絡地址等作為靜態(tài)分析的特征,不僅能對Android惡意代碼與正常代碼進行分類,也能對不同家族的Android惡意代碼進行分類,該方法具有較高的檢測率,但誤報率較高。

綜上所述,本文首次將惡意代碼可視化的方法引入到Android平臺,并根據(jù)Android平臺的特點提出一種可快速生成Dalvik字節(jié)碼圖像的方法,該方法與GIST算法、隨機森林算法相結合,用于分類Android惡意代碼家族,具有精度高且誤報率低的特點。

3 本文方法

3.1系統(tǒng)模型

本文的基本思路是將 Android惡意應用的Dalvik字節(jié)碼轉化為一幅256階灰度圖;然后,用 GIST算法提取圖像的紋理特征;最后,再結合隨機森林算法對特征進行分類。

整個系統(tǒng)模型如圖1所示,將APK中的DEX文件提取出來,該DEX文件包含Dalvik字節(jié)碼,可以被Dalvik虛擬機執(zhí)行;然后,將字節(jié)碼構建成一個合適寬度的像素點矩陣,矩陣中的像素點為一個字節(jié),取值范圍為 0x00~0xFF,即有 256種取值,剛好對應256階灰度,由像素矩陣可生成png格式的灰度圖;最后,利用GIST特征算法提取出灰度圖中的紋理特征,得到一個有 512維的特征向量,再用GIST特征結合隨機森林算法對Android惡意代碼家族進行分類。

圖1 系統(tǒng)模型

3.2字節(jié)碼圖像的原理

APK格式的文件通常都包含一個名為classes.dex的文件,該DEX(Dalvik executable)文件封裝了可被Dalvik虛擬機執(zhí)行的所有Dalvik字節(jié)碼。DEX文件的結構由多個結構體組合而成,包括 dex header、string_ids、type_ids、proto_ids、field_ids、method_ids、class_def、data等多個部分。DEX文件頭指定了DEX文件的一些屬性,并記錄了其他6部分數(shù)據(jù)結構在DEX文件中的物理偏移[13]。

若將 DEX文件的字節(jié)碼構建成一個寬度固定的像素點矩陣,矩陣中的像素點為一個字節(jié),取值范圍為0x00~0xFF,剛好對應256階灰度,能夠由像素矩陣生成一張灰度圖形式的字節(jié)碼圖像。圖2顯示了一個惡意代碼的DEX文件結構與字節(jié)碼圖像的對應關系,灰度圖的紋理特征是對字節(jié)碼數(shù)據(jù)結構與數(shù)據(jù)的綜合反映。

圖2 DEX文件結構與字節(jié)碼圖像的對應關系

由于同源惡意代碼家族很大程度上都共用了祖先的大部分代碼,具有內(nèi)在關聯(lián)性、相似性,因此,同一個家族惡意代碼的字節(jié)碼圖像的紋理也會表現(xiàn)出一定的相似性。如圖3所示,Android惡意家族 DroidKungFu、Plankton、Opfake、Kmin各有5個變種樣本,同一個家族的字節(jié)碼圖像的相似性要大于不同家族的字節(jié)碼圖像。另外,圖4給出了14個常見Android惡意家族較為典型的字節(jié)碼圖像,不難發(fā)現(xiàn),各家族的圖像具有各自的視覺特點。

3.3圖像特征的提取

常見的圖像紋理特征提取方法包括GLCM、邊界頻率法、GIST模型、Gabor濾波法等。本文采用GIST算法,該算法常用于圖像識別系統(tǒng),具體細節(jié)可參考文獻[14]。接下來,簡單介紹如何利用GIST算法提取字節(jié)碼圖像特征的流程。

1)按照原始圖像的像素點總數(shù),通過計算可得到一個高度與寬度等長的像素點矩陣,該矩陣存放的仍是原始圖像的像素點,并可利用矩陣生成一個正方形圖像。

2)將正方形圖像均勻劃分成4×4個互不重疊的子區(qū)域。

3)對每個子區(qū)域進行8個方向與4個尺度的小波濾波來提取圖像的紋理特征信息。

4)每一幅圖像最終獲得一個 16×8×4=512維特征向量。

圖3 Android惡意家族DroidKungFu、Plankton、Opfake、Kmin的字節(jié)碼圖像

采用上述步驟對6個Android惡意代碼家族的部分樣本進行了特征提取,并將得到的高維數(shù)據(jù)進行降維與數(shù)據(jù)可視化[15]。結果如圖5所示,GIST特征有較好的分類效果。

圖4 14個常見Android惡意家族的字節(jié)碼圖像

圖5 GIST特征的數(shù)據(jù)可視化

3.4隨機森林算法

隨機森林(random forest)是一種常見的機器學習分類算法,利用多棵決策樹對樣本進行訓練并預測。在樣本訓練階段,通過有放回抽樣的方式抽取子樣本集,對每組子樣本集進行決策樹建模,由多棵決策樹構成隨機森林。在樣本預測階段,先統(tǒng)計每棵決策樹的預測結果,再通過投票形式給出最終的分類結果[16]。

隨機森林算法有許多優(yōu)點,特別是在處理多種類型數(shù)據(jù)時可以產(chǎn)生高準確度,且對不平衡的數(shù)據(jù)集可以平衡誤差,非常適用于惡意家族數(shù)據(jù)集的分類,所以,本文實驗選用隨機森林算法。

4 實驗與分析

4.1實驗數(shù)據(jù)

測試所采用的惡意樣本來源于德國哥廷根大學DREBIN項目的惡意樣本數(shù)據(jù)庫[17],在該樣本庫中選用了 14類常見的惡意家族作為最終實驗數(shù)據(jù),如表1所示。

表1 Android惡意家族與樣本數(shù)量

4.2惡意家族分類實驗

使用隨機森林算法對14類常見惡意家族的3 962個樣本,按照10折交叉驗證模式進行測試,結果如表2所示,除了Gappusin家族由于樣本數(shù)量較少導致TPR值較低,其他家族的TPR值都不低于 0.8;總體上,平均檢測率要高于 90%,平均誤報率約為0.6%,表明該方法對惡意家族分類有較好的效果。

圖6給出了本文方法與DREBIN方法在相同實驗數(shù)據(jù)集上檢測率的對比情況,2種檢測方法在不同的檢測惡意家族的表現(xiàn)上互有優(yōu)劣,總體效果基本接近,雖然Gappusin家族一項的檢測率都不高,但本文方法略好于 DREBIN方法。DREBIN方法的平均誤報率為1%,而本文方法的平均誤報率為0.6%,要略優(yōu)于DREBIN方法。

表2 惡意家族分類效果

圖6 2種檢測方法的檢測率對比

5 結束語

本文研究了 DEX文件結構與字節(jié)碼圖像紋理之間的對應關系,提出了一種基于字節(jié)碼圖像的 Android惡意代碼家族分類方法,通過將Android惡意應用的Dalvik字節(jié)碼轉化為256階灰度圖形式的字節(jié)碼,利用 GIST算法提取圖像的紋理特征,并結合隨機森林算法對特征進行分類。本文對常見的14種Android惡意代碼家族的樣本數(shù)據(jù)進行了實驗驗證,并與DREBIN方法進行了比較,結果表明,該方法可有效進行Android惡意代碼家族分類,檢測精度高且誤報率較低。下一步工作將改進字節(jié)碼圖像紋理特征的提取方法,針對Android平臺的特性加入更多惡意代碼的可視化方法,以進一步提高檢測精度、降低誤報率。

[1]阿里聚安全[EB/OL].http://jaq.alibaba.com/.2016. Ali poly security[EB/OL].http://jaq.alibaba.com/.2016.

[2]FOSSI M, EGAN G, HALEY K, et al. Symantec internet security threat report trends for 2010[R]. 2010.

[3]CONTI G, DEAN E, SINDA M, et al. Visual reverse engineering ofbinary and data files[J].Journal of General Physiology, 2008, 115(5):637.

[4]ANDERSON B, STORLIE C, LANE T. Improving malware classification: bridging the static/dynamic gap[C]//The 5th ACM Workshop on Security and Artificial Intelligence. c2012: 3-14.

[5]NATARAJ L, YEGNESWARAN V, PORRAS P, et al. A comparative assessment of malware classification using binary texture analysis and dynamic analysis[C]//The 4th ACM Workshop on Security and Artificial Intelligence. c2011: 21-30.

[6]NATARAJ L, KARTHIKEYAN S, JACOB G, et al. Malware images: visualization and automatic classification[C]//The 8th International Symposium on Visualization for Cyber Security, ACM. c2011: 4.

[7]WU Y, YAP R. Experiments with malware visualization[M]// Detection of Intrusions and Malware, and Vulnerability Assessment. Berlin Heidelberg: Springer, 2012: 123-133.

[8]HAN K, LIM J, IM E. Malware analysis method using visualization of binary files[C]//The 2013 Research in Adaptive and Convergent Systems, ACM. c2013: 317-321.

[9]SHAID M, ZAINUDEEN S, MAAROF M. Malware behavior image for malware variant identification[C]// 2014 International Symposium on Biometrics and Security Technologies (ISBAST),IEEE. c2014: 238-243.

[10]韓曉光, 曲武, 姚宣霞, 等. 基于紋理指紋的惡意代碼變種檢測方法研究[J]. 通信學報, 2014, 35(8): 125-136. HAN X G, QU W, YAO X X, et al. Malicious code variants detection method based on texture fingerprint study [J]. Journal of Communications, 2014, 35(8): 125-136.

[11]ZHOU Y, JIANG X. Dissecting android malware: characterization and evolution[C]// 2012 IEEE Symposium on Security and Privacy (SP), IEEE. c2012: 95-109.

[12]ARP D, SPREITZENBARTH M, HUBNER M, et al. DREBIN:effective and explainable detection of android malware in your pocket[C]// Network and Distributed System Security Symposium (NDSS). c2014.

[13]ELENKOV N. Android security internals: an in-depth guide to android's security architecture[M]. No Starch Press, 2014.

[14]OLIVA A, TORRALBA A. Modeling the shape of the scene: a holistic representation of the spatial envelope[J]. International Journal of Computer Vision, 2001, 42(3):145-175.

[15]T-SNE[EB/OL]. http://lvdmaaten.github.io/tsne/. 2016.

[16]HAN J, KAMBER M, PEI J. Data mining[M]. San Francisco:Morgan Kaufmann, 2011.

[17]The drebin dataset[EB/OL].http://user.informatik.uni-goettingen. de/~darp/drebin/.2016.

Android malware family classification method based on the image of bytecode

YANG Yi-min, CHEN Tie-ming

(College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou 310023, China)

An Android malware family classification method based on the image of bytecode was proposed according to the exponential growth of Android malware. A bytecode file of Android malware was converted to a 256-level grayscale image and texture features was extracted from the image by GIST. The random forest algorithm was applied to classify the extracted features. The method by the experimental data of 14 kinds of common Android malware families was verified and was compared against the DREBIN on the same dataset. The experimental results show that the proposed method has high detection precision and low false positive rate.

Android, malware family, image texture, bytecode

TP301

A

10.11959/j.issn.2096-109x.2016.00066

2016-04-18;

2016-05-23。通信作者:陳鐵明,tmchen@zjut.edu.cn

國家自然科學基金資助項目(No.U1509214);浙江省自然科學基金資助項目(No.LY16F020035)

Foundation Items: The National Natural Science Foundation of China (No.U1509214), The Natural Science Foundation of Zhejiang Province (No.LY16F020035)

楊益敏(1985-),男,浙江寧波人,浙江工業(yè)大學碩士生,主要研究方向為網(wǎng)絡與信息安全。

陳鐵明(1978-),男,博士,浙江工業(yè)大學教授,主要研究方向為網(wǎng)絡與信息安全。

猜你喜歡
字節(jié)紋理灰度
采用改進導重法的拓撲結構灰度單元過濾技術
No.8 字節(jié)跳動將推出獨立出口電商APP
基于灰度拉伸的圖像水位識別方法研究
高技術通訊(2021年3期)2021-06-09 06:57:48
基于BM3D的復雜紋理區(qū)域圖像去噪
軟件(2020年3期)2020-04-20 01:45:18
No.10 “字節(jié)跳動手機”要來了?
使用紋理疊加添加藝術畫特效
簡談MC7字節(jié)碼
TEXTURE ON TEXTURE質地上的紋理
Coco薇(2017年8期)2017-08-03 15:23:38
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
自動化學報(2017年5期)2017-05-14 06:20:56
基于灰度線性建模的亞像素圖像抖動量計算
长岛县| 佛坪县| 廊坊市| 盘山县| 泽库县| 沂南县| 开化县| 神池县| 南郑县| 大兴区| 广德县| 华蓥市| 班玛县| 泾阳县| 宁陕县| 普兰县| 陕西省| 潞城市| 叶城县| 博湖县| 西充县| 景德镇市| 防城港市| 霞浦县| 新竹市| 剑阁县| 泰宁县| 馆陶县| 虞城县| 辽中县| 澄迈县| 深泽县| 池州市| 钟山县| 南开区| 泗阳县| 沅江市| 布拖县| 通江县| 英山县| 玉环县|