專(zhuān)利名稱(chēng):一種Android應(yīng)用程序的安全檢測(cè)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及軟件安全技術(shù)領(lǐng)域,特別是涉及ー種Android應(yīng)用程序的安全檢測(cè)方法及系統(tǒng)。
背景技術(shù):
Android是ー種以Linux為基礎(chǔ)的開(kāi)放源碼操作系統(tǒng),主要使用于手機(jī)等移動(dòng)終端,目前尚未有統(tǒng)一中文名稱(chēng)。Android平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,Android應(yīng)用程序即指Android平臺(tái)下的應(yīng)用軟件。隨著Android智能手機(jī)的普及,逐漸形成了一條針對(duì)Android系統(tǒng)的惡意軟件的產(chǎn)業(yè)鏈。這些惡意軟件通常偽裝成正常的應(yīng)用軟件或者游戲欺騙用戶(hù)安裝,一旦進(jìn)入用戶(hù) 手機(jī),就在后臺(tái)悄悄定制SP服務(wù)或撥打付費(fèi)電話吸取用戶(hù)話費(fèi),或者收集用戶(hù)的隱私,或者竊取用戶(hù)的網(wǎng)銀和第三方支付密碼以實(shí)施進(jìn)一歩的盜竊。據(jù)統(tǒng)計(jì),目前已有超過(guò)8000種Android惡意軟件,超過(guò)500萬(wàn)部Android手機(jī)遭到了感染。針對(duì)這些眾多的Android惡意軟件,各個(gè)致カ于軟件殺毒的公司相繼推出了Android平臺(tái)的殺毒軟件。但是,它們的殺毒引擎主要移植自PC上的殺毒引擎,采用傳統(tǒng)PC殺毒的思路,按照文件進(jìn)行查殺,甚至對(duì)在Android手機(jī)上根本無(wú)法運(yùn)行的文件都會(huì)進(jìn)行掃描,導(dǎo)致掃描速度慢、掃描效率低的問(wèn)題;而且,掃描算法采用提取文件片段計(jì)算CRC (Cyclic Redundancy Check,循環(huán)冗余校驗(yàn)碼)和 MD5 (Message Digest Algorithm,消息摘要算法第五版)再在本地?cái)?shù)據(jù)庫(kù)中查找的方法,通用性不高,容易導(dǎo)致誤報(bào),誤報(bào)率較聞。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┝拴`種Android應(yīng)用程序的安全檢測(cè)方法及系統(tǒng),以解決現(xiàn)有的Andro i d平臺(tái)的殺毒方法掃描速度慢、誤報(bào)率高的問(wèn)題。為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了ー種Android應(yīng)用程序的安全檢測(cè)方法,包括掃描Android安裝包,并從所述Android安裝包中提取出指定的特征信息;將所述指定的特征信息上傳到服務(wù)器,在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;接收服務(wù)器返回的針對(duì)所述Android安裝包的安全檢測(cè)結(jié)果,并在客戶(hù)端用戶(hù)界面顯示,所述安全檢測(cè)結(jié)果中包含服務(wù)器查找到的特征記錄對(duì)應(yīng)的安全級(jí)別。優(yōu)選地,所述方法還包括在本地預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述本地預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;將本地查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的本地安全檢測(cè)結(jié)果中。優(yōu)選地,所述方法還包括將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,如果在本地預(yù)置的安全識(shí)別庫(kù)中查找到與所有指定的單個(gè)特征信息或其組合相匹配的特征記錄,則所述方法還包括取消將所述指定的特征信息上傳到服務(wù)器,并將所述本地安全檢測(cè)結(jié)果在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,如果在本地預(yù)置的安全識(shí)別庫(kù)中查找到與部分指定的單個(gè)特征信息或其組合相匹配的特征記錄,則將全部或剰余部分的指定的特征信息上傳到服務(wù)器查找,其中,所述剩余部分的指定的特征信息為未在本地查找到相匹配的特征記錄的特征信息;將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,所述在本地預(yù)置的安全識(shí)別庫(kù)中查找之前,還包括依據(jù)預(yù)設(shè)的配置信息,確定直接將所述指定的特征信息上傳到服務(wù)器查找,或者直接在本地查找,或者提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。優(yōu)選地,當(dāng)所述配置信息表示不允許提供本地預(yù)置的安全識(shí)別庫(kù)時(shí),確定直接將 所述指定的特征信息上傳到服務(wù)器查找;當(dāng)所述配置信息表示優(yōu)先在本地查找時(shí),確定直接在本地查找;當(dāng)所述配置信息表示優(yōu)先由用戶(hù)選擇時(shí),確定提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。優(yōu)選地,所述在本地預(yù)置的或服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄,包括將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合;從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。優(yōu)選地,所述安全檢測(cè)結(jié)果還包括以下至少ー項(xiàng)行為描述信息,軟件描述信息,時(shí)間戳信息。本申請(qǐng)還提供了ー種Android應(yīng)用程序的安全檢測(cè)方法,包括接收上傳的指定的特征信息,所述指定的特征信息是從Android安裝包中提取而出;在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;將查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的安全檢測(cè)結(jié)果中發(fā)送。優(yōu)選地,當(dāng)在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中未查找到相匹配的特征記錄時(shí),還包括識(shí)別所述指定的特征信息,并根據(jù)識(shí)別結(jié)果確定與所述指定的單個(gè)特征信息或其組合相匹配的特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別;將所述特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別更新到所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中。優(yōu)選地,所述在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄,包括將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合;從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。
優(yōu)選地,在查找過(guò)程中,針對(duì)特征個(gè)數(shù)相同的多項(xiàng)特征組合,按照預(yù)先設(shè)定的先后順序進(jìn)行查找;針對(duì)單個(gè)特征信息,按照預(yù)先設(shè)定的先后順序進(jìn)行查找。優(yōu)選地,所述上傳的指定的特征信息包括以下中的一種或幾種組合Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值;其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件。優(yōu)選地,所述安全識(shí)別庫(kù)中的特征信息包括以下中的ー種或幾種組合各種樣本Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件 service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值;其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件;其中,所述樣本Android安裝包包括各種安全級(jí)別下的Android安裝包。本申請(qǐng)還提供了ー種Android應(yīng)用程序的安全檢測(cè)系統(tǒng),設(shè)置在客戶(hù)端,包括特征提取模塊,用于掃描Android安裝包,并從所述Android安裝包中提取出指定的特征信息;上傳模塊,用于將所述指定的特征信息上傳到服務(wù)器,在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,姆條特征記錄中包含單個(gè)特征信息或特征信息的組合;顯示模塊,用于接收服務(wù)器返回的針對(duì)所述Android安裝包的安全檢測(cè)結(jié)果,并在客戶(hù)端用戶(hù)界面顯示,所述安全檢測(cè)結(jié)果中包含服務(wù)器查找到的特征記錄對(duì)應(yīng)的安全級(jí)別。優(yōu)選地,所述系統(tǒng)還包括本地檢測(cè)模塊,用于在本地預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述本地預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;還用于將本地查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的本地安全檢測(cè)結(jié)果中。優(yōu)選地,所述系統(tǒng)還包括合并模塊,用于將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后通過(guò)所述顯示模塊在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,所述系統(tǒng)還包括取消上傳模塊,用于當(dāng)所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找到與所有指定的單個(gè)特征信息或其組合相匹配的特征記錄時(shí),取消將所述指定的特征信息上傳到服務(wù)器,并通過(guò)所述顯示模塊將所述本地安全檢測(cè)結(jié)果在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,所述系統(tǒng)還包括當(dāng)所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找到與部分指定的單個(gè)特征信息或其組合相匹配的特征記錄,則所述上傳模塊將全部或剰余部分的指定的特征信息上傳到服務(wù)器查找,其中,所述剩余部分的指定的特征信息為未在本地查找到相匹配的特征記錄的特征信息;所述合并模塊將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后通過(guò)所述顯示模塊在客戶(hù)端用戶(hù)界面顯示。優(yōu)選地,所述系統(tǒng)還包括模式選擇模塊,用于所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找之前,依據(jù)預(yù)設(shè)的配置信息,確定直接將所述指定的特征信息上傳到服務(wù)器查找,或者直接在本地查找,或者提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。優(yōu)選地,當(dāng)所述配置信息表示不允許提供本地預(yù)置的安全識(shí)別庫(kù)時(shí),確定直接將所述指定的特征信息上傳到服務(wù)器查找;當(dāng)所述配置信息表示優(yōu)先在本地查找時(shí),確定直接在本地查找;當(dāng)所述配置信息表示優(yōu)先由用戶(hù)選擇時(shí),確定提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。本申請(qǐng)還提供了ー種Android應(yīng)用程序的安全檢測(cè)系統(tǒng),設(shè)置在服務(wù)器,包括接收模塊,用于接收上傳的指定的特征信息,所述指定的特征信息是從Android安裝包中提取而出;網(wǎng)絡(luò)檢測(cè)模塊,用于在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng) 的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;發(fā)送模塊,用于將查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的安全檢測(cè)結(jié)果中發(fā)送。優(yōu)選地,所述系統(tǒng)還包括特征識(shí)別模塊,用于當(dāng)所述網(wǎng)絡(luò)檢測(cè)模塊在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中未查找到相匹配的特征記錄時(shí),識(shí)別所述指定的特征信息,并根據(jù)識(shí)別結(jié)果確定與所述指定的單個(gè)特征信息或其組合相匹配的特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別;更新模塊,用于將所述特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別更新到所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中。優(yōu)選地,所述網(wǎng)絡(luò)檢測(cè)模塊包括特征組合子模塊,用于將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合;第一查找子模塊,用于從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄;第二查找子模塊,用于當(dāng)?shù)谝徊檎易幽K未查找到時(shí),逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄;第三查找子模塊,用于當(dāng)?shù)诙檎易幽K未查找到時(shí),在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。優(yōu)選地,所述第二查找子模塊在查找過(guò)程中,針對(duì)特征個(gè)數(shù)相同的多項(xiàng)特征組合,按照預(yù)先設(shè)定的先后順序進(jìn)行查找;所述第三查找子模塊針對(duì)單個(gè)特征信息,按照預(yù)先設(shè)定的先后順序進(jìn)行查找。優(yōu)選地,,所述上傳的指定的特征信息包括以下中的一種或幾種組合=Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值;其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件。優(yōu)選地,所述安全識(shí)別庫(kù)中的特征信息包括以下中的一種或幾種組合各種樣本Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值;其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes, dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件;其中,所述樣本Android安裝包包括各種安全級(jí)別下的Android安裝包。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)首先,本申請(qǐng)?zhí)峁┑尼槍?duì)Android應(yīng)用程序的安全檢測(cè),并不是對(duì)Android系統(tǒng)中的所有文件進(jìn)行掃描,而是通過(guò)掃描Android安裝包來(lái)進(jìn)行安全檢測(cè)。由于Android上的病毒、木馬和其他惡意軟件想要進(jìn)入用戶(hù)的手機(jī),需要打包成Android安裝包的形式。反過(guò)來(lái)說(shuō),如果不是ー個(gè)合法的Android安裝包,它就無(wú)法安裝到用戶(hù)手機(jī)上,也就不會(huì)對(duì)用戶(hù)產(chǎn)生危害?;谶@一點(diǎn),殺毒引擎可以把查殺的目標(biāo)集中到對(duì)Android安裝包的掃描上,從而大大提聞掃描的效率。其次,本申請(qǐng)從Android安裝包中提取出指定的特征進(jìn)行檢測(cè),如將包名、版本號(hào)、數(shù)字簽名、Android組件receiver、service、activity中的信息等作為指定的特征,這些指定的特征對(duì)于檢測(cè)最具代表性,因此與移植自PC上的傳統(tǒng)殺毒引擎相比,本申請(qǐng)準(zhǔn)確抓住了 Android平臺(tái)下應(yīng)用的幾大關(guān)鍵特征,使得掃描速度快、查殺準(zhǔn)確率高。再次,本申請(qǐng)將客戶(hù)端檢測(cè)與服務(wù)器檢測(cè)相結(jié)合,不僅可以在客戶(hù)端本地對(duì)Android應(yīng)用程序進(jìn)行安全檢測(cè),還可以將提取的特征上傳到服務(wù)器檢測(cè)。由于服務(wù)器設(shè)置的安全識(shí)別庫(kù)時(shí)常保持更新,無(wú)論哪個(gè)客戶(hù)端或人工識(shí)別出新的或變種的病毒、木馬等特征,都會(huì)立即更新到該庫(kù)中,所以該庫(kù)中的特征更大、更全,可以檢測(cè)出客戶(hù)端本地檢測(cè)不 到的特征,因此對(duì)各種惡意軟件的變種識(shí)別能力大大增強(qiáng)。再次,本申請(qǐng)進(jìn)行的檢測(cè)提供了安全、危險(xiǎn)、謹(jǐn)慎和木馬四個(gè)安全級(jí)別,不僅可以檢測(cè)出病毒、木馬和其他惡意軟件,還可以將正常的應(yīng)用、存在安全風(fēng)險(xiǎn)的應(yīng)用和雖然正常但存在一些問(wèn)題的應(yīng)用全部檢測(cè)出來(lái)。因此,本申請(qǐng)對(duì)Android應(yīng)用程序的檢測(cè)不局限于傳統(tǒng)的查毒檢測(cè),而是可以為用戶(hù)提供安全、危險(xiǎn)、謹(jǐn)慎等更多的提示。最后,本申請(qǐng)對(duì)提取出的各項(xiàng)特征進(jìn)行安全檢測(cè)時(shí),采用對(duì)各項(xiàng)特征進(jìn)行組合查詢(xún)的方式,進(jìn)ー步提高了檢測(cè)效率和檢測(cè)的準(zhǔn)確率。當(dāng)然,實(shí)施本申請(qǐng)的任一產(chǎn)品不一定需要同時(shí)達(dá)到以上所述的所有優(yōu)點(diǎn)。
圖I是是本申請(qǐng)實(shí)施例中Android系統(tǒng)的架構(gòu)設(shè)計(jì)圖;圖2是本申請(qǐng)實(shí)施例所述ー種Android應(yīng)用程序的安全檢測(cè)方法流程圖;圖3是本申請(qǐng)另ー實(shí)施例所述ー種Android應(yīng)用程序的安全檢測(cè)方法流程圖;圖4是本申請(qǐng)另ー實(shí)施例所述ー種Android應(yīng)用程序的安全檢測(cè)方法流程圖;圖5是本申請(qǐng)另ー實(shí)施例所述ー種針對(duì)Android應(yīng)用程序的服務(wù)器側(cè)的安全檢測(cè)流程圖;圖6是本申請(qǐng)實(shí)施例所述在安全識(shí)別庫(kù)中進(jìn)行查找的流程圖;圖7是本申請(qǐng)另ー實(shí)施例所述在安全識(shí)別庫(kù)中進(jìn)行查找的流程圖;圖8是本申請(qǐng)實(shí)施例所述ー種設(shè)在客戶(hù)端針對(duì)Android應(yīng)用程序的安全檢測(cè)系統(tǒng)的結(jié)構(gòu)圖;圖9是本申請(qǐng)另ー實(shí)施例所述ー種設(shè)在客戶(hù)端針對(duì)Android應(yīng)用程序的安全檢測(cè)系統(tǒng)的結(jié)構(gòu)圖;圖10是本申請(qǐng)另ー實(shí)施例所述ー種設(shè)在客戶(hù)端針對(duì)Android應(yīng)用程序的安全檢測(cè)系統(tǒng)的結(jié)構(gòu)圖;圖11是本申請(qǐng)實(shí)施例所述ー種設(shè)在服務(wù)器針對(duì)Android應(yīng)用程序的安全檢測(cè)系統(tǒng)的結(jié)構(gòu)圖12是本申請(qǐng)另ー實(shí)施例所述ー種設(shè)在服務(wù)器針對(duì)Android應(yīng)用程序的安全檢測(cè)系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。分析現(xiàn)有技術(shù)中的各種殺毒引擎,由于移植自PC上的殺毒引擎,主要針對(duì)的是PC系統(tǒng)的特性而設(shè)計(jì),而PC系統(tǒng)與Android系統(tǒng)既有相同的特性,也有不同的特性,但現(xiàn)有技術(shù)并沒(méi)有深入理解Android系統(tǒng)本身的特點(diǎn),因此并不完全適合于Android系統(tǒng)的殺毒,存在著掃描速度慢、誤報(bào)率高的問(wèn)題。基于此,本申請(qǐng)結(jié)合Android系統(tǒng)本身的特點(diǎn),提出ー種專(zhuān)門(mén)針對(duì)Android系統(tǒng)特性而設(shè)計(jì)的殺毒方法,下面先介紹設(shè)計(jì)思路。
在Android系統(tǒng)上,一個(gè)可以安裝、運(yùn)行的應(yīng)用,需要打包成Android系統(tǒng)的APK文件格式。APK 是 Android application package file 的縮寫(xiě),簡(jiǎn)稱(chēng) APK 文件,即 Android安裝包,也可以理解為Android終端上安裝的應(yīng)用軟件。APK文件其實(shí)是ZIP文件格式,但后綴名被修改為apk,通過(guò)Unzip等工具解壓可以看到其內(nèi)部的文件結(jié)構(gòu),如下表所示
文件名說(shuō)明
META-INF\ [|該 H 及ド-Ix {{ MANiFEST.MF 和
誠(chéng).RSA5 .SF結(jié)M的義件,這Il支件丫其 它I hA義ft的證15簽名,Android糸統(tǒng)/li安裝 APK安裝包的時(shí)候會(huì)逐個(gè)檢—ft APK內(nèi)部 f 件足古1J木Il^id邊的Ul-: 15簽名-致,如 采小-致.丨刺認(rèn)-M義件Li被η改,Ji ·:絕a apk 的安裝和運(yùn) .
res\iMIt^ K坫Android向|f]所使用的閣片、文.
權(quán)利要求
1.ー種Android應(yīng)用程序的安全檢測(cè)方法,其特征在于,包括 掃描Android安裝包,并從所述Android安裝包中提取出指定的特征信息;將所述指定的特征信息上傳到服務(wù)器,在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合;接收服務(wù)器返回的針對(duì)所述Android安裝包的安全檢測(cè)結(jié)果,并在客戶(hù)端用戶(hù)界面顯示,所述安全檢測(cè)結(jié)果中包含服務(wù)器查找到的特征記錄對(duì)應(yīng)的安全級(jí)別。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 在本地預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述本地預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合; 將本地查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的本地安全檢測(cè)結(jié)果中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括 將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后在客戶(hù)端用戶(hù)界面顯示。
4.根據(jù)權(quán)利要求2所述的方法,其特征在干, 如果在本地預(yù)置的安全識(shí)別庫(kù)中查找到與所有指定的單個(gè)特征信息或其組合相匹配的特征記錄,則還包括 取消將所述指定的特征信息上傳到服務(wù)器,并將所述本地安全檢測(cè)結(jié)果在客戶(hù)端用戶(hù)界面顯示。
5.根據(jù)權(quán)利要求2所述的方法,其特征在干, 如果在本地預(yù)置的安全識(shí)別庫(kù)中查找到與部分指定的單個(gè)特征信息或其組合相匹配的特征記錄,則將全部或剰余部分的指定的特征信息上傳到服務(wù)器奎找,其中,所述剩余部分的指定的特征信息為未在本地查找到相匹配的特征記錄的特征信息; 將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后在客戶(hù)端用戶(hù)界面顯示。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在本地預(yù)置的安全識(shí)別庫(kù)中查找之前,還包括 依據(jù)預(yù)設(shè)的配置信息,確定直接將所述指定的特征信息上傳到服務(wù)器查找,或者直接在本地查找,或者提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于 當(dāng)所述配置信息表示不允許提供本地預(yù)置的安全識(shí)別庫(kù)時(shí),確定直接將所述指定的特征信息上傳到服務(wù)器查找; 當(dāng)所述配置信息表示優(yōu)先在本地查找時(shí),確定直接在本地查找; 當(dāng)所述配置信息表示優(yōu)先由用戶(hù)選擇時(shí),確定提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在本地預(yù)置的或服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄,包括將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合; 從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則 逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。
9.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述安全檢測(cè)結(jié)果還包括以下至少ー項(xiàng) 行為描述信息,軟件描述信息,時(shí)間戳信息。
10.ー種Android應(yīng)用程序的安全檢測(cè)方法,其特征在于,包括 接收上傳的指定的特征信息,所述指定的特征信息是從Android安裝包中提取而出;在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合; 將查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的安全檢測(cè)結(jié)果中發(fā)送。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,當(dāng)在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中未查找到相匹配的特征記錄時(shí),還包括 識(shí)別所述指定的特征信息,并根據(jù)識(shí)別結(jié)果確定與所述指定的單個(gè)特征信息或其組合相匹配的特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別; 將所述特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別更新到所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄,包括 將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合; 從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則 逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄,如果未查找到,則在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。
13.根據(jù)權(quán)利要求12所述的方法,其特征在干 在查找過(guò)程中,針對(duì)特征個(gè)數(shù)相同的多項(xiàng)特征組合,按照預(yù)先設(shè)定的先后順序進(jìn)行查找; 針對(duì)單個(gè)特征信息,按照預(yù)先設(shè)定的先后順序進(jìn)行查找。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述上傳的指定的特征信息包括以下中的一種或幾種組合 Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值; 其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件。
15.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述安全識(shí)別庫(kù)中的特征信息包括以下中的一種或幾種組合 各種樣本Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值; 其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件; 其中,所述樣本Android安裝包包括各種安全級(jí)別下的Android安裝包。
16.ー種Android應(yīng)用程序的安全檢測(cè)系統(tǒng),其特征在于,包括 特征提取模塊,用于掃描Android安裝包,并從所述Android安裝包中提取出指定的特征信息; 上傳模塊,用于將所述指定的特征信息上傳到服務(wù)器,在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,姆條特征記錄中包含單個(gè)特征信息或特征信息的組合; 顯示模塊,用于接收服務(wù)器返回的針對(duì)所述Android安裝包的安全檢測(cè)結(jié)果,并在客戶(hù)端用戶(hù)界面顯示,所述安全檢測(cè)結(jié)果中包含服務(wù)器查找到的特征記錄對(duì)應(yīng)的安全級(jí)別。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其特征在于,還包括 本地檢測(cè)模塊,用于在本地預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述本地預(yù)置的安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合; 還用于將本地查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的本地安全檢測(cè)結(jié)果中。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,還包括 合并模塊,用于將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后通過(guò)所述顯示模塊在客戶(hù)端用戶(hù)界面顯示。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,還包括 取消上傳模塊,用于當(dāng)所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找到與所有指定的單個(gè)特征信息或其組合相匹配的特征記錄時(shí),取消將所述指定的特征信息上傳到服務(wù)器,并通過(guò)所述顯示模塊將所述本地安全檢測(cè)結(jié)果在客戶(hù)端用戶(hù)界面顯示。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,還包括 當(dāng)所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找到與部分指定的單個(gè)特征信息或其組合相匹配的特征記錄,則所述上傳模塊將全部或剰余部分的指定的特征信息上傳到服務(wù)器查找,其中,所述剩余部分的指定的特征信息為未在本地查找到相匹配的特征記錄的特征信息; 所述合并模塊將服務(wù)器返回的安全檢測(cè)結(jié)果與所述本地安全檢測(cè)結(jié)果合并,合并后通過(guò)所述顯示模塊在客戶(hù)端用戶(hù)界面顯示。
21.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,還包括 模式選擇模塊,用于所述本地檢測(cè)模塊在本地預(yù)置的安全識(shí)別庫(kù)中查找之前,依據(jù)預(yù)設(shè)的配置信息,確定直接將所述指定的特征信息上傳到服務(wù)器查找,或者直接在本地查找,或者提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其特征在干 當(dāng)所述配置信息表示不允許提供本地預(yù)置的安全識(shí)別庫(kù)時(shí),確定直接將所述指定的特征信息上傳到服務(wù)器查找; 當(dāng)所述配置信息表示優(yōu)先在本地查找時(shí),確定直接在本地查找; 當(dāng)所述配置信息表示優(yōu)先由用戶(hù)選擇時(shí),確定提示用戶(hù)選擇在本地查找還是上傳到服務(wù)器查找。
23.—種Android應(yīng)用程序的安全檢測(cè)系統(tǒng),其特征在于,包括 接收模塊,用于接收上傳的指定的特征信息,所述指定的特征信息是從Android安裝包中提取而出; 網(wǎng)絡(luò)檢測(cè)模塊,用于在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;其中,所述安全識(shí)別庫(kù)中包含特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別,每條特征記錄中包含單個(gè)特征信息或特征信息的組合; 發(fā)送模塊,用于將查找到的特征記錄對(duì)應(yīng)的安全級(jí)別包含在所述Android安裝包的安全檢測(cè)結(jié)果中發(fā)送。
24.根據(jù)權(quán)利要求23所述的系統(tǒng),其特征在于,還包括 特征識(shí)別模塊,用于當(dāng)所述網(wǎng)絡(luò)檢測(cè)模塊在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中未查找到相匹配的特征記錄時(shí),識(shí)別所述指定的特征信息,并根據(jù)識(shí)別結(jié)果確定與所述指定的單個(gè)特征信息或其組合相匹配的特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別; 更新模塊,用于將所述特征記錄及特征記錄對(duì)應(yīng)的安全級(jí)別更新到所述服務(wù)器預(yù)置的安全識(shí)別庫(kù)中。
25.根據(jù)權(quán)利要求23所述的系統(tǒng),其特征在于,所述網(wǎng)絡(luò)檢測(cè)模塊包括 特征組合子模塊,用于將所述指定的特征信息進(jìn)行組合,得到至少包含兩個(gè)特征的各項(xiàng)特征組合; 第一查找子模塊,用于從包含最多特征的特征組合開(kāi)始,在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄; 第二查找子模塊,用于當(dāng)?shù)谝徊檎易幽K未查找到時(shí),逐個(gè)減少特征組合中的特征個(gè)數(shù),針對(duì)減少了特征個(gè)數(shù)的特征組合,繼續(xù)在所述安全識(shí)別庫(kù)中查找與所述特征組合相匹配的特征記錄; 第三查找子模塊,用于當(dāng)?shù)诙檎易幽K未查找到時(shí),在所述安全識(shí)別庫(kù)中查找與單個(gè)特征信息相匹配的特征記錄。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),其特征在干 所述第二查找子模塊在查找過(guò)程中,針對(duì)特征個(gè)數(shù)相同的多項(xiàng)特征組合,按照預(yù)先設(shè)定的先后順序進(jìn)行查找; 所述第三查找子模塊針對(duì)單個(gè)特征信息,按照預(yù)先設(shè)定的先后順序進(jìn)行查找。
27.根據(jù)權(quán)利要求23所述的系統(tǒng),其特征在于,所述上傳的指定的特征信息包括以下中的一種或幾種組合 Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值; 其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件。
28.根據(jù)權(quán)利要求23所述的系統(tǒng),其特征在于,所述安全識(shí)別庫(kù)中的特征信息包括以下中的一種或幾種組合 各種樣本Android安裝包的包名,版本號(hào),數(shù)字簽名,Android組件receiver的特征,Android組件service的特征,Android組件activity的特征,可執(zhí)行文件中的指令或字符串,Android安裝包目錄下各文件的MD5值; 其中,所述可執(zhí)行文件包括Dex文件,和/或,ELF文件;所述Dex文件包括classes,dex文件,擴(kuò)展名為.jar的文件,以及,Dex格式的文件; 其中,所述樣本Android安裝包包括各種安全級(jí)別下的Android安裝包。
全文摘要
本申請(qǐng)?zhí)峁┝艘环NAndroid應(yīng)用程序的安全檢測(cè)方法及系統(tǒng),以解決現(xiàn)有的Android平臺(tái)的殺毒方法掃描速度慢、誤報(bào)率高的問(wèn)題。所述方法包括掃描Android安裝包,并從所述Android安裝包中提取出指定的特征信息;將所述指定的特征信息上傳到服務(wù)器,在服務(wù)器預(yù)置的安全識(shí)別庫(kù)中查找與指定的單個(gè)特征信息或其組合相匹配的特征記錄;接收服務(wù)器返回的針對(duì)所述Android安裝包的安全檢測(cè)結(jié)果,并在客戶(hù)端用戶(hù)界面顯示,所述安全檢測(cè)結(jié)果中包含服務(wù)器查找到的特征記錄對(duì)應(yīng)的安全級(jí)別。本申請(qǐng)將客戶(hù)端檢測(cè)與服務(wù)器檢測(cè)相結(jié)合,掃描速度快、查殺準(zhǔn)確率高。
文檔編號(hào)G06F17/30GK102831338SQ20121021897
公開(kāi)日2012年12月19日 申請(qǐng)日期2012年6月28日 優(yōu)先權(quán)日2012年6月28日
發(fā)明者李濤, 張旭 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司