【技术实现步骤摘要】
JavaWeb应用的攻击行为的识别和防御方法及其装置
[0001]本公开涉及计算机
和网络安全
,尤其涉及一种JavaWeb应用的攻击行为的识别和防御方法及其装置。
技术介绍
[0002]JavaWeb技术广泛应用各个重要业务线上,占据着重要地位。相关技术中,JavaWeb应用中,网站恶意控制脚本(页面)木马病毒,或者叫WebShell,对JavaWeb网站及服务端应用带来恶意操控、篡改数据、信息泄漏等众多安全风险。木马病毒注入方式一般有形式:通过漏洞上传文件的有文件WebShell,及利用Web组件或者应用程序注册访问路由执行控制代码的无文件WebShell(内存马)。WebShell是一种面向Web程序的恶意脚本(木马),其目的是获得服务器的执行操作权限,而内存马只在内存中运行,没有文件落地或者运行后能够删除自身的木马。有文件WebShell容易利用,攻击广度大,但容易被扫描发现。无文件WebShell特点是文件无落盘,且攻击原理结合了众多复杂漏洞,给检测带来巨大难度。
[0003]木马病毒对JavaWeb应用危害极大,如何准确识别木马病毒的注入及攻击行为,并进行防御,已经成为重要的研究方向之一。
技术实现思路
[0004]本公开旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]本公开第一方面实施例提出了一种JavaWeb应用的攻击行为的识别和防御方法,该方法包括:
[0006]修改关键底层类的字节码,并增强指定的关键底层方法,使得关键底层方法被调 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:李梓铭,解敏,陈泽智,廖敏飞,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。