CN115840940A - 一种无文件木马检测方法、系统、介质及设备 - Google Patents
一种无文件木马检测方法、系统、介质及设备 Download PDFInfo
- Publication number
- CN115840940A CN115840940A CN202211336032.XA CN202211336032A CN115840940A CN 115840940 A CN115840940 A CN 115840940A CN 202211336032 A CN202211336032 A CN 202211336032A CN 115840940 A CN115840940 A CN 115840940A
- Authority
- CN
- China
- Prior art keywords
- class
- risk
- classes
- file
- free
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于信息安全技术领域,提供了无文件木马检测方法、系统、介质及设备。其中该方法包括获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类;判断各个类及其父类所对应的class文件是否均存在磁盘上:若不存在,则将当前类标记为高风险类;若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类;计算各个高风险类的分值,判定是否为无文件木马。
Description
技术领域
本发明属于信息安全技术领域,尤其涉及一种无文件木马检测方法、系统、介质及设备。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
通常将木马种类分成“有文件木马”和“无文件木马”两类。“有文件木马”也就是常见的“二进制木马、网马”;“无文件木马”是无文件攻击的一种方式,内存木马是常见的类型之一。传统的JSP木马特征性强,且需要文件落地,容易被查杀。因此现在出现了内存马技术。Java“无文件”木马,相较于传统的JSP木马,其最大的特点就是无文件落地,存在于内存之中,隐蔽性强。“无文件”木马就是通过动态添加恶意filter组件到正在运行的Tomcat服务器中。导致http请求通过该filter时会执行该filter的恶意代码。无文件攻击并不是什么新鲜事物,但是他们却变得越来越普遍。波尼蒙研究所发现,2018年所有网络攻击中有35%是无文件的。Trend micro数据显示,从2018年到2019年上半年的无文件威胁检测跟踪显示明显增加,上涨396%。根据Watchguard Technologies的最新数据,由于攻击者不断提高隐蔽性绕过传统安全控制,2020年,无文件恶意软件的检测量同比增长了888%。可见,无文件攻击越来越多的被攻击者利用,进行威胁破坏活动。
目前对于“无文件”木马的检测基本都是基于Java Agent技术的无文件木马检测,不能覆盖到所有的基于Java容器的“无文件”木马类型,对retransformClasses类型的“无文件”木马无法检测,同时有可能导致应用的正常热更新失效。对于java Agent注入进行无文件木马的检测,最大的缺陷是一旦木马程序率先进入JVM中,木马程序将Agent加载相关API抹除,后续安全软件在通过java Agent技术做检测将无法对目标JVM进程附加。
综上所述,发明人发现,目前现有的检测无文件木马的方法误报率高,从而降低了无文件木马识别的准确率。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种无文件木马检测方法、系统、介质及设备,其能够降低无文件木马的方法误报率,提高无文件木马识别的准确率。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种无文件木马检测方法。
在一个或多个实施例中,一种无文件木马检测方法,其包括:
获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类;
判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类;
基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
作为一种实施方式,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
作为一种实施方式,使用Serviceability Agent技术提取风险类的字节码。
上述方案的优点在于,采用Serviceability Agent技术解决了使用Java Agent技术检测“无文件”木马,在提取内存字节码的时候需要使用retransformClasses()方法,只能获取到该类的原始字节码,而无法获取到被修改后的字节码,且会导致被修改过的类回滚到最初始的状态,可能会导致应用正常的热更新或者安全热补丁失效,从而干扰业务的正常运行或导致安全风险的问题,采用Serviceability Agent技术解决了攻击者可以利用技术破坏Java Agent技术在监测过程中某个环节的中断,阻止后续的Agent加载的问题。
作为一种实施方式,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
本发明的第二个方面提供一种无文件木马检测系统。
在一个或多个实施例中,一种无文件木马检测系统,其包括:
类获取遍历模块,其用于获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类;
风险等级确定模块,其用于:
判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类;
无文件木马判定模块,其用于基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
作为一种实施方式,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
作为一种实施方式,在所述风险等级确定模块中,使用Serviceability Agent技术提取风险类的字节码。
作为一种实施方式,在所述无文件木马判定模块中,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
本发明的第三个方面提供一种计算机可读存储介质。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的无文件木马检测方法中的步骤。
本发明的第四个方面提供一种计算机设备。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的无文件木马检测方法中的步骤。
与现有技术相比,本发明的有益效果是:
(1)本发明通过JVM虚拟机中的所有类及其父类与磁盘上类文件进行比对、根据当前类中是否包含预设黑名单上的关键类、方法或关键字以及风险类的字节码比对,来确定风险类别,最后基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,判定出是否为无文件木马,降低了无文件木马的方法误报率,提高了无文件木马识别的准确率。
(2)采用Serviceability Agent技术解决了使用Java Agent技术检测“无文件”木马,在提取内存字节码的时候,也需要使用retransformClasses()方法,只能获取到该类的原始字节码,无法获取到被修改后的字节码,且会导致被修改过的类回滚到最初始的状态,可能会导致应用正常的热更新或者安全热补丁失效,从而干扰业务的正常运行或导致安全风险的问题。采用Serviceability Agent技术解决了攻击者可以利用技术破坏JavaAgent技术在监测过程中某个环节的中断,阻止后续的Agent加载的问题。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的无文件木马检测方法流程图;
图2是本发明实施例的无文件木马检测具体示例原理图;
图3是本发明实施例的class文件与黑名单比对流程图;
图4是本发明实施例的无文件木马检测系统架构图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在现有技术中,利用Java Agent引擎中的接口从服务器内存中查找Web服务器应用程序中的被调用程序及其被调用时的堆栈列表。根据预设的检测规则、堆栈调用日志及类字节码信息确定被调用程序的风险等级;根据预设的查杀策略及风险等级确定被调用程序中含有“无文件”木马的类文件,并查杀类文件中的“无文件”木马。该技术对基于JavaAgent技术的retransformClasses类型的“无文件”木马无法检测,黑客可以绕过此类检测方法。二是攻击者可以利用技术破坏Java Agent技术实现流程中的某个环节,阻止后续的Agent加载。
在现有技术中,在目标进程中对JVM代码段内存进行检测;当检测到JVM代码段内存被修改后,获取JIT权限;在JIT权限下,获取到JVM加载的所有class包名,对JVM所加载的类进行过滤,通过JIT接口获取过滤后的class原数据,当检测到JVM导出函数JVM_EnqueueOperation接口被修改后,获取JIT权限。并通过YARA进行原数据扫描,通过白名单方式和/或模糊黑名单方式对JVM所加载的类进行过滤。该技术存在两大技术问题,一是该技术可以检测出基于Java Servlet规范利用和特定Java框架利用的两大类“无文件”木马,但对基于Java Agent技术的“无文件”木马无法检测。二是通过YARA规则进行扫描,误报率和漏报率不可控,在实际应用过程中YARA规则编写的好坏决定了实际效果,同时在工程化过程中YARA规则在线更新也是一大难题。
在现有技术中,内存木马入侵方法可以通过Java Agent向JVM注入恶意代码。检测逻辑利用attachapi,向目标JVM注入检测代码。通过Instrumentation.getAllLoadedClasses(),拿到所有的class。并通过java特性,利用反射拿到相关信息(例如注解,方法,类),筛选可能被木马劫持的对象。最后分析这些初筛对象,查看是否真正存在执行shell命令。该技术在实际应该过程中存在两大问题,一是在提取内存字节码的时候,也需要使用retransformClasses()方法,只能获取到该类的原始字节码,无法获取到被修改后的字节码,且会导致被修改过的类回滚到最初始的状态,可能会导致应用正常的热更新或者安全热补丁失效,从而干扰业务的正常运行或导致安全风险。二是该技术可以检测出可疑的组件,但无法确认该组件就是“无文件”木马的组件,需要利用其他技术配合才能进一步确认。
发明人发现,目前针对无文件木马的检测方法相关专利都是基于Java Agent,且Java Agent方法可以被攻击者进行对抗,从而达到逃逸检测的效果。
为了解决上述问题,本发明提供了一种无文件木马检测方法、系统、介质及设备,采用Serviceability Agent技术解决了攻击者可以利用技术破坏Java Agent技术在监测过程中某个环节的中断,阻止后续的Agent加载的问题。
下面结合附图来给出本发明的详细实施过程。
术语解释:
Serviceability Agent:
Serviceability Agent是为Java平台开发的一个高级调试工具,可以在运行的Java进程或Java Core文件中,获取Java对象和虚拟机内部数据结构。不同于Java Agent技术,Serviceability Agent是单独运行的,其进程与目标JVM进程是相互隔离的,在使用Serviceability Agent技术时,不会修改目标进程中在内存中的数据,只是读取目标进程在内存中的数据,然后在自身进程中处理。
实施例一
如图1和图2所示,本实施例提供了一种无文件木马检测方法,其具体包括如下步骤:
步骤1:获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类。
步骤2:判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类。
在具体实施过程中,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
在本实施例中,开源无文件木马为在GitHub、黑客网站、开源情报等地获取的“无文件”木马,在将这些收集的“无文件”木马在Java容器、应用系统中实际运行,通过Serviceability Agent技术提取jvm内存特征和实际运行中的class文件。
下面梳理了三大类无文件“无文件”木马攻击成果的条件:
(1)Java Servlet规范利用的“无文件”木马要成功的运行都是遵循Java规范和api接口规定,且需要被黑客通过http访问才能触发函数执行才能访问到“无文件”木马。因此必须捕获到攻击者请求的相关类或者方法。
(2)基于Java Servlet规范的“无文件”木马,如Java的mvc框架下的“无文件”木马需要注册成新的组件才可以运行。因此必须捕获到攻击者请求的相关类或者方法。
(3)基于Java Agent技术的“无文件”木马,首先需要监控jvm中的class,并替换和修改jvm虚拟的对象。因此必须捕获到攻击者请求的相关类或者方法。
“无文件”木马在运行过程中用到黑名单类,包括class文件、类名称方法、类名称、和方法关键字。
基于关键字的特征,主要是针对一些自定义的未被黑名单覆盖的类和方法,以提高检测的准确率和效率,通过分析网上流行的各种“无文件”木马常用的关键字如memshell、exec、shell等,本发明将公开下表中木马常用的关键词,通过关键词匹配,用于提高检测效率、降低误报率。
其中,基于Serviceability Agent技术提取JVM虚拟机内存特征和实际运行中的class文件。
使用Serviceability Agent技术提取风险类的字节码。
上述方案的优点在于,采用Serviceability Agent技术解决了使用Java Agent技术检测“无文件”木马,在提取内存字节码的时候需要使用retransformClasses()方法,只能获取到该类的原始字节码,而无法获取到被修改后的字节码,且会导致被修改过的类回滚到最初始的状态,可能会导致应用正常的热更新或者安全热补丁失效,从而干扰业务的正常运行或导致安全风险的问题,采用Serviceability Agent技术解决了攻击者可以利用技术破坏Java Agent技术在监测过程中某个环节的中断,阻止后续的Agent加载的问题。
如图3所示,基于Serviceability Agent技术匹配“无文件”木马的特征,需要遍历JVM中的类,然后获取目标类的相关属性,检测目标类在WEB服务器硬盘上是否存在class文件、类名称方法是否在黑名单中,执行的方法中是否包含黑名单中诸如“memshell、exec、shell、rebeyond、su18”的关键字。基于Serviceability Agent技术提取的JVM虚拟机中的class文件是否与WEB服务器硬盘上的class文件一致,如图2所示。
基于Serviceability Agent技术提取的class文件,可以弥补Java Agent技术在被破坏时用来提取字节码文件的不足,使用Serviceability Agent技术可以在CLASS文件被破坏的情况继续提取类的class文件,基于Serviceability Agent技术提取的class文件主要步骤如下:
(1)执行jps-v命令,获取JVM进程号PID号;
(2)在Serviceability Agent设置需要监控的类名称和输出目录;
(3)使用Serviceability Agent的dump Class类提取指定类的字节码。
核心代码如下:
步骤3:基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
具体地,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
例如:设置起始分数为0分,当满足黑名单上各种关键类、方法和关键字就加1分。比如在某个类中发现调用了关键词memshell和exec就加2分,调用javax.servlet.Filter就加1分,检查提取的风险类的字节码与WEB服务器硬盘上的class文件的字节码是否与一致,若不一致加3分。只要达到6分就可判定为“无文件”木马。
实验是在linux下进行的,实验环境的主要配置如下表
系统/软件 | 名称/版本 |
操作系统 | Cent OS Linux 7.8 |
Java环境 | Open JDK 1.8.0 |
Java容器 | Apache Tomcat 8.5.6 |
Java框架 | Spring MVC 5.2.5 |
经过测试,使用Serviceability Agent检测技术对互联网上流行的基于“无文件”木马的检测误报率为2.3%,设置1个干扰热补丁的情况下准确率达到了95.31%。
使用技术 | 误报率 | 准确率 |
基于Java Visual VM监控MBean的检测 | 31.90% | 19.93% |
基于Java反射机制的检测 | 72.21% | 88.53% |
基于Java Agent技术的检测 | 83.33% | 83.62% |
基于Serviceability Agent技术的检测 | 2.3% | 95.31% |
检测结果可知,基于Serviceability Agent技术的检测能很好地弥补了现有检测技术的不足,可以覆盖到现有所有类型的基于Java容器的“无文件”木马,甚至可以检测出使用了对抗技术的“无文件”木马,提高了检测效率,达到了预期的检测效果。
本实施例基于Serviceability Agent技术的无文件木马检测是首次提出的。目前针对无文件木马的检测方法相关专利都是基于Java Agent,且Java Agent方法可以被攻击者进行对抗,从而达到逃逸检测的效果。本发明因为使用的是Serviceability Agent技术,目前无技术可进行对抗逃逸。通过实验结果可表明,本实施例的该方法准确率较高,并大幅降低了误报率,是其他检测技术无法比拟的。
本实施例基于Serviceability Agent技术可以很好的实现破解黑客的“防检测对抗”。黑客删除.java_pid*的socket文件,让Java Agent技术无法被攻击主机中运行,从而导致Java Agent技术无法检测无文件木马。另外采用Java Agent技术一般需要将业务系统停机后部署一个新的jar包(这个就是java agent检测无文件程序)。而本发明的技术无需停机系统,在热环境下就可实现木马的检测。基于Serviceability Agent技术的检测技术相对于Java Agent技术使用的技术原理更底层,即使用的技术越底层,检测覆盖率越高。
实施例二
如图4所示,本实施例提供了一种无文件木马检测系统,其具体包括如下模块:
(1)类获取遍历模块,其用于获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类。
(2)风险等级确定模块,其用于:
判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类。
在具体实施过程中,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
其中,基于Serviceability Agent技术提取JVM虚拟机内存特征和实际运行中的class文件。
使用Serviceability Agent技术提取风险类的字节码。
(3)无文件木马判定模块,其用于基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
具体地,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的无文件木马检测方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的无文件木马检测方法中的步骤。
本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种无文件木马检测方法,其特征在于,包括:
获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类;
判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类;
基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
2.如权利要求1所述的无文件木马检测方法,其特征在于,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
3.如权利要求1所述的无文件木马检测方法,其特征在于,使用Serviceability Agent技术提取风险类的字节码。
4.如权利要求1所述的无文件木马检测方法,其特征在于,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
5.一种无文件木马检测系统,其特征在于,包括:
类获取遍历模块,其用于获取JVM虚拟机中所有加载的类,遍历JVM虚拟机中的所有类及其父类;
风险等级确定模块,其用于:
判断各个类及其父类所对应的class文件是否均存在磁盘上:
若不存在,则将当前类标记为高风险类;
若存在,则检查当前类中是否包含预设黑名单上的关键类、方法或关键字,若包含,则将其标记为风险类;若不包含,则其标记为非风险类;
提取风险类的字节码,判断其是否与磁盘上的class文件的字节码一致,若不一致,则将相应风险类标记为高风险类,若一致,则仍为风险类;
无文件木马判定模块,其用于基于预设评分机制及各个高风险类调用预设黑名单上的关键类、方法或关键字的次数,计算各个高风险类的分值,进而判定是否为无文件木马。
6.如权利要求5所述的无文件木马检测系统,其特征在于,预设黑名单的构建过程为:
将开源无文件木马在Java容器及应用系统中实际运行;
提取JVM虚拟机内存特征和实际运行中的class文件,得到初步黑名单;所述JVM虚拟机内存特征包括关键类、方法或关键字;
将已知无文件木马所对应的关键字补充至初步黑名单,构建出黑名单。
7.如权利要求5所述的无文件木马检测系统,其特征在于,在所述风险等级确定模块中,使用Serviceability Agent技术提取风险类的字节码。
8.如权利要求5所述的无文件木马检测系统,其特征在于,在所述无文件木马判定模块中,判定是否为无文件木马的过程为:
基于预设黑名单上的关键类、方法和关键字调用次数和每次调用的预先对应分值以及字节码不一致情况所对应的预设分值,计算各个高风险类的分值;
根据各个高风险类的分值与设定阈值分值比较,判定超过设定阈值分值的高风险类为无文件木马。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一项所述的无文件木马检测方法中的步骤。
10.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上权利要求1-4中任一项所述的无文件木马检测方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336032.XA CN115840940A (zh) | 2022-10-28 | 2022-10-28 | 一种无文件木马检测方法、系统、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211336032.XA CN115840940A (zh) | 2022-10-28 | 2022-10-28 | 一种无文件木马检测方法、系统、介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115840940A true CN115840940A (zh) | 2023-03-24 |
Family
ID=85576683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211336032.XA Pending CN115840940A (zh) | 2022-10-28 | 2022-10-28 | 一种无文件木马检测方法、系统、介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115840940A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692153A (zh) * | 2022-04-11 | 2022-07-01 | 北京中睿天下信息技术有限公司 | 基于java程序的恶意代码检测方法、设备及存储介质 |
CN116668202A (zh) * | 2023-08-02 | 2023-08-29 | 杭州默安科技有限公司 | 一种容器环境下内存马检测方法及系统 |
-
2022
- 2022-10-28 CN CN202211336032.XA patent/CN115840940A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114692153A (zh) * | 2022-04-11 | 2022-07-01 | 北京中睿天下信息技术有限公司 | 基于java程序的恶意代码检测方法、设备及存储介质 |
CN114692153B (zh) * | 2022-04-11 | 2024-05-14 | 北京中睿天下信息技术有限公司 | 基于java程序的恶意代码检测方法、设备及存储介质 |
CN116668202A (zh) * | 2023-08-02 | 2023-08-29 | 杭州默安科技有限公司 | 一种容器环境下内存马检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102307534B1 (ko) | 다수 소프트웨어 개체들에 걸쳐서 악성 행동을 트래킹하기 위한 시스템들 및 방법들 | |
CN106991324B (zh) | 一种基于内存保护类型监控的恶意代码跟踪识别方法 | |
JP5326062B1 (ja) | 非実行ファイル検査装置及び方法 | |
US8935791B2 (en) | Asynchronous filtering and processing of events for malware detection | |
US7870612B2 (en) | Antivirus protection system and method for computers | |
CN102893289B (zh) | 恶意软件保护 | |
US20140053267A1 (en) | Method for identifying malicious executables | |
CN115840940A (zh) | 一种无文件木马检测方法、系统、介质及设备 | |
US11070570B2 (en) | Methods and cloud-based systems for correlating malware detections by endpoint devices and servers | |
US20080005796A1 (en) | Method and system for classification of software using characteristics and combinations of such characteristics | |
CN110119619B (zh) | 创建防病毒记录的系统和方法 | |
JP2013239149A (ja) | 悪意のあるファイル検査装置及び方法 | |
WO2018017498A1 (en) | Inferential exploit attempt detection | |
US12013942B2 (en) | Rootkit detection based on system dump sequence analysis | |
EP2306356B1 (en) | Asynchronous processing of events for malware detection | |
KR100745639B1 (ko) | 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치 | |
KR100745640B1 (ko) | 커널 메모리를 보호하는 방법 및 그 장치 | |
US11822666B2 (en) | Malware detection | |
CN109785537B (zh) | 一种atm机的安全防护方法及装置 | |
Whittaker et al. | Neutralizing windows-based malicious mobile code | |
CN115544503A (zh) | 一种无文件攻击检测方法、装置、设备及存储介质 | |
Kono et al. | An unknown malware detection using execution registry access | |
CN113569240A (zh) | 恶意软件的检测方法、装置及设备 | |
RU2757408C1 (ru) | Система и способ формирования правила проверки файла на вредоносность | |
US20230121158A1 (en) | Virus autonomous defense system (vads) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |