本申請涉及類的風(fēng)險檢測,具體涉及一種類的風(fēng)險檢測方法、裝置、設(shè)備和存儲介質(zhì)。
背景技術(shù):
1、在計算機編程中,特別是在面向?qū)ο缶幊蹋╫bject-oriented?programming,?oop)中,類(class)是一個非常重要的概念,它可以被視為一個模板或藍圖,其定義了一個對象的屬性和方法(或稱為成員函數(shù)),這些屬性和方法描述了對象的狀態(tài)和行為。在java、c++、c#、python等都有運用類這個概念,并且可以對其進行動態(tài)加載運行。
2、但是在類動態(tài)加載運行過程中,如果代碼中使用了一些第三方庫,那么第三方庫會動態(tài)的加載一些陌生的類,比如與項目無關(guān)的或者不安全的類等等,這些類很有可能會獲取到一些當(dāng)前開發(fā)項目中的非公開的機密數(shù)據(jù),造成數(shù)據(jù)泄密,嚴(yán)重影響當(dāng)前開發(fā)項目的私密性和安全性。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請?zhí)峁┝艘环N類的風(fēng)險檢測方法、裝置、設(shè)備和存儲介質(zhì),用于解決陌生的類會在加載運行過程中會獲取到一些當(dāng)前開發(fā)項目中的非公開、機密數(shù)據(jù),造成數(shù)據(jù)泄密,嚴(yán)重影響當(dāng)前開發(fā)項目的私密性和安全性的問題。
2、為實現(xiàn)以上目的,現(xiàn)提出的方案如下:
3、第一方面,一種類的風(fēng)險檢測方法,包括:
4、在對源文件進行執(zhí)行的過程中,獲取所述源文件動態(tài)加載的各個類;
5、分別將每一個所述類與預(yù)先構(gòu)建的風(fēng)險類檢測表進行匹配,以確定各個風(fēng)險類和各個待確認(rèn)類;
6、判斷各個所述待確認(rèn)類是否包含在預(yù)先建立的項目類表中,將不包含在所述項目類表中的各個待確認(rèn)類作為各個第二類;所述項目類表是所述源文件對應(yīng)開發(fā)項目所定義的類的集合;
7、對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警。
8、優(yōu)選地,所述分別將每一個所述類與預(yù)先構(gòu)建的風(fēng)險類檢測表進行匹配,以確定各個風(fēng)險類和各個待確認(rèn)類,包括:
9、確定每一個所述類的類名;
10、按照所述類名分別將每一個所述類與所述風(fēng)險類檢測表進行匹配;
11、針對每一個所述類,若該類的類名與所述風(fēng)險類檢測表中標(biāo)記為黑名單的類的類名相同,則將該類確定為風(fēng)險類;
12、若該類的類名與所述風(fēng)險類檢測表中的類的類名均不相同,則將該類作為待確認(rèn)類。
13、優(yōu)選地,所述風(fēng)險類檢測表的構(gòu)建過程,包括:
14、從數(shù)據(jù)庫中獲取標(biāo)記為白名單的各個類的類名,以及標(biāo)記為黑名單的各個類的類名;
15、將標(biāo)記為白名單的各個類的類名以及標(biāo)記為黑名單的各個類的類名匯總為風(fēng)險類檢測表。
16、優(yōu)選地,所述項目類表的建立過程,包括:
17、獲取與所述源文件對應(yīng)的開發(fā)項目的各個項目類;
18、確定各個所述項目類的包名;
19、由各個所述項目類的包名組成項目類表。
20、優(yōu)選地,所述對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警,包括:
21、確定所有所述風(fēng)險類和第二類的總個數(shù),作為第一總個數(shù);
22、確定各個所述類的總個數(shù),作為第二總個數(shù);
23、計算所述第一總個數(shù)與第二總個數(shù)的比值;
24、若所述比值大于第一預(yù)設(shè)閾值,則進行告警。
25、優(yōu)選地,所述對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警,包括:
26、獲取每一個所述第二類的類文件;
27、針對每一個所述第二類,提取該第二類的類文件的文件內(nèi)容、類文件對應(yīng)的網(wǎng)絡(luò)接口以及所述源文件對應(yīng)的軟件版本號;
28、基于所述文件內(nèi)容、網(wǎng)絡(luò)接口以及軟件版本號計算與該第二類對應(yīng)的特征碼;
29、利用所述特征碼對各個所述第二類進行風(fēng)險檢測,得到檢測結(jié)果;
30、若所述檢測結(jié)果為各個第二類無風(fēng)險,則對各個所述風(fēng)險類進行風(fēng)險預(yù)警;
31、若所述檢測結(jié)果為各個第二類中包含至少一個存在風(fēng)險的第二類,則對各個所述風(fēng)險類和存在風(fēng)險的各個第二類進行風(fēng)險預(yù)警。
32、優(yōu)選地,所述利用所述特征碼對各個所述第二類進行風(fēng)險檢測,得到檢測結(jié)果,包括:
33、將每一個所述第二類的特征碼分別與預(yù)先建立的特征碼檢測表進行對比;
34、判斷各個所述第二類的特征碼是否均與所述特征碼檢測表比對成功;
35、若是,則確定檢測結(jié)果為各個第二類無風(fēng)險;
36、若否,則確定檢測結(jié)果為各個第二類中包含至少一個存在風(fēng)險的第二類。
37、第二方面,一種類的風(fēng)險檢測裝置,包括:
38、類獲取模塊,用于在對源文件進行執(zhí)行的過程中,獲取所述源文件動態(tài)加載的各個類;
39、匹配模塊,用于分別將每一個所述類與預(yù)先構(gòu)建的風(fēng)險類檢測表進行匹配,以確定各個風(fēng)險類和各個待確認(rèn)類;
40、判斷模塊,用于判斷各個所述待確認(rèn)類是否包含在預(yù)先建立的項目類表中,將不包含在所述項目類表中的各個待確認(rèn)類作為各個第二類;所述項目類表是所述源文件對應(yīng)開發(fā)項目所定義的類的集合;
41、風(fēng)險預(yù)警模塊,用于對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警。
42、第三方面,種類的風(fēng)險檢測設(shè)備,包括存儲器和處理器;
43、所述存儲器,用于存儲程序;
44、所述處理器,用于執(zhí)行所述程序,實現(xiàn)如第一方面任一項所述的類的風(fēng)險檢測方法的各個步驟。
45、第四方面,一種存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時,實現(xiàn)如第一方面任一項所述的類的風(fēng)險檢測方法的各個步驟。
46、從上述技術(shù)方案可以看出,本申請在對源文件進行執(zhí)行的過程中,獲取所述源文件動態(tài)加載的各個類;分別將每一個所述類與預(yù)先構(gòu)建的風(fēng)險類檢測表進行匹配,以確定各個風(fēng)險類和各個待確認(rèn)類;建立與所述源文件對應(yīng)的開發(fā)項目的項目類表;判斷各個所述待確認(rèn)類是否包含在所述項目類表中,將不包含在所述項目類表中的各個待確認(rèn)類作為各個第二類;對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警。本方案設(shè)置了兩個檢測表,分別是風(fēng)險類檢測表和項目類表,首先將每一個動態(tài)加載的類與風(fēng)險類檢測表進行匹配,從而可以確定出各個類是不是風(fēng)險類檢測表中預(yù)先定義的風(fēng)險類,如果有些類沒有在風(fēng)險類檢測表中記載,那就需要利用項目類表對這些類進行進一步檢測,即判斷這些待確認(rèn)類是否存在于項目類表中,如果存在,就說明待確認(rèn)類是受項目信任的,是無風(fēng)險的,若其中一些待確認(rèn)類依舊不存在于項目類表中,則可以認(rèn)為它們也是有風(fēng)險的,由此經(jīng)過兩輪確認(rèn),即準(zhǔn)確的確定在所有動態(tài)加載的類中,哪些是有風(fēng)險的,哪些是無風(fēng)險,同時不會造成誤判,比如將無風(fēng)險的類誤判為有風(fēng)險的類,耽誤類的正常加載進程,還可以將這些有風(fēng)險的類進行風(fēng)險預(yù)警,以保護開發(fā)項目的非公開的機密數(shù)據(jù),防止其他用戶的作弊行為,保障項目的正常開發(fā)。
1.一種類的風(fēng)險檢測方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分別將每一個所述類與預(yù)先構(gòu)建的風(fēng)險類檢測表進行匹配,以確定各個風(fēng)險類和各個待確認(rèn)類,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述風(fēng)險類檢測表的構(gòu)建過程,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述項目類表的建立過程,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對各個所述風(fēng)險類和各個所述第二類進行風(fēng)險預(yù)警,包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述利用所述特征碼對各個所述第二類進行風(fēng)險檢測,得到檢測結(jié)果,包括:
8.一種類的風(fēng)險檢測裝置,其特征在于,包括:
9.一種類的風(fēng)險檢測設(shè)備,其特征在于,包括存儲器和處理器;
10.一種存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時,實現(xiàn)如權(quán)利要求1-7任一項所述的類的風(fēng)險檢測方法的各個步驟。