用程序的源代碼中的位置。
[0097] 可選地,所述裝置還包括:
[0098] 刪除單元,用于刪除所述解析應(yīng)用程序安裝包時(shí)產(chǎn)生的臨時(shí)文件。
[0099] 可選地,所述獲取單元51包括:
[0100] 第一解壓縮子單元,解壓縮所述應(yīng)用程序的安裝包,獲取到其中的可執(zhí)行文件。
[0101] 轉(zhuǎn)換子單元,將所述可執(zhí)行文件轉(zhuǎn)換為Java歸檔文件。
[0102] 第二解壓縮子單元,解壓縮所述Java歸檔文件,得到Java類文件的集合;。
[0103] 反編譯子單元,批量反編譯所述Java類文件的集合,得到Java源文件的集合。
[0104] 圖6示出了本發(fā)明實(shí)施例提供的網(wǎng)絡(luò)安全漏洞的檢測(cè)裝置的硬件結(jié)構(gòu)框圖,該裝 置用于運(yùn)行本發(fā)明圖1至圖4實(shí)施例所述的網(wǎng)絡(luò)安全漏洞的檢測(cè)方法。為了便于說(shuō)明,僅 不出了與本實(shí)施例相關(guān)的部分。
[0105] 參照?qǐng)D6,該裝置包括:
[0106] 處理器601、存儲(chǔ)器602和總線603,其中,處理器601和存儲(chǔ)器602通過(guò)總線603 進(jìn)行相互間的通信,存儲(chǔ)器602用于存儲(chǔ)程序,處理器601用于執(zhí)行存儲(chǔ)器602中存儲(chǔ)的程 序,所述程序在被執(zhí)行時(shí),用于:
[0107] 解析應(yīng)用程序安裝包,獲取所述應(yīng)用程序的源代碼;
[0108] 根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代碼的行數(shù),將所述應(yīng)用程序的源代碼與預(yù)存 儲(chǔ)的每段所述漏洞代碼進(jìn)行逐一比對(duì),所述漏洞代碼包括滿足預(yù)設(shè)漏洞規(guī)則的代碼;
[0109] 根據(jù)比對(duì)結(jié)果判斷所述應(yīng)用程序的源代碼中是否存在與任一所述漏洞代碼匹配 的代碼段;
[0110] 若所述應(yīng)用程序的源代碼中存在與任一所述漏洞代碼匹配的代碼段,則確定所述 應(yīng)用程序存在網(wǎng)絡(luò)安全漏洞。
[0111] 可選地,所述預(yù)設(shè)漏洞規(guī)則包括:
[0112] 自定義的用于進(jìn)行數(shù)字證書(shū)校驗(yàn)的接口。
[0113] 可選地,所述預(yù)設(shè)漏洞規(guī)則包括:
[0114] 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中設(shè)置不安全校驗(yàn)的參數(shù)選項(xiàng)。
[0115] 可選地,所述預(yù)設(shè)漏洞規(guī)則包括:
[0116] 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中定義無(wú)法對(duì)主機(jī)域名進(jìn)行嚴(yán)格校驗(yàn)的類。
[0117] 可選地,所述根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代碼的行數(shù),將所述應(yīng)用程序的 源代碼與預(yù)存儲(chǔ)的每段所述漏洞代碼進(jìn)行逐一比對(duì)包括:
[0118] 獲取所述漏洞代碼庫(kù)中當(dāng)前比對(duì)的所述漏洞代碼的行數(shù)a,所述a為大于或等于1 的整數(shù);
[0119] 將所述應(yīng)用程序的源代碼的每一行及其該行之后的連續(xù)a_l行與所述當(dāng)前比對(duì) 的所述漏洞代碼進(jìn)行逐行比對(duì)。
[0120] 可選地,所述程序還用于:
[0121] 輸出所述與任一所述漏洞代碼匹配的代碼段,以及輸出該代碼段在所述應(yīng)用程序 的源代碼中的位置。
[0122] 可選地,所述程序還用于:
[0123] 刪除所述解析應(yīng)用程序安裝包時(shí)產(chǎn)生的臨時(shí)文件。
[0124] 可選地,所述解析應(yīng)用程序安裝包,獲取所述應(yīng)用程序的源代碼包括:
[0125] 解壓縮所述應(yīng)用程序的安裝包,獲取到其中的可執(zhí)行文件;
[0126] 將所述可執(zhí)行文件轉(zhuǎn)換為Java歸檔文件;
[0127] 解壓縮所述Java歸檔文件,得到Java類文件的集合;
[0128] 批量反編譯所述Java類文件的集合,得到Java源文件的集合。
[0129] 在本發(fā)明實(shí)施例中,對(duì)應(yīng)用程序的安裝包進(jìn)行反編譯,將由此得到的應(yīng)用程序的 源代碼與預(yù)先建立的漏洞代碼庫(kù)中的漏洞代碼進(jìn)行一一匹配,從而在后臺(tái)自動(dòng)地完成對(duì)該 應(yīng)用程序的網(wǎng)絡(luò)安全漏洞檢測(cè)的整個(gè)檢測(cè)過(guò)程,無(wú)需再額外人工地配置檢測(cè)環(huán)境或者監(jiān)聽(tīng) 檢測(cè)數(shù)據(jù),大大地提高了網(wǎng)絡(luò)安全漏洞檢測(cè)的檢測(cè)效率。
[0130] 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種網(wǎng)絡(luò)安全漏洞的檢測(cè)方法,其特征在于,包括: 解析應(yīng)用程序安裝包,獲取所述應(yīng)用程序的源代碼; 根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代碼的行數(shù),將所述應(yīng)用程序的源代碼與預(yù)存儲(chǔ)的 每段所述漏洞代碼進(jìn)行逐一比對(duì),所述漏洞代碼包括滿足預(yù)設(shè)漏洞規(guī)則的代碼; 根據(jù)比對(duì)結(jié)果判斷所述應(yīng)用程序的源代碼中是否存在與任一所述漏洞代碼匹配的代 碼段; 若所述應(yīng)用程序的源代碼中存在與任一所述漏洞代碼匹配的代碼段,則確定所述應(yīng)用 程序存在網(wǎng)絡(luò)安全漏洞。2. 如權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 自定義的用于進(jìn)行數(shù)字證書(shū)校驗(yàn)的接口。3. 如權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中設(shè)置不安全校驗(yàn)的參數(shù)選項(xiàng)。4. 如權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中定義無(wú)法對(duì)主機(jī)域名進(jìn)行嚴(yán)格校驗(yàn)的類。5. 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代 碼的行數(shù),將所述應(yīng)用程序的源代碼與預(yù)存儲(chǔ)的每段所述漏洞代碼進(jìn)行逐一比對(duì)包括: 獲取所述漏洞代碼庫(kù)中當(dāng)前比對(duì)的所述漏洞代碼的行數(shù)a,所述a為大于或等于1的整 數(shù); 將所述應(yīng)用程序的源代碼的每一行及其該行之后的連續(xù)a-1行與所述當(dāng)前比對(duì)的所 述漏洞代碼進(jìn)行逐行比對(duì)。6. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 輸出所述與任一所述漏洞代碼匹配的代碼段,以及輸出該代碼段在所述應(yīng)用程序的源 代碼中的位置。7. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 刪除所述解析應(yīng)用程序安裝包時(shí)產(chǎn)生的臨時(shí)文件。8. 如權(quán)利要求1所述的方法,其特征在于,所述解析應(yīng)用程序安裝包,獲取所述應(yīng)用程 序的源代碼包括: 解壓縮所述應(yīng)用程序的安裝包,獲取到其中的可執(zhí)行文件; 將所述可執(zhí)行文件轉(zhuǎn)換為Java歸檔文件; 解壓縮所述Java歸檔文件,得到Java類文件的集合; 批量反編譯所述Java類文件的集合,得到Java源文件的集合。9. 一種網(wǎng)絡(luò)安全漏洞的檢測(cè)裝置,其特征在于,包括: 獲取單元,用于解析應(yīng)用程序安裝包,獲取所述應(yīng)用程序的源代碼; 匹配單元,用于根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代碼的行數(shù),將所述應(yīng)用程序的源 代碼與預(yù)存儲(chǔ)的每段所述漏洞代碼進(jìn)行逐一比對(duì),所述漏洞代碼包括滿足預(yù)設(shè)漏洞規(guī)則的 代碼; 判斷單元,用于根據(jù)比對(duì)結(jié)果判斷所述應(yīng)用程序的源代碼中是否存在與任一所述漏洞 代碼匹配的代碼段; 確定單元,用于若所述應(yīng)用程序的源代碼中存在與任一所述漏洞代碼匹配的代碼段, 則確定所述應(yīng)用程序存在網(wǎng)絡(luò)安全漏洞。10. 如權(quán)利要求9所述的裝置,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 自定義的用于進(jìn)行數(shù)字證書(shū)校驗(yàn)的接口。11. 如權(quán)利要求9所述的裝置,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中設(shè)置不安全校驗(yàn)的參數(shù)選項(xiàng)。12. 如權(quán)利要求9所述的裝置,其特征在于,所述預(yù)設(shè)漏洞規(guī)則包括: 在用于進(jìn)行主機(jī)域名校驗(yàn)的接口中定義無(wú)法對(duì)主機(jī)域名進(jìn)行嚴(yán)格校驗(yàn)的類。13. 如權(quán)利要求9所述的裝置,其特征在于,所述匹配單元包括: 獲取子單元,用于獲取所述漏洞代碼庫(kù)中當(dāng)前比對(duì)的所述漏洞代碼的行數(shù)a,所述a為 大于或等于1的整數(shù); 比對(duì)子單元,用于將所述應(yīng)用程序的源代碼的每一行及其該行之后的連續(xù)a-1行與所 述當(dāng)前比對(duì)的所述漏洞代碼進(jìn)行逐行比對(duì)。14. 如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 輸出單元,用于輸出所述與任一所述漏洞代碼匹配的代碼段,以及輸出該代碼段在所 述應(yīng)用程序的源代碼中的位置。15. 如權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 刪除單元,用于刪除所述解析應(yīng)用程序安裝包時(shí)產(chǎn)生的臨時(shí)文件。16. 如權(quán)利要求9所述的裝置,其特征在于,所述獲取單元包括: 第一解壓縮子單元,用于解壓縮所述應(yīng)用程序的安裝包,獲取到其中的可執(zhí)行文件; 轉(zhuǎn)換子單元,用于將所述可執(zhí)行文件轉(zhuǎn)換為Java歸檔文件; 第二解壓縮子單元,用于解壓縮所述Java歸檔文件,得到Java類文件的集合; 反編譯子單元,用于批量反編譯所述Java類文件的集合,得到Java源文件的集合。
【專利摘要】本發(fā)明適用于網(wǎng)絡(luò)技術(shù)領(lǐng)域,提供了一種網(wǎng)絡(luò)安全漏洞的檢測(cè)方法及裝置,包括:解析應(yīng)用程序安裝包,獲取所述應(yīng)用程序的源代碼;根據(jù)預(yù)存儲(chǔ)在漏洞代碼庫(kù)中的漏洞代碼的行數(shù),將所述應(yīng)用程序的源代碼與預(yù)存儲(chǔ)的每段所述漏洞代碼進(jìn)行逐一比對(duì),所述漏洞代碼包括滿足預(yù)設(shè)漏洞規(guī)則的代碼;根據(jù)比對(duì)結(jié)果判斷所述應(yīng)用程序的源代碼中是否存在與任一所述漏洞代碼匹配的代碼段;若所述應(yīng)用程序的源代碼中存在與任一所述漏洞代碼匹配的代碼段,則確定所述應(yīng)用程序存在網(wǎng)絡(luò)安全漏洞。在本發(fā)明中,在后臺(tái)自動(dòng)地完成對(duì)應(yīng)用程序的網(wǎng)絡(luò)安全漏洞檢測(cè)的整個(gè)檢測(cè)過(guò)程,無(wú)需再額外人工地配置檢測(cè)環(huán)境或者監(jiān)聽(tīng)檢測(cè)數(shù)據(jù),大大地提高了網(wǎng)絡(luò)安全漏洞檢測(cè)的檢測(cè)效率。
【IPC分類】G06F21/57
【公開(kāi)號(hào)】CN104933368
【申請(qǐng)?zhí)枴緾N201410108152
【發(fā)明人】王金錠, 李 杰, 譚曉光, 王岳
【申請(qǐng)人】騰訊科技(深圳)有限公司
【公開(kāi)日】2015年9月23日
【申請(qǐng)日】2014年3月21日