本申請涉及信息,具體而言,涉及一種api的漏洞檢測方法、裝置及非易失性存儲介質(zhì)。
背景技術(shù):
1、在隨著網(wǎng)絡(luò)攻擊手段的不斷演進和創(chuàng)新,應(yīng)用程序編程接口(applicationprogramming?interface,簡稱為api)的安全防護技術(shù)也必須持續(xù)更新和完善,以應(yīng)對日益復(fù)雜的網(wǎng)絡(luò)威脅。當(dāng)前,api面臨的主要攻擊類型包括身份驗證繞過、結(jié)構(gòu)化查詢語言(structured?query?language,簡稱為sql)注入以及跨站腳本攻擊等,這些攻擊可能導(dǎo)致api服務(wù)中斷和敏感數(shù)據(jù)泄露等嚴(yán)重安全問題。因此,采用有效的漏洞檢測技術(shù)來預(yù)防這些攻擊變得至關(guān)重要。
2、api安全問題的研究背景涵蓋了多個方面,包括api的運行機制、大規(guī)模數(shù)據(jù)交換的挑戰(zhàn)、api的多樣性以及不斷增長的api攻擊手段。這些挑戰(zhàn)要求開發(fā)出更加有效的api漏洞檢測技術(shù)。為了提高api的安全性和可靠性,研究人員提出了多種新的api漏洞檢測方法和技術(shù),包括:基于靜態(tài)和動態(tài)分析的api漏洞檢測技術(shù)或使用自動化漏洞檢測工具,但相關(guān)技術(shù)中對api進行漏洞檢測時,通常僅檢測出單一維度的漏洞屬性,而無法充分考慮漏洞檢測的多維度屬性,導(dǎo)致漏洞檢測的準(zhǔn)確性低。
3、針對上述的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)思路
1、本申請實施例提供了一種api的漏洞檢測方法、裝置及非易失性存儲介質(zhì),以至少解決相關(guān)技術(shù)中對api進行漏洞檢測時,通常僅檢測出單一維度的漏洞屬性,而無法充分考慮漏洞檢測的多維度屬性,導(dǎo)致漏洞檢測的準(zhǔn)確性低的技術(shù)問題。
2、根據(jù)本申請實施例的一個方面,提供了一種api的漏洞檢測方法,包括:獲取待檢測api對應(yīng)的api屬性信息;采用漏洞檢測模型對api屬性信息進行漏洞檢測,得到待檢測api的漏洞檢測結(jié)果,其中,漏洞檢測模型通過歷史漏洞數(shù)據(jù)對初始漏洞檢測模型進行訓(xùn)練得到,漏洞檢測結(jié)果包括待檢測api對應(yīng)的多維度漏洞屬性信息。
3、在本申請的一些實施例中,漏洞檢測模型通過以下方式得到:獲取歷史漏洞數(shù)據(jù);基于歷史漏洞數(shù)據(jù)確定標(biāo)注后的歷史漏洞數(shù)據(jù),其中,標(biāo)注后的歷史漏洞數(shù)據(jù)包括標(biāo)注數(shù)據(jù)以及歷史漏洞數(shù)據(jù),標(biāo)注數(shù)據(jù)包括歷史漏洞數(shù)據(jù)對應(yīng)的正確的多維度漏洞屬性信息,多維度漏洞屬性信息至少包括漏洞類型,漏洞類型對應(yīng)的危險等級以及漏洞類型所對應(yīng)漏洞的漏洞位置;將標(biāo)注后的歷史漏洞數(shù)據(jù)按照預(yù)設(shè)比例劃分為初始訓(xùn)練集和測試集;將初始訓(xùn)練集以及初始訓(xùn)練集對應(yīng)的特征集確定為訓(xùn)練集;基于訓(xùn)練集對初始漏洞檢測模型進行訓(xùn)練,直至訓(xùn)練準(zhǔn)確率達(dá)到預(yù)設(shè)準(zhǔn)確率閾值時停止訓(xùn)練,得到漏洞檢測模型。
4、在本申請的一些實施例中,初始訓(xùn)練集對應(yīng)的特征集通過以下方式確定:使用遞歸特征消除算法訓(xùn)練集進行特征選擇,得到特征子集;以及特征子集中每個特征的特征重要性得分;基于特征重要性得分從特征子集中刪除預(yù)設(shè)個數(shù)的特征,得到特征集。
5、在本申請的一些實施例中,基于訓(xùn)練集對初始漏洞檢測模型進行訓(xùn)練,直至訓(xùn)練準(zhǔn)確率達(dá)到預(yù)設(shè)準(zhǔn)確率閾值時停止訓(xùn)練,得到漏洞檢測模型,包括:迭代執(zhí)行以下過程,直至訓(xùn)練準(zhǔn)確率達(dá)到預(yù)設(shè)準(zhǔn)確率閾值時停止訓(xùn)練,得到漏洞檢測模型:基于訓(xùn)練集對初始漏洞檢測模型進行訓(xùn)練,得到初始檢測結(jié)果,其中,初始檢測結(jié)果包括訓(xùn)練集對應(yīng)的初始多維度漏洞屬性信息;將初始檢測結(jié)果與標(biāo)注后的歷史漏洞數(shù)據(jù)對應(yīng)的標(biāo)注數(shù)據(jù)匹配的歷史漏洞數(shù)據(jù)的數(shù)量確定為正確檢測數(shù)量;基于正確檢測數(shù)量與訓(xùn)練集中歷史漏洞數(shù)據(jù)總數(shù)之間的函數(shù)關(guān)系確定訓(xùn)練準(zhǔn)確率。
6、在本申請的一些實施例中,方法還包括:基于測試集確定漏洞檢測模型的多個預(yù)設(shè)性能指標(biāo)的檢測值,在任意一個預(yù)設(shè)性能指標(biāo)的檢測值小于對應(yīng)的預(yù)設(shè)指標(biāo)閾值的情況下,重新對漏洞檢測模型進行訓(xùn)練。
7、在本申請的一些實施例中,方法還包括:每隔第一預(yù)設(shè)時間段將漏洞檢測模型確定的漏洞檢測結(jié)果更新至歷史漏洞數(shù)據(jù)中;每隔第二預(yù)設(shè)時間段獲取第三預(yù)設(shè)時間段內(nèi)的歷史漏洞數(shù)據(jù)作為驗證數(shù)據(jù)集;基于驗證數(shù)據(jù)集確定混淆矩陣,其中,混淆矩陣中的元素包括正樣本和負(fù)樣本的數(shù)量,正樣本為漏洞檢測模型檢測正確的驗證數(shù)據(jù)集中的歷史漏洞數(shù)據(jù),負(fù)樣本為漏洞檢測模型檢測錯誤的驗證數(shù)據(jù)集中的歷史漏洞數(shù)據(jù);基于混淆矩陣確定檢測正確率;在檢測正確率小于預(yù)設(shè)檢測率閾值的情況下,重新基于歷史漏洞數(shù)據(jù)對漏洞檢測模型進行訓(xùn)練。
8、在本申請的一些實施例中,采用漏洞檢測模型對api屬性信息進行漏洞檢測,得到待檢測api的漏洞檢測結(jié)果,包括:基于漏洞檢測模型的任務(wù)層確定多維度漏洞屬性信息中每個維度的漏洞屬性信息對應(yīng)的漏洞檢測子向量,其中,任務(wù)層包含預(yù)設(shè)個數(shù)的子任務(wù)層,每個子任務(wù)層用于基于對應(yīng)的目標(biāo)損失函數(shù)對多維度漏洞屬性信息中一個維度的漏洞屬性信息進行漏洞檢測,得到一個維度的漏洞檢測子向量;匯總預(yù)設(shè)個數(shù)的子任務(wù)層所對應(yīng)維度的漏洞檢測子向量,并將預(yù)設(shè)個數(shù)的子任務(wù)層所對應(yīng)維度的漏洞檢測子向量組合為漏洞檢測向量;其中,漏洞檢測向量中每個元素對應(yīng)一個維度的漏洞屬性信息;基于漏洞檢測向量確定漏洞檢測結(jié)果。
9、在本申請的一些實施例中,基于屬性信息以及漏洞檢測模型確定待檢測api的漏洞檢測結(jié)果之后,方法還包括:基于漏洞檢測結(jié)果生成告警信息,其中,告警信息至少包括告警信息以及處理方式;將告警信息推送至用戶終端。
10、根據(jù)本申請實施例的另一方面,還提供了一種api的漏洞檢測裝置,包括:獲取模塊,用于獲取待檢測api對應(yīng)的api屬性信息;檢測模塊,用于采用漏洞檢測模型對api屬性信息進行漏洞檢測,得到待檢測api的漏洞檢測結(jié)果,其中,漏洞檢測模型通過歷史漏洞數(shù)據(jù)對初始漏洞檢測模型進行訓(xùn)練得到,漏洞檢測結(jié)果包括待檢測api對應(yīng)的多維度漏洞屬性信息。
11、根據(jù)本申請實施例的另一方面,還提供了一種非易失性存儲介質(zhì),非易失性存儲介質(zhì)中存儲有程序,其中,在程序運行時控制非易失性存儲介質(zhì)所在設(shè)備執(zhí)行上述的api的漏洞檢測方法。
12、根據(jù)本申請實施例的另一方面,還提供了一種電子設(shè)備,包括:存儲器和處理器,處理器用于運行存儲在存儲器中的程序,其中,程序運行時執(zhí)行上述的api的漏洞檢測方法。
13、根據(jù)本申請實施例的另一方面,還提供了一種計算機程序產(chǎn)品,包括計算機指令,計算機指令被處理器執(zhí)行時實現(xiàn)上述的api的漏洞檢測方法。
14、在本申請實施例中,采用獲取待檢測api對應(yīng)的api屬性信息;采用漏洞檢測模型對api屬性信息進行漏洞檢測,得到待檢測api的漏洞檢測結(jié)果,其中,漏洞檢測模型通過歷史漏洞數(shù)據(jù)對初始漏洞檢測模型進行訓(xùn)練得到,漏洞檢測結(jié)果包括待檢測api對應(yīng)的多維度漏洞屬性信息的方式,通過漏洞檢測模型得到待檢測api對應(yīng)的多維度漏洞屬性信息,進而解決了相關(guān)技術(shù)中對api進行漏洞檢測時,通常僅檢測出單一維度的漏洞屬性,而無法充分考慮漏洞檢測的多維度屬性,導(dǎo)致漏洞檢測的準(zhǔn)確性低技術(shù)問題。
1.一種api的漏洞檢測方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述漏洞檢測模型通過以下方式得到:
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述初始訓(xùn)練集對應(yīng)的特征集通過以下方式確定:
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于所述訓(xùn)練集對所述初始漏洞檢測模型進行訓(xùn)練,直至訓(xùn)練準(zhǔn)確率達(dá)到預(yù)設(shè)準(zhǔn)確率閾值時停止訓(xùn)練,得到所述漏洞檢測模型,包括:
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用漏洞檢測模型對所述api屬性信息進行漏洞檢測,得到所述待檢測api的漏洞檢測結(jié)果,包括:
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于所述屬性信息以及漏洞檢測模型確定所述待檢測api的漏洞檢測結(jié)果之后,所述方法還包括:
9.一種api的漏洞檢測裝置,其特征在于,包括:
10.一種非易失性存儲介質(zhì),其特征在于,所述非易失性存儲介質(zhì)中存儲有程序,其中,在所述程序運行時控制所述非易失性存儲介質(zhì)所在設(shè)備執(zhí)行權(quán)利要求1至8中任意一項所述的api的漏洞檢測方法。
11.一種電子設(shè)備,其特征在于,包括:存儲器和處理器,所述處理器用于運行存儲在所述存儲器中的程序,其中,所述程序運行時執(zhí)行權(quán)利要求1至8中任意一項所述的api的漏洞檢測方法。
12.一種計算機程序產(chǎn)品,包括計算機指令,其特征在于,所述計算機指令被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至8中任意一項所述的api的漏洞檢測方法。