999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于API調用的抗混淆Android應用相似性檢測方法

2018-02-10 03:36:48谷杰銘孫博文吳鵬李祺郭燕慧
網絡與信息安全學報 2018年1期
關鍵詞:檢測方法

谷杰銘,孫博文,吳鵬,李祺,郭燕慧

?

基于API調用的抗混淆Android應用相似性檢測方法

谷杰銘1,2,孫博文1,2,吳鵬3,李祺1,2,郭燕慧1,2

(1. 北京郵電大學網絡空間安全學院,北京 100876; 2. 天地互聯與融合北京市重點實驗室,北京 100876; 3. 四川大學計算機學院,四川 成都 610015)

傳統的移動應用相似性檢測方法存在特征提取復雜、檢測效率較低等問題。針對上述問題,提出基于API調用的抗混淆Android應用相似性檢測方法,首先從DEX文件中提取引用API序列,應用反編譯后對引用API進行頻數統計;然后構建應用的特征向量,以此計算應用之間的相似度。實驗結果證明,該方法具有較高的準確率。

應用相似性;Android;逆向工程;抗混淆

1 引言

Android系統自2007年發布后迅速占據了移動終端平臺的主導地位。數據顯示,截至2016年第3季度,Android操作系統的市場份額達到86.8%[1],Android應用的數量隨著操作系統的普及而快速增長,越來越多的開發者加入Android應用的開發隊伍中,Google Play的Android應用數量在2017年1月增長到270萬,并且在2016年的下載量突破640億次[2]。

Android操作系統的開放性給開發商提供了寬松自由的環境,開發者可以自主開發Android應用并將應用提交到應用市場,用戶通過應用市場下載應用。Google Play采用多種安全機制對提交的應用進行安全檢測,并不斷完善安全審核機制以提高檢測準確性與全面性,但是依然無法避免仿冒應用和惡意應用的存在。應用市場的應用審核機制不嚴格,安全保障機制不夠完善,導致市場內仿冒應用和惡意應用的比例居高不下[3]。

由于Android應用反編譯后的源代碼容易閱讀,部分開發者為了牟取私利,對市場上的知名應用進行逆向工程,對應用稍作修改,在嵌入廣告或惡意代碼后重新打包,作為自己的產品上傳到應用市場[4]。這種行為嚴重擾亂應用市場環境,影響相關產業的健康發展,損壞開發者的合法權益。

應用市場的運營方應該負擔起上架應用的審核和管理工作,避免仿冒應用在應用市場上出現。多數應用市場以書面申請為主、人工測評為輔的方式審核應用版權及內容,這種審核方式工作量大、人工參與度高、效率較低。因此,需要一種應用相似性檢測工具來提高應用市場的審核工作效率。

2 相關工作

現有的Android應用相似性檢測方法[5]主要包括行為相似性檢測方法和文件相似性檢測方法。在行為相似性檢測方面,Hanna等[6]提出一種根據行為相似性檢測Android應用代碼重用的方法,該方法首先通過反編譯APK得到Android可執行字節碼,從中提取應用的行為序列,采用特征散列算法對行為序列進行處理,得到應用的行為特征,然后采用群落系數相似性度量方法計算行為特征相似性,該方法適用于檢測應用重打包、代碼抄襲。DroidMOSS[7]通過反編譯APK得到Android可執行字節碼,從中提取應用的指令序列,然后對指令序列采用散列算法得到應用的行為特征,比較行為特征得到應用間的相似度,該方法可以定位到二次打包應用的代碼修改點。

在文件相似性檢測方面,Li[8]采用文件目錄結構對應用相似性進行評估,用樹結構表示應用的目錄結構,計算樹之間的編輯距離,由此得到應用之間的距離。該方法不受代碼混淆的影響,適用于檢測應用重打包、嵌入已知惡意代碼的應用。

上述研究存在以下問題。一是特征提取,行為相似性檢測首先需要逆向分析得到應用行為序列,但是逆向過程容易受到代碼混淆的影響[9],重打包人員只需重新配置混淆文件,把方法、字段、包等Java元素混淆成無意義的名稱,計算得到的散列結果相差較大,導致相似性檢測方法失效;文件相似性檢測得益于惡意開發者基本不改變文件目錄結構,該方法容易受垃圾文件的干擾,在重打包時被惡意插入大量垃圾文件后,文件目錄結構和文件數量發生變化,進而大幅度影響相似性檢測結果[10]。二是檢測效率,傳統檢測方法將應用反編譯到Java源代碼進行分析[11],然而反編譯得到的源代碼不完全符合Java原生代碼的語法結構,同時在反編譯過程中會不可避免地丟失部分信息。分析源代碼耗費大量的時間和空間,同時信息丟失情況較嚴重,造成檢測效率低且檢測結果與實際情況有較大偏差。

應用相似性檢測不但要用精確的應用特征描述樣本應用,而且需要提高檢測效率[12]。針對目前研究成果存在的不足,本文提出基于API調用的抗混淆Android應用相似性檢測方法,通過選取合適的抗混淆應用特征,可以有效地解決混淆環境下的應用相似性檢測問題。首先分析DEX文件結構,提取應用API序列,根據方法的定義性質,篩選出引用API序列,引用API序列由系統方法構成,系統方法不受代碼混淆的影響,同時具有普遍性、代表性,能夠表示應用行為特征,因此選用引用API序列作為應用的抗混淆特征。Smali[13]語言是Davlik的寄存器語言,Smali語言在語法上完整地實現了DEX可執行文件的所有功能[14]。與傳統反編譯DEX文件的源代碼相比,轉換為Smali語言效率更高。對Android應用反編譯后得到的Smali文件進行引用API的頻數統計,能夠避免信息丟失的情況出現,同時提高檢測效率。

3 DEX文件結構

構建應用特征向量,首先將API信息從DEX文件中抽取出來,所以需要對DEX文件結構[15]進行分析,從DEX文件的相關結構信息中抽取相關API信息。DEX文件結構如表1所示。

表1 DEX文件結構

標識符列表中索引DEX文件中的字符串、類型、方法原型、字段以及方法信息,其結構體的開始位置和項數均來自文件頭中的記錄。

根據DEX文件結構,下面對標識符列表中結構體的含義進行說明。

首先,針對method_id_ item進行信息描述。method_id_item描述方法的相關信息,包括方法的所屬類、方法原型和方法列表,如表2所示。

然后,本文分析重點proto_id_item的信息描述。proto_id_item描述方法原型的相關信息,包括方法返回值類型、方法參數信息和方法描述,如表3所示。

表2 method_id_item描述

表3 proto_id_item描述

表4 class_def_item描述

最后,對class_def_item的信息描述。class_ def_item描述具體的class類型,如表4所示。

4 整體檢測流程

Android應用相似性檢測方法的整體流程如圖1所示。通過分析DEX文件頭定位到方法標識符列表,根據標識符列表中的地址偏移提取應用API序列,根據方法所屬類是否在class_defs區域,篩選出引用API序列。得到引用API序列后,使用APKTool反編譯應用得到smali文件夾,然后統計每個引用API的總調用頻數并得到引用API序列的頻數序列,共同構建應用的特征向量,最后計算應用之間的相似度。本文方法過濾自定義類方法和第三方庫函數,不受代碼混淆的影響,同時避免特征在使用上的不足,保留應用特征的整體性和代表性。

方法檢測流程主要分為6個關鍵步驟,分別是提取API序列、篩選引用API序列、應用反編譯、頻數統計、構建特征向量、相似性計算。

1) 提取API序列

通過實際應用(MD5:CAF89261805E 496528490F337A49861A)展示應用API序列的提取過程。根據DEX文件頭中的地址偏移,定位到方法標識符列表(method_ids)和方法原型標識符列表(proto_ids),從中讀取應用的方法信息[16]。

根據DEX文件頭中記錄的大小和偏移地址定位到方法標識符列表(method_ids)。方法標識符列表(method_ids)是一個結構體數組,該數組的元素為method_id_item結構體。遍歷結構體數組,利用獲得的class_idx和name_idx分別從類型標識符列表(type_ids)、字符串列表(string_ids)中得到方法所屬類和方法名稱。

圖1 Android應用相似性檢測方法流程

根據DEX文件頭中記錄的大小和偏移地址定位到方法原型標識符列表(proto _ids)。方法原型標識符列表(proto _ids)是一個結構體數組,該數組的元素為proto _id_item結構體。遍歷結構體數組,利用獲得的shorty_idx從字符串列表(string_ids)中得到方法返回。

類型和參數列表,利用獲得的parameters_off從data數據區得到方法參數信息。

提取結果顯示應用的API序列共有10 975項。

2) 篩選引用API序列

引用API序列由系統方法構成,系統方法不受代碼混淆的影響,同時具有普遍性、代表性,能夠表示應用行為特征,因此選用引用API序列作為應用的抗混淆特征。提取的API序列中包含應用自定義類方法和第三方庫函數,需要過濾兩者避免代碼混淆的影響。DEX文件結構中,class_defs區域內存放class definitions,包含應用中所有定義的類信息。根據方法所屬的class類型是否在class_defs區域,判定方法是本地方法還是引用方法,從而篩選出引用API序列。

篩選結果顯示應用(MD5:CAF89261805E 496528490F337A49861A)的引用API序列共有2 272項。引用API序列過濾自定義類方法和第三方庫函數,只保留應用中的系統方法。

3) 應用反編譯

應用反編譯是檢測工作的基礎,針對Android應用的反編譯,主要是反編譯應用中的DEX文件和對解碼資源文件[17],檢測方法需要用到的smali文件包含在DEX文件中,所以本文選取APKTool[18]反編譯APK,得到smali文件。

圖2 頻數統計流程

4) 頻數統計

頻數統計流程如圖2所示,首先調用APKTool對應用進行反編譯處理,得到Smali文件夾。Smali語言在語法上完整地實現了DEX文件的所有功能,包括程序代碼、注釋等大量信息[13],因此對得到的smali文件進行頻數統計,可以避免信息丟失的情況出現。這里的頻數統計指的是統計引用API在文件中出現的總調用頻數,最后得到引用API序列的頻數序列,跟引用API序列一起構建應用的特征向量。

5) 構建特征向量

6) 相似性計算

余弦值的范圍在[?1,1],值越趨近于1,代表2個向量的方向越接近;越趨近于?1,它們的方向越相反[19]。得到樣本應用和可疑應用的特征向量后,計算2個向量的余弦值,就可以知道2個應用的相似性情況。

5 實驗

5.1 數據來源

實驗選取的樣本應用來自國內知名Android應用市場,涵蓋10種不同類型,包括社交類、游戲類、影音類、攝影類、工具類、金融類、閱讀類、旅游類、生活類、教育類。每種類型選取功能相近300個應用進行相似性檢測。

5.2 結果分析

圖3為10類樣本應用的相似度統計結果,使用Android相似性檢測工具Androguard[20]進行檢測,發現社交類應用的相似度最高,教育類應用的相似度相對較低。結合應用下載量分析發現,使用頻率越高的應用類型,應用的相似概率越高。

使用本文提出的基于API調用的抗混淆Android應用相似性檢測方法進行檢測,對比實驗結果,本文提出的方法在相同樣本的情況下,檢出率更高,具有更好的區分能力。實驗結果表明,本文方法在簡化特征提取的同時具有較高的準確率。

圖3 樣本相似度

6 結束語

本文提出一種基于API調用的抗混淆Android應用相似性檢測方法,從DEX文件中提取引用API序列,應用反編譯后對引用API進行頻數統計,然后構建應用的特征向量,以此計算應用之間的相似度。特征向量過濾應用自定義類和第三方庫,具有很好的抗混淆性。實驗結果證明,本文提出的應用相似性檢測方法具有較高的準確率。

方法依賴靜態檢測技術,如果應用采用加固技術進行安全保護,影響API序列提取和頻數統計,導致結果失真。后期工作將結合動態脫殼技術對加固應用進行預處理。

[1] Smartphone OS Market Share, 2016 Q3[EB/OL]. http://www.idc.com/ promo/smartphone-market-share/os.

[2] Analysis: how much difference does Google play and App store differ?[EB/OL].http://www.chinaz.com/manage/2017/0223/662587. shtml.

[3] NetQin. Global mobile report of first half of 2012[EB/OL]. http://cn.nq.com/neirong/2012shang.pdf.

[4] SHEKHAR S, DIETZ M, WALLACH D S. AdSplit: separating smartphone advertising from applications[J]. Dissertations & Theses-Gradworks, 2012, 54(1):99.

[5] ZHOU Y, JIANG X. Dissecting android malware: characterization and evolution[C]//2012 IEEE Symposium on Security and Privacy. 2012: 95–109.

[6] HANNA S, HUANG L, WU E, et al. Juxtapp: a scalable system for detecting code reuse among android applications[C]//The International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment. 2012:62-81.

[7] ZHOU W, ZHOU Y, JIANG X, et al. Detecting repackaged smartphone applications in third-party android marketplaces[C]//ACM Conference on Data and Application Security and Privacy. 2012:317-326.

[8] LI S. Juxtapp and DStruct: detection of similarity among Android applications[EB/OL]. https://www2.eecs.berkeley.edu/Pubs/TechRpts/ 2012/EECS-2012-111.html.

[9] HUANG H, ZHU S, LIU P, et al. A framework for evaluating mobile App repackaging detection algorithms[C]//The International Conference on Trust and Trustworthy Computing. 2013:169-186.

[10] CHEN K, LIU P, ZHANG Y. Achieving accuracy and scalability simultaneously in detecting application clones on android markets[C]//The 36th International Conference on Software Engineering. 2014:175-186.

[11] 路程, 張淼, 徐國愛. 基于源代碼靜態分析技術的Android應用惡意行為檢測模型[J]. 2011. LU C, ZHANG M, XU G A. Android application malicious behavior detection model based on source static analysis technology[J]. 2011.

[12] SOH C, TAN H B K, ARNATOVICH Y L, et al. Detecting clones in Android applications through analyzing user interfaces[C]//IEEE International Conference on Program Comprehension. 2015: 163-173.

[13] JesusFreke. smali/baksmali: an assembler/disassembler for Android's dex format[EB/OL]. http://code.google.com/p/smali/.

[14] 劉方圓, 孟憲佳, 湯戰勇, 等. 基于smali代碼混淆的Android應用保護方法[J]. 山東大學學報(理學版), 2017(3): 44-50. LIU F Y, MENG X J, TANG Z Y, et al. Android application protection method based on smali code confusion[J]. Journal of Shandong University(Nature Science), 2017(3): 44-50.

[15] Dedexer: dedexer is a disassembler tool for DEX files [EB/OL]. http://dedexer.sourceforge.net/.

[16] LINARES-VASQUEZ M, HOLTZHAUER A, POSHYVANYK D. On auto-matically detecting similar android apps[C]//The 24th International Conference on Program Comprehension (ICPC). 2016: 1-10.

[17] ZHOU W, ZHOU Y, GRACE M, et al. Fast, scalable detection of piggybacked mobile applications[C]//The 3rd ACM conference on data and application security and privacy. 2013: 185-196.

[18] Apktool. A tool for reverse engineering android apk files[EB/OL]. https://ibotpeaches.github.io/Apktool/.

[19] ZHANG Z Y, WANG J, CHENG H M. An approach for spatial index of text information based on cosine similarity[J]. Computer Science, 2005.

[20] DESNOS A, GUEGUEN G. Android: from reversing to decompilation[J]. Proc of Black Hat Abu Dhabi, 2011.

Anti-obfuscation Android application similarity detection method based on API call

GU Jieming1,2, SUN Bowen1,2, WU Peng3, LI Qi1,2, GUO Yanhui1,2

1. School of Cyberspace Security,Beijing University of Post and Telecommunications, Beijing 100876, China;2. Beijing Key Laboratory of integration with the world Internet, Beijing 100876, China; 3. School of Computer Science, Sichuan University, Chengdu 610015, China

The traditional Android application similarity detection methods have the problem of complex feature extraction and low detecting efficiency. Regarding the issue above, an anti-obfuscation Android application similarity detection method based on API call was proposed. Firstly, it extracts referenced API sequence from the dex file. Counting the number of referenced API after decompiling the application to build feature vector. Finally, calculate the application similarity through feature vector. The experimental results show that the method has high accuracy.

application similarity, Android, reverse engineering, anti-obfuscation

TP399

A

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

谷杰銘(1993-),男,河北邢臺人,北京郵電大學碩士生,主要研究方向為移動安全、惡意軟件檢測。

孫博文(1994-),男,遼寧沈陽人,北京郵電大學碩士生,主要研究方向為網絡安全、惡意軟件檢測。

吳鵬(1982-),男,四川廣元人,四川大學博士生,主要研究方向為惡意軟件檢測、軟件抄襲、軟件安全加固。

李祺(1981-),女,北京人,博士,北京郵電大學副教授,主要研究方向為網絡安全、機器學習、物聯網安全。

郭燕慧(1974-),女,河北唐山人,博士,北京郵電大學副教授,主要研究方向為網絡安全、機器學習、信息安全管理。

2017-10-17;

2017-12-05

谷杰銘,gujiemin35@163.com

國家自然科學基金資助項目(No.61401038)

The National Natural Science Foundation of China (No.61401038)

猜你喜歡
檢測方法
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“幾何圖形”檢測題
“角”檢測題
學習方法
小波變換在PCB缺陷檢測中的應用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 国产91透明丝袜美腿在线| 国产成人亚洲精品色欲AV| 91色国产在线| 美女无遮挡免费视频网站| 在线观看网站国产| av色爱 天堂网| 久久精品视频亚洲| 操国产美女| 欧美中文一区| 她的性爱视频| 毛片三级在线观看| 四虎国产永久在线观看| 久久午夜夜伦鲁鲁片不卡 | 亚洲国内精品自在自线官| 国产视频大全| 亚洲一区二区三区国产精品 | 91精品国产自产91精品资源| 五月综合色婷婷| 99国产在线视频| 中国国产高清免费AV片| 国产欧美日韩va另类在线播放| 国产丝袜丝视频在线观看| 亚洲综合色婷婷中文字幕| 在线免费亚洲无码视频| 99在线视频网站| 亚洲伦理一区二区| 欧美乱妇高清无乱码免费| 国产成人精品三级| 91在线免费公开视频| 无码国产偷倩在线播放老年人| 全色黄大色大片免费久久老太| 成人午夜在线播放| 欧美色图第一页| 国产一级特黄aa级特黄裸毛片| 不卡无码网| 91视频国产高清| 欧美综合成人| 色婷婷国产精品视频| 91久久青青草原精品国产| 黑人巨大精品欧美一区二区区| 午夜福利网址| 日韩毛片在线视频| 精品人妻无码区在线视频| 美女视频黄频a免费高清不卡| aⅴ免费在线观看| 日本黄色a视频| 日韩不卡高清视频| 女人天堂av免费| 中国成人在线视频| 国产九九精品视频| 久久成人免费| 国产国产人在线成免费视频狼人色| 久久亚洲欧美综合| 国内精品久久九九国产精品| 一本一道波多野结衣av黑人在线| 91精品国产麻豆国产自产在线 | 精品久久久久久中文字幕女 | 99久视频| 男女男精品视频| 91精品国产一区| 国产精品青青| 人妻少妇乱子伦精品无码专区毛片| 日本午夜精品一本在线观看| 国产麻豆另类AV| 亚洲成av人无码综合在线观看| 日韩免费成人| 无码粉嫩虎白一线天在线观看| 天天综合色网| 麻豆国产在线不卡一区二区| 五月婷婷亚洲综合| 国产欧美日韩18| 国产精品福利社| 2022国产91精品久久久久久| 亚洲第一网站男人都懂| 91在线精品免费免费播放| 久久人搡人人玩人妻精品| 亚洲中文字幕在线一区播放| 五月天丁香婷婷综合久久| 久久亚洲国产最新网站| 亚洲天堂日韩av电影| AV在线天堂进入| 亚洲欧美日韩久久精品|