国产精品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>

      多層級(jí)Android系統(tǒng)惡意行為監(jiān)控方法與流程

      文檔序號(hào):11251272閱讀:598來源:國(guó)知局
      多層級(jí)Android系統(tǒng)惡意行為監(jiān)控方法與流程

      本發(fā)明涉及一種在android系統(tǒng)中對(duì)惡意行為進(jìn)行監(jiān)控的方法,屬于計(jì)算機(jī)與信息科學(xué)技術(shù)領(lǐng)域。



      背景技術(shù):

      隨著智能手機(jī)的快速普及,移動(dòng)互聯(lián)網(wǎng)逐漸成為人們的主流上網(wǎng)媒介,正是因?yàn)槠涫褂萌藬?shù)眾多,傳輸于移動(dòng)互聯(lián)網(wǎng)上的信息量大且重要,因此移動(dòng)互聯(lián)網(wǎng)的安全已成為目前的主流安全威脅之一。在目前的移動(dòng)智能平臺(tái)中,蘋果公司的ios系統(tǒng)和谷歌公司的android系統(tǒng)是最主流的智能手機(jī)操作系統(tǒng),其中當(dāng)屬android系統(tǒng)占有率最高,因此成為眾多惡意代碼攻擊的目標(biāo)。惡意代碼產(chǎn)生的危害巨大,不僅對(duì)用戶造成巨大的經(jīng)濟(jì)損失,而且可能會(huì)使用戶的隱私、密碼等關(guān)鍵信息遭到泄露。

      自從谷歌公司2010年發(fā)布android系統(tǒng)以來,其市場(chǎng)占有率迅速上升,現(xiàn)已超過八成份額。由于系統(tǒng)的開放性和應(yīng)用的不規(guī)范性,導(dǎo)致大量惡意代碼有機(jī)可趁,而且這些惡意代碼的開發(fā)成本和難度往往都比較低。在android系統(tǒng)自身方面,存在著一些內(nèi)核漏洞、系統(tǒng)庫(kù)和應(yīng)用框架層缺陷,而且由于系統(tǒng)本身的碎片化問題和廠商處理問題的滯后性,導(dǎo)致這些潛在的安全問題會(huì)長(zhǎng)期存在。其中,資費(fèi)消耗、惡意扣費(fèi)和隱私竊取等安全問題呈上升趨勢(shì)。

      在對(duì)移動(dòng)互聯(lián)網(wǎng)設(shè)備的安全保護(hù)過程中,對(duì)android系統(tǒng)惡意行為的監(jiān)控是保護(hù)設(shè)備用戶的重要手段。移動(dòng)終端的安全審計(jì)是對(duì)用戶嘗試的錯(cuò)誤操作次數(shù)和與設(shè)備相關(guān)的安全事件進(jìn)行分析的過程。當(dāng)惡意代碼向android系統(tǒng)設(shè)備發(fā)起安全攻擊時(shí),系統(tǒng)安全審計(jì)將會(huì)阻止惡意代碼的運(yùn)行,同時(shí)將相關(guān)安全行為記錄日志并通知用戶告警。這樣就能在很大程度上阻擋惡意代碼,避免用戶造成巨大的財(cái)產(chǎn)損失。

      目前對(duì)android系統(tǒng)中惡意行為監(jiān)控的研究主要有五類方法,分別是系統(tǒng)定制法、字節(jié)碼重構(gòu)和重打包法、進(jìn)程注入法、linux內(nèi)核法和虛擬化法。這些方法都能檢測(cè)出惡意代碼對(duì)于android系統(tǒng)中某一層的攻擊,有些能監(jiān)控應(yīng)用程序內(nèi)部和跨應(yīng)用的惡意行為,或者通過分析記錄日志來監(jiān)控惡意行為。

      但目前常見的android系統(tǒng)惡意行為監(jiān)控方法都或多或少有一些不全面性或難以操作性。對(duì)于基于系統(tǒng)定制的行為監(jiān)控方法,由于需要對(duì)android系統(tǒng)進(jìn)行一些改動(dòng),因此很難將其直接部署到已深度定制的android系統(tǒng)中。對(duì)于字節(jié)碼重構(gòu)和重打包法,由于需要修改被監(jiān)控軟件,因?yàn)闀?huì)對(duì)其運(yùn)行造成不穩(wěn)定,同時(shí)也無法對(duì)系統(tǒng)預(yù)裝軟件和系統(tǒng)native層代碼進(jìn)行監(jiān)控,等等。而且均存在反制技術(shù)對(duì)抗以上行為監(jiān)控功能。



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

      本發(fā)明的目的是:針對(duì)目前android系統(tǒng)惡意行為監(jiān)控方法中的需要修改系統(tǒng)源碼、需要修改被監(jiān)控軟件、監(jiān)控全面性差、無法分析惡意代碼的隱藏行為等問題,提出一種基于多層次交叉視圖分析的android系統(tǒng)惡意行為監(jiān)控方法,該方法能夠在不修改系統(tǒng)源碼和被監(jiān)控軟件的基礎(chǔ)上對(duì)惡意行為實(shí)施監(jiān)控。

      本發(fā)明的設(shè)計(jì)原理為:在android系統(tǒng)的java層、native層、kernel層分別對(duì)系統(tǒng)函數(shù)調(diào)用實(shí)施監(jiān)控。其中,在java層和native層都采用進(jìn)程注入技術(shù),分別通過攔截dalvik虛擬機(jī)和攔截binder通信數(shù)據(jù)包方法監(jiān)控惡意行為;在kernel層采用可加載內(nèi)核模塊技術(shù)分析系統(tǒng)調(diào)用的參數(shù),進(jìn)而監(jiān)控惡意行為。在對(duì)這三層進(jìn)行惡意行為監(jiān)控過程中,不僅阻止惡意行為的發(fā)生,記錄安全日志并向用戶告警,同時(shí)輸出監(jiān)控到的惡意行為監(jiān)控列表1、2、3,而且還可通過相鄰視圖間的兩兩對(duì)比分析出存在的隱藏行為,輸出隱藏行為列表。

      本發(fā)明的技術(shù)方案是通過如下步驟實(shí)現(xiàn)的:

      步驟1,采用進(jìn)程注入技術(shù)監(jiān)控處于java層的惡意行為,輸出惡意行為列表1,具體實(shí)現(xiàn)方法為:

      步驟1.1,將自定義的動(dòng)態(tài)庫(kù)注入到系統(tǒng)進(jìn)程中,執(zhí)行動(dòng)態(tài)庫(kù)中的自定義函數(shù)。

      步驟1.2,該自定義函數(shù)獲取所要攔截的函數(shù)的對(duì)象。

      步驟1.3,設(shè)置該函數(shù)對(duì)象的標(biāo)志位。

      步驟1.4,修改該函數(shù)對(duì)象的成員變量值。

      步驟1.5,最后構(gòu)建行為列表1。

      步驟2,采用進(jìn)程注入技術(shù)監(jiān)控native層的惡意行為,輸出惡意行為列表2,具體實(shí)現(xiàn)方法為:

      步驟2.1,將自定義動(dòng)態(tài)庫(kù)注入到系統(tǒng)進(jìn)程中,執(zhí)行動(dòng)態(tài)庫(kù)中的自定義函數(shù)。

      步驟2.2,執(zhí)行的自定義函數(shù)將進(jìn)程中替換函數(shù)地址以及動(dòng)態(tài)庫(kù)中待替換的新函數(shù)地址信息傳給注入程序。

      步驟2.3,注入程序再次附加進(jìn)程,定位,將待替換的新函數(shù)地址替換掉原始函數(shù)地址,最后解除附加目標(biāo)進(jìn)程讓其重新運(yùn)行。

      步驟2.4,該新函數(shù)通過解析所攔截的binder數(shù)據(jù)包,判斷惡意行為,進(jìn)而起到監(jiān)控作用。

      步驟2.5,最后構(gòu)建行為列表2。

      步驟3,采用可加載內(nèi)核模塊技術(shù)對(duì)惡意行為進(jìn)行監(jiān)控,輸出惡意行為列表3,具體實(shí)現(xiàn)方法為:

      步驟3.1,首先將自定義模塊動(dòng)態(tài)地加載到linux內(nèi)核中。

      步驟3.2,該模塊先獲取到系統(tǒng)調(diào)用表的入口地址,然后替換內(nèi)核系統(tǒng)調(diào)用。

      步驟3.3,用戶態(tài)的程序調(diào)用內(nèi)核系統(tǒng)調(diào)用時(shí),內(nèi)核會(huì)優(yōu)先執(zhí)行替換后的系統(tǒng)調(diào)用,解析新系統(tǒng)調(diào)用解析的參數(shù)便可識(shí)別內(nèi)核層的惡意行為。

      步驟3.4,最后構(gòu)建行為列表3。

      步驟4,兩兩對(duì)比相鄰惡意行為列表視圖,分析出存在的隱藏行為,具體實(shí)現(xiàn)方法為:

      步驟4.1,先比較列表的長(zhǎng)度,再對(duì)比不同視圖中的不同項(xiàng)。

      步驟4.2,將列表中存在的不同行為輸出成隱藏行為列表。

      步驟4,通過兩兩比對(duì)通過上述步驟生成的相鄰惡意行為列表視圖,分析出存在于可信視圖而不在非可信視圖中的隱藏行為,具體實(shí)現(xiàn)方法為:

      步驟4.1,首先對(duì)比相鄰視圖中惡意行為列表的長(zhǎng)度,若相等,則不存在惡意隱藏行為,若不相等,則存在惡意隱藏行為,進(jìn)入下一步驟。

      步驟4.2,若某一個(gè)惡意行為出現(xiàn)在惡意行為列表2但未出現(xiàn)在惡意行為列表1,則此惡意行為稱作java層隱藏行為;若某一個(gè)惡意行為出現(xiàn)在惡意行為列表3但未出現(xiàn)在惡意行為列表2,則此惡意行為稱作native層隱藏行為。

      有益效果

      相比于目前的重打包技術(shù)、動(dòng)態(tài)污點(diǎn)跟蹤等方法,本發(fā)明提出的基于多層次交叉視圖分析的android系統(tǒng)惡意行為監(jiān)控方法,通過在java層、native層、kernel層分別監(jiān)控輸出惡意行為列表,根據(jù)相鄰視圖分析出隱藏惡意行為,從而在不修改系統(tǒng)源碼,不修改被監(jiān)控軟件的情況下監(jiān)控android不同層次上的惡意行為,而且支持攻擊維度的檢測(cè),為用戶提供更加細(xì)粒,更加全面的分析結(jié)果。

      附圖說明

      圖1為本發(fā)明提出的dalvik虛擬機(jī)的運(yùn)行流程圖;

      圖2為本發(fā)明提出的binder進(jìn)程間通信模型;

      圖3為本法明提出的正常的系統(tǒng)調(diào)用執(zhí)行鏈;

      圖4為本法明提出的被劫持的系統(tǒng)調(diào)用執(zhí)行鏈;

      圖5為本法明提出的交叉視圖分析模塊設(shè)計(jì);

      圖6為本發(fā)明提出的行為監(jiān)控方法原理框圖。

      具體實(shí)施方式

      為了更好的說明本發(fā)明的目的和優(yōu)點(diǎn),下面結(jié)合附圖和實(shí)施用例對(duì)本發(fā)明方法的實(shí)施方式做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施用例及其中說明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。

      實(shí)施用例中包括1臺(tái)智能手機(jī),采用android系統(tǒng)。

      第一環(huán)節(jié)

      本環(huán)節(jié)的目的是監(jiān)控java層的惡意行為,用dalvik虛擬機(jī)攔截技術(shù)來對(duì)java層的惡意行為進(jìn)行監(jiān)控,并輸出惡意行為列表1,如附圖1所示。具體實(shí)施步驟如下:

      步驟1.1,以攔截phonewindowmanager類中的成員函數(shù)用于處理手機(jī)按鍵的interceptkeybeforequeueing函數(shù)為例,該成員函數(shù)在系統(tǒng)進(jìn)程中被調(diào)用。首先使用進(jìn)程注入技術(shù),將自定義動(dòng)態(tài)庫(kù)注入到系統(tǒng)進(jìn)程system_server中,執(zhí)行該動(dòng)態(tài)庫(kù)中的自定義函數(shù)。

      步驟1.2,該自定義函數(shù)截取java核心類phonewindowmanager中函數(shù)interceptkeybeforequeueing的對(duì)象method。

      步驟1.3,設(shè)置函數(shù)interceptkeybeforequeueing的對(duì)象的標(biāo)志位set_method_flag(method,acc_native)。

      步驟1.4,修改method對(duì)象的成員變量nativefunc的值,使得method->nativefunc=&hookedmethodcallback,最后構(gòu)建行為列表1。

      第二環(huán)節(jié)

      本環(huán)節(jié)的目的是監(jiān)控native層的惡意行為,通過攔截并解析binder通信數(shù)據(jù)包方法來實(shí)現(xiàn),并輸出惡意行為列表2,如附圖2所示。具體實(shí)施步驟如下:

      步驟2.1,將自定義動(dòng)態(tài)庫(kù)注入到/system/bin/mediaserver系統(tǒng)進(jìn)程中,執(zhí)行動(dòng)態(tài)庫(kù)中的自定義函數(shù)。

      步驟2.2,動(dòng)態(tài)庫(kù)中的自定義函數(shù)將動(dòng)態(tài)庫(kù)中的新函數(shù)ioctl地址信息和進(jìn)程中ioctl函數(shù)地址信息輸入注入程序。

      步驟2.3,注入程序使用ptrace函數(shù)再次附加系統(tǒng)進(jìn)程/system/bin/mediaserver,尋找到libbinder.so中擴(kuò)展名為.got的section,將ioctl函數(shù)的新函數(shù)地址替換ioctl函數(shù)的原始地址,解除附加目標(biāo)進(jìn)程并重新運(yùn)行。

      步驟2.4,ioctl新函數(shù)在解析binder數(shù)據(jù)包時(shí),若數(shù)據(jù)包的binder_transaction_data結(jié)構(gòu)體里code的值為9,data.ptr.buffer的數(shù)據(jù)為“android.hardware.icamera”,則判斷某應(yīng)用調(diào)用了takepicture函數(shù)。如果該應(yīng)用存在惡意行為,則阻止該應(yīng)用的函數(shù)調(diào)用并通知用戶,同時(shí)記錄日志,最后構(gòu)建行為列表2。

      第三環(huán)節(jié)

      本環(huán)節(jié)的目的是監(jiān)控kernel層的惡意行為,對(duì)于該層的惡意行為監(jiān)控通過劫持與替換系統(tǒng)調(diào)用方法來實(shí)現(xiàn),并輸出惡意行為列表2。具體實(shí)施步驟如下:

      步驟3.1,利用動(dòng)態(tài)可加載模塊機(jī)制,在linux內(nèi)核中動(dòng)態(tài)地加載自定義模塊,如附圖3所示。

      步驟3.2,該自定義模塊獲取系統(tǒng)調(diào)用表的入口地址,替換ioctl系統(tǒng)調(diào)用,如附圖4所示。

      步驟3.3,內(nèi)核優(yōu)先執(zhí)行新的系統(tǒng)調(diào)用,并在該調(diào)用中解析參數(shù),根據(jù)該參數(shù)可判斷應(yīng)用試圖使用的系統(tǒng)服務(wù),如果該應(yīng)用是惡意程序,則阻止該應(yīng)用的函數(shù)調(diào)用并通知用戶,同時(shí)記錄日志,最后構(gòu)建行為列表3。

      第四環(huán)節(jié)

      本環(huán)節(jié)的目的是分析出隱藏的惡意行為。具體實(shí)施步驟如下:

      步驟4.1,首先對(duì)比相鄰視圖中惡意行為列表的長(zhǎng)度,若相等,則不存在惡意隱藏行為,若不相等,則存在惡意隱藏行為,進(jìn)入下一步驟。

      步驟4.2,若某一個(gè)惡意行為出現(xiàn)在惡意行為列表2但未出現(xiàn)在惡意行為列表1,則此惡意行為稱作java層隱藏行為;若某一個(gè)惡意行為出現(xiàn)在惡意行為列表3但未出現(xiàn)在惡意行為列表2,則此惡意行為稱作native層隱藏行為,如附圖5所示。

      下面以監(jiān)控native層時(shí),惡意代碼調(diào)用系統(tǒng)拍照行為過程為例,說明本發(fā)明在上述實(shí)施用例中的整體運(yùn)行流程:

      1.將自定義動(dòng)態(tài)庫(kù)注入到/system/bin/mediaserver系統(tǒng)進(jìn)程中,執(zhí)行該動(dòng)態(tài)庫(kù)中的自定義函數(shù)。

      2.執(zhí)行的自定義函數(shù)將進(jìn)程中ioctl函數(shù)地址以及動(dòng)態(tài)庫(kù)中待替換的ioctl新函數(shù)地址信息傳給注入程序。

      3.注入程序通過ptrace函數(shù)再次附加/system/bin/mediaserver進(jìn)程,定位libbinder.so中名為.got的section,并搜索其項(xiàng)尋找ioctl的原始地址,將其替換為ioctl的新函數(shù)地址,最后解除附加目標(biāo)進(jìn)程讓其重新運(yùn)行,完成攔截。

      4.該ioctl新函數(shù)通過解析binder通信數(shù)據(jù)包,發(fā)現(xiàn)數(shù)據(jù)包中binder_transaction_data結(jié)構(gòu)體里code為9,data.ptr.buffer的數(shù)據(jù)為“android.hardware.icamera”,判斷此應(yīng)用程序調(diào)用了takepicture函數(shù),即發(fā)生了拍照行為。

      5.判斷出該應(yīng)用是不被信任的惡意程序,通知用戶、阻止該函數(shù)被調(diào)用并記錄日志,最后構(gòu)建行為列表2。

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