国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法及系統(tǒng)與流程

      文檔序號(hào):11387080閱讀:476來(lái)源:國(guó)知局
      一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法及系統(tǒng)與流程

      本發(fā)明屬于移動(dòng)安全和界面自動(dòng)化測(cè)試技術(shù)領(lǐng)域,更具體地,涉及一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法及系統(tǒng)。



      背景技術(shù):

      安卓移動(dòng)設(shè)備承載著用戶越來(lái)越多的隱私數(shù)據(jù),不安全的網(wǎng)絡(luò)通信將導(dǎo)致用戶隱私泄漏。據(jù)統(tǒng)計(jì),安卓應(yīng)用網(wǎng)絡(luò)通信過(guò)程中約67%采用http協(xié)議,約20%采用https協(xié)議。由于http協(xié)議的明文傳輸,一旦http網(wǎng)絡(luò)請(qǐng)求中包含用戶的隱私數(shù)據(jù)(如通訊錄、短信、日歷和照片等),將存在隱私泄漏。同時(shí),ssl協(xié)議的錯(cuò)誤使用也將導(dǎo)致用戶面臨中間人攻擊、隱私泄漏的風(fēng)險(xiǎn)。

      目前針對(duì)安卓應(yīng)用中隱私泄露問(wèn)題,主要采用以下方式:(1)對(duì)安卓系統(tǒng)dalvik虛擬機(jī)、binder驅(qū)動(dòng)和文件系統(tǒng)進(jìn)行修改,以跟蹤污點(diǎn)數(shù)據(jù)是否在網(wǎng)絡(luò)傳輸、文件寫(xiě)入等泄漏點(diǎn)處傳播。然而該系統(tǒng)需要修改安卓底層系統(tǒng),且只能解決安卓原生應(yīng)用中的網(wǎng)絡(luò)傳輸?shù)碾[私泄露問(wèn)題,具有一定的局限性。(2)在第一種方式的基礎(chǔ)上集成模擬器偽裝、事件觸發(fā)、fuzzing測(cè)試、智能輸入和智能搜索等功能實(shí)現(xiàn)大規(guī)模的、自動(dòng)化的檢測(cè)安卓應(yīng)用內(nèi)的隱私泄露行為。然而,該方式中主要以monkey發(fā)送偽隨機(jī)事件為主,由于偽隨機(jī)事件的不確定性,存在效率低、覆蓋率低等缺點(diǎn)。

      目前針對(duì)安卓應(yīng)用中網(wǎng)絡(luò)通信安全性問(wèn)題,rfcs2818、2246和3280文檔明確規(guī)定安卓ssl協(xié)議中證書(shū)鏈合法當(dāng)且僅當(dāng)滿足如下三個(gè)條件:(1)證書(shū)鏈中的每個(gè)證書(shū)未過(guò)期;(2)根證書(shū)必須來(lái)自于可信的證書(shū)機(jī)構(gòu),且存在于客戶端可信證書(shū)機(jī)構(gòu)的列表中;(3)當(dāng)證書(shū)鏈中存在多個(gè)證書(shū)時(shí),需要驗(yàn)證每個(gè)證書(shū)的合法性。其規(guī)定主機(jī)名合法當(dāng)且僅當(dāng):客戶端連接的服務(wù)器的完全限定的dns名稱能夠匹配證書(shū)中構(gòu)建的服務(wù)器標(biāo)識(shí)符列表。目前為檢測(cè)安卓應(yīng)用程序中錯(cuò)誤使用ssl的情況主要有以下方式:通過(guò)擴(kuò)展androguard靜態(tài)分析框架,提取安卓應(yīng)用反編譯后的代碼中的urls鏈接(http和https)驗(yàn)證其域名證書(shū)的有效性從而判斷應(yīng)用是否存在ssl誤用漏洞。然而,該方式基于靜態(tài)提取urls鏈接,不能有效獲取動(dòng)態(tài)urls鏈接,同時(shí)需要安全專家運(yùn)行應(yīng)用手工確認(rèn)從而避免誤報(bào)。針對(duì)上述方式的高誤報(bào)、人工驗(yàn)證的缺陷,出現(xiàn)了一種改進(jìn)方式:結(jié)合動(dòng)靜態(tài)分析技術(shù)檢測(cè)安卓應(yīng)用能否抵抗中間人攻擊來(lái)確認(rèn)ssl調(diào)用的正確性。靜態(tài)分析過(guò)程中,通過(guò)控制流、數(shù)據(jù)流分析技術(shù)構(gòu)建可能存在ssl誤用漏洞的目標(biāo)組件集合與布局文件中所有的輸入文本值類型集合;動(dòng)態(tài)運(yùn)行過(guò)程中,通過(guò)adb命令安裝、啟動(dòng)應(yīng)用后,循環(huán)發(fā)送“adbshellamstart-npackagename/targetactivity”命令跳轉(zhuǎn)到指定的目標(biāo)activity組件并窮盡遍歷該activity組件的ui控件,同時(shí)開(kāi)啟mimt代理(burpsuiteproxy)監(jiān)控所有https流量并且嘗試去發(fā)起一個(gè)mimt攻擊,記錄攻擊結(jié)果。該系統(tǒng)側(cè)重分析安卓應(yīng)用ssl安全性,由于直接跳轉(zhuǎn)到指定activity組件,缺乏一定的上下文信息導(dǎo)致一部分的activity組件跳轉(zhuǎn)失敗。

      綜上所述,目前關(guān)于安卓應(yīng)用網(wǎng)絡(luò)通信過(guò)程中隱私泄漏的檢測(cè)分別從http和https展開(kāi),已有的解決方案均能在一定程度上檢測(cè)。但從實(shí)施的角度來(lái)看,已有的解決方案依賴于修改安卓系統(tǒng)或安卓應(yīng)用程序結(jié)構(gòu);動(dòng)態(tài)分析依賴于靜態(tài)反編譯技術(shù)指導(dǎo);不能有效檢測(cè)加固應(yīng)用。因此,從實(shí)施性和通用性角度來(lái)看,已有的解決方案有待改進(jìn)。



      技術(shù)實(shí)現(xiàn)要素:

      針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明的目的在于提供了一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法及系統(tǒng),由此解決現(xiàn)有技術(shù)中的隱私泄漏檢測(cè)在實(shí)施性和通用性方面存在的局限性。

      為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法,包括:

      s1、爬取待測(cè)安卓應(yīng)用,構(gòu)建待測(cè)應(yīng)用集合;

      s2、構(gòu)建中間人攻擊服務(wù)器,并初始化各測(cè)試機(jī)環(huán)境,配置多測(cè)試機(jī)分布式運(yùn)行調(diào)度系統(tǒng);

      s3、分析所述待測(cè)應(yīng)用集合中的apk文件,獲取與所述apk文件對(duì)應(yīng)的應(yīng)用程序的包名和主activity信息;

      s4、根據(jù)所述包名和主activity信息,安裝與所述apk文件對(duì)應(yīng)的應(yīng)用程序,并基于ui自動(dòng)化遍歷框架驅(qū)動(dòng)所述應(yīng)用程序運(yùn)行;

      s5、分析burpsuite生成的日志文件,獲取存在ssl中間人攻擊的應(yīng)用集合;

      s6、對(duì)收集的當(dāng)前應(yīng)用程序運(yùn)行過(guò)程中產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包文件進(jìn)行分析,結(jié)合所述存在ssl中間人攻擊的應(yīng)用集合識(shí)別所述網(wǎng)絡(luò)數(shù)據(jù)包文件中的隱私泄漏類型。

      優(yōu)選地,步驟s1具體包括以下子步驟:

      s1.1、選取m個(gè)目標(biāo)應(yīng)用市場(chǎng),分析各目標(biāo)應(yīng)用市場(chǎng)按照類別劃分的列表頁(yè)url特征、詳細(xì)應(yīng)用頁(yè)面url特征、應(yīng)用下載url特征,其中,m為正整數(shù);

      s1.2、分析所述列表頁(yè)url特征、所述詳細(xì)應(yīng)用頁(yè)面url特征以及所述應(yīng)用下載url特征,基于id或包名探測(cè)方式構(gòu)建http請(qǐng)求,下載各目標(biāo)應(yīng)用市場(chǎng)中各類別的n個(gè)待測(cè)安卓應(yīng)用,其中,n為正整數(shù);

      s1.3、將所述n個(gè)待測(cè)安卓應(yīng)用的apk文件采用fastdfs文件框架分布式存儲(chǔ)到不同的服務(wù)器上,并將安卓應(yīng)用相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。

      優(yōu)選地,步驟s3具體包括以下子步驟:

      s3.1、基于androidsdk自帶的aapt工具分析各待測(cè)安卓應(yīng)用;

      s3.2、提取待測(cè)安卓應(yīng)用的權(quán)限集合,判斷是否存在聯(lián)網(wǎng)權(quán)限;

      s3.3、若存在聯(lián)網(wǎng)權(quán)限,則提取待測(cè)安卓應(yīng)用的包名與主activity名。

      優(yōu)選地,步驟s4具體包括以下子步驟:

      s4.1、基于accessibilityservice提供的接口獲取當(dāng)前待測(cè)安卓應(yīng)用運(yùn)行過(guò)程中的gui界面信息,并根據(jù)預(yù)先制定的gui界面分類規(guī)則識(shí)別與所述gui界面信息對(duì)應(yīng)的gui界面類型;

      s4.2、采用與所述gui界面類型對(duì)應(yīng)的控件集處理方式,并將最終處理后的可操作控件事件投入任務(wù)列表;

      s4.3、采用啟發(fā)式深度優(yōu)先遍歷算法,對(duì)所述任務(wù)列表中的控件事件進(jìn)行用戶動(dòng)作模擬,并判斷當(dāng)前gui界面狀態(tài)是否發(fā)生變化,若發(fā)生變化,則跳轉(zhuǎn)執(zhí)行步驟s4.1;若沒(méi)有變化,則判斷所述任務(wù)列表是否為空,若為空,表示當(dāng)前gui界面處理完畢,返回到上一層界面繼續(xù)任務(wù)列表中的控件事件,若不為空,繼續(xù)執(zhí)行所述任務(wù)列表中的控件事件。

      優(yōu)選地,步驟s5具體包括以下子步驟:

      s5.1、實(shí)時(shí)監(jiān)控ssllistener插件生成的日志信息,提取burpsuite監(jiān)聽(tīng)端口、https請(qǐng)求成功的網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間戳與主機(jī)域名信息;

      s5.2、根據(jù)所述監(jiān)聽(tīng)端口、所述時(shí)間戳和所述主機(jī)域名信息,采用模糊正則匹配的方式獲取目標(biāo)待測(cè)安卓應(yīng)用包名,作為存在ssl中間人攻擊的應(yīng)用集合,其中,所述目標(biāo)待測(cè)安卓應(yīng)用包名對(duì)應(yīng)的應(yīng)用存在中間人攻擊風(fēng)險(xiǎn)。

      優(yōu)選地,步驟s6具體包括以下子步驟:

      s6.1、采用jnetpcap.jar包對(duì)生成的網(wǎng)絡(luò)數(shù)據(jù)包文件進(jìn)行解析,構(gòu)建http請(qǐng)求數(shù)據(jù)包,以josn的數(shù)據(jù)格式保存;

      s6.2、采用詞袋模型對(duì)json格式的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行預(yù)處理;

      s6.3、采用tf-idf方法進(jìn)行特征提取,過(guò)濾掉停用詞和低頻詞;

      s6.4、根據(jù)選擇的特征、特征出現(xiàn)的詞頻以及隱私泄漏標(biāo)簽,生成arff文件,并由訓(xùn)練好的分類器對(duì)各待測(cè)安卓應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行預(yù)測(cè)是否存在隱私泄漏;

      s6.5、針對(duì)存在隱私泄漏的待測(cè)安卓應(yīng)用,采用基于模糊正則匹配的方式判斷隱私泄漏類型。

      優(yōu)選地,所述預(yù)先制定的gui界面分類規(guī)則包括:歡迎界面、列表界面、彈出框界面、輸入界面、詳細(xì)界面和其他界面。

      按照本發(fā)明的另一方面,提供了一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)系統(tǒng),包括:

      爬取模塊,用于爬取待測(cè)安卓應(yīng)用,構(gòu)建待測(cè)應(yīng)用集合;

      初始化模塊,用于構(gòu)建中間人攻擊服務(wù)器,并初始化各測(cè)試機(jī)環(huán)境,配置多測(cè)試機(jī)分布式運(yùn)行調(diào)度系統(tǒng);

      第一分析模塊,用于分析所述待測(cè)應(yīng)用集合中的apk文件,獲取與所述apk文件對(duì)應(yīng)的應(yīng)用程序的包名和主activity信息;

      應(yīng)用程序安裝模塊,用于根據(jù)所述包名和主activity信息,安裝與所述apk文件對(duì)應(yīng)的應(yīng)用程序,并基于ui自動(dòng)化遍歷框架驅(qū)動(dòng)所述應(yīng)用程序運(yùn)行;

      第二分析模塊,用于分析burpsuite生成的日志文件,獲取存在ssl中間人攻擊的應(yīng)用集合;

      判斷模塊,用于對(duì)收集的當(dāng)前應(yīng)用程序運(yùn)行過(guò)程中產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包文件進(jìn)行分析,結(jié)合所述存在ssl中間人攻擊的應(yīng)用集合識(shí)別所述網(wǎng)絡(luò)數(shù)據(jù)包文件中的隱私泄漏類型。

      總體而言,本發(fā)明方法與現(xiàn)有技術(shù)方案相比,能夠取得下列有益效果:

      1、本發(fā)明從不安全的https和http明文傳輸兩方面分析,能夠更全面、更準(zhǔn)確的檢測(cè)安卓應(yīng)用在網(wǎng)絡(luò)通信過(guò)程中隱私泄露行為,使用方法靈活,全程自動(dòng)化,不需要修改安卓系統(tǒng)和安卓應(yīng)用程序結(jié)構(gòu),同時(shí)不依賴于靜態(tài)分析指導(dǎo)應(yīng)用程序動(dòng)態(tài)運(yùn)行,對(duì)應(yīng)用市場(chǎng)批量檢測(cè)新上架應(yīng)用具有一定的意義。

      2、本發(fā)明旨在動(dòng)態(tài)驅(qū)動(dòng)安卓應(yīng)用運(yùn)行,實(shí)時(shí)進(jìn)行攻擊測(cè)試來(lái)判斷是否存在ssl誤用漏洞,同時(shí)收集網(wǎng)絡(luò)數(shù)據(jù)包并采用機(jī)器學(xué)習(xí)算法進(jìn)行隱私數(shù)據(jù)泄露判斷。

      3、首次提出基于安卓應(yīng)用gui界面的類型進(jìn)行控件集處理策略,并提出啟發(fā)式深度遍歷算法,描述了gui界面狀態(tài)、gui界面轉(zhuǎn)化以及gui節(jié)點(diǎn)樹(shù)的擴(kuò)充過(guò)程,保證動(dòng)態(tài)運(yùn)行能夠觸發(fā)盡可能多的網(wǎng)絡(luò)交互事件。

      4、不需要修改安卓系統(tǒng)或安卓應(yīng)用程序結(jié)構(gòu),自動(dòng)化、大規(guī)模動(dòng)態(tài)檢測(cè)安卓應(yīng)用網(wǎng)絡(luò)通信中的隱私泄漏問(wèn)題,可作為應(yīng)用市場(chǎng)對(duì)新上架應(yīng)用的安全審計(jì)操作。

      5、本發(fā)明全面考慮到https和http的安全問(wèn)題,并對(duì)生成的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行分類。具有較高的準(zhǔn)確率和效率。

      附圖說(shuō)明

      圖1為本發(fā)明實(shí)施例公開(kāi)的一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)的整體架構(gòu)圖;

      圖2為本發(fā)明實(shí)施例公開(kāi)的一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法的流程示意圖;

      圖3為本發(fā)明實(shí)施例公開(kāi)的一種爬取待測(cè)安卓應(yīng)用的方法流程示意圖;

      圖4為本發(fā)明實(shí)施例公開(kāi)的一種ui自動(dòng)化遍歷方法的流程示意圖;

      圖5為本發(fā)明實(shí)施例公開(kāi)的一種界面類型劃分示意圖;

      圖6為本發(fā)明實(shí)施例公開(kāi)的一種ui自動(dòng)化遍歷方法的具體實(shí)現(xiàn)代碼示例圖;

      圖7為本發(fā)明實(shí)施例公開(kāi)的一種對(duì)網(wǎng)絡(luò)數(shù)據(jù)包文件分析的方法流程示意圖。

      具體實(shí)施方式

      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

      以下首先就本發(fā)明所涉及的技術(shù)術(shù)語(yǔ)進(jìn)行解釋和說(shuō)明:

      安卓:由google主導(dǎo)開(kāi)發(fā)的基于linux內(nèi)核的移動(dòng)操作系統(tǒng),以其開(kāi)放的特性在移動(dòng)操作系統(tǒng)市場(chǎng)上擁有較高的占有率。

      安卓應(yīng)用程序:運(yùn)行在安卓系統(tǒng)中的應(yīng)用程序,主要由java語(yǔ)言開(kāi)發(fā)。

      隱私:用戶存儲(chǔ)在系統(tǒng)中的個(gè)人數(shù)據(jù),在移動(dòng)設(shè)備中主要包括聯(lián)系人信息、通話記錄、地理位置信息和設(shè)備相關(guān)信息等。

      activity:安卓應(yīng)用程序四大組件之一,主要負(fù)責(zé)顯示內(nèi)容、與用戶交互。在應(yīng)用程序中,activity通常表現(xiàn)為一個(gè)或者多個(gè)界面,用于顯示一些控件并監(jiān)聽(tīng)用戶的事件做出響應(yīng),activity之間可以通過(guò)intent機(jī)制進(jìn)行通信。

      gui界面:圖形用戶界面,允許用戶通過(guò)點(diǎn)擊圖標(biāo)、滑動(dòng)屏幕或通過(guò)軟鍵盤(pán)輸入文本,以實(shí)現(xiàn)界面跳轉(zhuǎn)或啟動(dòng)相應(yīng)服務(wù)。

      控件:安卓應(yīng)用gui界面上顯示的圖標(biāo),比如按鈕、文本框、輸入框、圖片等。

      ui遍歷:一種用于軟件開(kāi)發(fā)測(cè)試中檢測(cè)軟件性能與兼容性的方法,通過(guò)模擬用戶點(diǎn)擊界面元素實(shí)現(xiàn)gui界面遍歷。

      gui界面狀態(tài):標(biāo)識(shí)運(yùn)行過(guò)程中的每個(gè)gui界面,由二元組<gui界面,activity組件名稱>表示,其中activity組件名稱表示該gui界面所屬的activity,由該activity的全限定名表示。

      任務(wù):由二元組<gui界面狀態(tài)、控件事件>表示,表明該控件事件僅在該gui界面狀態(tài)下執(zhí)行。

      gui節(jié)點(diǎn):由二元組<gui界面狀態(tài)、任務(wù)列表>構(gòu)成,表示遍歷策略中的節(jié)點(diǎn)信息,每個(gè)節(jié)點(diǎn)保存了從根節(jié)點(diǎn)到當(dāng)前節(jié)點(diǎn)執(zhí)行的任務(wù)序列。

      gui界面轉(zhuǎn)換:由二元組<任務(wù),gui節(jié)點(diǎn)>表示,用于描述遍歷策略中節(jié)點(diǎn)的跳轉(zhuǎn)關(guān)系,其中任務(wù)是父節(jié)點(diǎn)任務(wù)列表中的一個(gè)任務(wù),gui節(jié)點(diǎn)是執(zhí)行該任務(wù)后跳轉(zhuǎn)到的目的節(jié)點(diǎn)。

      以下結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明所提供的安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄露檢測(cè)方法做進(jìn)一步說(shuō)明。

      安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏產(chǎn)生的主要原因是不安全的https傳輸(側(cè)重指ssl誤用漏洞)和http明文傳輸隱私數(shù)據(jù)。本發(fā)明提出一種自動(dòng)化的、大規(guī)模安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)框架。它提出了針對(duì)不同的gui界面類型的控件集處理策略,設(shè)計(jì)出啟發(fā)式的深度遍歷算法驅(qū)動(dòng)應(yīng)用運(yùn)行,并收集產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包,結(jié)合機(jī)器學(xué)習(xí)分類技術(shù)判斷網(wǎng)絡(luò)數(shù)據(jù)包中的隱私泄漏。

      如圖1所示為本發(fā)明實(shí)施例公開(kāi)的一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)的整體架構(gòu)圖。從圖1可以看出,本發(fā)明的主要工作集中在以下三個(gè)部分:首先對(duì)待測(cè)應(yīng)用分析,提取應(yīng)用包名和主activity信息啟動(dòng)應(yīng)用運(yùn)行,運(yùn)行過(guò)程中根據(jù)控件特征識(shí)別gui界面類型進(jìn)行控件集處理生成任務(wù)列表,并按照深度優(yōu)先的策略實(shí)現(xiàn)gui界面的跳轉(zhuǎn),觸發(fā)盡可能多的網(wǎng)絡(luò)請(qǐng)求;其次,對(duì)正在運(yùn)行的應(yīng)用,實(shí)時(shí)收集產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包,并對(duì)https網(wǎng)絡(luò)請(qǐng)求進(jìn)行中間人攻擊測(cè)試;最后,采用機(jī)器學(xué)習(xí)的算法對(duì)收集到的網(wǎng)絡(luò)數(shù)據(jù)包分析,采用關(guān)聯(lián)分析技術(shù)對(duì)攻擊測(cè)試的日志進(jìn)行分析。

      如圖2所示為本發(fā)明實(shí)施例公開(kāi)的一種安卓應(yīng)用網(wǎng)絡(luò)通信中隱私泄漏檢測(cè)方法的流程示意圖;在圖2所示的方法中包括以下步驟:

      s1、爬取待測(cè)安卓應(yīng)用,構(gòu)建待測(cè)應(yīng)用集合;

      s2、構(gòu)建中間人攻擊服務(wù)器,并初始化各測(cè)試機(jī)環(huán)境,配置多測(cè)試機(jī)分布式運(yùn)行調(diào)度系統(tǒng);

      s3、分析待測(cè)應(yīng)用集合中的apk文件,獲取與apk文件對(duì)應(yīng)的應(yīng)用程序的包名和主activity信息;

      s4、根據(jù)包名和主activity信息,安裝與apk文件對(duì)應(yīng)的應(yīng)用程序,并基于ui自動(dòng)化遍歷框架驅(qū)動(dòng)應(yīng)用程序運(yùn)行;

      s5、分析burpsuite生成的日志文件,獲取存在ssl中間人攻擊的應(yīng)用集合;

      s6、對(duì)收集的當(dāng)前應(yīng)用程序運(yùn)行過(guò)程中產(chǎn)生的網(wǎng)絡(luò)數(shù)據(jù)包文件進(jìn)行分析,結(jié)合上述存在ssl中間人攻擊的應(yīng)用集合識(shí)別網(wǎng)絡(luò)數(shù)據(jù)包文件中的隱私泄漏類型。

      作為一種可選的實(shí)施方式,如圖3所示為本發(fā)明實(shí)施例公開(kāi)的一種爬取待測(cè)安卓應(yīng)用的方法流程示意圖,具體包括以下子步驟:

      s1.1、選取m個(gè)目標(biāo)應(yīng)用市場(chǎng),分析各目標(biāo)應(yīng)用市場(chǎng)按照類別劃分的列表頁(yè)url特征、詳細(xì)應(yīng)用頁(yè)面url特征、應(yīng)用下載url特征,其中,m為正整數(shù),m優(yōu)選取值為10;

      例如,騰訊應(yīng)用寶市場(chǎng)類別列表形式為:

      http://sj.qq.com/myapp/category.htm?orgame=1&categoryid=122;

      詳細(xì)應(yīng)用頁(yè)面url特征為:

      http://sj.qq.com/myapp/detail.htm?apkname=com.jingdong.app.mall;

      應(yīng)用下載url特征為:

      http://imtt.dd.qq.com/16891/e00d69d73077fc37744e7856331d071a.apk?fsname=com.jingdong.app.mall_5.7.0_42153.apk&csr=4d5s。

      s1.2、分析上述列表頁(yè)url特征、上述詳細(xì)應(yīng)用頁(yè)面url特征以及上述應(yīng)用下載url特征,基于id或包名探測(cè)方式構(gòu)建http請(qǐng)求,下載各目標(biāo)應(yīng)用市場(chǎng)中各類別的n個(gè)待測(cè)安卓應(yīng)用,其中,n為正整數(shù),n優(yōu)選取值為100;

      例如,根據(jù)應(yīng)用市場(chǎng)類別列表url的變化特點(diǎn),以id自增或包名的方式自動(dòng)化發(fā)送請(qǐng)求,例如騰訊應(yīng)用寶市場(chǎng)修改“categoryid”范圍“110-130”都能獲取到具體類別頁(yè)面,然后針對(duì)具體的列表頁(yè)面和詳細(xì)應(yīng)用頁(yè)面,采用xpath定位進(jìn)行頁(yè)面解析,獲取應(yīng)用基本信息和下載鏈接。

      s1.3、將所述n個(gè)待測(cè)安卓應(yīng)用的apk文件采用fastdfs文件框架分布式存儲(chǔ)到不同的服務(wù)器上,并將安卓應(yīng)用相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。其中,安卓相關(guān)信息可以包括市場(chǎng)名、應(yīng)用名、下載量、存儲(chǔ)路徑等信息。

      作為一種可選的實(shí)施方式,步驟s2具體包括以下子步驟:

      s2.1、在pc機(jī)端安裝burpsuite代理工具,并基于burpsuite提供的擴(kuò)展api實(shí)現(xiàn)ssllistener插件,監(jiān)聽(tīng)https請(qǐng)求的狀態(tài),實(shí)時(shí)記錄攻擊測(cè)試結(jié)果;

      s2.2、分別在測(cè)試設(shè)備上分別安裝burpsuite自簽名的證書(shū),并手工設(shè)置proxy代理,代理ip為安裝burpsuite工具的pc機(jī)的靜態(tài)ip,代理端口為依次從8080遞增;

      s2.3、基于rmi遠(yuǎn)程方法調(diào)用實(shí)現(xiàn)多臺(tái)測(cè)試設(shè)備管理,包括測(cè)試設(shè)備狀態(tài)管理、安卓應(yīng)用分發(fā)、安卓應(yīng)用安裝、安卓應(yīng)用運(yùn)行等。

      作為一種可選的實(shí)施方式,步驟s3具體包括以下子步驟:

      s3.1、基于androidsdk自帶的aapt(androidassetpackagingtool)工具分析各待測(cè)安卓應(yīng)用;

      具體而言,安卓應(yīng)用采用aapt工具將資源文件與清單文件(manifest.xml)打包到應(yīng)用程序apk文件中。同樣的,通過(guò)執(zhí)行“aaptdumpbadgingmanifest.xml”命令可從應(yīng)用程序apk文件獲取清單文件。

      s3.2、提取待測(cè)安卓應(yīng)用的權(quán)限集合,判斷是否存在聯(lián)網(wǎng)權(quán)限;

      具體而言,提取所有<user-permission>節(jié)點(diǎn)信息,查找“android.permission.internet”字符串,若存在,說(shuō)明申請(qǐng)了聯(lián)網(wǎng)權(quán)限。

      s3.3、若存在聯(lián)網(wǎng)權(quán)限,則提取待測(cè)安卓應(yīng)用的包名與主activity名。

      具體而言,提取清單文件中key為“package”的value值以及包含“android.intent.action.main”和“android.intent.category.launcher”值的<activity>節(jié)點(diǎn)的名稱信息。

      作為一種可選的實(shí)施方式,如圖4所示為本發(fā)明實(shí)施例公開(kāi)的一種ui自動(dòng)化遍歷方法的流程示意圖,具體包括以下子步驟:

      s4.1、基于accessibilityservice提供的接口獲取當(dāng)前待測(cè)安卓應(yīng)用運(yùn)行過(guò)程中的gui界面信息,并根據(jù)預(yù)先制定的gui界面分類規(guī)則識(shí)別與所述gui界面信息對(duì)應(yīng)的gui界面類型;

      其中,預(yù)先制定的gui界面分類規(guī)則可以采用以下方式實(shí)現(xiàn):通過(guò)分析多個(gè)(如500個(gè))應(yīng)用的gui界面截圖,根據(jù)gui界面的大小、控件特征將gui界面類型分為歡迎界面、列表界面、彈出框界面、輸入界面、詳細(xì)界面和其他界面六大類,分類規(guī)則如圖5所示。當(dāng)gui界面的面積小于手機(jī)屏幕面積時(shí),gui界面類型為彈出框界面;當(dāng)gui界面的面積等于手機(jī)屏幕面積時(shí),若gui界面中存在imageview控件且占據(jù)整個(gè)手機(jī)屏幕,則為歡迎界面;若gui界面中存在edittext、checkbox和radiobutton控件時(shí),則為輸入界面;若gui界面中存在相同子控件樹(shù)或者listview等列表控件,則為列表界面;若gui界面中存在大量的圖片、文字或者webview控件,則為詳細(xì)界面;若不匹配以上的判斷規(guī)則,則為其他界面。

      其中,appium移動(dòng)應(yīng)用測(cè)試框架android版底層實(shí)現(xiàn)了androidsdk自帶的原生測(cè)試工具uiautomator,uiautomator內(nèi)部封裝了獲取當(dāng)前界面控件樹(shù)的accessibilityservice服務(wù)和執(zhí)行界面控件操作的accessibilityevent服務(wù),通過(guò)appium提供的“getpagesource”函數(shù)獲取當(dāng)前界面的控件所有信息。根據(jù)制定的界面分類規(guī)則,對(duì)當(dāng)前界面進(jìn)行分類。

      s4.2、采用與所述gui界面類型對(duì)應(yīng)的控件集處理方式,如控件裁剪、控件事件組合和輸入控件的啟發(fā)式輸入,并將最終處理后的可操作控件事件投入任務(wù)列表;

      具體而言,當(dāng)前界面狀態(tài)用二元組<activity組件,gui界面>標(biāo)示,其中“gui界面”包括所有控件信息。根據(jù)gui界面的大小、特定控件特征將gui界面劃分為歡迎界面、列表界面、彈出框界面、輸入框界面、詳細(xì)界面和其他界面六大類?;诓煌慕缑骖愋徒o出如下的控件事件序列生成規(guī)則:

      (1)當(dāng)識(shí)別的界面為輸入界面時(shí),在控件樹(shù)搜索textview、radiobutton和checkbox等控件葉子節(jié)點(diǎn),獲取該節(jié)點(diǎn)的text、content-desc和resource-id等信息,從而識(shí)別出該節(jié)點(diǎn)需要輸入的信息類型,然后根據(jù)已有的輸入庫(kù)進(jìn)行匹配,生成<控件1,edittext,“手機(jī)號(hào)碼”>控件事件;同時(shí)獲取該控件節(jié)點(diǎn)的兄弟節(jié)點(diǎn)、父節(jié)點(diǎn)或父節(jié)點(diǎn)的兄弟節(jié)點(diǎn),結(jié)合控件的上下文信息匹配出對(duì)應(yīng)的按鈕節(jié)點(diǎn),生成<控件2,“點(diǎn)擊”,“”>控件事件,并將該兩個(gè)控件事件封裝成組合事件;

      (2)當(dāng)識(shí)別的gui界面為列表界面時(shí),對(duì)控件樹(shù)中包含可滾動(dòng)的列表控件(如listview,recyclerview或expandablelistview)節(jié)點(diǎn)或者相同子控件樹(shù)節(jié)點(diǎn)的路徑生成路徑摘要信息。對(duì)相同路徑摘要信息的集合,由于其觸發(fā)的是同一個(gè)事件處理監(jiān)聽(tīng)器,故進(jìn)行過(guò)濾處理,只對(duì)列表控件節(jié)點(diǎn)或相同子控件樹(shù)下的多個(gè)子節(jié)點(diǎn)中的一個(gè)節(jié)點(diǎn)下的控件事件進(jìn)行操作處理;

      (3)當(dāng)識(shí)別的界面為彈出框時(shí),對(duì)界面的提示信息進(jìn)行簡(jiǎn)單文本匹配,若提示為更新下載信息時(shí),選擇“取消”等拒絕按鈕;對(duì)于廣告彈出框,選擇“關(guān)閉”等按鈕;對(duì)于其他系統(tǒng)提示框,依照可操作控件在控件樹(shù)的層次遍歷順序生成控件事件序列;

      (4)當(dāng)識(shí)別的界面為詳細(xì)界面時(shí),搜索界面上“返回”標(biāo)志控件或添加返回事件碼操作,直接返回到上一層gui界面,對(duì)該界面的其他控件不進(jìn)行處理;

      (5)當(dāng)識(shí)別的界面為歡迎界面時(shí),對(duì)界面進(jìn)行滑動(dòng)操作(左滑,右滑,上滑和下滑),使頁(yè)面跳轉(zhuǎn)到真正的起始界面;

      (6)當(dāng)識(shí)別的界面為其他界面時(shí),依照可操作控件在控件樹(shù)的層次遍歷順序生成控件事件序列;

      (7)針對(duì)每個(gè)界面上的不同控件事件處理優(yōu)先級(jí):輸入事件>點(diǎn)擊事件>滑動(dòng)事件;

      (8)針對(duì)每個(gè)界面上的同種控件事件處理優(yōu)先級(jí):遵守gui控件樹(shù)層次遍歷序列前后順序。

      s4.3、采用啟發(fā)式深度優(yōu)先遍歷算法,對(duì)所述任務(wù)列表中的控件事件進(jìn)行用戶動(dòng)作模擬,并判斷當(dāng)前gui界面狀態(tài)是否發(fā)生變化,若發(fā)生變化,則跳轉(zhuǎn)執(zhí)行步驟s4.1;若沒(méi)有變化,則判斷所述任務(wù)列表是否為空,若為空,表示當(dāng)前gui界面處理完畢,返回到上一層界面繼續(xù)任務(wù)列表中的控件事件,若不為空,繼續(xù)執(zhí)行所述任務(wù)列表中的控件事件。

      具體而言,應(yīng)用程序從主activity開(kāi)始遍歷,從任務(wù)列表中執(zhí)行一個(gè)任務(wù),界面將會(huì)發(fā)生狀態(tài)改變,如界面跳轉(zhuǎn)、界面刷新、彈出對(duì)話框或菜單欄等,根據(jù)gui界面狀態(tài)判斷是否達(dá)到一個(gè)新的界面還是跳回到之前已經(jīng)遍歷過(guò)的界面。若為新界面,則重復(fù)進(jìn)行界面識(shí)別、任務(wù)列表生成和控件事件模擬三個(gè)步驟;若是已遍歷過(guò)的界面,判斷該界面的任務(wù)列表是否處理完畢,若遍歷完畢返回到其上一層界面,若沒(méi)有則觸發(fā)剩下的任務(wù)列表中的任務(wù)。循環(huán)往復(fù),從而不斷地對(duì)應(yīng)用的界面方向矢量圖進(jìn)行動(dòng)態(tài)擴(kuò)充,直到主activity任務(wù)列表為空遍歷結(jié)束。啟發(fā)式深度優(yōu)先遍歷算法的具體代碼如圖6所示。

      作為一種可選的實(shí)施方式,步驟s5具體包括以下子步驟:

      s5.1、實(shí)時(shí)監(jiān)控ssllistener插件生成的日志信息,提取burpsuite監(jiān)聽(tīng)端口、https請(qǐng)求成功的網(wǎng)絡(luò)數(shù)據(jù)包的時(shí)間戳與主機(jī)域名信息;

      s5.2、根據(jù)所述監(jiān)聽(tīng)端口、所述時(shí)間戳和所述主機(jī)域名信息,采用模糊正則匹配的方式獲取目標(biāo)待測(cè)安卓應(yīng)用包名,作為存在ssl中間人攻擊的應(yīng)用集合,其中,所述目標(biāo)待測(cè)安卓應(yīng)用包名對(duì)應(yīng)的應(yīng)用存在中間人攻擊風(fēng)險(xiǎn)。

      作為一種可選的實(shí)施方式,如圖7所示為本發(fā)明實(shí)施例公開(kāi)的一種對(duì)網(wǎng)絡(luò)數(shù)據(jù)包文件分析的方法流程示意圖,具體包括以下子步驟:

      s6.1、采用jnetpcap.jar包對(duì)生成的網(wǎng)絡(luò)數(shù)據(jù)包文件進(jìn)行解析,構(gòu)建http請(qǐng)求數(shù)據(jù)包,以josn(javascriptobjectnotation)的數(shù)據(jù)格式保存;

      s6.2、采用詞袋模型對(duì)json格式的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行預(yù)處理;

      具體而言,即根據(jù)“:”、“{}”、“”、“->”等作為分割符,將一連串的字符串轉(zhuǎn)化為一個(gè)個(gè)包含最小含義的單詞,如“header”、“http”、“content-type”、“packagename”、“host”等。

      s6.3、采用tf-idf方法進(jìn)行特征提取,過(guò)濾掉停用詞和低頻詞;

      具體而言,即降低特征的維度,針對(duì)那些對(duì)分類作用不大的詞去掉,如低頻詞(出現(xiàn)的次數(shù)小于5)以及“header”、“content-type”、“url”等停用詞。

      s6.4、根據(jù)選擇的特征、特征出現(xiàn)的詞頻以及隱私泄漏標(biāo)簽,生成arff文件,并由訓(xùn)練好的分類器對(duì)各待測(cè)安卓應(yīng)用的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行預(yù)測(cè)是否存在隱私泄漏;

      其中,分類器算法采用工具weka中的c4.5決策樹(shù)算法。

      s6.5、針對(duì)存在隱私泄漏的待測(cè)安卓應(yīng)用,采用基于模糊正則匹配的方式判斷隱私泄漏類型。

      具體而言,如國(guó)際移動(dòng)設(shè)備標(biāo)識(shí)(internationalmobileequipmentidentity,imei)、手機(jī)號(hào)碼、郵編、性別等信息采用模糊的正則表達(dá)式進(jìn)行匹配,從而判斷具體的隱私泄漏類型。

      本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1