專利名稱:一種Android軟件敏感行為監(jiān)控與攔截方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于智能手機(jī)安全技術(shù)領(lǐng)域,涉及一種Android系統(tǒng)的安全加固方法,特別是涉及一種Android軟件敏感行為監(jiān)控與攔截方法及系統(tǒng)。
背景技術(shù):
Android是一種以嵌入式Linux為基礎(chǔ)的開(kāi)放源碼的移動(dòng)操作系統(tǒng),主要應(yīng)用與智能手機(jī)、平板電腦等移動(dòng)智能終端,中文一般稱為“安卓”。Android系統(tǒng)是由四個(gè)邏輯層次構(gòu)成的,從底到上依次是Linux內(nèi)核層、C/C++函數(shù)庫(kù)層、應(yīng)用程序框架層、應(yīng)用程序?qū)?。Android平臺(tái)上的軟件也稱為Android應(yīng)用或者Android應(yīng)用程序。Android軟件的敏感行為是指可能給用戶帶來(lái)潛在安全威脅的行為,比如讀取GPS數(shù)據(jù)獲得用戶地理位置、后臺(tái)發(fā)送短信、撥打電話等。這類行為可能由正常軟件產(chǎn)生,也可能由惡意軟件產(chǎn)生。Android將系統(tǒng)服務(wù)托管在系統(tǒng)進(jìn)程com.android, phone, system_server和/system/bin/mediaserver中,軟件敏感行為的執(zhí)行過(guò)程本質(zhì)上是向系統(tǒng)服務(wù)發(fā)送請(qǐng)求并傳遞相關(guān)參數(shù),系統(tǒng)服務(wù)進(jìn)行操作后返回結(jié)果,采用的是C/S (Client/Server)模式。隨著搭載Andro i d系統(tǒng)的移動(dòng)智能終端,特別是智能手機(jī)的普及,針對(duì)Andro i d用戶的惡意軟件威脅越來(lái)越嚴(yán)重,逐漸形成了一條黑色產(chǎn)業(yè)鏈。這些惡意軟件通常偽裝成正常的應(yīng)用軟件或者游戲,欺騙用戶安裝。一旦進(jìn)入用戶手機(jī),就在后臺(tái)運(yùn)行,悄悄收集用戶的隱私信息,或者自動(dòng)發(fā)送短信、撥打電話定制付費(fèi)業(yè)務(wù),甚至竊取用戶的網(wǎng)銀密碼,極大危害了用戶的隱私和財(cái)產(chǎn)安全。根據(jù)《2013年I月手機(jī)安全報(bào)告》(報(bào)告地址:http://msm.qq.com/scan/news/secure_news_detail.jsp id=139)顯不,一個(gè)月內(nèi)新增的 Android 惡意軟件有26367個(gè),數(shù)目非常多。
軟件行為監(jiān)控和攔截技術(shù)在傳統(tǒng)的PC平臺(tái)上較為成熟,已經(jīng)被廣泛應(yīng)用于各類安全軟件上,能夠及時(shí)發(fā)現(xiàn)和阻止惡意軟件的危險(xiǎn)行為。但是目前在Android平臺(tái)上,軟件行為監(jiān)控和攔截技術(shù)尚不成熟。已有的Smali Hook技術(shù)需要事先對(duì)軟件進(jìn)行修改,靜態(tài)插入監(jiān)控代碼,破壞了軟件完整性和可用性,可能會(huì)導(dǎo)致軟件無(wú)法正常安裝和運(yùn)行;而且由于需要重新安裝系統(tǒng)中已經(jīng)存在的軟件,使用起來(lái)非常不方便;同時(shí)也無(wú)法實(shí)現(xiàn)對(duì)敏感行為的有效攔截,不能及時(shí)阻止惡意行為的執(zhí)行。
發(fā)明內(nèi)容
本發(fā)明提供了一種Android軟件敏感行為監(jiān)控與攔截方法及系統(tǒng),以解決無(wú)法及時(shí)發(fā)現(xiàn)并阻止惡意軟件敏感行為的問(wèn)題。為了達(dá)到上述目的,本發(fā)明公開(kāi)了一種Android軟件敏感行為監(jiān)控與攔截方法,其特征在于,包括以下步驟:步驟1:查找 Android 系統(tǒng)中 com.android, phone, system_server, /system/bin/meidaserver三個(gè)進(jìn)程的進(jìn)程號(hào)Process ID,即PID ;
步驟2:根據(jù)所述的PID分別對(duì)所述的三個(gè)進(jìn)程的運(yùn)行狀態(tài)進(jìn)行修改,執(zhí)行加載監(jiān)視器模塊指令,開(kāi)辟內(nèi)存空間并將用來(lái)加載監(jiān)視器模塊的指令寫(xiě)入其中;步驟3:分別更改所述的三個(gè)進(jìn)程的寄存器狀態(tài),使CPU跳轉(zhuǎn)執(zhí)行所述的指令;
步驟4:根據(jù)所述的指令,加載監(jiān)視器模塊到注入器模塊的內(nèi)存空間中,所述的監(jiān)視器模塊開(kāi)始初始化操作;步驟5:監(jiān)視器模塊在初始化結(jié)束后,查找當(dāng)前進(jìn)程的libbinder.so的初始地址,并定位ioctl函數(shù)在libbinder.so的全局對(duì)象列表Global Ojects Table中對(duì)應(yīng)的表項(xiàng)的地址,即GOT中對(duì)應(yīng)的表項(xiàng)的地址;步驟6:修改ioctl對(duì)應(yīng)的GOT表項(xiàng)的內(nèi)容,使用鉤子函數(shù)hooked_ioctl的地址進(jìn)行替換;步驟7:軟件執(zhí)行敏感行為時(shí),會(huì)通過(guò)ioctl與com.android, phone, system_server, /system/bin/mediaserver三個(gè)進(jìn)程的一個(gè)或者多個(gè)進(jìn)行通信和數(shù)據(jù)交換,鉤子函數(shù)hooked_ioctl讀取并解析軟件的敏感行為類型;步驟8:所述的監(jiān)視器模塊寫(xiě)入敏感行為的發(fā)起者和時(shí)間到日志文件中,得到軟件敏感行為監(jiān)控記錄;步驟9:所述的監(jiān)視器模塊監(jiān)控到敏感行為時(shí),發(fā)送消息給用戶,同時(shí)使敏感行為的操作暫停;步驟10:所述的用戶決定是否運(yùn)行敏感行為的執(zhí)行,返回同意或者拒絕命令給所述的監(jiān)視器模塊;步驟11:所述的監(jiān)視器模塊獲取所述的用戶選擇的結(jié)果,若用戶選擇同意則使敏感行為繼續(xù)執(zhí)行;若用戶選擇拒絕則終止敏感行為的繼續(xù)執(zhí)行。本發(fā)明還公開(kāi)了一種Android軟件敏感行為監(jiān)控與攔截系統(tǒng),其特征在于,包括:注入器模塊、監(jiān)視器模塊、攔截規(guī)則管理模塊、用戶交互模塊;所述的注入器模塊:用于查找Android 系統(tǒng)中 com.android, phone, system_server, /system/bin/meidaserver三個(gè)進(jìn)程的進(jìn)程號(hào)Process ID,即PID ;用于根據(jù)所述的PID分別對(duì)所述的三個(gè)進(jìn)程的運(yùn)行狀態(tài)進(jìn)行修改,加載監(jiān)視器模塊,開(kāi)辟內(nèi)存空間并將用來(lái)加載監(jiān)視器模塊的指令寫(xiě)入其中;用于分別更改所述的三個(gè)進(jìn)程的寄存器狀態(tài),使CPU跳轉(zhuǎn)執(zhí)行所述的加載監(jiān)視器模塊的指令;用于根據(jù)所述的指令,加載監(jiān)視器模塊到注入器模塊的內(nèi)存空間中;所述的監(jiān)視器模塊:用于執(zhí)行監(jiān)視器模塊初始化操作;用于查找當(dāng)前進(jìn)程的libbinder.so的初始地址,并定位ioctl函數(shù)在libbinder.so的全局對(duì)象列表Global Ojects Table中對(duì)應(yīng)的表項(xiàng)的地址,即GOT中對(duì)應(yīng)的表項(xiàng)的地址;用于修改ioctl對(duì)應(yīng)的GOT表項(xiàng)的內(nèi)容,使用鉤子函數(shù)hooked_ioctl的地址進(jìn)行替換;用于軟件執(zhí)行敏感行為時(shí),通過(guò)ioctl 與 com.android, phone, system_server, /system/bin/mediaserver三個(gè)進(jìn)程的一個(gè)或者多個(gè)進(jìn)行通信和數(shù)據(jù)交換,鉤子函數(shù)hooked_ioctl讀取并解析軟件的敏感行為類型;用于寫(xiě)入敏感行為的發(fā)起者和時(shí)間到日志文件中,得到軟件敏感行為監(jiān)控記錄;用于監(jiān)控到敏感行為時(shí),發(fā)送消息給用戶,同時(shí)使敏感行為的操作暫停;用于獲取所述的用戶選擇的結(jié)果,若用戶選擇同意則使敏感行為繼續(xù)執(zhí)行,若用戶選擇拒絕則終止敏感行為的繼續(xù)執(zhí)行;所述的用戶交互模塊:用于當(dāng)攔截規(guī)則未設(shè)置時(shí),提示用戶選擇允許或者拒絕軟件的敏感行為的執(zhí)行,用戶決定是否運(yùn)行敏感行為的執(zhí)行,返回同意或者拒絕命令給所述的監(jiān)視器模塊;所述的攔截規(guī)則管理模塊:用于設(shè)置每種敏感行為的攔截規(guī)則,所述的攔截規(guī)則為允許敏感行為的執(zhí)行或者拒絕敏感行為的執(zhí)行。相對(duì)于現(xiàn)有技術(shù),本發(fā)明具有以下特點(diǎn):首先,本發(fā)明不對(duì)軟件本身做任何修改,而是利用Android系統(tǒng)的Binder進(jìn)程間通信機(jī)制,在軟件執(zhí)行敏感行為與系統(tǒng)服務(wù)交換數(shù)據(jù)的過(guò)程中截獲并解析數(shù)據(jù),實(shí)現(xiàn)在軟件運(yùn)行期間對(duì)軟件敏感行的精確監(jiān)控,保證了軟件的完整性和可用性,完全不影響軟件的正常安裝和運(yùn)行。其次,本發(fā)明不需要重新安裝任何系統(tǒng)已經(jīng)存在的軟件,消除了已有技術(shù)重裝軟件給用戶帶來(lái)的不便。最后,本發(fā)明不僅能對(duì)軟件的敏感行為進(jìn)行監(jiān)控,還能對(duì)其及時(shí)進(jìn)行攔截,有效阻止惡意軟件的惡意行為,保護(hù)用戶的隱私和財(cái)產(chǎn)安全。
圖1:為本發(fā)明Android軟件的Binder進(jìn)程間通信機(jī)制示意圖。圖2:為本發(fā)明實(shí)施例Hook ioctl函數(shù)Hook前的示意圖。圖3:為本發(fā)明實(shí)施例Hook ioctl函數(shù)Hook后的示意圖。圖4:為本發(fā)明實(shí)施例進(jìn)程注入的流程圖。圖5:為本發(fā)明涉及的Binder進(jìn)程間通信機(jī)制的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)示意圖。圖6:為本發(fā)明的Android軟件敏感行為監(jiān)控與攔截系統(tǒng)的框架示意圖。
具體實(shí)施例方式本發(fā)明主要提供了一種Android軟件敏感行為監(jiān)控與攔截方法及系統(tǒng),為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明公開(kāi)了一種Android軟件敏感行為監(jiān)控與攔截方法,包括以下步驟:步驟1:查找 Android 系統(tǒng)中 com.android, phone, system_server, /system/bin/meidaserver三個(gè)進(jìn)程的進(jìn)程號(hào)Process ID,即PID ;步驟2:根據(jù)PID分別對(duì)三個(gè)進(jìn)程的運(yùn)行狀態(tài)進(jìn)行修改,執(zhí)行加載監(jiān)視器模塊指令,開(kāi)辟內(nèi)存空間并將用來(lái)加載監(jiān)視器模塊的指令寫(xiě)入其中;
步驟3:分別更改三個(gè)進(jìn)程的寄存器狀態(tài),使CPU跳轉(zhuǎn)執(zhí)行指令;步驟4:根據(jù)指令,加載監(jiān)視器模塊到注入器模塊的內(nèi)存空間中,監(jiān)視器模塊開(kāi)始初始化操作;步驟5:監(jiān)視器模塊在初始化結(jié)束后,查找當(dāng)前進(jìn)程的libbinder.so的初始地址,并定位ioctl函數(shù)在libbinder.so的全局對(duì)象列表Global Ojects Table中對(duì)應(yīng)的表項(xiàng)的地址,即GOT中對(duì)應(yīng)的表項(xiàng)的地址;步驟6:修改ioctl對(duì)應(yīng)的GOT表項(xiàng)的內(nèi)容,使用鉤子函數(shù)hooked_ioctl的地址進(jìn)行替換;步驟7:軟件執(zhí)行敏感行為時(shí),會(huì)通過(guò)ioctl與com.android, phone, system_server, /system/bin/mediaserver三個(gè)進(jìn)程的一個(gè)或者多個(gè)進(jìn)行通信和數(shù)據(jù)交換,鉤子函數(shù)hooked_ioctl讀取并解析軟件的敏感行為類型;步驟8:監(jiān)視器模塊寫(xiě)入敏感行為的發(fā)起者和時(shí)間到日志文件中,得到軟件敏感行為監(jiān)控記錄;步驟9:監(jiān)視器模塊監(jiān)控到敏感行為時(shí),發(fā)送消息給用戶,同時(shí)使敏感行為的操作
暫停;步驟10:用戶決定是否運(yùn)行敏感行為的執(zhí)行,返回同意或者拒絕命令給監(jiān)視器模塊,若用戶在一定時(shí)間范圍內(nèi)沒(méi)有做出選擇,監(jiān)視器模塊默認(rèn)按照拒絕命令處理敏感行為;步驟11:監(jiān)視器模塊獲取用戶選擇的結(jié)果,若用戶選擇同意則使敏感行為繼續(xù)執(zhí)行;若用戶選擇拒絕則終止敏感行為的繼續(xù)執(zhí)行;用戶也可以預(yù)先通過(guò)設(shè)置攔截規(guī)則,告訴監(jiān)視器模塊對(duì)具體軟件的具體敏感行為進(jìn)行攔截,監(jiān)視器模塊不再發(fā)送消息給用戶并等待用戶選擇。本發(fā)明的Android軟件敏感行為監(jiān)控和攔截方法,用于監(jiān)控和攔截Android軟件運(yùn)行期間的敏感行為。其中,所述監(jiān)控和攔截方法是基于Android系統(tǒng)的Binder進(jìn)程間通信機(jī)制的,利用該機(jī)制的原因有以下兩點(diǎn):1.Android系統(tǒng)中諸如短信操作,電話操作,視頻音頻捕獲,傳感器等都以服務(wù)(Service)的形式提供,并由相應(yīng)的Server負(fù)責(zé)管理,應(yīng)用程序作為Client只需要與這些Server建立連接并發(fā)送請(qǐng)求便能使用這些服務(wù)。因此,開(kāi)發(fā)者完全不必關(guān)心Service的實(shí)現(xiàn)細(xì)節(jié),直接與Server建立連接然后使用其提供的接口即可。為了保證系統(tǒng)安全性,提高通信效率以及提供對(duì)C/S模式的支持,Android采用了基于共享內(nèi)存的進(jìn)程間通信機(jī)制-Binder機(jī)制;2.Client和Server使用Binder機(jī)制進(jìn)行進(jìn)程間通信時(shí),通過(guò)分析Client發(fā)往Server的數(shù)據(jù)或者分析Server讀取的Client的請(qǐng)求數(shù)據(jù),便可以識(shí)別出Client的具體行為。例如,當(dāng)Client想要得到定位信息,請(qǐng)求LocationServer獲取定位數(shù)據(jù)時(shí),會(huì)訪問(wèn)LocationServer 的 ILocationManager 接口,發(fā)往 LocationServer 中的有效負(fù)載數(shù)據(jù)中包含 “android, location.1LocationManager” 字符串。所以我們分析 LocationServer 讀取的Client發(fā)來(lái)的請(qǐng)求數(shù)據(jù),判斷其中是否包含“android, location.1LocationManager我們就可以知道Client是否正在試圖訪問(wèn)用戶的地理位置信息。因此,可以通過(guò)對(duì)Binder進(jìn)程間通信的操作實(shí)現(xiàn)對(duì)軟件敏感行為的監(jiān)控和攔截。
Binder進(jìn)程間通信機(jī)制的示意圖如附圖1所示:Android在內(nèi)核掛載了一個(gè)虛擬的設(shè)備/dev/binder。Client和Server進(jìn)程運(yùn)行在用戶空間,使用Binder機(jī)制進(jìn)行進(jìn)程間通信時(shí),雙方看起來(lái)是“直接”通信的,實(shí)際上通過(guò)/dev/binder的驅(qū)動(dòng)程序即Binder驅(qū)動(dòng)進(jìn)行了數(shù)據(jù)的中轉(zhuǎn)。Binder機(jī)制的本質(zhì)是共享內(nèi)存,共享內(nèi)存區(qū)的管理完全由Binder驅(qū)動(dòng)來(lái)完成,對(duì)應(yīng)用層的Client和Server來(lái)說(shuō)是完全透明的。Client和Server均通過(guò)函數(shù)ioctl與Binder驅(qū)動(dòng)進(jìn)行數(shù)據(jù)交互。因此,Hook ioctl函數(shù)并分析其中的數(shù)據(jù),從而識(shí)別軟件的敏感行為,是本發(fā)明的關(guān)鍵之一。請(qǐng)見(jiàn)附圖2和附圖3,本實(shí)施例以監(jiān)控和攔截錄音、拍照行為時(shí)關(guān)注的mediaserver進(jìn)程為例,說(shuō)明Hook ioctl函數(shù)的方法:mediaserver進(jìn)程加載了 Iibbiner.so共享庫(kù)模塊,該模塊中又依賴libc.so共享庫(kù),并從libc.so共享庫(kù)中導(dǎo)入ioctl函數(shù);libbinder.so 為了使用 ioctl 函數(shù),會(huì)在自己的 GOT (Global Objects Table,全局符號(hào)表)中保存ioctl函數(shù)的地址。因此,只需要用hooked_ioctl函數(shù)的地址替換ioctl函數(shù)在libbinder.so共享庫(kù)的GOT中的地址,就能達(dá)到對(duì)ioctl函數(shù)的Hook。這樣,在mediaserver每次調(diào)用ioctl函數(shù)進(jìn)行Binder進(jìn)程間通信時(shí),實(shí)際上調(diào)用的是hooked_ioctl函數(shù),本發(fā)明在hookecLioctl函數(shù)中對(duì)進(jìn)程間通信數(shù)據(jù)進(jìn)行分析,從中識(shí)別出軟件的敏感行為,達(dá)到監(jiān)控敏感行為的目的;當(dāng)直接過(guò)濾掉通信數(shù)據(jù)時(shí),就達(dá)到了攔截敏感行為的目的。Hook ioctl函數(shù)的過(guò)程被封裝為d0_h00k函數(shù),關(guān)鍵代碼如下所示:
權(quán)利要求
1.一種Android軟件敏感行為監(jiān)控與攔截方法,其特征在于,包括以下步驟: 步驟 1:查找 Android 系統(tǒng)中 com.android, phone, system_server, /system/bin/meidaserver三個(gè)進(jìn)程的進(jìn)程號(hào)Process ID,即PID ; 步驟2:根據(jù)所述的PID分別對(duì)所述的三個(gè)進(jìn)程的運(yùn)行狀態(tài)進(jìn)行修改,執(zhí)行加載監(jiān)視器模塊指令,開(kāi)辟內(nèi)存空間并將用來(lái)加載監(jiān)視器模塊的指令寫(xiě)入其中; 步驟3:分別更改所述的三個(gè)進(jìn)程的寄存器狀態(tài),使CPU跳轉(zhuǎn)執(zhí)行所述的指令; 步驟4:根據(jù)所述的指令,加載監(jiān)視器模塊到注入器模塊的內(nèi)存空間中,所述的監(jiān)視器模塊開(kāi)始初始化操作; 步驟5:監(jiān)視器模塊在初始化結(jié)束后,查找當(dāng)前進(jìn)程的libbinder.so的初始地址,并定位ioctl函數(shù)在libbinder.so的全局對(duì)象列表Global Ojects Table中對(duì)應(yīng)的表項(xiàng)的地址,即GOT中對(duì)應(yīng)的表項(xiàng)的地址; 步驟6:修改ioctl對(duì)應(yīng)的GOT表項(xiàng)的內(nèi)容,使用鉤子函數(shù)hooked_ioctl的地址進(jìn)行替換; 步驟7:軟件執(zhí)行敏感行為時(shí),會(huì)通過(guò)ioctl與com.android, phone, system_server,/system/bin/mediaserver三個(gè)進(jìn)程的一個(gè)或者多個(gè)進(jìn)行通信和數(shù)據(jù)交換,鉤子函數(shù)hooked_ioctl讀取并解析軟件的敏感行為類型; 步驟8:所述的監(jiān)視器模塊寫(xiě)入敏感行為的發(fā)起者和時(shí)間到日志文件中,得到軟件敏感行為監(jiān)控記錄; 步驟9:所述的監(jiān)視器模塊監(jiān)控到敏感行為時(shí),發(fā)送消息給用戶,同時(shí)使敏感行為的操作暫停; 步驟10:所述的用戶決定是否運(yùn)行敏感行為的執(zhí)行,返回同意或者拒絕命令給所述的監(jiān)視器模塊; 步驟11:所述的監(jiān)視器模塊獲取所述的用戶選擇的結(jié)果,若用戶選擇同意則使敏感行為繼續(xù)執(zhí)行;若用戶選擇拒絕則終止敏感行為的繼續(xù)執(zhí)行。
2.根據(jù)權(quán)利要求1所述的Android軟件敏感行為監(jiān)控與攔截方法,其特征在于:所述的用戶預(yù)先通過(guò)設(shè)置攔截規(guī)則,告訴所述的監(jiān)視器模塊對(duì)具體軟件的具體敏感行為進(jìn)行攔截,所述的監(jiān)視器模塊不再發(fā)送消息給所述的用戶并等待所述的用戶選擇。
3.根據(jù)權(quán)利要求1所述的Android軟件敏感行為監(jiān)控與攔截方法,其特征在于:所述的步驟10中,若所述的用戶在一定時(shí)間范圍內(nèi)沒(méi)有做出選擇,所述的監(jiān)視器模塊默認(rèn)按照拒絕命令處理所述的敏感行為。
4.一種Android軟件敏感行為監(jiān)控與攔截系統(tǒng),其特征在于,包括:注入器模塊、監(jiān)視器模塊、攔截規(guī)則管理模塊、用戶交互模塊; 所述的注入器模塊: 用于查找 Android 系統(tǒng)中 com.android, phone, system_server, /system/bin/meidaserver三個(gè)進(jìn)程的進(jìn)程號(hào)Process ID,即PID ; 用于根據(jù)所述的PID分別對(duì)所述的三個(gè)進(jìn)程的運(yùn)行狀態(tài)進(jìn)行修改,加載監(jiān)視器模塊,開(kāi)辟內(nèi)存空間并將用來(lái)加載監(jiān)視器模塊的指令寫(xiě)入其中; 用于分別更改所述的三個(gè)進(jìn)程的寄存器狀態(tài),使CPU跳轉(zhuǎn)執(zhí)行所述的加載監(jiān)視器模塊的指令;用于根據(jù)所述的指令,加載監(jiān)視器模塊到自己的內(nèi)存空間中; 所述的監(jiān)視器模塊: 用于執(zhí)行監(jiān)視器模塊初始化操作;用于查找當(dāng)前進(jìn)程的libbinder.so的初始地址,并定位ioctl函數(shù)在libbinder.so的全局對(duì)象列表Global Ojects Table中對(duì)應(yīng)的表項(xiàng)的地址,S卩GOT中對(duì)應(yīng)的表項(xiàng)的地址;用于修改ioctl對(duì)應(yīng)的GOT表項(xiàng)的內(nèi)容,使用鉤子函數(shù)hooked_ioctl的地址進(jìn)行替換; 用于軟件執(zhí)行敏感行為時(shí),通過(guò)ioctl與com.android, phone, system_server, /system/bin/mediaserver三個(gè)進(jìn)程的一個(gè)或者多個(gè)進(jìn)行通信和數(shù)據(jù)交換,鉤子函數(shù)hooked_ioctl讀取并解析軟件的敏感行為類型; 用于寫(xiě)入敏感行為的發(fā)起者和時(shí)間到日志文件中,得到軟件敏感行為監(jiān)控記錄; 用于監(jiān)控到敏感行為時(shí),發(fā)送消息給用戶,同時(shí)使敏感行為的操作暫停; 用于獲取所述的用戶選擇的結(jié)果,若用戶選擇同意則使敏感行為繼續(xù)執(zhí)行,若用戶選擇拒絕則終止敏感行為的繼續(xù)執(zhí)行; 所述的用戶交互模塊: 用于當(dāng)攔截規(guī)則未設(shè)置時(shí), 提示用戶選擇允許或者拒絕軟件的敏感行為的執(zhí)行,用戶決定是否運(yùn)行敏感行為的執(zhí)行,返回同意或者拒絕命令給所述的監(jiān)視器模塊; 所述的攔截規(guī)則管理模塊: 用于設(shè)置每種敏感行為的攔截規(guī)則,所述的攔截規(guī)則為允許敏感行為的執(zhí)行或者拒絕敏感行為的執(zhí)行。
5.根據(jù)權(quán)利要求4所述的Android軟件敏感行為監(jiān)控與攔截系統(tǒng),其特征在于:所述的系統(tǒng)還包括:數(shù)據(jù)庫(kù)模塊,用于存儲(chǔ)設(shè)置的攔截規(guī)則。
全文摘要
本發(fā)明屬于智能手機(jī)安全技術(shù)領(lǐng)域,涉及一種Android系統(tǒng)的安全加固方法,特別是涉及一種Android軟件敏感行為監(jiān)控與攔截方法及系統(tǒng)。本發(fā)明的Android軟件敏感行為監(jiān)控和攔截方法,用于監(jiān)控和攔截Android軟件運(yùn)行期間的敏感行為,其中,所述的監(jiān)控和攔截方法是基于Android系統(tǒng)的Binder進(jìn)程間通信機(jī)制的,所述的監(jiān)控與攔截系統(tǒng),包括注入器模塊、監(jiān)視器模塊、攔截規(guī)則管理模塊、用戶交互模塊。本發(fā)明不需要對(duì)系統(tǒng)進(jìn)行任何修改,即能實(shí)時(shí)、準(zhǔn)確地監(jiān)控軟件的敏感行為,并能根據(jù)用戶的需要對(duì)敏感行為進(jìn)行攔截,對(duì)及時(shí)發(fā)現(xiàn)和阻止惡意軟件侵害用戶的隱私和財(cái)產(chǎn)安全是非常有效的。
文檔編號(hào)G06F21/56GK103198255SQ20131011592
公開(kāi)日2013年7月10日 申請(qǐng)日期2013年4月3日 優(yōu)先權(quán)日2013年4月3日
發(fā)明者彭國(guó)軍, 邵玉如, 李晶雯, 肖云倡 申請(qǐng)人:武漢大學(xué)