CN116644425A - 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质 - Google Patents

基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116644425A
CN116644425A CN202210345884.9A CN202210345884A CN116644425A CN 116644425 A CN116644425 A CN 116644425A CN 202210345884 A CN202210345884 A CN 202210345884A CN 116644425 A CN116644425 A CN 116644425A
Authority
CN
China
Prior art keywords
thread
request
web
java
command execution
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.)
Granted
Application number
CN202210345884.9A
Other languages
English (en)
Other versions
CN116644425B (zh
Inventor
李书亮
于永超
周力炜
李洁玮
王崛超
李祥
孙维康
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INSIGMA TECHNOLOGY CO LTD
HONG KONG-ZHUHAI-MACAO BRIDGE AUTHORITY
Original Assignee
INSIGMA TECHNOLOGY CO LTD
HONG KONG-ZHUHAI-MACAO BRIDGE AUTHORITY
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by INSIGMA TECHNOLOGY CO LTD, HONG KONG-ZHUHAI-MACAO BRIDGE AUTHORITY filed Critical INSIGMA TECHNOLOGY CO LTD
Priority to CN202210345884.9A priority Critical patent/CN116644425B/zh
Publication of CN116644425A publication Critical patent/CN116644425A/zh
Application granted granted Critical
Publication of CN116644425B publication Critical patent/CN116644425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及一种基于Javaagent的Web漏洞即时阻断方法、装置、计算机设备、存储介质和计算机程序产品。本申请通过在Java应用程序中内置Javaagent,配置简单,不需要时刻更新维护规则库,提高了Web渗透命令拦截的准确率。该方法包括:响应于Web请求,创建第一线程处理Web请求;其中,当前Java应用程序中包含javaagent模块;若Web请求中包含Linux命令参数,则利用预设的命令执行hook点将第一线程标记为请求线程;若请求线程中包含UNIXProcess方法,则通过CommandHook点进入UNIXProcess方法;利用UNIXProcess方法检测第一线程是否为请求线程;若是,则获取请求线程中的命令执行参数信息,判断命令执行参数信息与预设正则表达式是否匹配;若匹配,则拦截Web请求。

Description

基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储 介质
技术领域
本申请涉及Web安全技术领域,特别是涉及一种基于Javaagent的Web漏洞即时阻断方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网技术的发展,基于Web环境的互联网应用越来越广泛。Web业务的迅速发展吸引了黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显。黑客利用网站操作系统的漏洞得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害,这使得越来越多的用户关注应用层的安全问题。
传统应用防护系统WAF(Web Application Firewall,Web应用防火墙)都是针对HTTP(Hyper Text Transfer Protocol,超文本传输协议)流量和HTTPS(Hyper TextTransfer Protocol over SecureSocket Layer,超文本传输安全协议)流量进行检测,传统应用防护系统需要独立的安全规则库支持,在对HTTP或HTTPS数据包进行分析的过程中,需要与预设的安全规则库进行比对,若安全规则库没有得到及时更新,拦截效果降低,会对当前Web系统的安全造成威胁。因此传统的Web应用防护系统配置复杂,总是需要及时更新,导致防护力度不够。
发明内容
基于此,有必要针对上述技术问题,提供一种基于Javaagent的Web漏洞即时阻断方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于Javaagent的Web漏洞即时阻断方法。所述方法包括:
在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
若匹配,则拦截所述Web请求。
在其中一个实施例中,所述响应于Web请求,创建第一线程处理所述Web请求之前,所述方法还包括:
通过所述javaagent模块执行Premain函数;
通过所述Premain函数调用retransform类库;
通过所述retransform类库进行字节码操作,为所述当前Java应用程序添加命令执行hook点;
启动所述命令执行hook点,作为所述预设的命令执行hook点。
在其中一个实施例中,所述方法还包括:
JavaScript插件模块初始化;具体包括:插件文件初始化,JavaScript上下文类初始化。
在其中一个实施例中,所述JavaScript插件模块初始化之后,所述方法还包括:
通过预设引擎执行所述JavaScript插件模块,将JavaScript代码编译成字节码,加载至Java虚拟机中执行。
在其中一个实施例中,所述启动所述命令执行hook点之后,所述方法还包括:
通过类加载器将所述当前Java应用程序的所有类加载至内存中,并转换为字节码;
通过所述retransform类库判断各个所述类是否为命令执行需要hook的类;
若是,则通过javassit类库针对所述命令执行需要hook的类进行解析,并返回至所述retransform类库;
通过所述retransform类库将所述命令执行需要hook的类载入Java虚拟机。
在其中一个实施例中,所述javaagent模块与所述当前Java应用程序同时启动,并同时结束。
第二方面,本申请还提供了一种基于Javaagent的Web漏洞即时阻断装置。所述装置包括:
第一线程创建模块,用于在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
请求线程标记模块,用于若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
第一线程检测模块,用于若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
命令执行参数匹配模块,用于若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
Web请求拦截模块,用于若匹配,则拦截所述Web请求。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
上述基于Javaagent的Web漏洞即时阻断方法、装置、计算机设备、存储介质和计算机程序产品,通过在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理Web请求;其中,当前Java应用程序中包含javaagent模块;若Web请求中包含Linux命令参数,则利用预设的命令执行hook点将第一线程标记为请求线程;若请求线程中包含UNIXProcess方法,则通过CommandHook点进入UNIXProcess方法;利用UNIXProcess方法检测第一线程是否为请求线程;若是,则获取请求线程中的命令执行参数信息,判断命令执行参数信息与预设正则表达式是否匹配;若匹配,则拦截Web请求。本申请通过在Java应用程序中内置Javaagent,配置简单,不需要时刻更新维护规则库,提高了Web渗透命令拦截的准确率。
附图说明
图1为一个实施例中基于Javaagent的Web漏洞即时阻断方法的应用环境图;
图2为一个实施例中基于Javaagent的Web漏洞即时阻断方法的流程示意图;
图3为另一个实施例中拦截渗透命令的执行流程示意图;
图4为一个实施例中Javaagent操作过程的整体流程示意图;
图5为一个实施例中Javaagent启动流程的流程示意图;
图6为一个实施例中hook点类加载流程的流程示意图;
图7为一个实施例中基于Javaagent的Web漏洞即时阻断装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于Javaagent的Web漏洞即时阻断方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与Web服务器102进行通信。数据存储系统可以存储Web服务器102需要处理的数据。数据存储系统可以集成在Web服务器102上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。Web服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种基于Javaagent的Web漏洞即时阻断方法,以该方法应用于图1中的Web服务器102为例进行说明,包括以下步骤:
步骤S201,在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
其中,当前Java应用程序一般指为企业应用程序开发的完整的Java程序,例如某电商购物网站。完整的Java应用程序分为前端和后端,前端为能够在浏览器上显示的Html网页,用于提供企业需要的显示样式,例如数字用红色显示还是用黑色显示。而其中的内容,例如商品价格、数量等数据处理过程需要在后端执行,即在Web服务器102上执行,Web服务器一般是基于Linux系统搭建的。Web请求即上述前端网页向后端服务器发起的请求,可以是各种请求,例如用户登录请求、支付请求等等网络数据。Javaagent,也可以叫作Java代理或者拦截器,Javaagent是运行在Main方法之前的拦截器,一般的程序都是从main方法开始执行,而当程序中使用了Javaagent之后,由于Javaagent内定的方法名叫premain,需要先执行premain方法,然后再执行main方法。Javaagent不能单独启动,必须依附在一个Java应用程序运行。
具体地,结合图3所示的拦截常见渗透命令的执行流程示意图,可知,当Web服务器接收到一个Web请求,则操作系统创建第一线程用于处理该Web请求,该第一线程也称为当前线程。其中,当前Java应用程序中预先通过插桩操作将Javaagent模块加载到该程序中,与当前项目同时运行。
步骤S202,若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
具体地,若上述Web请求中包含Linux命令参数,则通过预设的命令执行hook点将上述第一线程标记为请求线程,开启检测配置,缓存请求对象与响应对象。若上述Web请求中不包含Linux命令参数,则放行该Web请求。
步骤S203,若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
具体地,请求执行过程中底层调用了UNIXProcess方法,则进入CommandHook点,该hook点挂钩了java.lang.UNIXProcess方法,通过该方法进入检测流程,判断上述第一线程(即每一个web请求)是否为上述被标记的请求线程,即判断上述第一线程是否包含Linux命令参数。
步骤S204,若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
具体地,获取请求对象中的命令执行参数信息,调用JavaScript插件中的常见渗透命令的正则表达式与Command参数信息进行比对,正则表达式内容如下:
cat.{1,5}/etc/passwd|nc.{1,30}-e.{1,100}/bin/(?:ba)?sh|bash\s-.{0,4}i.{1,20}/de v/tcp/|subprocess.call\(.{0,6}/bin/(?:ba)?sh
|fsockopen\(.{1,50}/bin/(?:ba)?sh|perl.{1,80}socket.{1,120}open.{1,80}exec\(.{1,5}/bin/(?:ba)?sh
上述正则表达式表示:通过web端发送Linux命令,查询linux下文件内容,比如查看/etc/passwd密码文件。
步骤S205,若匹配,则拦截所述Web请求。
具体地,若与正则表达式内容相匹配则拦截请求,重定向至拦截页面,阻止常见渗透命令的执行,并输出拦截日志。
上述实施例,通过在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理Web请求;其中,当前Java应用程序中包含javaagent模块;若Web请求中包含Linux命令参数,则利用预设的命令执行hook点将第一线程标记为请求线程;若请求线程中包含UNIXProcess方法,则通过CommandHook点进入UNIXProcess方法;利用UNIXProcess方法检测第一线程是否为请求线程;若是,则获取请求线程中的命令执行参数信息,判断命令执行参数信息与预设正则表达式是否匹配;若匹配,则拦截Web请求。本申请中通过在Java应用程序中内置Javaagent,配置简单,不需要时刻更新维护规则库,插桩之后立即生效,而且相比于传统应用防护系统,极大程度降低误报率,提高了Web渗透命令拦截的准确率。
在一实施例中,上述步骤S201之前,还包括:通过javaagent模块执行Premain函数;通过Premain函数调用retransform类库;通过retransform类库进行字节码操作,为当前Java应用程序添加命令执行hook点;启动命令执行hook点,作为预设的命令执行hook点。
具体地,如图4所示,图4为Javaagent操作过程的整体流程示意图,其整体过程包括三个部分:分别为javaagent启动流程、hook点类加载流程、拦截常见渗透命令执行流程。本实施例主要介绍上述javaagent启动流程。
首先,常规java项目通过主函数main作为程序的入口,但通过javaagent进行插桩操作之后,需要在main函数之前优先执行javaagent中的premain函数,只有premain函数执行完毕,方可继续执行main函数(也称main方法)。详细过程如图5所示,其中包括:
1、将agent.jar(javaagent模块编译并打包生成的文件)添加至引导类加载器BootstrapClassLoader的ClassPath路径下
2、释放log4j日志
3、根据javaagent的agent.yml配置文件,进行初始化配置
4、JavaScript插件模块初始化
(1)插件文件初始化;
(2)JavaScript上下文类初始化;
(3)预设引擎执行JavaScript插件,将JavaScript代码编译成字节码,在JVM中加载运行;其中,上述预设引擎可以为JavaScript脚本引擎V8,也可以是TraceMonkey引擎或Rhino引擎;
5、初始化字节码转换模块
(1)已加载的类进行插桩操作,当类加载的时候会先进入javaagent进行处理;
(2)retransform进行字节码操作,添加命令执行hook点;
6、启动命令执行hook点线程,至此,启动流程完成的。javaagent初始化完成之后,与Java项目(即Java应用程序)同时运行,同时结束。
上述实施例,通过javaagent启动流程完成各种初始化文件以及类库的配置,为后续执行拦截渗透命令提供数据铺垫。
在一实施例中,上述启动所述命令执行hook点之后,即启动流程完成后,上述方法还包括hook点类加载流程,包括:通过类加载器将当前Java应用程序的所有类加载至内存中,并转换为字节码;通过retransform类库判断各个类是否为命令执行需要hook的类;若是,则通过javassit类库针对命令执行需要hook的类进行解析,并返回至retransform类库;通过retransform类库将命令执行需要hook的类载入Java虚拟机。
具体地,如图6所示,图6为hook点类加载流程示意图,其中,javaagent启动的时候就进行了插桩操作,所有的类都会被类加载器进行加载,获取字节码之后由自定义的JAVA类库transformer进行处理操作,判断是否为命令执行需要hook的类,如果是的话,由java类库javassit进行字节码处理,javassit将类的字节码逐步解析,解析每一个方法,解析过程中触发命令执行hook的方法点,会在方法开始之前加入检测函数的字节码,最终将处理的字节码返回给自定义类库transformer,载入JVM(Java Virtual Machine,Java虚拟机)。
上述实施例,通过hook点设置,为后续实现命令执行漏洞提供技术前提。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于Javaagent的Web漏洞即时阻断方法的基于Javaagent的Web漏洞即时阻断装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于Javaagent的Web漏洞即时阻断装置实施例中的具体限定可以参见上文中对于基于Javaagent的Web漏洞即时阻断方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种基于Javaagent的Web漏洞即时阻断装置700,包括:第一线程创建模块701、请求线程标记模块702、第一线程检测模块703、命令执行参数匹配模块704和Web请求拦截模块705,其中:
第一线程创建模块701,用于在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
请求线程标记模块702,用于若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
第一线程检测模块703,用于若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
命令执行参数匹配模块704,用于若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
Web请求拦截模块705,用于若匹配,则拦截所述Web请求。
在一实施例中,上述装置还包括Javaagent启动单元,用于:通过所述javaagent模块执行Premain函数;通过所述Premain函数调用retransform类库;通过所述retransform类库进行字节码操作,为所述当前Java应用程序添加命令执行hook点;启动所述命令执行hook点,作为所述预设的命令执行hook点。
在一实施例中,上述Javaagent启动单元还用于:
JavaScript插件模块初始化;具体包括:插件文件初始化,JavaScript上下文类初始化。
在一实施例中,上述Javaagent启动单元进一步用于:
通过预设引擎执行所述JavaScript插件模块,将JavaScript代码编译成字节码,加载至Java虚拟机中执行。
在一实施例中,上述装置还包括:hook点类加载单元,用于:
通过类加载器将所述当前Java应用程序的所有类加载至内存中,并转换为字节码;通过所述retransform类库判断各个所述类是否为命令执行需要hook的类;若是,则通过javassit类库针对所述命令执行需要hook的类进行解析,并返回至所述retransform类库;通过所述retransform类库将所述命令执行需要hook的类载入Java虚拟机。
在一实施例中,所述javaagent模块与所述当前Java应用程序同时启动,并同时结束。
上述基于Javaagent的Web漏洞即时阻断装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储Web请求数据以及响应数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Javaagent的Web漏洞即时阻断方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述基于Javaagent的Web漏洞即时阻断方法实施例中的各步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于Javaagent的Web漏洞即时阻断方法,其特征在于,所述方法包括:
在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
若匹配,则拦截所述Web请求。
2.根据权利要求1所述的方法,其特征在于,所述响应于Web请求,创建第一线程处理所述Web请求之前,所述方法还包括:
通过所述javaagent模块执行Premain函数;
通过所述Premain函数调用retransform类库;
通过所述retransform类库进行字节码操作,为所述当前Java应用程序添加命令执行hook点;
启动所述命令执行hook点,作为所述预设的命令执行hook点。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
JavaScript插件模块初始化;具体包括:插件文件初始化,JavaScript上下文类初始化。
4.根据权利要求3所述的方法,其特征在于,所述JavaScript插件模块初始化之后,所述方法还包括:
通过预设引擎执行所述JavaScript插件模块,将JavaScript代码编译成字节码,加载至Java虚拟机中执行。
5.根据权利要求2所述的方法,其特征在于,所述启动所述命令执行hook点之后,所述方法还包括:
通过类加载器将所述当前Java应用程序的所有类加载至内存中,并转换为字节码;
通过所述retransform类库判断各个所述类是否为命令执行需要hook的类;
若是,则通过javassit类库针对所述命令执行需要hook的类进行解析,并返回至所述retransform类库;
通过所述retransform类库将所述命令执行需要hook的类载入Java虚拟机。
6.根据权利要求1至5任一项所述的方法,其特征在于,
所述javaagent模块与所述当前Java应用程序同时启动,并同时结束。
7.一种基于Javaagent的Web漏洞即时阻断装置,其特征在于,所述装置包括:
第一线程创建模块,用于在当前Java应用程序执行过程中,响应于Web请求,创建第一线程处理所述Web请求;其中,所述当前Java应用程序中包含javaagent模块;
请求线程标记模块,用于若所述Web请求中包含Linux命令参数,则利用预设的命令执行hook点将所述第一线程标记为请求线程;
第一线程检测模块,用于若所述请求线程中包含UNIXProcess方法,则通过CommandHook点进入所述UNIXProcess方法;利用所述UNIXProcess方法检测所述第一线程是否为所述请求线程;
命令执行参数匹配模块,用于若是,则获取所述请求线程中的命令执行参数信息,判断所述命令执行参数信息与预设正则表达式是否匹配;
Web请求拦截模块,用于若匹配,则拦截所述Web请求。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN202210345884.9A 2022-04-02 2022-04-02 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质 Active CN116644425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210345884.9A CN116644425B (zh) 2022-04-02 2022-04-02 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210345884.9A CN116644425B (zh) 2022-04-02 2022-04-02 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN116644425A true CN116644425A (zh) 2023-08-25
CN116644425B CN116644425B (zh) 2024-02-20

Family

ID=87642286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210345884.9A Active CN116644425B (zh) 2022-04-02 2022-04-02 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116644425B (zh)

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295081A1 (en) * 2007-05-21 2008-11-27 Andre Laurent Albot Framework for conditionally executing code in an application using conditions in the framework and in the application
EP2701061A1 (en) * 2012-08-24 2014-02-26 CA, Inc. Method of updating or rollbacking dynamically a Java Agent by instrumenting its bytecode
US20140344792A1 (en) * 2013-05-16 2014-11-20 Sap Ag Dynamic bytecode modification of classes and class hierarchies
KR20170052779A (ko) * 2015-11-04 2017-05-15 충북대학교 산학협력단 복수의 로그 수집 서버를 기반으로 한 보안 강화 방법
CN110266669A (zh) * 2019-06-06 2019-09-20 武汉大学 一种Java Web框架漏洞攻击通用检测与定位的方法及系统
CN111105289A (zh) * 2019-11-22 2020-05-05 北京美鲜科技有限公司 一种基于aop方式的客户端订单取消判断方法及装置
CN111723380A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种检测组件漏洞的方法及装置
CN111949491A (zh) * 2020-08-14 2020-11-17 中国工商银行股份有限公司 MyBatis应用程序的SQL提取方法及装置
CN113010898A (zh) * 2021-03-25 2021-06-22 腾讯科技(深圳)有限公司 一种应用程序安全测试方法和相关装置
CN113064601A (zh) * 2019-12-30 2021-07-02 Oppo广东移动通信有限公司 动态加载文件的确定方法、装置、终端及存储介质
CN113127860A (zh) * 2019-12-30 2021-07-16 Oppo广东移动通信有限公司 可执行文件的检测方法、装置、终端及存储介质
WO2021174838A1 (zh) * 2020-03-06 2021-09-10 平安科技(深圳)有限公司 Web应用资源监控方法、电子设备及计算机可读存储介质
US20210326446A1 (en) * 2020-07-20 2021-10-21 Baidu Online Network Technology (Beijing) CO,Ltd, Vulnerability Detection Method, Apparatus, Electronic Device and Storage Medium
US20220006854A1 (en) * 2020-07-06 2022-01-06 Cisco Technology, Inc. Microservice manager and optimizer

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295081A1 (en) * 2007-05-21 2008-11-27 Andre Laurent Albot Framework for conditionally executing code in an application using conditions in the framework and in the application
EP2701061A1 (en) * 2012-08-24 2014-02-26 CA, Inc. Method of updating or rollbacking dynamically a Java Agent by instrumenting its bytecode
US20140344792A1 (en) * 2013-05-16 2014-11-20 Sap Ag Dynamic bytecode modification of classes and class hierarchies
KR20170052779A (ko) * 2015-11-04 2017-05-15 충북대학교 산학협력단 복수의 로그 수집 서버를 기반으로 한 보안 강화 방법
CN110266669A (zh) * 2019-06-06 2019-09-20 武汉大学 一种Java Web框架漏洞攻击通用检测与定位的方法及系统
CN111105289A (zh) * 2019-11-22 2020-05-05 北京美鲜科技有限公司 一种基于aop方式的客户端订单取消判断方法及装置
CN113064601A (zh) * 2019-12-30 2021-07-02 Oppo广东移动通信有限公司 动态加载文件的确定方法、装置、终端及存储介质
CN113127860A (zh) * 2019-12-30 2021-07-16 Oppo广东移动通信有限公司 可执行文件的检测方法、装置、终端及存储介质
WO2021174838A1 (zh) * 2020-03-06 2021-09-10 平安科技(深圳)有限公司 Web应用资源监控方法、电子设备及计算机可读存储介质
CN111723380A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种检测组件漏洞的方法及装置
US20220006854A1 (en) * 2020-07-06 2022-01-06 Cisco Technology, Inc. Microservice manager and optimizer
US20210326446A1 (en) * 2020-07-20 2021-10-21 Baidu Online Network Technology (Beijing) CO,Ltd, Vulnerability Detection Method, Apparatus, Electronic Device and Storage Medium
CN111949491A (zh) * 2020-08-14 2020-11-17 中国工商银行股份有限公司 MyBatis应用程序的SQL提取方法及装置
CN113010898A (zh) * 2021-03-25 2021-06-22 腾讯科技(深圳)有限公司 一种应用程序安全测试方法和相关装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邱若男;胡岸琪;彭国军;张焕国;: "基于RASP技术的Java Web框架漏洞通用检测与定位方案", 武汉大学学报(理学版), no. 03 *

Also Published As

Publication number Publication date
CN116644425B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
US20150012924A1 (en) Method and Device for Loading a Plug-In
CN110363026B (zh) 文件操作方法、装置、设备、系统及计算机可读存储介质
US20070277127A1 (en) Screensaver for individual application programs
WO2016086767A1 (zh) 实现浏览器安全的方法、浏览器客户端和装置
CN110765464B (zh) 漏洞检测方法、装置、设备及计算机存储介质
US20190222587A1 (en) System and method for detection of attacks in a computer network using deception elements
US11782734B2 (en) Method and system for text extraction from an application window for robotic process automation
CN107147645B (zh) 网络安全数据的获取方法及装置
CN110908837B (zh) 应用程序异常处理方法、装置、电子设备及存储介质
US10275595B2 (en) System and method for characterizing malware
WO2017096826A1 (zh) 移动终端的控制方法及装置
WO2019047677A1 (zh) 一种应用下载来源的监测方法及装置
CN116644425B (zh) 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质
CN111181914B (zh) 一种局域网内部数据安全监控方法、装置、系统和服务器
CN110399131B (zh) 提高应用程序稳定性的方法、装置、计算机设备
CN113434217B (zh) 漏洞扫描方法、装置、计算机设备及介质
US11790083B2 (en) Detecting malicious scripts in a web page
TWI693534B (zh) 獲取輸入字元的方法和裝置
CN108650257B (zh) 基于网站内容的安全检测设置方法、装置及存储介质
CN112181535A (zh) 一种接口调用方法、装置、服务器及存储介质
CN111488230A (zh) 修改日志输出级别的方法、装置、电子设备及存储介质
CN115269066B (zh) 接口调用方法、设备及存储介质
CN112948727B (zh) 基于WebView的数据注入方法、装置、设备及存储介质
US11868382B1 (en) Software utility toolbox for client devices
CN116700836A (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
GR01 Patent grant
GR01 Patent grant