• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    ◆吳 丹 劉嘉勇 賈 鵬 肖順陶

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

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

    ◆吳 丹 劉嘉勇 賈 鵬 肖順陶

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

    由于Android系統(tǒng)的開(kāi)放性和開(kāi)源性,Android應(yīng)用數(shù)量極其豐富,涉及到日常工作和生活的各個(gè)方面。同時(shí)由于各種Android市場(chǎng)對(duì)應(yīng)用審核不嚴(yán)格,投放到市場(chǎng)中的Android應(yīng)用存在著大量的已知類型的安全漏洞,這些漏洞給用戶的隱私和財(cái)產(chǎn)帶來(lái)了極大的威脅。如何快速有效的檢測(cè)出Android應(yīng)用程序中已知類型的漏洞并定位漏洞所在代碼段,成為Android安全領(lǐng)域的一個(gè)熱門(mén)研究?jī)?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ù)庫(kù)、檢測(cè)腳本、Web頁(yè)面三個(gè)部分組成。經(jīng)實(shí)驗(yàn)表明,該系統(tǒng)能夠有效檢測(cè)并定位Android應(yīng)用中存在的已知類型漏洞。

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

    0 前言

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

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

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

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

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

    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ī)制來(lái)確保應(yīng)用更新包是來(lái)自于同一作者,從而建立應(yīng)用程序之間的信任關(guān)系[2]; Android App 的權(quán)限在AndroidManifest.xml文件中定義,在App進(jìn)行安裝時(shí),系統(tǒng)根據(jù)該文件來(lái)決定是否賦予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 存在很多安全性問(wèn)題,本文將安全性問(wèn)題歸納為以下幾類:(1)App權(quán)限通常在Android manifest.xml文件中配置。若配置文件設(shè)置不當(dāng),會(huì)造成權(quán)限申請(qǐng)不足,或者造成權(quán)限申請(qǐng)過(guò)度[3];(2)Android App的敏感數(shù)據(jù)在網(wǎng)絡(luò)中進(jìn)行傳輸時(shí),未使用SSL/TLS加密或防范措施不當(dāng),造成敏感數(shù)據(jù)泄漏、HTTPS中間人劫持、SSL證書(shū)替換等;(3)Android APP中主要通過(guò)共享配置文件(Shared Preferences)、SQLite數(shù)據(jù)庫(kù)、原始文件方式來(lái)存儲(chǔ)數(shù)據(jù),若App數(shù)據(jù)讀寫(xiě)不當(dāng),將會(huì)造成數(shù)據(jù)泄漏;(4)Android 日志信息主要記錄在開(kāi)發(fā)時(shí)生成的調(diào)試信息,可能會(huì)記錄診斷信息、賬號(hào)密碼或其他敏感信息,造成數(shù)據(jù)泄露;(5)Android App組件同時(shí)作為數(shù)據(jù)源和數(shù)據(jù)目的池,經(jīng)常成為潛在的攻擊面,如果沒(méi)有進(jìn)行安全防護(hù),或者被授予權(quán)限的惡意文件訪問(wèn),可能遭到一系列的危害。

    以上的安全性問(wèn)題會(huì)直接導(dǎo)致Android App產(chǎn)生各種安全漏洞。Android App常見(jiàn)的安全漏洞有組件和權(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í)行漏洞,該漏洞源于程序沒(méi)有正確地對(duì)addJavascriptInterface方法的使用進(jìn)行限制,攻擊者可通過(guò)使用Java Reflection API來(lái)利用該漏洞執(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)行分析,通過(guò)構(gòu)建特殊數(shù)據(jù)流來(lái)檢測(cè)App中存在的漏洞,具有覆蓋面廣的優(yōu)點(diǎn); 動(dòng)態(tài)分析是將App運(yùn)行在模擬器或Android操作系統(tǒng)中,使用命令行啟動(dòng)activity或其他組件,根據(jù)App行為是否異?;虮罎?lái)檢測(cè)App中的漏洞。

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

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

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

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

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

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

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

    本文從國(guó)內(nèi)知名漏洞庫(kù)中共選取、歸納、分析Android App漏洞八類,具體為:(1)Android組件暴露漏洞:Content Provider組件暴露;(2)遠(yuǎn)程代碼執(zhí)行漏洞:Web組件遠(yuǎn)程代碼執(zhí)行漏洞、Master Key I型漏洞;(3)遠(yuǎn)程安全繞過(guò)漏洞:Fragment漏洞、電話撥打權(quán)限繞過(guò)漏洞;(4)Android信息泄漏漏洞:Android SQLite Databases漏洞;(5)https中間人劫持漏洞:SSL_WEBVIEW型中間人劫持漏洞;(6)SSL信任所有證書(shū)漏洞;(7)Manifest.xml不安全屬性配置漏洞;(8)下載替換漏洞。提取每種漏洞類型的漏洞特征信息,存入漏洞庫(kù)的漏洞特征信息表中。例如,組件暴露漏洞是因?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)用來(lái)源。

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

    漏洞特征信息表是可擴(kuò)展性的,可通過(guò)Web頁(yè)面提供的借口持續(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)分析模塊分為三部分來(lá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ù)庫(kù)中的漏洞特征信息表中的數(shù)據(jù)作為輸入數(shù)據(jù),通過(guò)字符串搜索引擎進(jìn)行特征匹配,從而完成對(duì)應(yīng)用程序的漏洞檢測(cè),最后將掃描結(jié)果數(shù)據(jù)存儲(chǔ)到Mongo DB數(shù)據(jù)庫(kù)中。其運(yùn)行關(guān)系如圖3所示:

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

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

    2.5 Web頁(yè)面展示模塊

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

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

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

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

    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è)試文件來(lái)源

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

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

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

    本文首先通過(guò)Web頁(yè)面上傳待檢測(cè)APK,上傳后即開(kāi)始自動(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è)試過(guò)程中還發(fā)現(xiàn),不能對(duì)加固、加殼的APK文件完成自動(dòng)化檢測(cè)。

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

    4 結(jié)語(yǔ)

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

    [1]楊剛,溫濤,張玉清.Android漏洞庫(kù)的設(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]董國(guó)偉,王眉林,邵帥,朱龍華.基于特征匹配的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.

    猜你喜歡
    漏洞頁(yè)面數(shù)據(jù)庫(kù)
    大狗熊在睡覺(jué)
    漏洞
    刷新生活的頁(yè)面
    數(shù)據(jù)庫(kù)
    三明:“兩票制”堵住加價(jià)漏洞
    漏洞在哪兒
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    數(shù)據(jù)庫(kù)
    高鐵急救應(yīng)補(bǔ)齊三漏洞
    宁陵县| 长乐市| 织金县| 延安市| 房山区| 容城县| 黑河市| 十堰市| 射洪县| 呈贡县| 平武县| 博白县| 惠来县| 宜章县| 德安县| 通许县| 肥东县| 东宁县| 河源市| 金门县| 四子王旗| 衡南县| 永定县| 容城县| 泰安市| 乌拉特中旗| 高要市| 山东省| 普洱| 盘锦市| 剑河县| 长丰县| 英山县| 清苑县| 广宁县| 聂荣县| 亚东县| 桐庐县| 彭山县| 绥滨县| 永州市|