JavaWeb应用的攻击行为的识别和防御方法及其装置制造方法及图纸

技术编号:38329747 阅读:20 留言:0更新日期:2023-07-29 09:12
本公开提出了JavaWeb应用的攻击行为的识别和防御方法及其装置,涉及计算机技术领域和网络安全技术领域。该方法作用于Web容器,包括:修改关键底层类的字节码增强关键底层方法;获取所述所有类引用筛选出风险类;修改Web容器中HTTP容器类的字节码,在HTTP容器实例化时注册请求监听器;收到HTTP请求时记录请求信息和请求对象,并监控关键底层方法调用情况;分析堆栈中风险类的命中结果和关键底层方法调用入参的攻击性判断是否存在攻击行为;在JavaWeb应用存在攻击行为时执行防御策略及报警提示。本申请可以在JavaWeb应用使用过程中,识别木马病毒攻击行为特征,根据木马病毒攻击行为特征确定攻击行为及采取防御措施,提高JavaWeb应用的安全性和稳定性。JavaWeb应用的安全性和稳定性。JavaWeb应用的安全性和稳定性。

【技术实现步骤摘要】
JavaWeb应用的攻击行为的识别和防御方法及其装置


[0001]本公开涉及计算机
和网络安全
,尤其涉及一种JavaWeb应用的攻击行为的识别和防御方法及其装置。

技术介绍

[0002]JavaWeb技术广泛应用各个重要业务线上,占据着重要地位。相关技术中,JavaWeb应用中,网站恶意控制脚本(页面)木马病毒,或者叫WebShell,对JavaWeb网站及服务端应用带来恶意操控、篡改数据、信息泄漏等众多安全风险。木马病毒注入方式一般有形式:通过漏洞上传文件的有文件WebShell,及利用Web组件或者应用程序注册访问路由执行控制代码的无文件WebShell(内存马)。WebShell是一种面向Web程序的恶意脚本(木马),其目的是获得服务器的执行操作权限,而内存马只在内存中运行,没有文件落地或者运行后能够删除自身的木马。有文件WebShell容易利用,攻击广度大,但容易被扫描发现。无文件WebShell特点是文件无落盘,且攻击原理结合了众多复杂漏洞,给检测带来巨大难度。
[0003]木马病毒对JavaWeb应用危害极大,如何准确识别木马病毒的注入及攻击行为,并进行防御,已经成为重要的研究方向之一。

技术实现思路

[0004]本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]本公开第一方面实施例提出了一种JavaWeb应用的攻击行为的识别和防御方法,该方法包括:
[0006]修改关键底层类的字节码,并增强指定的关键底层方法,使得关键底层方法被调用时可被感知及可控制执行;
[0007]确定JavaWeb应用的风险类集合,并对HTTP容器对象注册请求监听器,请求监听器用于监听HTTP请求对象的创建和销毁;
[0008]若HTTP容器接收到HTTP请求,请求监听器监听到HTTP请求对象的创建,且确定关键底层方法调用,通过堆栈中风险类集合的命中结果和关键底层方法调用入参的攻击性判断JavaWeb应用是否存在攻击行为;
[0009]若JavaWeb应用存在攻击行为,执行中断底层关键方法调用和对请求响应设置设定的错误信息的防御策略,并对攻击行为进行报警提示。
[0010]本公开第二方面实施例提出了一种JavaWeb应用的攻击行为的识别和防御装置,包括:
[0011]关键底层方法增强模块,用于修改关键底层类的字节码,并增强指定的关键底层方法,使得关键底层方法被调用时可被感知及可控制执行;
[0012]风险分析模块,用于确定JavaWeb应用的风险类集合,并对HTTP容器对象注册请求监听器,请求监听器用于监听HTTP请求对象的创建和销毁;
[0013]攻击识别模块,用于若HTTP容器接收到HTTP请求,请求监听器监听到HTTP请求对
象的创建,且确定关键底层方法调用,通过堆栈中风险类集合的命中结果和关键底层方法调用入参的攻击性判断JavaWeb应用是否存在攻击行为;
[0014]攻击防御模块,用于若JavaWeb应用存在攻击行为,执行中断底层关键方法调用和对请求响应设置设定的错误信息的防御策略,并对攻击行为进行报警提示。
[0015]本公开第三方面实施例提出了一种电子设备,包括:
[0016]至少一个处理器;以及
[0017]与至少一个处理器通信连接的存储器;其中,
[0018]存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开第一方面实施例中提供的JavaWeb应用的攻击行为的识别和防御方法。
[0019]本公开第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机指令,其中,计算机指令用于使计算机执行根据本公开第一方面实施例中提供的JavaWeb应用的攻击行为的识别和防御方法。
[0020]本公开第五方面实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本公开第一方面实施例中提供的JavaWeb应用的攻击行为的识别和防御方法。
[0021]本申请可以准确识别木马病毒注入及攻击行为,并进行防御,增强识别Java页面应用的攻击行为的通用性,提高Java页面应用的安全性和稳定性。
附图说明
[0022]图1是本公开第一实施例的Java页面应用的攻击行为的识别方法的流程图;
[0023]图2是本公开第二实施例的Java页面应用的攻击行为的识别方法的流程图;
[0024]图3是本公开第三实施例的Java页面应用的攻击行为的识别方法的示意图;
[0025]图4是本公开第一实施例的Java页面应用的攻击行为的识别方法的流程图;
[0026]图5是本公开第二实施例的Java页面应用的攻击行为的识别方法的流程图;
[0027]图6是本公开第二实施例的Java页面应用的攻击行为的识别方法的流程图;
[0028]图7是本公开第五实施例的Java页面应用的攻击行为的识别方法的示意图;
[0029]图8是本公开第五实施例的Java页面应用的攻击行为的识别方法的示意图;
[0030]图9是本公开第四实施例的Java页面应用的攻击行为的识别方法的流程图;
[0031]图10是本公开第四实施例的Java页面应用的攻击行为的识别方法的流程图;
[0032]图11是本公开第五实施例的Java页面应用的攻击行为的识别方法的示意图;
[0033]图12是本公开第一实施例的Java页面应用的攻击行为的识别装置的结构框图;
[0034]图13是本公开第一实施例的电子设备的结构示意图。
具体实施方式
[0035]下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。
[0036]需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第
二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
[0037]下面结合附图来描述本公开实施例的JavaWeb应用的攻击行为的识别和防御方法及其装置。
[0038]Java是一门面向对象的编程语言,Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许以简单的思维方式进行复杂的编程。本申请实施例中,JavaWeb应用的攻击行为的识本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种JavaWeb应用的攻击行为的识别和防御方法,其特征在于,包括:修改关键底层类的字节码,并增强指定的关键底层方法,使得所述关键底层方法被调用时可被感知及可控制执行;确定所述JavaWeb应用的风险类集合,并对HTTP容器对象注册请求监听器,所述请求监听器用于监听HTTP请求对象的创建和销毁;若所述HTTP容器接收到HTTP请求,所述请求监听器监听到所述HTTP请求对象的创建,且确定所述关键底层方法调用,通过堆栈中风险类集合的命中结果和所述关键底层方法调用入参的攻击性判断所述JavaWeb应用是否存在攻击行为;若所述JavaWeb应用存在攻击行为,执行中断底层关键方法调用和对请求响应设置设定的错误信息的防御策略,并对所述攻击行为进行报警提示。2.根据权利要求1所述的方法,其特征在于,所述若所述HTTP容器接收到HTTP请求,所述请求监听器监听到所述HTTP请求对象的创建,且确定所述关键底层方法调用,通过堆栈中风险类集合的命中结果和所述关键底层方法调用入参的攻击性判断所述JavaWeb应用是否存在攻击行为,包括:若所述HTTP容器接收到HTTP请求,且所述请求监听器监听到所述HTTP请求对象的创建,记录请求信息和请求对象,并在HTTP请求业务处理过程中监控所述关键底层方法是否被调用;若所述HTTP请求业务处理过程中涉及所述关键底层方法调用,分析堆栈中风险类集合的命中结果和所述关键底层方法调用入参的攻击性,通过所述命中结果和所述攻击性判断所述JavaWeb应用是否存在攻击行为。3.根据权利要求2所述的方法,其特征在于,所述若所述HTTP容器接收到HTTP请求,且所述请求监听器监听到HTTP请求对象的创建,记录请求信息和请求对象,并在HTTP请求业务处理过程中监控所述关键底层方法是否被调用,还包括:若HTTP请求业务处理过程中涉及关键底层方法的调用,通过所述关键底层方法的增强功能,感知所述关键底层方法被调用及堵塞方法执行,业务暂停处理,并把当前方法执行信息及堆栈信息转至攻击分析;若HTTP请求业务处理过程中不涉及关键底层方法的调用,所述HTTP请求后续业务处理正常执行;若收到所述请求监听器HTTP请求对象销毁的通知,释放所述请求对象的引用。4.根据权利要求2所述的方法,其特征在于,所述若所述HTTP请求业务处理过程中涉及所述关键底层方法调用,分析堆栈中风险类集合的命中结果和所述关键底层方法调用入参的攻击性,通过所述命中结果和所述攻击性判断所述JavaWeb应用是否存在攻击行为,包括:若所述HTTP请求处理过程中涉及关键底层方法调用,判断线程堆栈中是否命中所述风险类集合中一个或多个风险类;若堆栈中命中所述风险类集合中的一个或多个风险类,确定所述JavaWeb应用存在疑似攻击行为,若堆栈中未出现所述风险类集合中的一个或多个风险类,继续判断所述关键底层方法的入参是否具有攻击性;若所述关键底层方法的入参具备攻击性,确定所述JavaWeb应用存在疑似攻击行为,若
所述关键底层方法的入参不具备攻击性,确定所述JavaWeb应用未存在攻击行为;若确定所述JavaWeb应用存在疑似攻击行为,通过误报过滤组件的预设规则判断所述疑似攻击行为是否为误报;若所述疑似攻击行为为误报,确定所述JavaWeb应用未存在攻击行为,若所述疑似攻击行为为非误报,确定所述JavaWeb应用存在攻击行为。5.根据权利要求1所述的方法,其特征在于,所述若所述JavaWeb应用存在攻击行为,执行中断底层关键方法调用和对请求响应设置设定的错误信息的防御策略,并对所述攻击行为进行报警提示,包括:若所述JavaWeb应用的HTTP请求分析判定存在攻击行为,基于所述关键底层方法的增强功能,在所述关键底层方法原生代码执行前终止类的方法的调用,并在所述关键底层方法抛出异常或返回预设值,业务终止;对所述HTTP请求的响应对象设置返回指定的错误报文或重定向页面;对所述攻击行为记录请求地址、请求信息、堆栈信息、风险类信息、触发的关键底层方法名称及方法入参,并进行报警提示。6.根据权利要求4所述的方法,其特征在于,还包括:若所述HTTP请求业务处理过程中涉及所述关键底层方法调用,且通过所述攻击分析判断当前请求无攻击行为,允许所述关键底层方法的继续调用,所述HTTP请求后续业务处理正常执行。7.根据权利要求1所述的方法,其特征在于,所述修改关键底层类的字节码,并增强指定的关键底层方法,使得所述关键底层方法被调用时可被感知及可控制执行,包括:构建并注册增强关键底层方法的类文件转换器,所述类文件转换器可作用于一个或多个包含所述关键底层方法的关键底层类;通过代理获取若有已加载的类的引用,以判断所述关键底层类是否已实例化;若有所述关键底层类已实例化,则代理触发重新加载所述关键底层类,以触发增强关键底层方法的类文件转换器;若所述关键底层类未被实例化,则等待其实例化时,触发增强关键底层方法的类文件转换器;所述增强关键底层方法的类文件转换器,通过字节码修改技术修改所述关键底层类的字节码,从而增强所述关键底层方法,使得在关键底层方法被调用时能感知及阻塞方法执行,并控制关键底层方法的执行结果;将修改的字节码加载至JVM,使得所述关键底层类被首次或再次实例化。8.根据权利要求1...

【专利技术属性】
技术研发人员:李梓铭解敏陈泽智廖敏飞
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

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

1