本申請涉及信息安全,具體涉及容器資產(chǎn)信息獲取方法、裝置、電子設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、相關(guān)技術(shù)中,獲取容器資產(chǎn)信息的方式通常是通過宿主機上的docker?api、kubectl等工具獲取容器的元數(shù)據(jù)和運行狀態(tài),或者通過進(jìn)入容器內(nèi)部執(zhí)行命令來讀取配置文件和環(huán)境變量。但是采用相關(guān)技術(shù)中的容器資產(chǎn)信息獲取方式中,可能受宿主機的環(huán)境變量的影響導(dǎo)致獲取的資產(chǎn)信息不準(zhǔn)確。
技術(shù)實現(xiàn)思路
1、鑒于以上問題,本申請?zhí)峁┮环N容器資產(chǎn)信息獲取方法、裝置、電子設(shè)備和存儲介質(zhì),能夠有效避免網(wǎng)絡(luò)延遲和api調(diào)用的潛在錯誤,提升了容器資產(chǎn)信息獲取的實時性和準(zhǔn)確性。
2、本申請實施例是采用以下技術(shù)方案來實現(xiàn)的:
3、第一方面,本申請實施例提供了一種容器資產(chǎn)信息獲取方法,所述方法包括:獲取目標(biāo)設(shè)備上運行的目標(biāo)容器的基礎(chǔ)信息,所述基礎(chǔ)信息包括根目錄;復(fù)制所述目標(biāo)設(shè)備中的容器管理進(jìn)程,得到該容器管理進(jìn)程的子進(jìn)程;將所述子進(jìn)程的根目錄修改為所述目標(biāo)容器的根目錄,得到第一子進(jìn)程;由所述第一子進(jìn)程獲取所述目標(biāo)容器內(nèi)的環(huán)境變量和信息獲取文件;將所述第一子進(jìn)程的環(huán)境變量調(diào)整為所述目標(biāo)容器內(nèi)的環(huán)境變量,得到目標(biāo)子進(jìn)程;由所述目標(biāo)子進(jìn)程基于所述信息獲取文件獲得所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息。
4、第二方面,本申請實施例提供了一種容器資產(chǎn)信息獲取裝置,所述裝置包括:第一獲取模塊,用于獲取目標(biāo)設(shè)備上運行的目標(biāo)容器的基礎(chǔ)信息,所述基礎(chǔ)信息包括根目錄;進(jìn)程獲得模塊,用于復(fù)制所述目標(biāo)設(shè)備中的容器管理進(jìn)程,得到該容器管理進(jìn)程的子進(jìn)程;目錄修改模塊,用于將所述子進(jìn)程的根目錄修改為所述目標(biāo)容器的根目錄,得到第一子進(jìn)程;第二獲取模塊,用于利用所述第一子進(jìn)程獲取所述目標(biāo)容器內(nèi)的環(huán)境變量和信息獲取文件;變量調(diào)整模塊,用于將所述第一子進(jìn)程的環(huán)境變量調(diào)整為所述目標(biāo)容器內(nèi)的環(huán)境變量,得到目標(biāo)子進(jìn)程;資產(chǎn)獲取模塊,用于利用所述目標(biāo)子進(jìn)程基于所述信息獲取文件獲得所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息。
5、在一些實施方式中,資產(chǎn)獲取模塊,還用于由所述目標(biāo)子進(jìn)程執(zhí)行所述命令執(zhí)行文件得到命令執(zhí)行結(jié)果,由所述目標(biāo)子進(jìn)程對所述軟鏈接進(jìn)行解析,得到解析結(jié)果;從所述命令執(zhí)行結(jié)果和所述解析結(jié)果所指向的文件中獲取所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息。
6、在一些實施方式中,進(jìn)程獲得模塊,還用于利用系統(tǒng)調(diào)用函數(shù)調(diào)用所述目標(biāo)設(shè)備中的容器管理進(jìn)程,創(chuàng)建該容器管理進(jìn)程的子進(jìn)程。
7、在一些實施方式中,資產(chǎn)信息獲取模塊,還用于獲取目標(biāo)容器內(nèi)運行的第一進(jìn)程的進(jìn)程信息和所述目標(biāo)容器內(nèi)的安裝的軟件的軟件信息;基于軟件規(guī)則數(shù)據(jù)庫將進(jìn)程信息以及軟件信息將該進(jìn)程信息所屬第一進(jìn)程與目標(biāo)容器內(nèi)的安裝的軟件進(jìn)行關(guān)聯(lián),得到關(guān)聯(lián)有第一進(jìn)程的目標(biāo)軟件;獲取關(guān)聯(lián)有第一進(jìn)程的目標(biāo)軟件的軟件資產(chǎn)信息,作為目標(biāo)容器的軟件資產(chǎn)信息。
8、在一些實施方式中,資產(chǎn)信息獲取模塊,還用于從所述關(guān)聯(lián)有第一進(jìn)程的軟件中獲取web軟件;基于所述web軟件關(guān)聯(lián)的進(jìn)程對應(yīng)的配置文件和環(huán)境變量,獲得所述目標(biāo)容器的web站點資產(chǎn)信息。
9、在一些實施方式中,所述web站點資產(chǎn)信息包括所述web軟件的上下文路徑,資產(chǎn)信息獲取模塊,還用于基于所述web軟件的上下文路徑獲得所述web軟件的部署目錄;從所述web軟件的部署目錄下獲取所述web軟件的軟件信息;基于所述軟件規(guī)則數(shù)據(jù)庫中和所述web軟件的軟件信息,獲得所述目標(biāo)容器的web軟件資產(chǎn)信息。
10、在一些實施方式中,資產(chǎn)信息獲取模塊,還用于將所述web軟件的軟件信息與所述軟件規(guī)則數(shù)據(jù)庫中與該web軟件對應(yīng)的預(yù)設(shè)軟件信息進(jìn)行比對得到第一比對結(jié)果;若所述第一比對結(jié)果表征所述web軟件的軟件信息與該軟件對應(yīng)的預(yù)設(shè)軟件信息一致,則將所述web軟件的軟件信息作為目標(biāo)容器的web軟件資產(chǎn)信息。
11、在一些實施方式中,所述web軟件的資產(chǎn)信息包括所述web軟件的文件路徑,資產(chǎn)信息獲取模塊,還用于從所述web軟件的文件路徑下的管理文件中獲取web應(yīng)用所使用的web框架的框架信息;基于所述軟件規(guī)則數(shù)據(jù)庫和所述web框架的框架信息獲得所述目標(biāo)容器的web框架資產(chǎn)信息。
12、在一些實施方式中,資產(chǎn)信息獲取模塊,還用于將所述web框架的框架信息與所述軟件規(guī)則數(shù)據(jù)庫中與該web框架對應(yīng)的預(yù)設(shè)框架信息進(jìn)行比對得到第二比對結(jié)果;若第二比對結(jié)果表征所述web框架的框架信息與該web框架的預(yù)設(shè)框信息一致,將所述web框架的框架信息作為目標(biāo)容器的web框架資產(chǎn)信息。
13、第三方面,本申請實施例提供了一種電子設(shè)備,電子設(shè)備包括:一個或多個處理器;存儲器;一個或多個程序,其中所述一個或多個程序被存儲在所述存儲器中并被配置為由所述一個或多個處理器執(zhí)行,所述一個或多個程序配置用于執(zhí)行上述容器資產(chǎn)信息獲取方法。
14、第四方面,本申請實施例提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有程序代碼,所述程序代碼可被處理器調(diào)用執(zhí)行上述容器資產(chǎn)信息獲取方法。
15、本申請實施例提供的容器資產(chǎn)信息獲取方法、裝置、電子設(shè)備和存儲介質(zhì);獲取目標(biāo)設(shè)備上運行的目標(biāo)容器的基礎(chǔ)信息,所述基礎(chǔ)信息包括根目錄;復(fù)制所述目標(biāo)設(shè)備中的容器管理進(jìn)程,得到該容器管理進(jìn)程的子進(jìn)程;將所述子進(jìn)程的根目錄修改為所述目標(biāo)容器的根目錄,得到第一子進(jìn)程;由所述第一子進(jìn)程獲取所述目標(biāo)容器內(nèi)的環(huán)境變量和信息獲取文件;將所述第一子進(jìn)程的環(huán)境變量調(diào)整為所述目標(biāo)容器內(nèi)的環(huán)境變量,得到目標(biāo)子進(jìn)程;由所述目標(biāo)子進(jìn)程基于所述信息獲取文件獲得所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息。通過復(fù)制容器管理進(jìn)程得到子進(jìn)程并改變其根目錄至目標(biāo)容器的根目錄得到目標(biāo)子進(jìn)程,由于目標(biāo)子進(jìn)程與目標(biāo)容器的環(huán)境變量相同,因此在利用目標(biāo)子進(jìn)程獲取資產(chǎn)信息時不受目標(biāo)設(shè)備環(huán)境的影響,從而可以確保獲取的資產(chǎn)信息更為準(zhǔn)確和全面。
16、本申請的這些方面或其他方面在以下實施例的描述中會更加簡明易懂。
1.一種容器資產(chǎn)信息獲取方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述信息獲取文件包括命令執(zhí)行文件和軟鏈接,所述由所述目標(biāo)子進(jìn)程基于所述信息獲取文件獲得所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述復(fù)制所述目標(biāo)設(shè)備中的容器管理進(jìn)程,得到該容器管理進(jìn)程的子進(jìn)程,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述由所述目標(biāo)子進(jìn)程基于所述信息獲取文件獲得所述目標(biāo)容器的基礎(chǔ)資產(chǎn)信息之后,所述方法還包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述獲取關(guān)聯(lián)有第一進(jìn)程的目標(biāo)軟件的軟件資產(chǎn)信息,作為目標(biāo)容器的軟件資產(chǎn)信息之后,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述web站點資產(chǎn)信息包括所述web軟件的上下文路徑,所述基于所述web軟件關(guān)聯(lián)的進(jìn)程對應(yīng)的配置文件和環(huán)境變量,獲得所述目標(biāo)容器的web站點資產(chǎn)信息之后,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述基于所述軟件規(guī)則數(shù)據(jù)庫中和所述web軟件的軟件信息,獲得所述目標(biāo)容器的web軟件資產(chǎn)信息,包括:
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述web軟件的資產(chǎn)信息包括所述web軟件的文件路徑,所述基于所述軟件規(guī)則數(shù)據(jù)庫中和所述web軟件的軟件信息,獲得所述目標(biāo)容器的web軟件資產(chǎn)信息之后,所述方法還包括:
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述基于所述軟件規(guī)則數(shù)據(jù)庫和所述web框架的框架信息獲得所述目標(biāo)容器的web框架資產(chǎn)信息,包括:
10.一種容器資產(chǎn)信息獲取裝置,其特征在于,所述裝置包括:
11.一種電子設(shè)備,其特征在于,包括:
12.一種計算機可讀存儲介質(zhì),其特征在于,所述計算機可讀存儲介質(zhì)存儲有程序代碼,所述程序代碼可被處理器調(diào)用執(zhí)行如權(quán)利要求1-9中任意一項所述的方法。
13.一種計算機程序產(chǎn)品,包括計算機程序/指令,其特征在于,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)權(quán)利要求1-9中任意一項所述方法的步驟。