亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于虛擬機對進程行為實時監(jiān)控的方法及裝置的制造方法_2

文檔序號:8259376閱讀:來源:國知局
個啟動的Zygote進行分裂(fork)得到。
[0039]系統(tǒng)首個啟動的Zygote進程會將所有的系統(tǒng)類庫導(dǎo)入其中。在Zygote進程進行分裂(fork)創(chuàng)建Dalvik虛擬機時會將相應(yīng)進程中需要的類庫和資源通過proloadClasses ()和 proloadResource O 導(dǎo)入到該 Dalvik 虛擬機中。
[0040]Zygote進程為Android系統(tǒng)準(zhǔn)備好了一個Dalvik虛擬機實例,以后Zygote進程在創(chuàng)建Android應(yīng)用程序進程的時候,就可以將它自身的Dalvik虛擬機實例復(fù)制到新創(chuàng)建Android應(yīng)用程序進程中去。Zygote進程在創(chuàng)建Android應(yīng)用程序進程的時候,除了可以將自身的Dalvik虛擬機實例復(fù)制到新創(chuàng)建的Android應(yīng)用程序進程之外,還可以與新創(chuàng)建的Android應(yīng)用程序進程共享Java核心類和Android核心類,以及它們的JNI方法。在程序的真正運行過程中,再通過函數(shù)FindClass可以找到指定的Java類;調(diào)用函數(shù)GetMethodID可以獲得一個Java類的成員函數(shù),并且可以通過類似CallObjectMethod函數(shù)來間接調(diào)用它,調(diào)用函數(shù)GetFieldID可以獲得一個Java類的成員變量,并且可以通過類似SetIntField的函數(shù)來設(shè)置它的值。
[0041]根據(jù)Android Zygote機制和Dalvik虛擬機的啟動過程可以獲知所有的Dalvik虛擬機都是由最初生成的虛擬機分裂得到。與此同時Dalvik虛擬機的運行過程中當(dāng)程序需要調(diào)用函數(shù)時都需要經(jīng)過FindClass O得到相應(yīng)的類,再通過CallOb jectMethod O方法來調(diào)用該函數(shù),本發(fā)明實施例就是利用這個幾個特點來構(gòu)建Dalvik虛擬機對進程行為實時監(jiān)控系統(tǒng)。一旦在程序?qū)ぶ芬恍┟舾泻瘮?shù)的時候或者尋址一些敏感資源的時候進行監(jiān)控就可以實時的獲取到是哪個進程對哪個資源進行使用,同時獲取到哪個進程正占用著系統(tǒng)的一些敏感資源。而且還可以通過對此過程進行控制,可以更加準(zhǔn)確的、有效的控制自身的系統(tǒng)資源。
[0042]正因為以上原因,所以選擇Android Dalvik虛擬機進行修改和擴展,利用一個系統(tǒng)底層服務(wù)實時監(jiān)控各個虛擬機進程的行為,再由一個系統(tǒng)應(yīng)用將實時的監(jiān)控結(jié)果顯示給手機用戶。從而實現(xiàn)實時監(jiān)測各個進程對系統(tǒng)資源的使用,實時的分析進程的行為,從系統(tǒng)層面降低該系統(tǒng)平臺的安全威脅,與此同時能準(zhǔn)確確定是哪個進程正在使用某個系統(tǒng)資源,監(jiān)控進程的行為。
[0043]圖1示出了本發(fā)明實施例提供的一種基于虛擬機對進程行為實時監(jiān)控的方法的流程示意圖,如圖1所示,所述方法包括如下步驟:
[0044]101、監(jiān)控每一進程及其子進程調(diào)用的資源信息;
[0045]102、在所述資源信息為敏感資源信息時,判斷所述進程或所述子進程調(diào)用的敏感資源信息是否符合管控策略;
[0046]該敏感資源信息可以理解為所述每一進程調(diào)用的敏感資源的時間、敏感資源的類型、敏感資源的包名。
[0047]敏感資源可以理解為終端中的比如攝像頭等資源。
[0048]103、在所述進程或所述子進程調(diào)用的敏感資源信息不符合管控策略時,阻止所述進程或子進程調(diào)用該敏感資源。
[0049]在上述步驟101中監(jiān)控每一進程及其子進程調(diào)用的資源信息之前,上述方法還包括圖1中未示出的步驟:
[0050]100、預(yù)設(shè)所述進程或所述子進程調(diào)用的敏感資源信息的管控策略。
[0051]在上述步驟101監(jiān)控每一進程及其子進程調(diào)用的資源信息之后,所述方法還包括圖1中未示出的步驟:
[0052]104、在監(jiān)控到所述進程或所述子進程調(diào)用資源信息之后,對所述進程或所述子進程的行為進行實時記錄,并存儲所述進程或所述子進程占用的資源信息。
[0053]105、對所述進程或所述子進程的行為進行實時記錄,構(gòu)建敏感資源的持有者列表,對所述列表中的進程或子進程進行監(jiān)控。
[0054]該方法針對以往的Android系統(tǒng)進行優(yōu)化增加一種利用Dalvik虛擬機進程監(jiān)控的方法,使得其支持在Android系統(tǒng)Dalvik虛擬機運行時對系統(tǒng)敏感資源進行實時監(jiān)控,可以具體監(jiān)控到是哪個進程在何時調(diào)用何種系統(tǒng)的敏感資源。還可以準(zhǔn)確獲取到在某時刻由哪個進程正在占用系統(tǒng)的一些敏感資源,如攝像頭,藍牙,錄音等。
[0055]此外由于Service DalMonitor的用戶組是由init過程產(chǎn)生的進程所以其用戶組是root,同時PManager的是系統(tǒng)級應(yīng)用程序。有效的保證了整個監(jiān)控機制的完整性與安全性,并能實時有效監(jiān)控Android木馬與病毒的入侵。
[0056]因為該監(jiān)控機制是在GetMethodIDO調(diào)用時進行審核的,只有當(dāng)通過審核才能使用系統(tǒng)敏感資源有效防止隱私泄露,以及泄密事件的發(fā)生。
[0057]圖2示出了本發(fā)明實施例提供的基于虛擬機對進程行為實時監(jiān)控的示意圖,如圖2所示,
[0058]首先在系統(tǒng)啟動初始化init.c的過程中,運行一個系統(tǒng)監(jiān)控服務(wù)DalMonitor。系統(tǒng)服務(wù)DalMonitor預(yù)讀系統(tǒng)保存在系統(tǒng)中的程序的敏感行為管控策略。
[0059]系統(tǒng)運行Android Runtime生成Zygote進程時,其會自動將被我們擴展后的Dalvik虛擬機導(dǎo)入系統(tǒng),同時觸發(fā)DalMonitor開始監(jiān)控Dalvik⑴進程;當(dāng)某個應(yīng)用程序A啟動時,會從進程Dalvik(I)中分裂出Dalvik(2)進程,此時Dalvik⑵啟動虛擬機內(nèi)部監(jiān)控。當(dāng)Dalvik(2)進程調(diào)用某個敏感資源的時候,Dalvik(2)虛擬機會使用GetMethodIDO函數(shù)去獲得供其使用的相應(yīng)類中的函數(shù)。Dalvik(2)虛擬機驗證此函數(shù)是否屬于敏感資源。
[0060]此時,GetMethodID()并不直接返回正確的值,而DalMonitor審核是否符合管控策略,而是向DalMonitor這個自定義系統(tǒng)服務(wù)發(fā)送請求。DalMonitor調(diào)用其內(nèi)部類StrategyChk中的isAllow O函數(shù)讀取敏感資源的配置,并反饋給GetMethodID O。在未獲得DalMonitor服務(wù)的反饋的函數(shù)處于等待狀態(tài),直達超時或者得到結(jié)果為false,獲取實例的函數(shù)返回空,只有在指定時間范圍內(nèi)得到true的返回值,才會向應(yīng)用程序返回正確的值。
[0061]當(dāng)DalMonitor服務(wù)反饋回相應(yīng)的值后,DalMonitor向監(jiān)控應(yīng)用程序PMonitor發(fā)送敏感資源調(diào)用信息(包括類型,資源,時間,程序包名等),監(jiān)控程序PMonitor接收到該信息后,將該條信息寫入數(shù)據(jù)庫MonitorDb。
[0062]當(dāng)用戶打開監(jiān)控應(yīng)用程序PMonitor時,PMonitor向DalMonitor發(fā)送請求getMonitorResource O。DalMonitor將此時的敏感資源的持有者列表返回給PMonitor程序,并由PMonitor程序?qū)⑵滹@示給用戶。如果用戶點擊監(jiān)控記錄后,讀取數(shù)據(jù)庫MonitorDb并其顯示到界面。
[0063]與此同時,當(dāng)進程想調(diào)用一些較敏感的函數(shù)或者資源時,Dalvik虛擬機將該事件以及該進程的pid通知給DalMonitor。DalMonitor對該進程的行為進行實時記錄,并標(biāo)識該進程此時占用某個敏感資源。
[0064]DalMonitor構(gòu)建一個敏感資源的持有者列表(包括調(diào)用敏感資源類型,時間,包名等等),并進入監(jiān)控狀態(tài)。
[0065]上述實時監(jiān)控在Dalvik虛擬機調(diào)用GetMethodIDO尋址相應(yīng)類庫中的函數(shù)的時候,并不直接返回
當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1