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

基于特征匹配的Android App漏洞檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2017-02-14 10:05:48劉嘉勇肖順陶
關(guān)鍵詞:頁面數(shù)據(jù)庫特征

◆吳 丹 劉嘉勇 賈 鵬 肖順陶

(四川大學(xué)電子信息學(xué)院 四川 610064)

基于特征匹配的Android App漏洞檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

◆吳 丹 劉嘉勇 賈 鵬 肖順陶

(四川大學(xué)電子信息學(xué)院 四川 610064)

由于Android系統(tǒng)的開放性和開源性,Android應(yīng)用數(shù)量極其豐富,涉及到日常工作和生活的各個(gè)方面。同時(shí)由于各種Android市場對(duì)應(yīng)用審核不嚴(yán)格,投放到市場中的Android應(yīng)用存在著大量的已知類型的安全漏洞,這些漏洞給用戶的隱私和財(cái)產(chǎn)帶來了極大的威脅。如何快速有效的檢測(cè)出Android應(yīng)用程序中已知類型的漏洞并定位漏洞所在代碼段,成為Android安全領(lǐng)域的一個(gè)熱門研究內(nèi)容。本文針對(duì)Android應(yīng)用漏洞檢測(cè)技術(shù)進(jìn)行了研究,對(duì)已知漏洞進(jìn)行歸納、分析,提取漏洞特征信息,提出并實(shí)現(xiàn)了一個(gè)基于特征匹配的Android應(yīng)用漏洞檢測(cè)系統(tǒng)。該系統(tǒng)由數(shù)據(jù)庫、檢測(cè)腳本、Web頁面三個(gè)部分組成。經(jīng)實(shí)驗(yàn)表明,該系統(tǒng)能夠有效檢測(cè)并定位Android應(yīng)用中存在的已知類型漏洞。

Android; 特征匹配; 漏洞檢測(cè)

0 前言

近年來,隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,移動(dòng)智能設(shè)備已成為人們?nèi)粘I畹闹匾蕾?,而Android操作系統(tǒng)的市場占有率處于領(lǐng)先地位。Android操作系統(tǒng)快速發(fā)展的同時(shí),也伴隨著嚴(yán)重的安全問題,在Android系統(tǒng)中已經(jīng)發(fā)現(xiàn)大量安全漏洞,這些安全漏洞主要源于內(nèi)核、系統(tǒng)框架、以及應(yīng)用軟件(Application,App)。由于Android生態(tài)系統(tǒng)的開放性,Android應(yīng)用的數(shù)量呈現(xiàn)井噴式增長,由于開發(fā)人員安全意識(shí)不足,在程序設(shè)計(jì)中存在邏輯缺陷,或者在開發(fā)過程中產(chǎn)生疏漏沒有對(duì)輸入信息做驗(yàn)證,并且Android應(yīng)用市場混亂且缺乏有效的管理機(jī)制,這些應(yīng)用的安全質(zhì)量難以得到保證,安全漏洞的數(shù)量正在逐年上升。

隨著安全漏洞日益凸顯,引發(fā)人們對(duì)Android App安全的高度重視。本文主要研究了Android 應(yīng)用漏洞檢測(cè)技術(shù),主要工作如下:

(1)建立Android App的漏洞特征庫,該漏洞庫主要是給檢測(cè)腳本提供漏洞特征。

(2)編寫檢測(cè)腳本,對(duì)反編譯Android安裝包(Android Package,APK)得到的源碼、資源文件,以漏洞特征庫中的數(shù)據(jù)為參數(shù),通過特征匹配及判定規(guī)則判斷該App是否存在漏洞。

(3)搭建web頁面,以B/S(瀏覽器/客戶端)的形式,將APK文件上傳、檢測(cè)和展示。通過web界面,可以向漏洞特征庫添加新的漏洞特征。

1 相關(guān)知識(shí)

1.1 Android 安全機(jī)制

Android 是以 Linux 為內(nèi)核實(shí)現(xiàn)的,保留了Linux 中的一些安全機(jī)制[1],并根據(jù)Android系統(tǒng)的特點(diǎn),設(shè)置了一系列安全機(jī)制,其中與Android App相關(guān)的安全機(jī)制有APK簽名、權(quán)限限制、應(yīng)用程序沙箱等機(jī)制。APK簽名機(jī)制基于JAR簽名,Android使用該機(jī)制來確保應(yīng)用更新包是來自于同一作者,從而建立應(yīng)用程序之間的信任關(guān)系[2]; Android App 的權(quán)限在AndroidManifest.xml文件中定義,在App進(jìn)行安裝時(shí),系統(tǒng)根據(jù)該文件來決定是否賦予App某些權(quán)限; 在安裝App時(shí),系統(tǒng)給App賦予一個(gè)唯一的用戶標(biāo)識(shí)(UID),App啟動(dòng)后就在特定進(jìn)程內(nèi)以該UID運(yùn)行,并擁有一個(gè)只屬于該App的專用目錄。Android系統(tǒng)的簽名、權(quán)限、沙箱機(jī)制為Android應(yīng)用程序的發(fā)布、安裝與運(yùn)行提供了安全保障。

1.2 Android App 安全性分析

目前Android App 存在很多安全性問題,本文將安全性問題歸納為以下幾類:(1)App權(quán)限通常在Android manifest.xml文件中配置。若配置文件設(shè)置不當(dāng),會(huì)造成權(quán)限申請(qǐng)不足,或者造成權(quán)限申請(qǐng)過度[3];(2)Android App的敏感數(shù)據(jù)在網(wǎng)絡(luò)中進(jìn)行傳輸時(shí),未使用SSL/TLS加密或防范措施不當(dāng),造成敏感數(shù)據(jù)泄漏、HTTPS中間人劫持、SSL證書替換等;(3)Android APP中主要通過共享配置文件(Shared Preferences)、SQLite數(shù)據(jù)庫、原始文件方式來存儲(chǔ)數(shù)據(jù),若App數(shù)據(jù)讀寫不當(dāng),將會(huì)造成數(shù)據(jù)泄漏;(4)Android 日志信息主要記錄在開發(fā)時(shí)生成的調(diào)試信息,可能會(huì)記錄診斷信息、賬號(hào)密碼或其他敏感信息,造成數(shù)據(jù)泄露;(5)Android App組件同時(shí)作為數(shù)據(jù)源和數(shù)據(jù)目的池,經(jīng)常成為潛在的攻擊面,如果沒有進(jìn)行安全防護(hù),或者被授予權(quán)限的惡意文件訪問,可能遭到一系列的危害。

以上的安全性問題會(huì)直接導(dǎo)致Android App產(chǎn)生各種安全漏洞。Android App常見的安全漏洞有組件和權(quán)限內(nèi)暴露漏洞、WebView組件遠(yuǎn)程代碼執(zhí)行漏洞、弱隨機(jī)數(shù)漏洞、Intent注入漏洞、SQL注入漏洞、敏感數(shù)據(jù)泄露漏洞、運(yùn)行代碼加載漏洞[4],這些漏洞若被攻擊者利用將會(huì)造成嚴(yán)重影響。

一個(gè)典型的API使用不當(dāng)?shù)睦邮荳ebView遠(yuǎn)程代碼執(zhí)行漏洞,該漏洞源于程序沒有正確地對(duì)addJavascriptInterface方法的使用進(jìn)行限制,攻擊者可通過使用Java Reflection API來利用該漏洞執(zhí)行任意Java對(duì)象的方法。該漏洞可導(dǎo)致合法用戶被安裝惡意扣費(fèi)軟件、發(fā)送欺詐短信、竊取通訊錄和短信以及被遠(yuǎn)程控制等嚴(yán)重后果[5]。

1.3 Android App 漏洞檢測(cè)方法

目前常用于Android App漏洞檢測(cè)的方法有靜態(tài)分析和動(dòng)態(tài)分析。靜態(tài)分析是在不運(yùn)行App的情況下對(duì)反編譯APK后得到的代碼進(jìn)行分析,通過構(gòu)建特殊數(shù)據(jù)流來檢測(cè)App中存在的漏洞,具有覆蓋面廣的優(yōu)點(diǎn); 動(dòng)態(tài)分析是將App運(yùn)行在模擬器或Android操作系統(tǒng)中,使用命令行啟動(dòng)activity或其他組件,根據(jù)App行為是否異?;虮罎頇z測(cè)App中的漏洞。

本文所設(shè)計(jì)的檢測(cè)系統(tǒng)使用靜態(tài)分析方法來檢測(cè)Android App 中的漏洞,主要采用特征匹配的方法,根據(jù)已知漏洞的特征定位到關(guān)鍵API,并通過分析上下文環(huán)境來判斷Android App 中是否存在漏洞。

2 系統(tǒng)設(shè)計(jì)

本文設(shè)計(jì)了一個(gè)基于特征匹配的Android App漏洞檢測(cè)系統(tǒng),其大致思路為上傳APK文件,利用檢測(cè)腳本反編譯APK生成Smali文件,然后從數(shù)據(jù)庫讀取漏洞信息特征并根據(jù)判定規(guī)則進(jìn)行特征匹配。本章將詳細(xì)介紹該系統(tǒng)的整體架構(gòu)和功能模塊設(shè)計(jì)。

2.1 系統(tǒng)總體設(shè)計(jì)

本文將Android漏洞檢測(cè)系統(tǒng)分為漏洞信息數(shù)據(jù)庫、檢測(cè)腳本模塊、web頁面展示模塊等三個(gè)部分,而檢測(cè)腳本模塊又由靜態(tài)分析模塊、漏洞掃描模塊兩個(gè)部分。系統(tǒng)框架圖如圖1所示:

圖1 系統(tǒng)框架圖

2.2 漏洞數(shù)據(jù)庫

本文從國內(nèi)知名漏洞庫中共選取、歸納、分析Android App漏洞八類,具體為:(1)Android組件暴露漏洞:Content Provider組件暴露;(2)遠(yuǎn)程代碼執(zhí)行漏洞:Web組件遠(yuǎn)程代碼執(zhí)行漏洞、Master Key I型漏洞;(3)遠(yuǎn)程安全繞過漏洞:Fragment漏洞、電話撥打權(quán)限繞過漏洞;(4)Android信息泄漏漏洞:Android SQLite Databases漏洞;(5)https中間人劫持漏洞:SSL_WEBVIEW型中間人劫持漏洞;(6)SSL信任所有證書漏洞;(7)Manifest.xml不安全屬性配置漏洞;(8)下載替換漏洞。提取每種漏洞類型的漏洞特征信息,存入漏洞庫的漏洞特征信息表中。例如,組件暴露漏洞是因?yàn)榻M件在被調(diào)用時(shí)未做驗(yàn)證,或在調(diào)用其他組件時(shí)未做驗(yàn)證,其特征為Android Manifest文件中android:exported的值設(shè)置為true,未使用android:protectionLevel值為signature驗(yàn)證調(diào)用來源。

漏洞信息數(shù)據(jù)庫包括掃描結(jié)果存儲(chǔ)表、漏洞特征信息表,分別用于存儲(chǔ)漏洞掃描相關(guān)結(jié)果以及漏洞特征信息。漏洞特征信息表為漏洞掃描模塊提供了必要的特征信息; 掃描結(jié)果存儲(chǔ)表主要存儲(chǔ)漏洞掃描模塊生成的數(shù)據(jù),用于結(jié)果的展示和文檔生成。

漏洞特征信息表是可擴(kuò)展性的,可通過Web頁面提供的借口持續(xù)性向該表中添加新的漏洞特征信息。漏洞特征信息表的字段結(jié)構(gòu)如表1所示:

表1 漏洞特征信息表字段結(jié)構(gòu)

2.3 靜態(tài)分析模塊

靜態(tài)分析模塊主要完成對(duì)APK的靜態(tài)分析工作,為后續(xù)的漏洞掃描提供數(shù)據(jù)。其分析目標(biāo)主要有APK文件列表、Manifest配置文件、資源文件、權(quán)限、四大組件(Service、Activity、Broadcast和Content Provider)、敏感API調(diào)用。靜態(tài)分析模塊分為三部分來實(shí)現(xiàn):APK文件分析模塊、DEX文件反編譯模塊、Smali文件分析模塊,其模塊執(zhí)行流程如圖2所示。

圖2 靜態(tài)分析模塊執(zhí)行流程圖

APK文件分析模塊主要對(duì)APK進(jìn)行解包操作并返回文件類型及APK的基本信息、解析Manifest配置文件以及獲取APK中的所有文件; DEX反編譯模塊即利用工具將DEX文件轉(zhuǎn)換為Jar文件、Smali文件,并獲取其中所有類列表及方法; Smali文件分析模塊用于實(shí)現(xiàn)對(duì)DEX反編譯后的Smali文件的處理分析工作等。

2.4 漏洞掃描模塊

漏洞掃描模塊利用靜態(tài)分析模塊中的分析結(jié)果、Mongo DB數(shù)據(jù)庫中的漏洞特征信息表中的數(shù)據(jù)作為輸入數(shù)據(jù),通過字符串搜索引擎進(jìn)行特征匹配,從而完成對(duì)應(yīng)用程序的漏洞檢測(cè),最后將掃描結(jié)果數(shù)據(jù)存儲(chǔ)到Mongo DB數(shù)據(jù)庫中。其運(yùn)行關(guān)系如圖3所示:

圖3 漏洞掃描模塊運(yùn)行關(guān)系圖

漏洞掃描模塊主要分為兩部分:漏洞檢測(cè)模塊、轉(zhuǎn)存掃描結(jié)果模塊。漏洞檢測(cè)模塊通過讀取Mongo DB數(shù)據(jù)庫中存儲(chǔ)的漏洞特征信息,用于實(shí)現(xiàn)漏洞信息列表中所有漏洞的掃描工作; 轉(zhuǎn)存掃描結(jié)果模塊主要用于將漏洞檢測(cè)模塊的檢測(cè)結(jié)果轉(zhuǎn)存到漏洞信息數(shù)據(jù)庫中,用于漏漏洞掃描結(jié)果的展示與查詢。

2.5 Web頁面展示模塊

圖4 APK文件上傳模塊執(zhí)行流程圖

用戶界面模塊目的是為實(shí)現(xiàn)APK自動(dòng)化掃描提供操作接口,其主要頁面有文件上傳、掃描統(tǒng)計(jì)、用戶管理、漏洞特征管理等。

上傳掃描頁面提供APK文件上傳接口、APK文件檢測(cè)入口、掃描結(jié)果展示及掃描報(bào)告下載等功能,其執(zhí)行流程如圖4所示。

掃描統(tǒng)計(jì)頁面將掃描過的APK信息、文檔以列表形式展示,提供查看詳情、刪除、下載功能; 用戶管理頁面,可以實(shí)現(xiàn)添加用戶、刪除用戶、修改用戶等功能,并將修改后的用戶信息寫入Mongo DB數(shù)據(jù)庫; 漏洞特征頁面的主要功能有:展示已有的漏洞特征信息、添加新的漏洞特征信息、刪除漏洞特征信息。

3 實(shí)驗(yàn)結(jié)果

3.1 系統(tǒng)測(cè)試運(yùn)行環(huán)境

基于以上設(shè)計(jì),本文實(shí)現(xiàn)了Android App漏洞檢測(cè)系統(tǒng)。為了驗(yàn)證該系統(tǒng)的有效性,本文搭建系統(tǒng)運(yùn)行環(huán)境并上傳APK文件進(jìn)行測(cè)試,系統(tǒng)運(yùn)行環(huán)境如表2所示:

表2 漏洞信息特征表字段結(jié)構(gòu)

3.2 測(cè)試文件來源

實(shí)驗(yàn)的測(cè)試文件均是從Android應(yīng)用市場下載的流行應(yīng)用,Android應(yīng)用類型包括美食、購物、娛樂、社交、通訊、體育、天氣、娛樂、商務(wù)辦公、出行導(dǎo)航、視頻播放等,APK文件一共達(dá)到100個(gè)。

3.3 測(cè)試結(jié)果展示

圖5 APK文件初步掃描結(jié)果統(tǒng)計(jì)

本文首先通過Web頁面上傳待檢測(cè)APK,上傳后即開始自動(dòng)檢測(cè)并對(duì)漏洞進(jìn)行分類處理,檢測(cè)完成后自動(dòng)展示檢測(cè)的統(tǒng)計(jì)結(jié)果。如圖5所示。

圖6 APK文件漏洞類型統(tǒng)計(jì)

查看該APK文件檢測(cè)結(jié)果詳情,詳情中分別統(tǒng)計(jì)漏洞類型數(shù),高、中、低等級(jí)的漏洞數(shù)據(jù),以及一個(gè)漏洞在源碼中出現(xiàn)的次數(shù)。漏洞類型統(tǒng)計(jì)結(jié)果如圖6所示。

可以查看漏洞詳情、展示修復(fù)建議等,并展示該漏洞的出處,其具體詳情如圖7所示。最后在掃描結(jié)果的基礎(chǔ)上對(duì)APK文件進(jìn)行人工分析,確認(rèn)了APK確實(shí)存在檢測(cè)系統(tǒng)所檢測(cè)出的漏洞,從而證明了該系統(tǒng)能夠有效、快速地檢測(cè)出Android App中的已知漏洞。在測(cè)試過程中還發(fā)現(xiàn),不能對(duì)加固、加殼的APK文件完成自動(dòng)化檢測(cè)。

圖7 APK漏洞檢測(cè)詳情

4 結(jié)語

針對(duì)目前Android App的安全問題,歸納Android App已知漏洞特征信息,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)Android App漏洞檢測(cè)系統(tǒng)。系統(tǒng)由Mongo DB數(shù)據(jù)庫、檢測(cè)腳本、Web三個(gè)層面構(gòu)成,Mongo DB數(shù)據(jù)庫存儲(chǔ)漏洞信息特征、漏洞掃描結(jié)果,檢測(cè)腳本完成對(duì)APK文件信息提取、DEX文件反編譯、關(guān)鍵字匹配等操作,Web頁面為系統(tǒng)提供可視化操作接口,簡化流程,為實(shí)現(xiàn)Android App漏洞自動(dòng)化掃描提供了有利條件。該系統(tǒng)的實(shí)現(xiàn),節(jié)省了Android App漏洞掃描的時(shí)間和成本。系統(tǒng)存在的不足是目前針對(duì)已加固、加殼的APK文件無法完成自動(dòng)化檢測(cè),需要先將其手動(dòng)脫殼才能進(jìn)行漏洞掃描。并且該系統(tǒng)的檢測(cè)結(jié)果依賴特征庫中的特征,在一定程度上會(huì)產(chǎn)生誤報(bào)和漏報(bào)。系統(tǒng)仍需繼續(xù)豐富漏洞特征信息數(shù)據(jù)庫,并且綜合利用靜態(tài)分析、動(dòng)態(tài)分析技術(shù)來降低誤報(bào)率和漏洞率,以實(shí)現(xiàn)Android App漏洞的全自動(dòng)化檢測(cè)。

[1]楊剛,溫濤,張玉清.Android漏洞庫的設(shè)計(jì)與實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2015.

[2](美)Nikolay Elenkov著.Android安全架構(gòu)深究[M].劉惠明譯.北京:電子工業(yè)出版社,2016.

[3](美)Joshua J.Drake,(美)Collin Mulliner,(西)Pau Oliva Fora,(美)Stephen A.Ridley,(美)Zach Lanier,(德)Georg Wincherski 著.諸葛建偉,楊坤,肖梓航 譯.Android安全攻防權(quán)威指南[M].

[4]董國偉,王眉林,邵帥,朱龍華.基于特征匹配的Android 應(yīng)用漏洞分析框架[J].清華大學(xué)學(xué)報(bào)自然科學(xué)報(bào),2016.

[5]推酷.WebView遠(yuǎn)程代碼執(zhí)行漏洞淺析[OL].http://www.tuicool.com/articles/jeYVFrN,2015.

[6]卿斯?jié)h.Android安全研究進(jìn)展[J].軟件學(xué)報(bào),2016.

猜你喜歡
頁面數(shù)據(jù)庫特征
大狗熊在睡覺
刷新生活的頁面
如何表達(dá)“特征”
不忠誠的四個(gè)特征
抓住特征巧觀察
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
數(shù)據(jù)庫
線性代數(shù)的應(yīng)用特征
河南科技(2014年23期)2014-02-27 14:19:15
主站蜘蛛池模板: 91福利在线观看视频| 香蕉色综合| 欧美一级高清片久久99| 欧美区在线播放| 免费无码AV片在线观看国产| 高清久久精品亚洲日韩Av| 免费国产高清精品一区在线| 老司机久久精品视频| 日韩精品亚洲人旧成在线| V一区无码内射国产| 99尹人香蕉国产免费天天拍| 国产成本人片免费a∨短片| 亚洲a级在线观看| 日韩精品毛片| 久久久久国色AV免费观看性色| 欧美亚洲中文精品三区| 欧美一区日韩一区中文字幕页| 亚洲综合18p| 国产在线精彩视频二区| 亚洲成年人片| 日本国产在线| 色综合狠狠操| 婷婷伊人五月| 亚洲首页国产精品丝袜| 亚洲免费福利视频| 国产亚洲欧美在线中文bt天堂 | 国产精品成人啪精品视频| 国产精品视屏| 91精品国产91久无码网站| 久久精品丝袜| 亚洲免费人成影院| 久久这里只精品国产99热8| 老汉色老汉首页a亚洲| 久久先锋资源| 中文国产成人精品久久一| 国产超碰一区二区三区| 国产香蕉在线视频| 国产特级毛片aaaaaaa高清| 乱人伦视频中文字幕在线| 久久这里只有精品23| 最新国产午夜精品视频成人| 亚洲人妖在线| 国产乱子伦精品视频| 毛片一区二区在线看| 亚洲人成日本在线观看| 国产幂在线无码精品| 伊人久久久大香线蕉综合直播| 国产成人精品亚洲日本对白优播| 青青操国产视频| 亚洲 日韩 激情 无码 中出| 国产黄在线观看| 国产欧美日韩精品综合在线| 欧美日韩在线成人| 这里只有精品免费视频| 欧美A级V片在线观看| 香蕉视频在线精品| 国产精品爆乳99久久| 久久婷婷综合色一区二区| 欧美亚洲国产精品第一页| 无码中文AⅤ在线观看| 黄色免费在线网址| 天天色天天综合| 国内精品一区二区在线观看| 免费无码网站| 东京热一区二区三区无码视频| 色婷婷狠狠干| 国产欧美视频在线| 国产成人一区二区| 国产欧美日本在线观看| 亚洲无码高清一区| 国内精品小视频福利网址| 国产美女丝袜高潮| 久久久久人妻一区精品色奶水 | 四虎影视永久在线精品| 亚洲黄色激情网站| 国产精品尤物在线| 色天天综合| 日韩精品中文字幕一区三区| 久草视频中文| 亚洲人成在线免费观看| 国产无遮挡猛进猛出免费软件| 国模私拍一区二区|