CN116861376A - 一种跨平台的Java应用运行时安全保护方法及系统 - Google Patents
一种跨平台的Java应用运行时安全保护方法及系统 Download PDFInfo
- Publication number
- CN116861376A CN116861376A CN202310761600.9A CN202310761600A CN116861376A CN 116861376 A CN116861376 A CN 116861376A CN 202310761600 A CN202310761600 A CN 202310761600A CN 116861376 A CN116861376 A CN 116861376A
- Authority
- CN
- China
- Prior art keywords
- groovy
- request
- detector
- network request
- cross
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000001514 detection method Methods 0.000 claims abstract description 37
- 230000004044 response Effects 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 8
- 230000000694 effects Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 8
- 230000004888 barrier function Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种跨平台的Java应用运行时安全保护方法及系统,所述方案包括:利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
Description
技术领域
本发明属于计算机应用技术领域,尤其涉及一种跨平台的Java应用运行时安全保护方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
日渐频发的网络攻击,时刻威胁着信息系统的安全。现有的信息系统通常规模较大,业务复杂度高,重构难度大,寄希望于通过重构来强化防护能力阻碍较大。一个无需重构现有应用的第三方网络攻击防护工具显得至关重要。
应用运行时自防护技术(Runtime Application Self-Protection,简称:RASP)是网络安全防护领域新兴的独立于被保护程序的第三方防护技术。它不同于传统的网络防火墙,网络防火墙通常在应用程序的外侧通过规则架起壁垒,但是容易被新型攻击手段绕过。而RASP则可以注入到被保护的应用程序当中,在网络攻击的必经之路设下埋伏,在源码方法调用层面添加检测和防护,让网络攻击无处遁形。
市面上支持保护Java应用的RASP类产品大都以Java Agent技术为基础,将防护逻辑直接注入到被保护应用程序的底层,通过内置的检测逻辑来提供函数级别的实时防护,可以在不更新策略以及不升级被保护应用代码的情况下检测或防护未知漏洞,但是,发明人发现,使用Java语言来开发检测逻辑,缺点是热更新较繁琐,难以及时应对突发新型的网络攻击;部署新的检测逻辑需要更新jar包并重启被保护应用,用户体验不佳;其次,为了方便热更新,虽然可以使用JS(JavaScript)脚本来开发检测逻辑,但JS脚本需要解释器来支持其运行。Java虚拟机虽然支持JS解释器,但不支持ES6以上的语法,解释能力较弱,灵活性和防护性较差。GoogleV8引擎是JS解释器的更好选择。但GoogleV8引擎难以兼容多种CPU架构和操作系统,跨平台支持性不佳。
发明内容
为克服上述现有技术的不足,本发明提供了一种跨平台的Java应用运行时安全保护方法及系统,所述方案利用Groovy脚本引擎替换了RASP类产品中的JS解释器,能够在原有RASP类产品功能不变的前提下实现RASP类产品的跨平台兼容,增强了部署在复杂环境下的信息系统的网络安全防护能力。
根据本发明实施例的第一个方面,提供了一种跨平台的Java应用运行时安全保护方法,其应用于应用运行时自防护软件,包括:
利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
进一步的,所述将当前网络请求与其对应的Groovy检测器进行关联,具体为:基于Checker组件对网络请求进行分析,确定当前网络请求包含的攻击类型,基于所述攻击类型确定与其对应的Groovy检测器,并进行关联。
进一步的,在所述应用运行时自防护软件中,利用Groovy脚本引擎替换原始的javascript解释器,并增加用于实现Groovy检测器随改随生效的Groovy热部署组件,所述Groovy检测器基于Groovy语言实现。
进一步的,在所述安全保护方法中,基于监控线程实时监测Groovy检测器是否发生变化,若发生变化,则重新加载groovy检测器。
进一步的,所述监控线程采用PluginWatcher监控线程,且所述PluginWatcher监控线程实时运行。
根据本发明实施例的第二个方面,提供了一种跨平台的Java应用运行时安全保护系统,包括:
检测器关联单元,其用于利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
攻击检测单元,其用于利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
敏感信息检测单元,其用于对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种跨平台的Java应用运行时安全保护方法。
根据本发明实施例的第四个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种跨平台的Java应用运行时安全保护方法。
以上一个或多个技术方案存在以下有益效果:
(1)本发明提供了一种跨平台的Java应用运行时安全保护方法及系统,所述方案利用Groovy脚本引擎替换了RASP类产品中的JS解释器,能够在原有RASP类产品功能不变的前提下实现RASP类产品的跨平台兼容,增强了部署在复杂环境下的信息系统的网络安全防护能力。
(2)所述方案通过新增Groovy热部署组件,无需重启应用便可实现Groovy检测器的随改随生效,进一步保证了RASP类产品在原始功能不变的前提下实现跨平台的兼容。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明实施例中所述的RASP类产品实现跨平台方案的各组件协作图;
图2为本发明实施例中所述的RASP类产品实现跨平台方案的请求流向图;
图3为本发明实施例中所述的一种跨平台的Java应用运行时安全保护方法流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供了一种跨平台的Java应用运行时安全保护方法。
一种跨平台的Java应用运行时安全保护方法,其应用于应用运行时自防护软件,包括:
利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
在具体实施中,所述将当前网络请求与其对应的Groovy检测器进行关联,具体为:基于Checker组件对网络请求进行分析,确定当前网络请求包含的攻击类型,基于所述攻击类型确定与其对应的Groovy检测器,并进行关联。
在具体实施中,在所述应用运行时自防护软件中,利用Groovy脚本引擎替换原始的javascript解释器,并增加用于实现Groovy检测器随改随生效的Groovy热部署组件,所述Groovy检测器基于Groovy语言实现。
其中,所述Groovy热部署组件为一个实时监控检测脚本变动的程序,当检测脚本发生变动后,则立刻重新加载变动后的检测脚本,使新脚本中的检测规则生效。
在具体实施中,在所述安全保护方法中,基于监控线程实时监测Groovy检测器是否发生变化,若发生变化,则重新加载groovy检测器。
在具体实施中,所述监控线程采用PluginWatcher监控线程,且所述PluginWatcher监控线程实时运行。
具体的,为了便于理解,以下结合附图对本实施例所述方案进行详细说明:
如图1所示,本实施例所述方案通过利用Groovy语言基于JVM跨平台,支持动态类型等特性,利用Groovy脚本引擎替换了RASP类产品中的JS解释器,解决了JS解释器的跨平台问题。但JS解释器除了驱动检测逻辑,同时还担负着核心检测器的热部署任务,为此本发明新增Groovy热部署组件,无需重启应用便可实现Groovy检测器的随改随生效,保证RASP类产品在原始功能不变的前提下实现跨平台的兼容。
如图2所示,Checker组件由原先的将网络请求分发给JS检测组件来实现攻击检测功能改为分发给Groovy核心检测组件来实现相关功能。Groovy核心检测组件由不同攻击类型的检测器组成。
以下结合图3对本实施例所述方案进行详细说明,本实施例所述方案实现了RASP类产品跨平台兼容的一种替代方案,为了方便理解,以下从Groovy热部署以及网络攻击检测两部分分别进行说明:
(一)Groovy热部署部分:
步骤1、开启PluginWatcher监控线程;
步骤2、线程实时监控检测器变化;
步骤3、若有变化,执行步骤4,否则执行步骤2;
步骤4、重新加载Groovy检测器,之后执行步骤2。
(二)网络攻击检测部分:
步骤1、应用程序收到用户或黑客发送的一次网络请求;
步骤2、请求被Checker组件拦截,Checker组件用于分析请求中可能包含的攻击类型,并将请求与对应的Groovy检测器关联;
步骤3、检测Groovy检测器是否加载,若未加载,执行步骤4,否则执行步骤5;
步骤4、重新加载Groovy检测器;
步骤5、进入请求对应的Groovy检测器进行攻击检测;
步骤6、判断是否是危险请求,若是,执行步骤7,否则执行步骤8;
步骤7、拦截本次请求并告警,执行步骤12;
步骤8、执行被保护应用程序的逻辑,获得响应;
步骤9、进入敏感信息检测的Groovy检测器,执行敏感响应信息检测;
步骤10、判断响应数据中是否有敏感信息(所述敏感信息可基于实际需求进行预先设定),若是则跳转到步骤7,否则执行步骤11;
步骤11、返回请求内容;
步骤12、结束。
本实施例所述方案利用Groovy脚本引擎替换了RASP类产品中的JS解释器,能够在原有RASP类产品功能不变的前提下实现RASP类产品的跨平台兼容,增强了部署在复杂环境下的信息系统的网络安全防护能力。
实施例二
本实施例的目的是提供一种跨平台的Java应用运行时安全保护系统。
一种跨平台的Java应用运行时安全保护系统,包括:
检测器关联单元,其用于利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
攻击检测单元,其用于利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
敏感信息检测单元,其用于对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一中所述的方法。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
上述实施例提供的一种跨平台的Java应用运行时安全保护方法及系统可以实现,具有广阔的应用前景。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种跨平台的Java应用运行时安全保护方法,其应用于应用运行时自防护软件,其特征在于,包括:
利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
2.如权利要求1所述的一种跨平台的Java应用运行时安全保护方法,其特征在于,所述将当前网络请求与其对应的Groovy检测器进行关联,具体为:基于Checker组件对网络请求进行分析,确定当前网络请求包含的攻击类型,基于所述攻击类型确定与其对应的Groovy检测器,并进行关联。
3.如权利要求1所述的一种跨平台的Java应用运行时安全保护方法,其特征在于,在所述应用运行时自防护软件中,利用Groovy脚本引擎替换原始的javascript解释器,并增加用于实现Groovy检测器随改随生效的Groovy热部署组件,所述Groovy检测器基于Groovy语言实现。
4.如权利要求1所述的一种跨平台的Java应用运行时安全保护方法,其特征在于,在所述安全保护方法中,基于监控线程实时监测Groovy检测器是否发生变化,若发生变化,则重新加载groovy检测器。
5.如权利要求1所述的一种跨平台的Java应用运行时安全保护方法,其特征在于,所述监控线程采用PluginWatcher监控线程,且所述PluginWatcher监控线程实时运行。
6.一种跨平台的Java应用运行时安全保护系统,其特征在于,包括:
检测器关联单元,其用于利用Checker组件拦截被保护应用程序接收到的网络请求,并将当前网络请求与其对应的Groovy检测器进行关联;
攻击检测单元,其用于利用网络请求对应的Groovy检测器进行攻击检测,若检测为危险请求,则拦截本次请求并发出告警;若检测为正常请求,则执行被保护应用程序的处理逻辑,获得响应消息;
敏感信息检测单元,其用于对于所述响应消息,利用用于敏感信息监测的Groovy检测器进行敏感响应信息检测,若检测存在敏感信息则进行拦截并告警,若不存在,则返回请求内容。
7.如权利要求6所述的一种跨平台的Java应用运行时安全保护系统,其特征在于,所述将当前网络请求与其对应的Groovy检测器进行关联,具体为:基于Checker组件对网络请求进行分析,确定当前网络请求包含的攻击类型,基于所述攻击类型确定与其对应的Groovy检测器,并进行关联。
8.如权利要求6所述的一种跨平台的Java应用运行时安全保护系统,其特征在于,在所述应用运行时自防护软件中,利用Groovy脚本引擎替换原始的javascript解释器,并增加用于实现Groovy检测器随改随生效的Groovy热部署组件,所述Groovy检测器基于Groovy语言实现。
9.一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一项所述的一种跨平台的Java应用运行时安全保护方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述的一种跨平台的Java应用运行时安全保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310761600.9A CN116861376A (zh) | 2023-06-26 | 2023-06-26 | 一种跨平台的Java应用运行时安全保护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310761600.9A CN116861376A (zh) | 2023-06-26 | 2023-06-26 | 一种跨平台的Java应用运行时安全保护方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116861376A true CN116861376A (zh) | 2023-10-10 |
Family
ID=88233207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310761600.9A Pending CN116861376A (zh) | 2023-06-26 | 2023-06-26 | 一种跨平台的Java应用运行时安全保护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116861376A (zh) |
-
2023
- 2023-06-26 CN CN202310761600.9A patent/CN116861376A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2946330B1 (en) | Method and system for protecting computerized systems from malicious code | |
KR101970744B1 (ko) | 신뢰 레벨 활성화 기법 | |
US6412071B1 (en) | Method for secure function execution by calling address validation | |
EP3349137A1 (en) | Client-side attack detection in web applications | |
WO2019072008A1 (zh) | 小程序的安全扫描方法、装置以及电子设备 | |
US9471514B1 (en) | Mitigation of cyber attacks by pointer obfuscation | |
CN111177727B (zh) | 漏洞检测方法及装置 | |
CN113569246B (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN110325994B (zh) | 增强软件应用的控制流完整性的设备和方法 | |
CN103679032A (zh) | 防御恶意软件的方法和装置 | |
US11055168B2 (en) | Unexpected event detection during execution of an application | |
US20170185784A1 (en) | Point-wise protection of application using runtime agent | |
US11055416B2 (en) | Detecting vulnerabilities in applications during execution | |
CN112966274B (zh) | Web安全漏洞检测方法、扫描器、存储介质及电子设备 | |
US20080028180A1 (en) | Inappropriate access detector based on system segmentation faults | |
US20190228150A1 (en) | Protection Against Third Party JavaScript Vulnerabilities | |
US10628188B2 (en) | Disabling just-in-time translation for application functions | |
CN111078435A (zh) | 业务处理方法、装置及电子设备 | |
CN116861376A (zh) | 一种跨平台的Java应用运行时安全保护方法及系统 | |
US11314870B1 (en) | Auto-containment of potentially vulnerable applications | |
EP2507737A2 (en) | Hooking nonexported functions by the offset of the function | |
CN108520179B (zh) | 一种webview漏洞的处理方法和装置 | |
CN111177726A (zh) | 一种系统漏洞检测方法、装置、设备及介质 | |
CN111625784B (zh) | 一种应用的反调试方法、相关装置及存储介质 | |
CN112948241B (zh) | 应用程序的反调试方法、装置、电子设备及存储介质 |
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 |