一种Javaagent无文件注入内存马的检测方法及装置制造方法及图纸

技术编号:36566687 阅读:19 留言:0更新日期:2023-02-04 17:22
本发明专利技术公开了一种Java agent无文件注入内存马的检测方法及装置,包括:解析JAVA系统中的/proc/self/maps文件,得到libjvm.so的加载范围;对JAVA系统中的/proc/self/mem文件进行实时检测;判断/proc/self/mem文件在内存中读写操作的写入范围是否为libjvm.so的加载范围;如是则判定读写操作为恶意内存操作,并进行拦截;如否则判定读写操作为正常内存操作。通过监控Java web容器程序的/proc/self/mem的内存操作,检测恶意shellcode写入,及时发现恶意注入内存马并拦截,提高了安全性和稳定性。性。性。

【技术实现步骤摘要】
一种Java agent无文件注入内存马的检测方法及装置


[0001]本专利技术涉及计算机
,特别涉及一种Java agent无文件注入内存马的检测方法及装置。

技术介绍

[0002]Java Agent是在JDK1.5引入的一种可以在不影响正常编译的情况下来修改字节码,即动态修改已加载或者未加载的类,包括类的属性、方法的技术。一些恶意Webshell攻击行为会利用此技术在不用文件落地的情况下,修改HttpServlet等类,达到注入内存马的行为。此类技术只是在内存中进行类的修改和驻留,并没有文件在磁盘上进行落地存储,导致很难被常规的安全软件发现。

技术实现思路

[0003]本专利技术实施例的目的是提供一种Java agent无文件注入内存马的检测方法及装置,通过监控Java web容器程序的/proc/self/mem自身的内存操作,检测恶意的shellcode写入,及时发现恶意注入内存马的行为并进行拦截,提高了系统的安全性和稳定性。
[0004]为解决上述技术问题,本专利技术实施例的第一方面提供了一种Java agent无文件注入内存马的检测方法,包括如下步骤:
[0005]解析JAVA系统中的/proc/self/maps文件,得到libjvm.so的加载范围;
[0006]对所述JAVA系统中的所述/proc/self/mem文件进行实时检测;
[0007]判断所述/proc/self/mem文件在内存中读写操作的写入范围是否为所述libjvm.so的所述加载范围;
[0008]如是,则判定所述读写操作为恶意内存操作,并进行拦截;
[0009]如否,则判定所述读写操作为正常内存操作。
[0010]进一步地,所述对所述JAVA系统中的所述/proc/self/mem文件进行实时检测,包括:
[0011]对所述/proc/self/mem文件的读写文件函数进行HOOK挂钩;
[0012]在所述HOOK函数中对所述/proc/self/mem文件自身内存的读写操作进行实时检测。
[0013]进一步地,所述判定所述读写操作为恶意内存操作并进行拦截之后,还包括:
[0014]向所述JAVA系统发出告警信息,所述告警信息包括所述读写操作相关的文件名称及在所述内存中的写入范围。
[0015]进一步地,所述libjvm.so的加载范围包括:所述libjvm.so的基址和大小。
[0016]相应地,本专利技术实施例的第二方面提供了一种Java agent无文件注入内存马的检测装置,包括:
[0017]解析模块,其用于解析JAVA系统中的/proc/self/maps文件,得到libjvm.so的加载范围;
[0018]检测模块,其用于对所述JAVA系统中的所述/proc/self/mem文件进行实时检测;
[0019]判断模块,其用于判断所述/proc/self/mem文件在内存中读写操作的写入范围是否所述libjvm.so的所述加载范围;
[0020]控制模块,其用于在所述/proc/self/mem文件在内存中读写操作的写入范围为所述libjvm.so的所述加载范围时,判定所述读写操作为恶意内存操作,并进行拦截并发出告警信息;
[0021]所述控制模块还用于在所述/proc/self/mem文件在内存中读写操作的写入范围为所述libjvm.so的所述加载范围之外时,判定所述读写操作为正常内存操作。
[0022]进一步地,所述检测模块包括:
[0023]HOOK函数执行单元,其用于对所述/proc/self/mem文件的读写文件函数进行HOOK;
[0024]检测执行单元,其用于在所述HOOK函数中对所述/proc/self/mem文件自身内存的读写操作进行实时检测。
[0025]进一步地,所述Java agent无文件注入内存马的检测装置还包括:告警模块;
[0026]所述告警模块用于向所述JAVA系统发出告警信息,所述告警信息包括所述读写操作相关的文件名称及在所述内存中的写入范围。
[0027]进一步地,所述libjvm.so的加载范围包括:所述libjvm.so的基址和大小。
[0028]相应地,本专利技术实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行上述Java agent无文件注入内存马的检测方法。
[0029]相应地,本专利技术实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上述Java agent无文件注入内存马的检测方法。
[0030]本专利技术实施例的上述技术方案具有如下有益的技术效果:
[0031]通过监控Java web容器程序的/proc/self/mem自身的内存操作,检测恶意的shellcode写入,及时发现恶意注入内存马的行为并进行拦截,提高了系统的安全性和稳定性。
附图说明
[0032]图1是本专利技术实施例提供的Java agent无文件注入内存马的检测方法流程图;
[0033]图2是本专利技术实施例提供的Java agent无文件注入内存马的检测方法示意图;
[0034]图3是本专利技术实施例提供的Java agent无文件注入内存马的检测装置模块框图;
[0035]图4是本专利技术实施例提供的判断模块框图。
[0036]附图标记:
[0037]1、解析模块,2、检测模块,21、HOOK函数执行单元,22、检测执行单元,3、判断模块,4、控制模块,5、告警模块。
具体实施方式
[0038]为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0039]Java Agent是在JDK1.5引入的一种可以在不影响正常编译的情况下来修改字节码,即动态修改已加载或者未加载的类,包括类的属性、方法的技术。一些恶意的Webshell,比如冰蝎,为了隐藏自己,提供了AgentNoFile注入内存马功能,其攻击行为会利用如下技术在不用文件落地的情况下,修改HttpServlet等类,达到注入内存马的行为。其攻击方法如下:
[0040]1、解析/proc/self/maps取得libjvm.so的加载基址和路径,解析libjvm.so的ELF头,得到java_io_RandomAccessFile_length和JNI_GetCreatedJava VMs的偏移,通过基址和偏移得到java_io_RandomAccessFile_length和JNI_本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Java agent无文件注入内存马的检测方法,其特征在于,包括如下步骤:解析JAVA系统中的/proc/self/maps文件,得到libjvm.so的加载范围;对所述JAVA系统中的所述/proc/self/mem文件进行实时检测;判断所述/proc/self/mem文件在内存中读写操作的写入范围是否为所述libjvm.so的所述加载范围;如是,则判定所述读写操作为恶意内存操作,并进行拦截;如否,则判定所述读写操作为正常内存操作。2.根据权利要求1所述的Java agent无文件注入内存马的检测方法,其特征在于,所述对所述JAVA系统中的所述/proc/self/mem文件进行实时检测,包括:对所述/proc/self/mem文件的读写文件函数进行HOOK;在所述HOOK函数中对所述/proc/self/mem文件自身内存的读写操作进行实时检测。3.根据权利要求1所述的Java agent无文件注入内存马的检测方法,其特征在于,所述判定所述读写操作为恶意内存操作并进行拦截之后,还包括:向所述JAVA系统发出告警信息,所述告警信息包括所述读写操作相关的文件名称及在所述内存中的写入范围。4.根据权利要求1

3任一所述的Java agent无文件注入内存马的检测方法,其特征在于,所述libjvm.so的加载范围包括:所述libjvm.so的基址和大小。5.一种Java agent无文件注入内存马的检测装置,其特征在于,包括:解析模块(1),其用于解析JAVA系统中的/proc/self/maps文件,得到libjvm.so的加载范围;检测模块(2),其用于对所述JAVA系统中的所述/proc/self/mem文件进行实时检测;判断模块(3),其用于判断所述/proc/self/mem文件在内存中读写操作的写入范围是否所述libjvm.so的所述加载范围;控制模块(4...

【专利技术属性】
技术研发人员:姜向前张晓瑞鲍春杰
申请(专利权)人:安芯网盾北京科技有限公司
类型:发明
国别省市:

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

1