本發明專利技術涉及計算機軟件開發技術領域,公開了一種基于JavaAgent的Java應用防篡改方法,本發明專利技術通過構建兩個jar包,兩個jar包分別計算目標Java應用初始化運行時所有被加載的class文件的MD5值,以及目標Java應用運行時內存中的class文件的MD5值,然后將兩個相同文件名的class文件運行前的MD5值和運行后的MD5值進行比較,判斷兩者是否一致,最終判斷目標Java應用是否被篡改,最后執行相應的防篡改操作。本發明專利技術能夠在Java應用程序運行過程中及時發現篡改操作,極大的縮短了發現系統被篡改的時間提升了目標Java應用程序運行端的安全性。提升了目標Java應用程序運行端的安全性。提升了目標Java應用程序運行端的安全性。
【技術實現步驟摘要】
基于JavaAgent的Java應用防篡改方法
[0001]本專利技術涉及計算機軟件開發
,具體涉及一種基于JavaAgent的Java應用防篡改方法。
技術介紹
[0002]隨著互聯網的飛速發展,各種應用程序APP也呈井噴態勢,相應的應用程序安全也面臨著嚴峻考驗。當網絡攻擊使Java應用程序類文件在運行中被篡改,往往會對程序運行端及目標應用程序個人、企業乃至社會造成嚴重威脅。
[0003]公開號為CN110909345A,公開日為2019年12月02日,專利技術名稱為“一種Java系統開源軟件防篡改方法及系統”的專利技術專利申請公開了一種軟件防篡改方法,其具體的技術方案為:本專利技術提供了一種Java系統開源軟件防篡改方法及系統,所述方法包括:接收Java系統應用程序中Jvm模塊傳輸的啟動指令;通過基于JavaAgent形成的探針確定應用程序中的所有開源軟件,根據預設校驗規則對所述開源軟件進行校驗得到校驗結果;根據所述校驗結果確定開源軟件是否被篡改,若被篡改,執行預警操作,本專利技術可通過在Java系統開源軟件中設置探針,在每次開源軟件啟動時對開源軟件進行校驗,以確定開源軟件是否被篡改。
[0004]上述現有技術雖然具有防篡改的功能與效果,但是只能針對應用啟動之前發生的篡改進行校驗,應用一旦運行,則無法對運行過程中發生的篡改進行實時的校驗與發現。
技術實現思路
[0005]為了解決上述現有技術存在的問題和缺陷,本專利技術提出了一種基于JavaAgent的Java應用防篡改及內存取證的方法,能夠及時發現Java應用運行過程中發生的篡改操作,縮短了發現應用程序被篡改的時間,并且針對篡改能夠更加快速的進行相應的預警。
[0006]為了實現上述專利技術目的,本專利技術的技術方案如下:一種基于JavaAgent的Java應用防篡改方法,具體包括以下步驟:步驟S1.構建Java應用啟動時,計算class文件MD5值并進行存儲的第一jar包;步驟S2.在目標Java應用初始化運行時,通過應用啟動命令添加啟動參數,第一jar包運行并計算目標Java應用中所有被加載的class文件的MD5值,將class文件的文件名稱以及對應的MD5值存儲至指定的本地磁盤文件中;步驟S3.在目標Java應用運行過程中,通過Java虛擬機進程狀態獲取目標Java應用的進程號;步驟S4.構建Java應用運行過程中,校驗class文件MD5值的第二jar包,第二jar包鏈接至處于運行狀態的目標Java應用中,定時獲取目標Java應用運行時內存中的class文件,并計算出相應的MD5值;步驟S5.第二jar包將獲取的class文件的文件名稱與步驟S2中存儲的文件名稱進行匹配,檢測該class文件此時計算得到的MD5值與存儲的MD5值是否一致;若一致,則跳過該文件,繼續遍歷下一個文件;若不一致則表示該class文件被篡改,發出預警信息,同時中
斷該Java應用的運行。
[0007]作為優選地,所述步驟S5還包括:若第二jar包檢測到class文件的MD5值與存儲的MD5值不一致,則根據二進制流導出該被篡改的class文件至本地磁盤進行保存。
[0008]作為優選地,所述步驟S5還包括:第二jar包間隔固定時間重復執行步驟S5,用于判斷目標Java應用在運行過程中是否被篡改。
[0009]作為優選地,所述步驟S5中,預警信息通過短信或郵件發送至用戶端。
[0010]作為優選地,所述第二jar包利用JavaAgent技術的JavaAttach機制,根據目標Java應用的進程號鏈接至目標Java應用。
[0011]本專利技術的有益效果:(1)本專利技術能夠在Java應用程序運行過程中及時發現篡改操作,極大的縮短了發現程序或系統被篡改的時間;進一步地,本專利技術針對程序或系統的篡改能夠更加快速的進行響應預警操作,通過消息通知并及時進行熔斷處理,極大地提升了目標Java應用程序運行端的安全性。
[0012](2)本專利技術對Java應用程序被篡改后的class文件進行內存取證存儲至本地路徑,提取保留與網絡攻擊或網絡犯罪相關的數字證據,能夠提高抓取被攻擊的程序或系統的證據的速度和準確性。
附圖說明
[0013]本專利技術的前述和下文具體描述在結合以下附圖閱讀時變得更清楚,附圖中:圖1為本專利技術方法流程圖。
具體實施方式
[0014]為了使本領域的技術人員更好地理解本專利技術中的技術方案,下面將通過幾個具體的實施例來進一步說明實現本專利技術專利技術目的的技術方案,需要說明的是,本專利技術要求保護的技術方案包括但不限于以下實施例。基于本專利技術中的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都應當屬于本專利技術保護的范圍。
[0015]隨著互聯網的飛速發展,各種應用程序APP也呈井噴態勢,相應的應用程序安全也面臨著嚴峻考驗。當網絡攻擊使Java應用程序類文件在運行中被篡改時,往往會對程序運行端及目標應用程序個人、企業乃至社會造成嚴重威脅。
[0016]目前,應用程序或系統被篡改后,大多情況是應用程序被修改后并且造成嚴重的不良后果后才會被發現,暫無在程序或系統運行過程中及時發現篡改操作,并同時進行預警以及熔斷處理的現有技術出現。
[0017]基于此,本專利技術的實施例提出了一種基于JavaAgent的Java應用防篡改方法,通過計算并對比Java應用程序中相同文件名的class文件,在程序運行前和運行過程中的MD5值來判斷應用是否被篡改,若前后的MD5值不一致,則表示應用被篡改,那么則會發出相應的預警信息,并同時中斷該Java應用程序的運行;若兩者前后是一致的,則表示此時應用未被篡改,繼續遍歷Java應用程序運行時的class文件字節流,根據MD5值來判斷應用是否被篡改。本專利技術能夠在Java應用程序運行過程中及時發現篡改操作,極大的縮短了發現系統或程序被篡改的時間。
[0018]本實施例公開了一種基于JavaAgent的Java應用防篡改方法,參照說明書附圖1所示,所述方法主要包括以下步驟。
[0019]步驟S1.構建Java應用啟動時,計算所有class文件字節流MD5值并進行存儲的第一jar包。
[0020]在本實施例中,需要說明的是,MD5值為MD5信息摘要算法產生出的散列值。
[0021]在本實施例中,還需要說明的是,構建的第一jar包內包括兩個模塊,分別為MD5值第一計算模塊和MD5值第一存儲模塊。
[0022]在本實施例中,第一jar包實現了JavaAgent探針技術,JavaAgent探針技術是一種Java技術,使用命令示例:java
??
javaagent xx.jar
??
jar application.jar ,其中xx.jar指該步驟構建的jar包,application.jar為待檢測目標Java應用jar包。該技術能在待檢測的目標Java應用啟動指令發起后,加載class文件時,獲取class文件流信息本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種基于JavaAgent的Java應用防篡改方法,其特征在于,具體包括以下步驟:步驟S1.構建Java應用啟動時,計算class文件MD5值并進行存儲的第一jar包;步驟S2.在目標Java應用初始化運行時,通過應用啟動命令添加啟動參數,第一jar包運行并計算目標Java應用中所有被加載的class文件的MD5值,將class文件的文件名稱以及對應的MD5值存儲至指定的本地磁盤文件中;步驟S3.在目標Java應用運行過程中,通過Java虛擬機進程狀態獲取目標Java應用的進程號;步驟S4.構建Java應用運行過程中,校驗class文件MD5值的第二jar包,第二jar包鏈接至處于運行狀態的目標Java應用中,定時獲取目標Java應用運行時內存中的class文件,并計算出相應的MD5值;步驟S5.第二jar包將獲取的class文件的文件名稱與步驟S2中存儲的文件名稱進行匹配,檢測該class文件此時計算得到的MD5值與存儲的MD5值是否一致;若一致,則跳過該文件,繼...
【專利技術屬性】
技術研發人員:田紅偉,黃敬程,徐文勇,
申請(專利權)人:成都數默科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。