CN113886825B 代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質 (中國工商銀行股份有限公司)_第1頁
CN113886825B 代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質 (中國工商銀行股份有限公司)_第2頁
CN113886825B 代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質 (中國工商銀行股份有限公司)_第3頁
CN113886825B 代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質 (中國工商銀行股份有限公司)_第4頁
CN113886825B 代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質 (中國工商銀行股份有限公司)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

(19)國家知識產權局(12)發(fā)明專利(73)專利權人中國工商銀行股份有限公司55號(72)發(fā)明人曠亞和葉紅姜城程佩哲公司11021GO6F11/14(2(56)對比文件審查員畢雪梅權利要求書2頁說明書11頁附圖4頁代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質(57)摘要統(tǒng)、設備及存儲介質,可以應用于金融領域、計算虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,目標應用基于運行內存代碼運行;對運息包括運行內存代碼中每個第一字節(jié)碼文件的代碼信息包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值,源內存代碼包括目標應用的初—S21021.一種代碼檢測方法,包括:將目標插件部署于目標應用中,根據(jù)預設時間間隔,通過所述目標插件定時獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,所述目標應用基于所述運行內存代碼運行;對所述運行內存代碼進行處理,生成與所述運行內存代碼相對應的運行內存代碼信息,其中,所述運行內存代碼信息包括所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,輸出與所述運行內存代碼相對應的檢測結果,其中,所述源內存代碼信息包括所述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,所述源內存代碼包括所述目標應用的初始運行內存代碼;所述根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,具體包括:將所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值與所述源內存代碼中所述第一字節(jié)碼文件對應的第二字節(jié)碼文件的第二哈希值進行對比分析。2.根據(jù)權利要求1所述的方法,其中,所述對所述運行內存代碼進行處理,生成與所述運行內存代碼相對應的運行內存代碼信息包括:依次對所述運行內存代碼中的每個所述第一字節(jié)碼文件進行掃描,輸出與每個所述第一字節(jié)碼文件相對應的所述第一哈希值。3.根據(jù)權利要求1所述的方法,還包括:在所述目標應用運行前,獲取待部署的所述源內存代碼;對所述源內存代碼進行處理,生成與所述源內存代碼相對應的所述源內存代碼信息。4.根據(jù)權利要求3所述的方法,其中,所述對所述源內存代碼進行處理,生成與所述源內存代碼相對應的所述源內存代碼信息包括:依次對所述源內存代碼中的每個所述第二字節(jié)碼文件進行掃描,輸出與每個所述第二字節(jié)碼文件相對應的所述第二哈希值。5.根據(jù)權利要求1所述的方法,其中,所述輸出與所述運行內存代碼相對應的檢測結果包括:所述第一哈希值與所述第二哈希值不一致時,輸出第一異常對比結果;根據(jù)所述第一異常對比結果,生成所述檢測結果。6.根據(jù)權利要求5所述的方法,其中,所述運行內存代碼信息還包括每個所述第一字節(jié)碼文件的第一類名信息,所述源內存代碼信息還包括每個所述第二字節(jié)碼文件的第二類名信息;所述根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,輸出與所述運行內存代碼相對應的檢測結果還包括:根據(jù)所述源內存代碼信息中的每個所述第二類名信息與所述運行內存代碼信息中的每個第一類名信息進行對比,輸出第二異常對比結果;根據(jù)所述第一異常對比結果和所述第二異常對比結果生成所述檢測結果。7.一種代碼檢測裝置,包括:運行時代碼掃描子系統(tǒng),用于將目標插件部署于目標應用中,根據(jù)預設時間間隔,通過3所述目標插件定時獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,所述目標應用基于所述運行內存代碼運行;以及對所述運行內存代碼進行處理,生成與所述運行內存代碼相對應的運行內存代碼信息,其中,所述運行內存代碼信息包括所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;篡改檢測子系統(tǒng),用于根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,輸出與所述運行內存代碼相對應的檢測結果,其中,所述源內存代碼信息包括所述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,所述源內存代碼包括所述目標應用的初始運行內存代碼;所述根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,具體包括:將所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值與所述源內存代碼中所述第一字節(jié)碼文件對應的第二字節(jié)碼文件的第二哈希值進行對比分析。8.根據(jù)權利要求7所述的裝置,還包括:源代碼掃描子系統(tǒng),用于在所述目標應用運行前,獲取待部署的所述源內存代碼;以及對所述源內存代碼進行處理,生成與所述源內存代碼相對應的所述源內存代碼信息。第一獲取模塊,將目標插件部署于目標應用中,根據(jù)預設時間間隔,通過所述目標插件定時獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,所述目標應用基于所述運行內存代碼運行;第一處理模塊,用于對所述運行內存代碼進行處理,生成與所述運行內存代碼相對應的運行內存代碼信息,其中,所述運行內存代碼信息包括所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;檢測模塊,用于根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,輸出與所述運行內存代碼相對應的檢測結果,其中,所述源內存代碼信息包括所述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,所述源內存代碼包括所述目標應用的初始運行內存代碼;所述根據(jù)與源內存代碼相對應的源內存代碼信息對所述運行內存代碼信息進行檢測,具體包括:將所述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值與所述源內存代碼中所述第一字節(jié)碼文件對應的第二字節(jié)碼文件的第二哈希值進行對比分析。一個或多個處理器;存儲裝置,用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得所述一個或多個處理器執(zhí)行根據(jù)權利要求1~6中任一項所述的方法。11.一種計算機可讀存儲介質,其上存儲有可執(zhí)行指令,該指令被處理器執(zhí)行時使處理器執(zhí)行根據(jù)權利要求1~6中任一項所述的方法。12.一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)根據(jù)權利要求1~6中任一項所述的方法。4技術領域[0001]本公開涉及金融領域、計算機技術領域和信息安全領域,更具體地涉及一種代碼背景技術[0002]軟件的完整性保護問題在目前計算機網絡病毒、惡意代碼和木馬程序等肆虐橫行的現(xiàn)實情況下變得尤為重要。許多這一類的網絡攻擊都利用了目前缺乏有效手段對軟件提供完整性保護這一薄弱環(huán)節(jié),使攻擊者得以將一個本來語義或行為基本上正確或至少是非惡意的軟件的代碼部分篡改成錯誤的甚至是惡意的版本。[0003]在實現(xiàn)本公開發(fā)明構思的過程中,發(fā)明人發(fā)現(xiàn)相關技術中至少存在以下問題:相關技術中主要基于對源碼及服務器上運行的代碼進行文件數(shù)量比對或文件內容比對,檢測范圍較小,對木馬等文件檢測效果較差。發(fā)明內容[0005]根據(jù)本公開的第一個方面,提供了一種代碼檢測方法[0006]獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,上述目標應用基于上述運行內存代碼運行;[0007]對上述運行內存代碼進行處理,生成與上述運行內存代碼相對應的運行內存代碼信息,其中,上述運行內存代碼信息包括上述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;[0008]根據(jù)與源內存代碼相對應的源內存代碼信息對上述運行內存代碼信息進行檢測,輸出與上述運行內存代碼相對應的檢測結果,其中,上述源內存代碼信息包括上述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,上述源內存代碼包括上述目標應用的初始運行內存代碼。[0009]根據(jù)本公開的實施例,上述獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼包括:[0010]將目標插件部署于上述目標應用中;[0011]根據(jù)預設時間間隔,通過上述目標插件定時獲取上述虛擬機內存中的上述運行內存代碼。[0012]根據(jù)本公開的實施例,上述對上述運行內存代碼進行處理,生成與上述運行內存代碼相對應的運行內存代碼信息包括:[0013]依次對上述運行內存代碼中的每個上述第一字節(jié)碼文件進行掃描,輸出與每個上述第一字節(jié)碼文件相對應的上述第一哈希值。[0014]根據(jù)本公開的實施例,上述代碼檢測方法還包括:5[0015]在上述目標應用運行前,獲取待部署的上述源內存代碼;[0016]對上述源內存代碼進行處理,生成與上述源內存代碼相對應的上述源內存代碼信[0017]根據(jù)本公開的實施例,上述對上述源內存代碼進行處理,生成與上述源內存代碼相對應的上述源內存代碼信息包括:[0018]依次對上述源內存代碼中的每個上述第二字節(jié)碼文件進行掃描,輸出與每個上述第二字節(jié)碼文件相對應的上述第二哈希值。[0019]根據(jù)本公開的實施例,上述根據(jù)與源內存代碼相對應的源內存代碼信息對上述運行內存代碼信息進行檢測,輸出與上述運行內存代碼相對應的檢測結果包括:[0020]根據(jù)上述源內存代碼信息中的每個上述第二哈希值與上述運行內存代碼信息中的每個第一哈希值進行對比,輸出第一異常對比結果;[0022]根據(jù)本公開的實施例,上述運行內存代碼信息還包括每個上述第一字節(jié)碼文件的第一類名信息,上述源內存代碼信息還包括每個上述第二字節(jié)碼文件的第二類名信息;[0023]上述根據(jù)與源內存代碼相對應的源內存代碼信息對上述運行內存代碼信息進行檢測,輸出與上述運行內存代碼相對應的檢測結果還包括:[0024]根據(jù)上述源內存代碼信息中的每個上述第二類名信息與上述運行內存代碼信息中的每個第一類名信息進行對比,輸出第二異常對比結果;[0025]根據(jù)上述第一異常對比結果和上述第二異常對比結果生成上述檢測結果。[0026]本公開的第二方面提供了一種代碼檢測裝置,[0027]運行時代碼掃描子系統(tǒng),用于獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,上述目標應用基于上述運行內存代碼運行;以及對上述運行內存代碼進行處理,生成與上述運行內存代碼相對應的運行內存代碼信息,其中,上述運行內存代碼信息包括上述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;[0028]篡改檢測子系統(tǒng),用于根據(jù)與源內存代碼相對應的源內存代碼信息對上述運行內存代碼信息進行檢測,輸出與上述運行內存代碼相對應的檢測結果,其中,上述源內存代碼信息包括上述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,上述源內存代碼包括上述目標應用的初始運行內存代碼。[0030]源代碼掃描子系統(tǒng),用于在上述目標應用運行前,獲取待部署的上述源內存代碼;以及對上述源內存代碼進行處理,生成與上述源內存代碼相對應的上述源內存代碼信息。[0031]本公開的第三方面提供了一種代碼檢測系統(tǒng),[0032]第一獲取模塊,用于獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,上述目標應用基于上述運行內存代碼運行;[0033]第一處理模塊,用于對上述運行內存代碼進行處理,生成與上述運行內存代碼相對應的運行內存代碼信息,其中,上述運行內存代碼信息包括上述運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;[0034]檢測模塊,用于根據(jù)與源內存代碼相對應的源內存代碼信息對上述運行內存代碼信息進行檢測,輸出與上述運行內存代碼相對應的檢測結果,其中,上述源內存代碼信息包6括上述源內存代碼中每個第二字節(jié)碼文件的第二哈希值,上述源內存代碼包括上述目標應用的初始運行內存代碼。[0035]本公開的第四方面提供了一種電子設備,包括:一個或多個處理器;存儲器,用于存儲一個或多個程序,其中,當所述一個或多個程序被所述一個或多個處理器執(zhí)行時,使得一個或多個處理器執(zhí)行上述代碼檢測方法。[0036]本公開的第五方面還提供了一種計算機可讀存儲介質,其上存儲有可執(zhí)行指令,該指令被處理器執(zhí)行時使處理器執(zhí)行上述代碼檢測方法。[0037]本公開的第六方面還提供了一種計算機程序產品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)上述代碼檢測方法。附圖說明[0038]通過以下參照附圖對本公開實施例的描述,本公開的上述內容以及其他目的、特[0039]圖1示意性示出了根據(jù)本公開實施例的代碼檢測方法的應用場景圖;[0040]圖2示意性示出了根據(jù)本公開實施例的代碼檢測方法的流程圖;[0041]圖3示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖;[0042]圖4示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖;[0043]圖5示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖;[0044]圖6示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖;[0045]圖7示意性示出了根據(jù)本公開實施例的代碼檢測系統(tǒng)的結構框圖;以及[0046]圖8示意性示出了根據(jù)本公開實施例的實現(xiàn)代碼檢測方法的電子設備的方框圖。具體實施方式[0047]以下,將參照附圖來描述本公開的實施例。但是應該理解,這些描述只是示例性的,而并非要限制本公開的范圍。在下面的詳細描述中,為便于解釋,闡述了許多具體的細節(jié)以提供對本公開實施例的全面理解。然而,明顯地,一個或多個實施例在沒有這些具體細節(jié)的情況下也可以被實施。此外,在以下說明中,省略了對公知結構和技術的描述,以避免不必要地混淆本公開的概念。[0048]在此使用的術語僅僅是為了描述具體實施例,而并非意在限制本公開。在此使用[0049]在此使用的所有術語(包括技術和科學術語)具有本領域技術人員通常所理解的含義,除非另外定義。應注意,這里使用的術語應解釋為具有與本說明書的上下文相一致的含義,而不應以理想化或過于刻板的方式來解釋。領域技術人員通常理解該表述的含義來予以解釋(例如,“具有A、B和C中至少一個的系統(tǒng)”[0051]相關技術中代碼完整性保護方案主要基于對源內存代碼及服務器上運行的代碼7進行文件數(shù)量的比對或文件內容的比對。然而,大量的木馬文件以內存代碼的形式存在于應用服務器中,因此在服務器中無法找到對應的落地文件,導致基于文件的代碼完整性保護方案失效。[0052]有鑒于此,發(fā)明人發(fā)現(xiàn)可以將服務器的虛擬機內存中的運行內存代碼進行導出,并對其進行哈希值的計算,同時利用源內存代碼對應的哈希值與運行內存代碼的哈希值進行對比,從而可以判斷服務器中運行的運行內存代碼是否存在木馬文件等惡意信息。品,該方法包括:獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,目標應用基于運行內存代碼運行;對運行內存代碼進行處理,生成與運行內存代碼相對應的運行內存代碼信息,其中,運行內存代碼信息包括運行內存代碼中每個第一字節(jié)碼文件的第一哈希值;根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果,其中,源內存代碼信息包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值,源內存代碼包括目標應用的初始運行內存代碼。[0054]需要說明的是,本公開提供的代碼檢測方法、裝置、系統(tǒng)、設備及存儲介質可以應用于金融領域,例如,可用于銀行等金融機構,也可用于除金融領域之外的任意領域,例如做限定。[0055]圖1示意性示出了根據(jù)本公開實施例的代碼檢測方法的應用場景圖。[0056]如圖1所示,根據(jù)該實施例的應用場景100可以包括網絡104和多個服務器105。網絡104用以在終端設備101、102、103和服務器105之間提供通信鏈路的介質。網絡104可以包括各種連接類型,例如有線、無線通信鏈路或者光纖電纜等等。[0057]用戶可以使用終端設備101、102、103通過網絡104與服務器105交互,以運行目標[0058]終端設備101、102、103可以是具有顯示屏并且支持網頁瀏覽的各種電子設備,包括但不限于智能手機、平板電腦、膝上型便攜計算機和臺式計算機等等。[0059]服務器105可以是提供各種服務的服務器,例如執(zhí)行用戶利用終端設備101、102、103所請求服務器105執(zhí)行的目標應用,也可以執(zhí)行對運行內存代碼進行檢測處理,并將處理結果(例如根據(jù)用戶請求服務器105執(zhí)行的目標應用生成的檢測結果,例如該檢測結果顯示用戶的目標應用中包括惡意內存木馬,惡意增加、篡改的類文件等)反饋給終端設備。[0060]需要說明的是,本公開實施例所提供的代碼檢測方法一般可以由服務器105執(zhí)行。相應地,本公開實施例所提供的代碼檢測裝置一般可以設置于服務器105中。本公開實施例所提供的代碼檢測方法也可以由不同于服務器105且能夠與終端設備101、102、103和/或服務器105通信的服務器或服務器集群執(zhí)行。相應地,本公開實施例所提供的代碼檢測裝置也可以設置于不同于服務器105且能夠與終端設備101、102、103和/或服務器105通信的服務器或服務器集群中。[0061]應該理解,圖1中的終端設備、網絡和服務器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需[0062]以下將基于圖1描述的場景,通過圖2~圖6對公開實施例的代碼檢測方法進行詳細描述。8[0063]圖2示意性示出了根據(jù)本公開實施例的代碼檢測方法的流程圖。[0064]如圖2所示,該實施例的代碼檢測方法包括操作S210~操作S230。[0065]在操作S210,獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,目標應用基于運行內存代碼運行。[0066]在操作S220,對運行內存代碼進行處理,生成與運行內存代碼相對應的運行內存代碼信息,其中,運行內存代碼信息包括運行內存代碼中每個第一字節(jié)碼文件的第一哈希值。[0067]在操作S230,根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果,其中,源內存代碼信息包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值,源內存代碼包括目標應用的初始運行內存代碼。[0068]根據(jù)本公開的實施例,字節(jié)碼(Byte-code)是一種包含執(zhí)行程序,由一序列操作碼(operationcode,op)代碼或數(shù)據(jù)對組成的二進制文件,是一種中間碼。[0069]根據(jù)本公開的實施例,哈希值可以指利用哈希算法將任意長度的二進制值映射為固定長度的較小二進制值。其中,第一哈希值和第二哈希值均可以包括信息摘要(Message[0070]根據(jù)本公開的實施例,在進行代碼的檢測時,從虛擬機中的內存中獲取與目標應用關聯(lián)的運行內存代碼,根據(jù)該運行內存代碼中的每個第一字節(jié)碼文件生成對應的第一哈希值,將第一哈希值與源內存代碼信息中對應于第一字節(jié)碼文件的第二字節(jié)碼文件的第二哈希值進行對比分析,從而判斷虛擬機中的第一字節(jié)碼文件與第二字節(jié)碼文件是否相同的檢測結果。[0071]根據(jù)本公開的實施例,在檢測結果表明二者相同的情況下,表明第二字節(jié)碼文件中不存在惡意代碼,惡意代碼包括但不限于惡意內存[0072]根據(jù)本公開的實施例,在檢測結果表明二者不相同的情況下,表明第二字節(jié)碼文件中存在惡意代碼。[0073]根據(jù)本公開的實施例,通過獲取目標應用運行時的運行內存代碼,對運行內存代碼進行處理,生成包含運行內存代碼中每個第一字節(jié)碼文件的第一哈希值的運行內存代碼信息,通過包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值的源內存代碼信息對運行內存代碼信息進行檢測,輸出檢測結果的技術手段,通過原部署的源內存代碼信息對運行時的運行代碼信息進行檢測,能夠對插入的惡意內存木馬,惡意增加、篡改的類文件進行實時監(jiān)控,解決了相關技術中主要基于對源碼及服務器上運行的代碼進行文件數(shù)量比對或文件內容比對,檢測范圍較小,對木馬等文件檢測效果較差的技術問題,從而擴大了檢測范圍,提高了對木馬等文件的檢測效果,有效地保障了應用的安全運行。[0074]根據(jù)本公開的實施例,獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼可以包括如下操作。[0075]將目標插件部署于目標應用中。根據(jù)預設時間間隔,通過目標插件定時獲取虛擬機內存中的運行內存代碼。[0076]根據(jù)本公開的實施例,目標插件可以包括但不限于接入模塊。接入模塊可以包括JavaAgent接入模塊。[0077]根據(jù)本公開的實施例,JavaAgent接入模塊的作用包括將引擎附加到運行的目標9應用中??梢酝ㄟ^啟動時增加Agent參數(shù),或者在應用運行過程中利用附加進程的方式將JavaAgent綁定到待檢測的目標應用上。[0078]根據(jù)本公開的實施例,對運行內存代碼進行處理,生成與運行內存代碼相對應的運行內存代碼信息可以包括如下操作。[0079]依次對運行內存代碼中的每個第一字節(jié)碼文件進行掃描,輸出與每個第一字節(jié)碼文件相對應的第一哈希值。[0080]根據(jù)本公開的實施例,由于運行內存代碼中的第一字節(jié)碼文件數(shù)量較多,因此在進行檢測之前,需要將運行內存代碼中的每個第一字節(jié)碼文件進行計算以得到對應于每個第一字節(jié)碼文件的第一哈希值,以便于后續(xù)將第一哈希值與第二哈希值進行檢測分析。[0081]根據(jù)本公開的實施例,上述代碼檢測方法還可以包括如下操作。[0082]在目標應用運行前,獲取待部署的源內存代碼。對源內存代碼進行處理,生成內存代碼相對應的源內存代碼信息。[0083]根據(jù)本公開的實施例,對源內存代碼進行處理,生成與源內存代碼相對應的源內存代碼信息可以包括如下操作。[0084]依次對源內存代碼中的每個第二字節(jié)碼文件進行掃描,輸出與每個第二字節(jié)碼文件相對應的第二哈希值。[0085]根據(jù)本公開的實施例,由于源內存代碼中的第二字節(jié)碼文件數(shù)量較多,因此在進行檢測之前,需要將源內存代碼中的每個第二字節(jié)碼文件進行計算以得到對應于每個第二字節(jié)碼文件的第二哈希值,以便于后續(xù)將第一哈希值與第二哈希值進行檢測分析。根據(jù)本公開的實施例,根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果可以包括如下操作。[0086]根據(jù)源內存代碼信息中的每個第二哈希值與運行內存代碼信息中的每個第一哈[0087]根據(jù)本公開的實施例,第一異常對比結果可以表征第一哈希值與第二哈希值不一致,換言之,第一哈希值對應的第一字節(jié)碼文件存在惡意信息,例如該第一字節(jié)碼文件已被他人惡意增加和/或篡改。[0088]根據(jù)本公開的實施例,上述的檢測結果還可以包括第一正常對比結果,其中,第一正常對比結果可以表征第一哈希值與第二哈希值一致,換言之,第一哈希值對應的第一字節(jié)碼文件中不存在惡意信息。[0089]根據(jù)本公開的實施例,運行內存代碼信息還可以包括每個第一字節(jié)碼文件的第一類名信息,源內存代碼信息還可以包括每個第二字節(jié)碼文件的第二類名信息。[0090]根據(jù)本公開的實施例,根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果還可以包括如下操作。[0091]根據(jù)源內存代碼信息中的每個第二類名信息與運行內存代碼信息中的每個第一類名信息進行對比,輸出第二異常對比結果。根據(jù)第一異常對比結果和第二異常對比結果生成檢測結果。[0092]根據(jù)本公開的實施例,第二異常對比結果可以表征源內存代碼信息中的每個第二類名信息與運行內存代碼信息中的每個第一類名信息不同,換言之,第二異常對比結果可以表征第一類名信息對應的第一字節(jié)碼文件已被他人惡意增加和/或篡改。[0093]根據(jù)本公開的實施例,上述的檢測結果還可以包括第二正常結果,其中,第二正常結果可以表征源內存代碼信息中的每個第二類名信息與運行內存代碼信息中的每個第一類名信息相同。[0094]基于上述代碼檢測方法,本公開還提供了一種代碼檢測系統(tǒng)。以下將結合圖3~圖6對該系統(tǒng)進行詳細描述。[0095]圖3示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖。[0096]如圖3所示,代碼檢測裝置300可以包括運行時代碼掃描子系統(tǒng)310和篡改檢測子[0097]運行時代碼掃描子系統(tǒng)310,用于獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,目標應用基于運行內存代碼運行;以及對運行內存代碼進行處理,生成與運行內存代碼相對應的運行內存代碼信息,其中,運行內存代碼信息包括運行內存代碼中每個第一字節(jié)碼文件的第一哈希值。[0098]篡改檢測子系統(tǒng)320,用于根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果,其中,源內存代碼信息包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值,源內存代碼包括目標應用的初始運行內存代碼。[0099]根據(jù)本公開的實施例,通過獲取目標應用運行時的運行內存代碼,對運行內存代碼進行處理,生成包含運行內存代碼中每個第一字節(jié)碼文件的第一哈希值的運行內存代碼信息,通過包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值的源內存代碼信息對運行內存代碼信息進行檢測,輸出檢測結果的技術手段,通過原部署的源內存代碼信息對運行時的運行代碼信息進行檢測,能夠對插入的惡意內存木馬,惡意增加、篡改的類文件進行實時監(jiān)控,解決了相關技術中主要基于對源碼及服務器上運行的代碼進行文件數(shù)量比對或文件內容比對,檢測范圍較小,對木馬等文件檢測效果較差的技術問題,從而擴大了檢測范圍,提高了對木馬等文件的檢測效果,有效地保障了應用的安全運行。[0100]如圖3所示,上述代碼檢測裝置300還可以包括源代碼掃描子系統(tǒng)。[0101]源代碼掃描子系統(tǒng)330,用于在目標應用運行前,獲取待部署的源內存代碼;以及對源內存代碼進行處理,生成與源內存代碼相對應的源內存代碼信息。[0102]圖4示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖。[0103]如圖4所示,上述運行時代碼掃描子系統(tǒng)310可以包括接入模塊311、字節(jié)碼轉存模塊312和第一信息上送模塊313.接入模塊311可以包括JavaAgent接入模塊。[0104]根據(jù)本公開的實施例,JavaAgent接入模塊的作用可以包括將引擎附加到運行的目標應用中。可以通過啟動時增加Agent參數(shù),或者在應用運行過程中利用附加進程的方式將JavaAgent綁定到待檢測的目標應用上。[0105]根據(jù)本公開的實施例,字節(jié)碼轉存模塊312利用接入模塊311綁定的代理引擎,每隔一段時間轉存出虛擬機內存中的運行內存代碼。[0106]根據(jù)本公開的實施例,第一信息上送模塊313的作用可以包括將字節(jié)碼轉存模塊312獲取并計算出的運行內存代碼的信息進行傳輸,以便后續(xù)的檢測分析。[0107]圖5示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖。[0108]如圖5所示,上述篡改檢測子系統(tǒng)320可以包括篡改分析模塊321。11[0109]根據(jù)本公開的實施例,篡改分析模塊321的作用可以包括接收第二哈希值、第二類名信息,以及接收運行時代碼掃描子系統(tǒng)傳輸?shù)牡谝还V怠⒌谝活惷畔?。由于各種病毒、木馬等惡意信息在修改第一類名信息或新增代碼后,這些被篡改的第一類名信息均需被應用的類加載器所加載并執(zhí)行,故通過對比虛擬機內存中運行的運行內存代碼的第一類名信息與源內存代碼信息的第二類名信息,可以有效監(jiān)測代碼中的惡意信息。[0110]如圖5所示,上述篡改檢測子系統(tǒng)320還可以包括信息展示模塊322。[0111]信息展示模塊322可以將篡改分析模塊321分析檢測到的檢測結果進行展示,例如可以對被篡改的運行內存代碼中的新增的類、篡改的類進行展示,以便于對開發(fā)人員進行提醒。[0112]根據(jù)本公開的實施例,運行時代碼掃描子系統(tǒng)310中的字節(jié)碼轉存模塊312還可以計算每個第一字節(jié)碼文件的第一類名信息,以便于篡改檢測子系統(tǒng)320對源內存代碼信息中的第二字節(jié)碼文件的第二類名信息和第一類名信息進行檢測分析。[0113]圖6示意性示出了根據(jù)本公開實施例的代碼檢測裝置的結構框圖。[0114]如圖6所示,源代碼掃描子系統(tǒng)330可以包括代碼掃描模塊331和第二信息上送模塊332。[0115]根據(jù)本公開的實施例,代碼掃描模塊331可以獲取待部署的目標應用的源內存代碼,對源內存代碼中的所有第二字節(jié)碼文件進行掃描,計算每個第二字節(jié)碼文件對應的第二哈希值和第二類名信息。[0116]根據(jù)本公開的實施例,第二信息上送模塊332可以將代碼掃描模塊331計算出的源內存代碼中的所有第二字節(jié)碼文件的第一哈希值和第一類名信息傳輸至篡改檢測子系統(tǒng)320,以便后續(xù)檢測分析。[0117]根據(jù)本公開的實施例,源代碼掃描子系統(tǒng)330傳輸?shù)臑槌跏碱惢€信息。運行時代碼掃描子系統(tǒng)310傳輸?shù)臑樘摂M機內存中實時運行的類信息,其中,類信息可以包括哈希值和類名信息。[0118]基于上述代碼檢測方法,本公開還提供了一種代碼檢測系統(tǒng)。以下將結合圖7對該系統(tǒng)進行詳細描述。[0119]圖7示意性示出了根據(jù)本公開實施例的代碼檢測系統(tǒng)的結構框圖。[0120]如圖7所示,該實施例的代碼檢測系統(tǒng)700可以包括第一獲取模塊710、第一處理模塊720和檢測模塊730。[0121]第一獲取模塊710用于獲取虛擬機內存中與目標應用相關聯(lián)的運行內存代碼,其中,目標應用基于運行內存代碼運行。在一實施例中,第一獲取模塊710可以用于執(zhí)行前文描述的操作S210,在此不再贅述。[0122]第一處理模塊720用于對運行內存代碼進行處理,生成與運行內存代碼相對應的運行內存代碼信息,其中,運行內存代碼信息包括運行內存代碼中每個第一字節(jié)碼文件的第一哈希值。在一實施例中,第一處理模塊720可以用于執(zhí)行前文描述的操作S220,在此不再贅述。[0123]檢測模塊730用于根據(jù)與源內存代碼相對應的源內存代碼信息對運行內存代碼信息進行檢測,輸出與運行內存代碼相對應的檢測結果,其中,源內存代碼信息包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值,源內存代碼包括目標應用的初始運行內存代碼。在一實施例中,檢測模塊730可以用于執(zhí)行前文描述的操作S230,在此不再贅述。[0124]根據(jù)本公開的實施例,通過獲取目標應用運行時的運行內存代碼,對運行內存代碼進行處理,生成包含運行內存代碼中每個第一字節(jié)碼文件的第一哈希值的運行內存代碼信息,通過包括源內存代碼中每個第二字節(jié)碼文件的第二哈希值的源內存代碼信息對運行內存代碼信息進行檢測,輸出檢測結果的技術手段,通過原部署的源內存代碼信息對運行時的運行代碼信息進行檢測,能夠對插入的惡意內存木馬,惡意增加、篡改的類文件進行實時監(jiān)控,解決了相關技術中主要基于對源碼及服務器上運行的代碼進行文件數(shù)量比對或文件內容比對,檢測范圍較小,對木馬等文件檢測效果較差的技術問題,從而擴大了檢測范圍,提高了對木馬等文件的檢測效果,有效地保障了應用的安全運行。[0125]根據(jù)本公開的實施例,第一獲取模塊710可以包括部署單元和獲取單元。[0126]部署單元,用于將目標插件部署于目標應用中。[0127]獲取單元,用于根據(jù)預設時間間隔,通過目標插件定時獲取虛擬機內存中的運行內存代碼。[0128]根據(jù)本公開的實施例,第一處理模塊720可以包括第一處理單元。[0129]第一處理單元,用于依次對運行內存代碼中的每個第一字節(jié)碼文件進行掃描,輸出與每個第一字節(jié)碼文件相對應的第一哈希值。[0130]根據(jù)本公開的實施例,上述代碼檢測系統(tǒng)700還可以包括第二獲取模塊和第二處理模塊。[0131]第二獲取模塊,用于在目標應用運行前,獲取待部署的源內存代碼。[0132]第二處理模塊,用于對源內存代碼進行處理,生成與源內存代碼相對應的源內存代碼信息。[0133]根據(jù)本公開的實施例,第二處理模塊可以包括第二處理單元。[0134]第二處理單元,用于依次對源內存代碼中的每個第二字節(jié)碼文件進行掃描,輸出與每個第二字節(jié)碼文件相對應的第二哈希值。[0135]根據(jù)本公開的實施例,檢測模塊730可以包括第一對比單元和第一生成單元。[0136]第一對比單元,用于根據(jù)源內存代碼信息中的每個第二哈希值與運行內存代碼信息中的每個第一哈希值進行對比,輸出第一異常對比結果。[0137]第一生成單元,用于根據(jù)第一異常對比結果,生[0138]根據(jù)本公開的實施例,運行內存代碼信息還包括每個第一字節(jié)碼文件的第一類名信息,源內存代碼信息還包括每個第二字節(jié)碼文件的第二類名信息。[0139]根據(jù)本公開的實施例,檢測模塊730還可以包括第二對比單元和第二生成單元。[0140]第二對比單元,用于根據(jù)源內存代碼信息中的每個第二類名信息與運行內存代碼信息中的每個第一類名信息進行對比,輸出第二異常對比結果。[0141]第二生成單元,用于根據(jù)第一異常對比結果和第二異常對比結果生成檢測結果。[0142]根據(jù)本公開的實施例,第一獲取模塊710、第一處理模塊720和檢測模塊730中的任意多個模塊可以合并在一個模塊中實現(xiàn),或者其中的任意一個模塊可以被拆分成多個模塊?;蛘?,這些模塊中的一個或多個模塊的至少部分功能可以與其他模塊的至少部分功能相結合,并在一個模塊中實現(xiàn)。根據(jù)本公開的實施例,第一獲取模塊710、第一處理模塊720和檢測模塊730中的至少一個可以至少被部分地實現(xiàn)為硬件電路,例如現(xiàn)場可編程門陣列(FPGA)、可編程邏輯陣列(PLA)、片上系統(tǒng)、基板上的系統(tǒng)、封裝上的系統(tǒng)、專用集成電路(ASIC),或可以通過對電路進行集成或封裝的任何其他的合理方式等硬件或固件來實現(xiàn),或以軟件、硬件以及固件三種實現(xiàn)方式中任意一種或以其中任意幾種的適當組合來實現(xiàn)?;蛘撸谝猾@取模塊710、第一處理模塊720和檢測模塊730中的至少一個可以至少被部分地實現(xiàn)為計算機程序模塊,當該計算機程序模塊被運行時,可以執(zhí)行相應的功能。[0143]圖8示意性示出了根據(jù)本公開實施例的適于實現(xiàn)代碼檢測方法的電子設備的方框[0144]如圖8所示,根據(jù)本公開實施例的電子設備800包括處理器801,其可以根據(jù)存儲在只讀存儲器(ROM)802中的程序或者從存儲部分808加載到隨機訪問存儲器(RAM)803中的程序而執(zhí)行各種適當?shù)膭幼骱吞幚?。處理?01例如可以包括通用微處理器(例如CPU)、指令集處理器和/或相關芯片組和/或專用微處理器(例如,專用集成電路(ASIC))等等。處理器801還可以包括用于緩存用途的板載存儲器。處理器801可以包括用于執(zhí)行根據(jù)本公開實施例的方法流程的不同動作的單一處理單元或者是多個處理單元。[0145]在RAM803中,存儲有電子設備800操作所需的各種程序和數(shù)據(jù)。處理器801、ROM802以及RAM803通過總線804彼此相連。處理器801通過執(zhí)行ROM802和/或RAM803中的程序來執(zhí)行根據(jù)本公開實施例的方法流程的各種操作。需要注意,所述程序也可以存儲在除ROM802和RAM803以外的一個或多個存儲器中。處理器801也可以通過執(zhí)行存儲在所述一個或多個存儲器中的程序來執(zhí)行根據(jù)本公開實施例的方法流程的各種操作。[0146]根據(jù)本公開的實施例,電子設備800還可以包括輸入/輸出(I/0)接口805,輸入/輸出(I/O)接口805也連接至總線804。電子設備800還可以包括連接至I/0接口805的以下部件中的一項或多項:包括鍵盤、鼠標等的輸入部分806;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分807;包括硬盤等的存儲部分808;以及包括諸如LAN卡、調制解調器等的網絡接口卡的通信部分809。通信部分809經由諸如因特網的網絡執(zhí)行通信處理。驅動器810也根據(jù)需要連接至I/0接口805。可拆卸介質811,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據(jù)需要安裝在驅動器810上,以便于從其上讀出的計算機程序根據(jù)需要被安裝入存儲部分808。[0147]本公開還提供了一種計算機可讀存儲介質,該計算機可讀存儲介質可以是上述實施例中描述的設備/裝置/系統(tǒng)中所包含的;也可以是單獨存在,而未裝配入該設備/裝置/系統(tǒng)中。上述計算機可讀存儲介質承載有一個或者多個程序,當上述一個或者多個程序被執(zhí)行時,實現(xiàn)根據(jù)本公開實施例的方法。[0148]根據(jù)本公開的實施例,計算機可讀存儲介質可以是非易失性的計算機可讀存儲介質,例如可以包括但不限于:便攜式計算機磁盤、硬盤、隨機存儲器件、磁存儲器件、或者上述的任意合適的組合。在本公開中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。例如,根據(jù)本公開的實施例,計算機可讀存儲介質可以包括上文描述的[0149]本公開的實施例還包括一種計算機程序產品,其包括計算機程序,該計算機程序包含用于執(zhí)行流程圖所示的方法的程序代碼。當計算機程序產品在計算機系統(tǒng)中運行時,該程序代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論