1.一種用于檢測(cè)惡意代碼的方法,應(yīng)用于終端上運(yùn)行的客戶端程序中,該方法包括:
響應(yīng)于所述客戶端程序接收的操作請(qǐng)求執(zhí)行選自以下群組中的一個(gè)或多個(gè)步驟來確定是否存在惡意代碼:
檢測(cè)啟動(dòng)所述終端的操作系統(tǒng)的系統(tǒng)應(yīng)用文件是否合法;
檢測(cè)所述操作系統(tǒng)提供的安裝包管理器中是否存在非法的程序包名;
檢測(cè)所述操作系統(tǒng)的進(jìn)程空間內(nèi)加載的文件中是否存在預(yù)設(shè)黑名單中的文件名;以及
遍歷所述終端上當(dāng)前所運(yùn)行進(jìn)程中的關(guān)鍵應(yīng)用程序接口API,檢測(cè)所述關(guān)鍵API的方法類型標(biāo)識(shí)是否合法。
2.如權(quán)利要求1所述的方法,其中,還包括:判斷所述操作請(qǐng)求的安全級(jí)別,在判斷所述操作請(qǐng)求的安全級(jí)別為第一級(jí)別時(shí),執(zhí)行所述的檢測(cè)關(guān)鍵API的方法類型標(biāo)識(shí)是否合法來確定是否存在惡意代碼。
3.如權(quán)利要求2所述的方法,其中,還包括:在判斷所述操作請(qǐng)求的安全級(jí)別為高于所述第一級(jí)別的第二級(jí)別時(shí),按順序執(zhí)行所述群組中的步驟,其中任一步驟確定存在惡意代碼則返回確定存在惡意代碼的結(jié)果。
4.如權(quán)利要求1-3任一項(xiàng)所述的方法,其中所述操作系統(tǒng)為安卓操作系統(tǒng),則所述的檢測(cè)啟動(dòng)所述終端的操作系統(tǒng)的系統(tǒng)應(yīng)用文件是否合法包括:
在所述操作系統(tǒng)的系統(tǒng)文件夾中定位app_process文件;
提取所述app_process文件的特征碼;
將所述提取的特征碼與已知的合法特征碼進(jìn)行對(duì)比校驗(yàn);以及
在所述提取的特征碼與所述合法特征碼一致時(shí)確定不存在惡意代碼,不一致時(shí)確定存在惡意代碼。
5.如權(quán)利要求1-3任一項(xiàng)所述的方法,其中所述操作系統(tǒng)為安卓操作系統(tǒng),則所述的檢測(cè)所述操作系統(tǒng)提供的安裝包管理器中是否存在非法的程序包名包括:
調(diào)用所述操作系統(tǒng)提供的與安裝包管理器PackageManager相關(guān)的API來遍歷已安裝程序包;
將所述已安裝程序包逐一與已知的非法程序包名進(jìn)行比對(duì);以及
在所述已安裝程序包中未發(fā)現(xiàn)與所述非法程序包名匹配的程序包時(shí)確定不存在惡意代碼,發(fā)現(xiàn)與所述非法程序包名匹配的程序包時(shí)確定存在惡意代碼。
6.如權(quán)利要求1-3任一項(xiàng)所述的方法,其中所述操作系統(tǒng)為安卓操作系統(tǒng),所述預(yù)設(shè)黑名單基于已知的惡意代碼來分析收集并存在于所述客戶端程序的源代碼中,則所述的檢測(cè)所述操作系統(tǒng)的進(jìn)程空間內(nèi)加載的文件中是否存在預(yù)設(shè)黑名單中的文件名包括:
遍歷所述進(jìn)程空間內(nèi)加載的文件;
將所述加載的文件逐一與所述預(yù)設(shè)黑名單中的特征文件進(jìn)行比對(duì);以及
在所述加載的文件中未發(fā)現(xiàn)與所述特征文件匹配的文件時(shí)確定不存在惡意代碼,發(fā)現(xiàn)與所述特征文件匹配的文件時(shí)確定存在惡意代碼。
7.如權(quán)利要求1-3任一項(xiàng)所述的方法,其中所述操作系統(tǒng)為安卓操作系統(tǒng),則所述的檢測(cè)所述關(guān)鍵API的方法類型標(biāo)識(shí)是否合法包括:
在檢測(cè)到所述方法類型標(biāo)識(shí)指示為java方法時(shí),確定不存在惡意代碼;以及
在檢測(cè)到所述方法類型標(biāo)識(shí)被修改為native類型時(shí),確定存在惡意代碼。
8.如權(quán)利要求1-3任一項(xiàng)所述的方法,還包括:
將確定是否存在惡意代碼的結(jié)果附在所述操作請(qǐng)求中,以使所述終端的操作系統(tǒng)根據(jù)所述結(jié)果返回對(duì)所述操作請(qǐng)求的響應(yīng)。
9.一種用于檢測(cè)惡意代碼的裝置,應(yīng)用于終端上運(yùn)行的客戶端程序中,該裝置包括:
操作請(qǐng)求響應(yīng)模塊,設(shè)置為響應(yīng)于所述客戶端程序接收的操作請(qǐng)求觸發(fā)選自以下群組中的一個(gè)或多個(gè)模塊來確定是否存在惡意代碼:
系統(tǒng)文件檢測(cè)模塊,設(shè)置為檢測(cè)啟動(dòng)所述終端的操作系統(tǒng)的系統(tǒng)應(yīng)用文件是否合法;
安裝包檢測(cè)模塊,設(shè)置為檢測(cè)所述操作系統(tǒng)提供的安裝包管理器中是否存在非法的程序包名;
進(jìn)程檢測(cè)模塊,設(shè)置為檢測(cè)所述操作系統(tǒng)的進(jìn)程空間內(nèi)加載的文件中是否存在預(yù)設(shè)黑名單中的文件名;以及
標(biāo)識(shí)檢測(cè)模塊,設(shè)置為遍歷所述終端上當(dāng)前所運(yùn)行進(jìn)程中的關(guān)鍵應(yīng)用程序接口API并檢測(cè)所述關(guān)鍵API的方法類型標(biāo)識(shí)是否合法。
10.如權(quán)利要求9所述的裝置,其中,還包括:
安全級(jí)別判斷模塊,設(shè)置為判斷所述操作請(qǐng)求的安全級(jí)別,并在判斷所述操作請(qǐng)求的安全級(jí)別為第一級(jí)別時(shí),觸發(fā)所述的標(biāo)識(shí)檢測(cè)模塊來確定是否存在惡意代碼。
11.如權(quán)利要求10所述的裝置,其中,在所述安全級(jí)別判斷模塊判斷所述操作請(qǐng)求的安全級(jí)別為高于所述第一級(jí)別的第二級(jí)別時(shí),按順序觸發(fā)所述的系統(tǒng)文件檢測(cè)模塊、安裝包檢測(cè)模塊、進(jìn)程檢測(cè)模塊和標(biāo)識(shí)檢測(cè)模塊,其中任一模塊確定存在惡意代碼則返回確定存在惡意代碼的結(jié)果。