一种内存马检测方法、装置和电子设备与流程

    专利2025-05-01  21


    本发明涉及木马检测,尤其涉及一种内存马检测方法、装置和电子设备。


    背景技术:

    1、内存马是无文件攻击的一种常用手段。以java为例,客户端的web请求会依次经过listener、filter、servlet等组件进行监听、判断、过滤等操作。客户端在web请求过程中,内存马可以在内存中修改已有的组件或动态注册一个新的组件,通过插入恶意的shellcode的方式实现长时间的控制服务器。

    2、随着互联网技术的发展,越来越多的企业用户将核心业务系统转移到服务器上。web浏览器可以作为业务系统的窗口。内存马攻击web浏览器时,内存马可以通过web容器(如tomcat、weblogic等)或容器中的web应用漏洞(如任意命令执行、文件上传、反序列化等)将“恶意代码”驻留在应用内存中,实现攻击web浏览器。但是,内存马攻击web浏览器时留下的痕迹很少,导致服务器很难发现。因此,如何检测并拦截内存马是目前亟需解决的问题。


    技术实现思路

    1、为了解决上述的问题,本申请的实施例中提供了一种内存马检测方法、装置和电子设备,通过java字节码的特征分析jvm运行时的字节流进行内存马检测,可以避免了dumpclass和反编译操作,使得cpu资源消耗相比于目前的检测方式具有更低,同时避免了大量i/o操作。检测技术中引入ai算法,拥有优秀的泛化能力,提高攻击者绕过的门槛。对内存马注入行为进行实时阻断,避免应用被进一步攻击。采用java agent的方式而不是attach方式注入到应用中,不会造成应用进程崩溃,进而造成应用不可用。

    2、为此,本申请的实施例中采用如下技术方案:

    3、第一方面,本申请实施例提供一种内存马检测方法,包括:从java虚拟机获取class字节流;将class字节流与敏感规则库进行匹配,并根据匹配结果判断class字节流是否为风险class字节流;确定所述class字节流不是风险class字节流时,根据所述class字节流构建抽象语法树;获取所述抽象语法树的特征向量,并输入到随机森林模型中,以确定所述class字节流是否为风险class字节流。

    4、在该实施例中,检测技术中引入ai算法,拥有优秀的泛化能力,提高攻击者绕过的门槛。对内存马注入行为进行实时阻断,避免应用被进一步攻击。

    5、在一种实施方式中,在从java虚拟机获取class字节流之后,还包括:将所述class字节流解析为可识别的语句。

    6、在一种实施方式中,所述根据所述class字节流构建抽象语法树,包括:根据所述class字节流构建所述抽象语法树,并利用规则对所述抽象语法树进行剪枝,得到修剪后的抽象语法树。

    7、在一种实施方式中,所述获取所述抽象语法树的特征向量,包括:提取所述抽象语法树的表征向量;根据所述抽象语法树的表征向量和特征库,构建出所述抽象语法树的特征向量。

    8、在一种实施方式中,所述方法还包括:获取所述随机森林模型输出的所述class字节流的风险分数,并判断所述class字节流的风险分数是否大于设定阈值;确定所述class字节流的风险分数不大于设定阈值时,所述class字节流没有内存马;以及确定所述class字节流的风险分数大于设定阈值时,所述class字节流为内存马。

    9、在一种实施方式中,所述方法还包括:确定所述class字节流有内存马时,根据所述class字节流的风险分数和云端配置,判断是否拦截所述class字节流。

    10、在一种实施方式中,所述根据匹配结果判断class字节流是否为风险class字节流,包括:确定所述class字节流为风险class字节流时,所述class字节流的风险分数为100分;以及确定所述class字节流不为风险class字节流时,所述class字节流的风险分数为0分。

    11、第二方面,本申请实施例提供一种内存马检测装置,包括:收发单元,用于从java虚拟机获取class字节流;处理单元,用于将class字节流与敏感规则库进行匹配,并根据匹配结果判断class字节流是否为风险class字节流;确定所述class字节流不是风险class字节流时,根据所述class字节流构建抽象语法树;以及获取所述抽象语法树的特征向量,并输入到随机森林模型中,以确定所述class字节流是否为风险class字节流。

    12、在一种实施方式中,所述处理单元,还用于将所述class字节流解析为可识别的语句。

    13、在一种实施方式中,所述处理单元,具体用于根据所述class字节流构建所述抽象语法树,并利用规则对所述抽象语法树进行剪枝,得到修剪后的抽象语法树。

    14、在一种实施方式中,所述处理单元,具体用于提取所述抽象语法树的表征向量;根据所述抽象语法树的表征向量和特征库,构建出所述抽象语法树的特征向量。

    15、在一种实施方式中,所述处理单元,还用于获取所述随机森林模型输出的所述class字节流的风险分数,并判断所述class字节流的风险分数是否大于设定阈值;确定所述class字节流的风险分数不大于设定阈值时,所述class字节流没有内存马;以及确定所述class字节流的风险分数大于设定阈值时,所述class字节流有内存马。

    16、在一种实施方式中,所述处理单元,还用于确定所述class字节流有内存马时,根据所述class字节流的风险分数和云端配置,判断是否拦截所述class字节流。

    17、在一种实施方式中,所述处理单元,具体用于确定所述class字节流为风险class字节流时,所述class字节流的风险分数为100分;以及确定所述class字节流不为风险class字节流时,所述class字节流的风险分数为0分。

    18、第三方面,本申请实施例提供一种电子设备,包括:至少一个存储器,至少一个收发器,至少一个处理器,所述处理器用于执行存储器中存储的指令,以使得所述电子设备执行如第一方面各个可能实现的方法。

    19、第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面各个可能实现的方法。

    20、第五方面,本申请实施例提供一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施第一方面各个可能实现的方法。



    技术特征:

    1.一种内存马检测方法,其特征在于,包括:

    2.根据权利要求1所述的方法,其特征在于,在从java虚拟机获取class字节流之后,还包括:

    3.根据权利要求1或2所述的方法,其特征在于,所述根据所述class字节流构建抽象语法树,包括:

    4.根据权利要求1-3任意一项所述的方法,其特征在于,所述获取所述抽象语法树的特征向量,包括:

    5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:

    6.根据权利要求5所述的方法,其特征在于,所述方法还包括:

    7.根据权利要求1-6任意一项所述的方法,其特征在于,所述根据匹配结果判断class字节流是否为风险class字节流,包括:

    8.一种内存马检测装置,其特征在于,包括:

    9.根据权利要求8所述的装置,其特征在于,所述处理单元,还用于将所述class字节流解析为可识别的语句。

    10.根据权利要求8或9所述的装置,其特征在于,所述处理单元,具体用于

    11.根据权利要求8-10任意一项所述的装置,其特征在于,所述处理单元,具体用于

    12.根据权利要求8-11任意一项所述的装置,其特征在于,所述处理单元,还用于

    13.根据权利要求12所述的装置,其特征在于,所述处理单元,还用于

    14.根据权利要求8-13任意一项所述的装置,其特征在于,所述处理单元,具体用于

    15.一种电子设备,其特征在于,包括:

    16.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项的所述的方法。

    17.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时,使得所述计算机实施权利要求1-7任意一项所述的方法。


    技术总结
    一种内存马检测方法,从java虚拟机获取class字节流;将class字节流与敏感规则库进行匹配,并根据匹配结果判断class字节流是否为风险class字节流;确定class字节流不是风险class字节流时,根据class字节流构建抽象语法树;获取抽象语法树的特征向量,并输入到随机森林模型中,以确定class字节流是否为风险class字节流。本申请实施例中,检测技术中引入AI算法,拥有优秀的泛化能力,提高攻击者绕过的门槛。对内存马注入行为进行实时阻断,避免应用被进一步攻击。

    技术研发人员:宋健,兰英杰,赵考,刘禅
    受保护的技术使用者:华为技术有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-86332.html

    最新回复(0)