本發(fā)明涉及代碼檢測,尤其涉及一種開源組件的安全檢測方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
背景技術(shù):
1、隨著計算機技術(shù)的飛速發(fā)展,開源組件的應(yīng)用越來越廣泛,在提高軟件開發(fā)效率的同時也帶來了安全隱患。如何對開源組件進行有效地安全檢測,保障開源組件的安全性,成為亟待解決的關(guān)鍵問題。目前,采用動態(tài)分析技術(shù)對開源組件進行安全檢測,對環(huán)境的依賴性強,有可能產(chǎn)生路徑爆炸,且對源代碼的覆蓋范圍有限,影響漏洞檢測的精準(zhǔn)性。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種開源組件的安全檢測方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,用以解決現(xiàn)有技術(shù)中采用動態(tài)分析技術(shù)對開源組件進行安全檢測,對環(huán)境的依賴性強,有可能產(chǎn)生路徑爆炸,且對源代碼的覆蓋范圍有限,影響漏洞檢測的精準(zhǔn)性的缺陷。
2、第一方面,本發(fā)明提供一種開源組件的安全檢測方法,包括:
3、采用靜態(tài)檢查工具,構(gòu)建代碼分析模型,對待檢測的開源組件進行靜態(tài)分析,得到靜態(tài)分析報告,對所述開源組件進行路徑掃描流程匹配,得到匹配結(jié)果;
4、基于所述靜態(tài)分析報告和所述匹配結(jié)果,綁定所述開源組件的變量,對所述開源組件的源代碼進行掃描,確定所述開源組件的漏洞問題,生成第一漏洞報告,計算所述開源組件的環(huán)境評估值;
5、使用負載生成器對所述開源組件施加不同的負載,進行負載測試;
6、計算不同負載下所述開源組件對應(yīng)的軟件內(nèi)存積累的比值,將所述比值與第一預(yù)設(shè)閾值進行對比,判斷是否存在內(nèi)存泄露,若是,則生成第二漏洞報告,否則,結(jié)束測試;
7、其中,所述代碼分析模型是基于樣本開源組件,以及所述樣本開源組件對應(yīng)的靜態(tài)分析報告標(biāo)簽進行訓(xùn)練得到的。
8、在一些實施例中,所述采用靜態(tài)檢查工具,構(gòu)建代碼分析模型,對待檢測的開源組件進行靜態(tài)分析,得到靜態(tài)分析報告,包括:
9、將所述靜態(tài)檢查工具提供的多個模型文件與所述源代碼進行匹配,從所述多個模型文件中確定匹配上的目標(biāo)模型文件,所述模型文件包括預(yù)設(shè)的代碼規(guī)則和標(biāo)準(zhǔn)代碼庫文件;
10、基于所述目標(biāo)模型文件和所述源代碼,對所述靜態(tài)檢查工具進行配置;
11、采用所述靜態(tài)檢查工具,創(chuàng)建目標(biāo)構(gòu)建配置,對所述源代碼進行編譯,生成構(gòu)建描述文件和二進制文件;
12、對所述構(gòu)建描述文件和二進制文件進行靜態(tài)分析,得到所述靜態(tài)分析報告。
13、在一些實施例中,所述對所述開源組件進行路徑掃描流程匹配,包括:
14、確定所述源代碼的各語句的語句類型,所述語句類型包括調(diào)用語句、分支語句和順序執(zhí)行語句;
15、根據(jù)所述各語句的語句類型,確定所述各語句的掃描方式。
16、在一些實施例中,所述對所述開源組件的源代碼進行掃描,確定所述開源組件的漏洞問題,生成第一漏洞報告,計算所述開源組件的環(huán)境評估值,包括:
17、對所述開源組件的源代碼進行掃描,在掃描過程中引入自我激勵機制,計算所述開源組件的環(huán)境評估值;
18、判斷所述環(huán)境評估值是否大于等于第二預(yù)設(shè)閾值,若是,則達到不安全狀態(tài),將所述第一漏洞報告發(fā)送至用戶端,否則,未達到不安全狀態(tài),繼續(xù)掃描所述源代碼,直至掃描結(jié)束。
19、在一些實施例中,所述環(huán)境評估值的計算過程包括:
20、確定所述開源組件的機密性需求、完整性需求和可用性需求,基于所述機密性需求、完整性需求和可用性需求,計算所述開源組件的基本評估影響因子;
21、基于所述基本評估影響因子,評估所述開源組件對應(yīng)的攻擊途徑、復(fù)雜度和認(rèn)證強度,基于所述攻擊途徑、復(fù)雜度和認(rèn)證強度,計算基本評估利用因子;
22、根據(jù)所述基本評估影響因子和基本評估利用因子,得到基本評估結(jié)果;
23、根據(jù)所述基本評估結(jié)果,以及攻擊難度和所述第一漏洞報告的可信度,得到生命周期評估結(jié)果;
24、根據(jù)所述生命周期評估結(jié)果和漏洞嚴(yán)重性參數(shù),得到所述環(huán)境評估值。
25、在一些實施例中,所述使用負載生成器對所述開源組件施加不同的負載,進行負載測試,包括:
26、采用高負載和低負載兩種方式進行負載測試;
27、在負載測試過程中,以不同的時間間隔運行所述開源組件,在每次運行后收集不同負載下軟件的關(guān)鍵性能參數(shù)。
28、第二方面,本發(fā)明還提供一種開源組件的安全檢測裝置,包括:
29、分析單元,用于采用靜態(tài)檢查工具,構(gòu)建代碼分析模型,對待檢測的開源組件進行靜態(tài)分析,得到靜態(tài)分析報告,對所述開源組件進行路徑掃描流程匹配,得到匹配結(jié)果;
30、掃描單元,用于基于所述靜態(tài)分析報告和所述匹配結(jié)果,綁定所述開源組件的變量,對所述開源組件的源代碼進行掃描,確定所述開源組件的漏洞問題,生成第一漏洞報告,計算所述開源組件的環(huán)境評估值;
31、負載測試單元,用于使用負載生成器對所述開源組件施加不同的負載,進行負載測試;
32、判斷單元,用于計算不同負載下所述開源組件對應(yīng)的軟件內(nèi)存積累的比值,將所述比值與第一預(yù)設(shè)閾值進行對比,判斷是否存在內(nèi)存泄露,若是,則生成第二漏洞報告,否則,結(jié)束測試;
33、其中,所述代碼分析模型是基于樣本開源組件,以及所述樣本開源組件對應(yīng)的靜態(tài)分析報告標(biāo)簽進行訓(xùn)練得到的。
34、第三方面,本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如上述任一種所述開源組件的安全檢測方法。
35、第四方面,本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述開源組件的安全檢測方法。
36、第五方面,本發(fā)明還提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述開源組件的安全檢測方法。
37、本發(fā)明提供的開源組件的安全檢測方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品,通過采用靜態(tài)檢查工具,構(gòu)建代碼分析模型,對待檢測的開源組件進行靜態(tài)分析,對開源組件進行路徑掃描流程匹配,基于靜態(tài)分析報告和匹配結(jié)果,綁定開源組件的變量,對開源組件的源代碼進行掃描,確定開源組件的漏洞問題,從而可以減少對環(huán)境的依賴性,提高源代碼的覆蓋率,提高漏洞檢測的精準(zhǔn)性和適用性,通過在掃描的過程中計算環(huán)境評估值,可以提高漏洞檢測的效率和準(zhǔn)確性,通過對開源組件進行軟件老化測試,可以提高安全檢測的全面性。
1.一種開源組件的安全檢測方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的開源組件的安全檢測方法,其特征在于,所述采用靜態(tài)檢查工具,構(gòu)建代碼分析模型,對待檢測的開源組件進行靜態(tài)分析,得到靜態(tài)分析報告,包括:
3.根據(jù)權(quán)利要求1所述的開源組件的安全檢測方法,其特征在于,所述對所述開源組件進行路徑掃描流程匹配,包括:
4.根據(jù)權(quán)利要求1所述的開源組件的安全檢測方法,其特征在于,所述對所述開源組件的源代碼進行掃描,確定所述開源組件的漏洞問題,生成第一漏洞報告,計算所述開源組件的環(huán)境評估值,包括:
5.根據(jù)權(quán)利要求1所述的開源組件的安全檢測方法,其特征在于,所述環(huán)境評估值的計算過程包括:
6.根據(jù)權(quán)利要求1-5任一項所述的開源組件的安全檢測方法,其特征在于,所述使用負載生成器對所述開源組件施加不同的負載,進行負載測試,包括:
7.一種開源組件的安全檢測裝置,其特征在于,包括:
8.一種電子設(shè)備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述程序時實現(xiàn)如權(quán)利要求1至6任一項所述開源組件的安全檢測方法。
9.一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6任一項所述開源組件的安全檢測方法。
10.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1至6任一項所述開源組件的安全檢測方法。