技术新讯 > 计算推算,计数设备的制造及其应用技术 > 基于安全平行切面的Web应用防护系统、方法及装置与流程  >  正文

基于安全平行切面的Web应用防护系统、方法及装置与流程

  • 国知局
  • 2024-10-21 14:52:30

本发明涉及信息安全,更具体的说是涉及一种基于安全平行切面的web应用防护系统、方法及装置。

背景技术:

1、随着web攻击手段开始变得复杂,攻击面也越来越广。传统的安全防护手段,像waf、ids等等,大多是基于规则,很难适用复杂的网络架构环境,已经不能满足企业对安全的基本需求。而“应用自我保护”技术概念的提出,强调了对应用服务的安全保护,不应该只依赖于外部系统,应用服务应该具备自我保护的能力,即构建以内建安全、主动防御、整体防御为主要特点的原生安全技术。

2、在程序开发中,提高开发效率、促进可维护性、增强可移植性和兼容性等是软件工程中的核心目标,也是企业降本提效的重要措施之一。因此在程序设计时,安全防护和应用服务能够融合在一起但又相互解耦,即安全能够深入业务逻辑,不再是外挂式安全;安全防护即插即用,与应用业务服务独立部署,安全防护升级部署不影响应用业务服务;同时安全能力可编程、可扩展,与业务各自独立演进。原生安全需要一个正交融合的平行空间,以既融合又解耦的方式进行安全防护,非常好地满足了企业建立“原生安全”能力的需求。

3、当前,基于安全切面实现web应用的方法基本采用以下两种方式:一种采用启动时加载代理方式,即在web应用启动时指定代理程序,这种方式安全切面只能对当前的web应用生效,无法做到批量代理或者对正在运行时的web应用实施代理,局限性大;另一种方式采用运行时加载,但大多是在安全切面启动时通过启动参数方式动态绑定运行的应用进程,一旦启动后就无法继续对新的web应用进行绑定,没有友好的人机交互的方式,不能灵活地对指定应用进程进行绑定或者卸载。

技术实现思路

1、针对现有技术中存在的问题,本发明的目的在于提供一种基于安全平行切面的web应用防护系统、方法及装置,能够有效解决对web应用进行代理插桩时无法人机交互、无法实时动态批量绑定或卸载等问题。

2、本发明为实现上述目的,通过以下技术方案实现:

3、一种基于安全平行切面的web应用防护系统,包括:attach模块、boot模块和engine模块;

4、attach模块,用于通过加载基于groovy脚本的人机交互引擎获取虚拟机上正在运行的业务应用进程,选择业务应用进程进行hook切面的控制操作并加载boot模块;

5、boot模块,用于执行agentmain方法,初始化并启动engine模块;

6、engine模块,用于初始化切面管理器,通过切面管理器进行hook的加载检查、instrumentation注册器类的初始化和transform的重写,并将hook切面注入到目标类中,为目标对象提供安全防护功能和权限管控功能。

7、相应的,本发明还公开了一种基于安全平行切面的web应用防护方法,包括:

8、启动attach模块,通过加载基于groovy脚本的人机交互引擎获取虚拟机上正在运行的业务应用进程,选择业务应用进程进行hook切面的控制操作并加载boot模块;

9、在boot模块中,通过执行agentmain方法,初始化并启动engine模块;

10、加载engine模块,并初始化切面管理器,通过切面管理器进行hook的加载检查、instrumentation注册器类的初始化和transform的重写,并将hook切面注入到目标类中,为目标对象提供安全防护功能和权限管控功能。

11、进一步,所述启动attach模块,通过加载基于groovy脚本的人机交互引擎获取虚拟机上正在运行的业务应用进程,包括:

12、启动attach模块,加载基于groovy脚本的人机交互引擎,通过groovyscriptengine进入groovy启动流程主方法,通过com.sun.tools.attach.virtualmachine接口与虚拟机交互,获取当前虚拟机上所有正在运行的业务应用进程。

13、进一步,所述选择业务应用进程进行hook切面的控制操作并加载boot模块,包括:

14、通过groovyscriptengine执行groovy脚本,提供用户交互界面;

15、通过用户交互界面获取用户的选择信息,以确定选择的业务应用进程,并确定对业务应用进程进行hook切面的卸载或安装操作;

16、通过virtualmachine的loadagent方法加载boot模块。

17、进一步,所述在boot模块中,通过执行agentmain方法,初始化并启动engine模块,包括:

18、在boot模块的pom文件中配置manifest.mf文件,以指定代理类;

19、当虚拟机加载时,根据manifest.mf文件,自动查找并调用指定的代理类的agentmain方法;

20、通过运行agentmain方法加载engine模块,并启动engine模块。

21、进一步,所述通过切面管理器进行hook的加载检查、instrumentation注册器类的初始化和transform的重写,并将hook切面注入到目标类中,包括:

22、使用spring动态注入技术,通过自定义注解来标记hook点;

23、利用抽象工厂模式定义一个hook的抽象类;

24、初始化自定义的instrumentation注册器,通过类扫描器自动发现并注册所有继承自hook的抽象类的hook子类,并将这些子类收集到set集合中;

25、重写transform方法,对set集合中的hook子类与目标类进行匹配,如果匹配成功,则利用字节码修改技术对目标类的字节码进行修改,并插入hook逻辑。

26、进一步,所述hook的抽象类包括基于字节码技术的插入逻辑,任一hook点继承所述抽象类后,可重写插入逻辑。

27、相应的,本发明还公开了一种基于安全平行切面的web应用防护装置,包括:

28、存储器,用于存储计算机程序;

29、处理器,用于执行所述计算机程序时实现如上文任一项所述基于安全平行切面的web应用防护方法步骤。

30、对比现有技术,本发明有益效果在于:本发明提供了一种基于安全平行切面的web应用防护系统、方法及装置,通过一种自定义注解、类扫描和工厂模式等来统一管理hook切面,并模块化构建hook程序启动加载流程,以人机交互的方式展示服务器中的web应用进程以及操作,可随时灵活地对web应用进行批量注入或者卸载hook。本发明在启动后,加载交互引擎,动态绑定应用进程并初始化切面管理器。切面管理器主要负责对hook的集中管控、类型匹配、instrumentation的初始化和transform的重写等,并基于字节码修改技术,将不同的hook点注入到目标类方法中。

31、本发明通过分模块架构设计以及基于springboot、groovy、java agent插桩技术等的结合,实现了通过人机交互的方式动态的对服务器上单个或多个应用进程批量绑定或者卸载hook,并基于自定义注解和类扫描、工厂模式等技术定义切面管理器,实现了对业务hook的统一管理和hook批量注入和卸载。本发明能够有效解决对web应用进行代理插桩时无法人机交互、无法实时动态批量绑定或卸载等问题。

32、由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。

本文地址:https://www.jishuxx.com/zhuanli/20241021/319630.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。