基于JavaAgent的Java应用防篡改方法技术

技术编号:36512295 阅读:16 留言:0更新日期:2023-02-01 15:41
本发明专利技术涉及计算机软件开发技术领域,公开了一种基于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值是否一致;若一致,则跳过该文件,继...

【专利技术属性】
技术研发人员:田红伟黄敬程徐文勇
申请(专利权)人:成都数默科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1