CN110266669B - 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 - Google Patents

一种Java Web框架漏洞攻击通用检测与定位的方法及系统 Download PDF

Info

Publication number
CN110266669B
CN110266669B CN201910491961.XA CN201910491961A CN110266669B CN 110266669 B CN110266669 B CN 110266669B CN 201910491961 A CN201910491961 A CN 201910491961A CN 110266669 B CN110266669 B CN 110266669B
Authority
CN
China
Prior art keywords
vulnerability
attack
program
information
module
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.)
Active
Application number
CN201910491961.XA
Other languages
English (en)
Other versions
CN110266669A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN201910491961.XA priority Critical patent/CN110266669B/zh
Publication of CN110266669A publication Critical patent/CN110266669A/zh
Application granted granted Critical
Publication of CN110266669B publication Critical patent/CN110266669B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/306Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Technology Law (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公布了一种Java Web框架漏洞攻击通用检测与定位的方法及系统,包括上下文信息搜集模块:在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据;漏洞判定模块:根据建立的漏洞利用规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法;漏洞告警模块:接收漏洞判定模块的判断结果,输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果。本发明可直接对收集到的程序内部上下文信息应用规则进行匹配,同时检测规则集合能随前期分析的漏洞攻击种类的拓展而拓展,能够实时监测程序内部的运行状态,实现未知漏洞防御,具备有效性和实用性。

Description

一种Java Web框架漏洞攻击通用检测与定位的方法及系统
技术领域
本发明涉及计算机网络安全领域,具体涉及一种Java Web框架漏洞攻击通用检测与定位的方法和系统。
背景技术
开发人员为了快速开发,会选择使用Java Web框架快速构建程序,但不可避免地,这些框架会存在不同程度的安全缺陷。对于Java Web框架而言,其漏洞往往数量多并且高危比例较高。针对Java Web框架漏洞攻击的防护,业内大多使用的是WAF(Web ApplicationFirewall,Web应用防火墙)方案,但是该方案依赖人工分析,去提取漏洞特征从而制定模式匹配规则,因此对于漏洞攻击的检测和细节定位较为困难。同时因为检测结果受匹配规则编写质量的影响,在应用程序外部识别访问,可疑即阻止访问,造成检测误报率较高,并且不能识别未知漏洞攻击。
通过分析典型漏洞攻击流程,总结得到的漏洞攻击利用规则集合,具有一定程度的通用性。因此将该规则集合作为判断是否发生漏洞攻击的依据,比传统的人工分析编写出的WAF匹配规则更加高效。同时在Web应用程序内部匹配部署探针监测关键数据,以判断用户访问触发的流程是否正常,相比WAF方案,降低了漏洞检测中人工参与的程度,更加准确,能有效降低误报率。
发明内容
为了克服上述WAF防护方案存在的不足,本发明提供一种Java Web框架漏洞攻击通用检测与定位的方法和系统,通过在Web应用程序内部匹配通用的漏洞攻击利用规则集合,进行漏洞攻击检测与定位,可提高Java Web框架漏洞攻击检测的准确度。
本发明提供的技术方案如下:
一种Java Web框架漏洞攻击通用检测与定位的方法,通过在Web应用程序内部匹配通用的漏洞攻击利用规则集合,进行漏洞攻击检测与定位;其特征在于,基于一个漏洞利用规则集合,该漏洞利用规则集合是以Java Web框架的多类典型漏洞为基础,分析同类漏洞攻击中的关键步骤和原理,总结同类漏洞攻击流程中存在的共同点而形成该类漏洞攻击的利用规则集合,进而集合多类漏洞对应的利用规则集合而建立,具体定义如下:攻击操作涉及到的、功能相同或相似的函数及其参数;攻击者构造的特殊数据;攻击操作及其先后顺序信息形成某类漏洞对应的漏洞利用规则集合,多个类别的漏洞各自对应的漏洞利用规则集合共同组成本方法所使用的漏洞利用规则集合,其中,功能相似是指实际发挥的功能相同的函数及参数;
包括如下步骤:
步骤1、根据漏洞利用规则集合,上下文信息搜集模块在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据,具体执行操作如下:
步骤1.1、根据漏洞利用规则集合提取其中的关键函数点;沿着漏洞攻击必经的入口点到最终实现攻击效果的Sink点之间的路径,上下文信息搜集模块在应用程序的各个关键层次通过部署RASP的探针代码拦截获取相关敏感函数调用过程中的关键参数信息,以供漏洞判定模块使用通用检测规则进行匹配判定;
步骤1.2、通过线程副本(ThreadLocal)存储每个线程的上下文信息而不相互干扰,将经过的函数流程完整记录下来,并区分不同用户之间的请求;
步骤2、上下文信息匹配识别:漏洞判定模块根据建立的漏洞利用规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法,具体包括建立:
框架RCE类漏洞检测算法,用于检测框架中存在的RCE类漏洞;
反序列化漏洞检测算法,用于检测框架中存在的反序列化漏洞
SQL注入漏洞检测算法,用于检测框架中存在的SQL注入漏洞
服务器配置不当漏洞检测算法,用于检测框架中存在的服务器配置不当漏洞;
进行匹配判定时,在关键模块的某个点获取到的信息进行漏洞特征匹配,进而识别漏洞攻击类型,其中,关键模块指漏洞利用规则中涉及到的被保护程序的功能模块;收到被搜集的上下文信息后,漏洞判定模块进行上下文信息的匹配识别,从而判断程序内部当前Web访问线程经过的流程是否为漏洞攻击行为,若命中策略,则判定为某类型的漏洞攻击,同时具备可解释性,具体是:
对于获取到的程序内部信息,使用建立的漏洞利用规则集合对信息进行一一判断,并根据判断结果执行:
某类漏洞对应的规则全部命中,则认为被保护程序处于被攻击状态;
若未全部命中,则判断漏洞利用规则集合中、与各类别漏洞的攻击行为直接相关的规则是否至少有一条符合,若符合则认为程序处于被攻击状态且属于该类漏洞;
步骤3、漏洞判定模块将判断结果传递给漏洞告警模块,漏洞告警模块输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果;
步骤3.1、判断结果为正常,则返回正常请求;
步骤3.2、判断结果为漏洞攻击,则返回自定义安全警告视图,同时存储该线程的上下文信息,并将其报告安全工程师。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,框架RCE类漏洞检测算法、反序列化漏洞检测算法、SQL注入漏洞检测算法以及服务器配置不当漏洞检测算法的建立方法是:根据攻击者的攻击方式涉及的对应漏洞的操作和数据,去拦截被保护程序内部的对应函数,来判断程序内部是否出现连续的、异常的操作和特殊的数据;其中操作是指漏洞利用规则中对应涉及到的、攻击者直接或间接引发的、被保护程序内部的函数调用;特殊数据是指:攻击者对被保护程序输入或注入的数据、攻击者直接或间接调用函数的参数及其返回值、攻击者直接或间接修改的被保护程序内部数据、攻击者从程序内部获取的数据;所述攻击方法包括但不限于:拦截函数并修改函数原本功能;在被保护程序内部非法执行函数调用;对被保护程序输入或注入特殊数据以获取代码执行权限;非法读取、修改、传输、写入被保护程序内部文件和数据;所述对应漏洞包括RCE类漏洞、反序列化漏洞、SQL注入漏洞以及服务器配置不当漏洞。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,步骤1.1根据建立的通用漏洞利用规则集合,确定应用程序内部的关键信息收集点以及需要收集的信息种类,进而在应用程序内部的各个关键层次中对这些关键点进行实时的监控和信息提取;程序内部涉及的4个层次和对应要拦截的数据:
Java Web应用服务器层:拦截解析完HTTP协议请求的Request对象,其中包含URL、参数及上传数据信息;
应用程序关键源码层:Struts2、Spring-Web和Mybatis;
表达式语言层:包括:OGNL、SpEL表达式语言;
JDK底层行为监控层:读写文件、执行命令和查询数据库行为。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,框架RCE类漏洞检测算法、反序列化漏洞检测算法、SQL注入漏洞检测算法以及服务器配置不当漏洞检测算法,其特征是,步骤2以通用漏洞利用规则集合为基础,来构造相应漏洞类型的规则匹配算法,进而对收到的上下文信息进行匹配检测;这种检测方式无需额外的特征库,直接根据基于通用漏洞利用规则集合构造出的规则匹配算法,对被搜集的程序内部信息进行匹配,从而判定漏洞和攻击行为。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,步骤2中漏洞判定模块进行漏洞判定的具体方法是:
步骤2.1、接收上下文搜集模块基于RASP技术收集到的被保护程序内部实时信息,并将其作为漏洞判定算法的输入;
步骤2.2、采用RASP技术,在漏洞判定算法内部基于漏洞利用规则对信息进行实时判断
步骤2.3、输出对应的判断结果作为判定当前是否出现漏洞攻击的理由;
步骤2.4、结合漏洞判定算法对程序内部各项信息的判定结果,给出具体漏洞攻击类型,识别为攻击行为后,根据识别规则将攻击归类为对应类型。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,步骤3中漏洞告警模块进行告警的具体步骤是:
步骤3.1、用户对告警模块进行参数配置,设置某种类型漏洞攻击的报告等级以及是否实时禁止漏洞攻击行为,例如:重要漏洞攻击拦截并记录,发邮件或短信通知安全工程师;可疑攻击行为只记录日志不报告
步骤3.2、一旦被保护程序内部出现漏洞攻击行为,根据用户对告警模块的配置信息,可实时禁止漏洞攻击行为;
步骤3.3、一旦被保护程序内部出现漏洞攻击行为,根据用户对告警模块的配置信息,记录攻击日志,并输出相应配置等级的漏洞攻击报告,报告信息具备可读性,详细保存漏洞攻击类型、URL、危害等级和各层次上下文信息。
在上述的一种Java Web框架漏洞攻击通用检测与定位的方法,步骤2.2中,若判定为漏洞攻击,模块将RASP模块各个层次拦截的线程上下文信息记录到文件中,并通过RASP技术Hook服务器HttpServletResponse的方式返回自定义错误页面;其中,Java的函数调用栈信息和上下文信息是快速定位回溯漏洞细节的关键点。
一种Java Web框架漏洞攻击通用检测与定位的系统,其特征是,包括:
上下文信息搜集模块:在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据;
漏洞判定模块:根据建立的漏洞利用规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法;
漏洞告警模块:接收漏洞判定模块的判断结果,输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果。
本发明的有益效果:本发明提供一种Java Web框架漏洞攻击通用检测与定位的方法和系统,通过在Web应用程序内部匹配通用的漏洞攻击利用规则集合,进行漏洞攻击检测与定位。由于漏洞攻击利用规则集合是通过分析典型Web漏洞攻击流程、对流程中的共同点进行总结提炼得到的,因此将该规则集合应用于收集到的上下文信息进行匹配检测时,不仅能对已知漏洞攻击进行检测,对于相似类型未知漏洞的0-Day攻击同样也能有效地检测,从而实现了对未知漏洞攻击的防御,具有通用性。该规则集合在应用于漏洞攻击检测时无需额外特征库辅助,并且检测范围可随前期分析的攻击流程种类的增加而拓展。另外本发明在实施漏洞检测时,是对程序运行时内部各层次中关键节点进行实时检测和信息收集,形成多层日志,以判断用户访问触发的流程是否正常,因此本发明能实施细粒度的漏洞检测和攻击防御,提高了检测效率,有效降低误报率。综上,本发明的检测方案能够有效降低对人工分析的依赖,更加高效准确地进行漏洞检测和细节定位,具有良好的实用性和扩展性。
附图说明
图1是本发明提供方法系统框架图。
图2是本发明实施例中S2-016原理流程图。
图3是本发明实施例中S2-045原理流程图。
图4是本发明实施例中Struts2 RCE漏洞通用利用模式。
具体实施方式
下面结合图1,通过实施案例进一步描述本发明,但不以任何方式限制本发明的范围。
一、本发明提供一种Java Web框架漏洞攻击通用检测与定位的方法和系统,通过在Web应用程序内部匹配通用的漏洞攻击利用规则集合,进行漏洞攻击检测与定位。
图1所示是本发明提供方法的系统框架图,本发明的具体实施方式如下:
1、根据Java Web框架的典型漏洞,分析漏洞攻击中的关键步骤和原理,总结攻击流程中存在的共同点,建立一个通用的漏洞利用规则集合。
2、根据步骤1中建立的漏洞利用规则集合,“上下文信息搜集模块”在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据,具体执行操作如下:
21)据漏洞利用规则集合提取其中的关键函数点。沿着漏洞攻击必经的入口点到最终实现攻击效果的Sink点之间的路径,“上下文信息搜集模块”在应用程序的各个关键层次通过部署RASP的探针代码拦截获取相关敏感函数调用过程中的关键参数信息,以供“漏洞判定模块”使用通用检测规则进行匹配判定;涉及的4个层次和对应要拦截的数据包括但不限于:Java Web应用服务器层:拦截解析完HTTP协议请求的Request对象,其中包含URL、参数及上传数据等信息;Struts2、Spring-Web和Mybatis等应用程序关键源码层;表达式语言层:如:OGNL、SpEL表达式语言等;JDK底层行为监控层:读写文件、执行命令和查询数据库等行为。
22)通过线程副本(ThreadLocal)存储每个线程的上下文信息而不相互干扰,将经过的函数流程完整记录下来,并区分不同用户之间的请求。
3、上下文信息匹配识别:“漏洞判定模块”根据步骤1中建立的规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法。收到被搜集的上下文信息后,该模块进行上下文信息的匹配识别,从而判断程序内当前Web访问线程经过的流程是否为漏洞攻击行为,若命中策略,则判定为某类型的漏洞攻击,同时具备可解释性;“漏洞判定模块”构造的规则匹配算法包括但不限于:框架RCE类漏洞检测算法、反序列化漏洞检测算法、SQL注入漏洞检测算法、服务器配置不当漏洞检测算法。该模块不一定要综合所有的信息进行判定,可以在关键模块的某个点进行漏洞特征匹配,进而识别漏洞攻击类型;
4、“漏洞判定模块”将判断结果传递给“漏洞告警模块”,后者输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果;
41)假如判断结果为正常,则返回正常请求
42)假如判断结果为漏洞攻击,则返回自定义安全警告视图。模块将RASP模块各个层次拦截的线程上下文信息记录到文件中,并通过RASP技术Hook服务器HttpServletResponse的方式返回自定义错误页面,将结果报告安全工程师。其中,Java的函数调用栈信息和上下文信息是快速定位回溯漏洞细节的关键点。
本发明的核心是:
1、通过分析典型Web漏洞攻击流程,提取出攻击流程中的共同点,总结得到的漏洞攻击利用规则集合具有实用性和通用性。通用性在于,由于规则集合的提炼是基于对多种流行的Java Web框架的多种典型漏洞攻击流程的分析得到,针对相同类型漏洞的攻击流程所存在的共性已经被涵盖在利用规则中,因此将该利用规则集合应用在被保护应用程序内部收集到的上下文信息进行匹配检测时,本发明不仅是对于已知漏洞攻击,对于相似类型未知漏洞的0-Day攻击同样也能有效地检测,从而实现了对未知漏洞攻击的防御;实用性在于,该规则集合一旦建立,则应用时无需额外特征库辅助,并且规则集合可随前期分析的攻击流程种类的拓展而拓展;
2、本发明是基于Web漏洞攻击流程来提炼漏洞攻击利用规则集合,因此规则关注的特征点不仅在于Web应用程序外部收到的各种信息,更关注基于漏洞的攻击在实施时,其在被攻击程序内部的流程和信息。因此本发明在应用漏洞攻击利用规则集合保护Web应用程序时,并非将可疑行为阻拦在被保护程序的外部,而是对程序运行时内部各层次中关键节点进行实时检测和信息收集,形成多层日志,以判断用户访问触发的流程是否正常。因此本发明能实施细粒度的漏洞检测和攻击防御,提高了检测效率,有效降低误报率。
二、以下以Struts2框架上的典型RCE漏洞为例,说明漏洞攻击流程分析、总结漏洞利用规则集合、根据漏洞利用规则设计漏洞检测算法的全过程。
1、典型RCE漏洞攻击流程分析。
对Struts2处理用户请求流程梳理后,再通过源码级别分析其历史RCE漏洞时,发现针对框架的攻击存在共同特性。由此,可以提取出针对Struts2漏洞攻击的通用利用模式。
2013年Struts2爆出具有代表性的漏洞S2-016,其攻击原理流程如图2所示。该漏洞是利用Struts2的自定义跳转功能,用户输入的URL和数据经过过滤器处理后,传输至ActionMapper进行解析。若里面包含重定向指令(redirect:指定URL),则跳转到指定页面。但是,若用户输入的跳转URL地址包含恶意代码,框架内部就会使用OGNL语言来解析执行。OGNL语言是一种功能十分强大的语言,可以新建任意Java对象,修改Struts2内部对象的属性。由此,最终可以达到执行系统命令和读写文件的目的。
2017年,Struts2再次出现的最新RCE漏洞S2-045的攻击原理流程如图3所示。它利用了Struts2上传功能,若用户在上传文件的Content-Type属性中植入恶意代码,框架内部会解析出错。而错误信息同样会使用OGNL语言来处理,这些错误信息便包含用户输入的恶意OGNL代码。最终可以达到攻击者执行命令,读写任意文件的目的。
虽然这两个漏洞出现的年份跨度很大,但是,两者之间还是存在一些相似之处。如:漏洞最终都利用OGNL语言实现远程命令执行和读写任意文件的目的。漏洞在执行流程上,都会按照架构图上的次序,经过过滤器,然后解析URL,并调用Action,而问题就集中出现在这个处理过程中。
2、典型RCE漏洞利用规则总结。
按照同样的方式,本文分析了其他历史RCE漏洞流程,如:S2-020,S2-029,S2-033等,总结出以下相似特性:
1.执行流程最终都会到达OGNL语言执行处。
2.通过OGNL语言调用JDK提供的API执行命令和读写文件。
3.漏洞往往成对出现。即,未能有效修补之前出现的漏洞,而导致新的方法绕过。
4.漏洞均为处理用户请求数据不当导致。如:问题集中在过滤器解析URL及上传数据,参数拦截器处理参数以及官方提供插件处理URL请求的特殊规则的过程中。
综合上述特点,总结出Struts2漏洞通用利用模式流程,如图4所示。
图4标注的1-7是框架内处理数据部分,同时也是RCE漏洞触发的关键地方,用户正常请求处理的必经之路。用户输入,首先会经过过滤器进行封装处理(S2-045和S2-046触发点)。然后,若有配置为插件处理,则交由REST插件的ActionMapper类解析(S2-033和S2-037触发点)产生ActionMapping对象。否则,由默认ActionMapper类处理(S2-016触发点)。得到的ActionMapping对象里面有调用的Action,方法名,最后显示的Result以及参数值等重要信息。然后,通过参数拦截器对参数进行处理(S2-003,S2-005,S2-009触发点)。最后,由ActionProxy类代理调用业务逻辑处理程序Action的method方法(S2-032触发点)。业务处理完成后,寻找对应的结果类Result将处理结果显示给用户。若找不到对应的JSP等显示文件,配置了Convention插件的程序,按照默认规则再次寻找(S2-042触发点)。而这些触发点经过执行流程,最终都会汇聚到底层OGNL解析可控数据上,进而调用底层Java API实现命令执行和读写任意文件的攻击目的。
3、根据RCE漏洞利用规则设计对应漏洞检测算法。
下面简单介绍针对典型RCE漏洞类型进行匹配算法设计。为方便表述,将服务器层用A表示,应用框架层用B表示,表达式语言层用C表示,底层敏感行为层用D表示。
框架的RCE漏洞大都依附于表达式语言,因此在表达式语言层(C层)和行为层(D层)的特征尤为明显。为了更精准快速地分析漏洞,也可综合应用框架层(B层)的特征进行判断。针对Struts2框架和Spring框架RCE漏洞,在B层和C层的特征不同,但在D层上的表现特征是一致的。攻击者会首先尝试命令执行,然后尝试目录遍历、文件读写、内网扫描等操作。这些行为不仅可以使框架检测出漏洞攻击行为,及其攻击类型,甚至可以防御0Day级别的漏洞攻击。
基于传统规则匹配的识别算法描述为:
Figure BDA0002087328600000081
Figure BDA0002087328600000091
上述算法是基于D层相关远程代码执行行为的信息拦截,可以判定漏洞攻击已经可以成功。如果B层的拦截粒度足够大,还可以根据历史漏洞的入口点,判断其是否为已知攻击方法。若B层拦截的信息没有历史漏洞的入口点,可以判定为疑似0Day级别漏洞攻击。根据C层的表达式语言拦截信息也可判定是否为漏洞攻击。例如:表达式语言中出现“java.lang.Runtime”,“java.io.File”等敏感字符串,或者写一个完善的正则表达式进行识别。这样可以判定为尝试使用表达式语言进行漏洞攻击。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (8)

1.一种Java Web框架漏洞攻击通用检测与定位的方法,通过在Web应用程序内部匹配通用的漏洞攻击利用规则集合,进行漏洞攻击检测与定位;其特征在于,基于一个漏洞利用规则集合,该漏洞利用规则集合是以Java Web框架的多类典型漏洞为基础,分析同类漏洞攻击中的关键步骤和原理,总结同类漏洞攻击流程中存在的共同点而形成该类漏洞攻击的利用规则集合,进而集合多类漏洞对应的利用规则集合而建立,具体定义如下:攻击操作涉及到的、功能相同或相似的函数及其参数;攻击者构造的特殊数据;攻击操作及其先后顺序信息形成某类漏洞对应的漏洞利用规则集合,多个类别的漏洞各自对应的漏洞利用规则集合共同组成本方法所使用的漏洞利用规则集合,其中,功能相似是指实际发挥的功能相同的函数及参数;
包括如下步骤:
步骤1、根据漏洞利用规则集合,上下文信息搜集模块在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据,具体执行操作如下:
步骤1.1、根据漏洞利用规则集合提取其中的关键函数点;沿着漏洞攻击必经的入口点到最终实现攻击效果的Sink点之间的路径,上下文信息搜集模块在应用程序的各个关键层次通过部署RASP的探针代码拦截获取相关敏感函数调用过程中的关键参数信息,以供漏洞判定模块使用通用检测规则进行匹配判定;
步骤1.2、通过线程副本(ThreadLocal)存储每个线程的上下文信息而不相互干扰,将经过的函数流程完整记录下来,并区分不同用户之间的请求;
步骤2、上下文信息匹配识别:漏洞判定模块根据建立的漏洞利用规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法,具体包括建立:
框架RCE类漏洞检测算法,用于检测框架中存在的RCE类漏洞;
反序列化漏洞检测算法,用于检测框架中存在的反序列化漏洞
SQL注入漏洞检测算法,用于检测框架中存在的SQL注入漏洞
服务器配置不当漏洞检测算法,用于检测框架中存在的服务器配置不当漏洞;
进行匹配判定时,在关键模块的某个点获取到的信息进行漏洞特征匹配,进而识别漏洞攻击类型,其中,关键模块指漏洞利用规则中涉及到的被保护程序的功能模块;收到被搜集的上下文信息后,漏洞判定模块进行上下文信息的匹配识别,从而判断程序内部当前Web访问线程经过的流程是否为漏洞攻击行为,若命中策略,则判定为某类型的漏洞攻击,同时具备可解释性,具体是:
对于获取到的程序内部信息,使用建立的漏洞利用规则集合对信息进行一一判断,并根据判断结果执行:
某类漏洞对应的规则全部命中,则认为被保护程序处于被攻击状态;
若未全部命中,则判断漏洞利用规则集合中、与各类别漏洞的攻击行为直接相关的规则是否至少有一条符合,若符合则认为程序处于被攻击状态且属于该类漏洞;
步骤3、漏洞判定模块将判断结果传递给漏洞告警模块,漏洞告警模块输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果;
步骤3.1、判断结果为正常,则返回正常请求;
步骤3.2、判断结果为漏洞攻击,则返回自定义安全警告视图,同时存储该线程的上下文信息,并将其报告安全工程师。
2.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,框架RCE类漏洞检测算法、反序列化漏洞检测算法、SQL注入漏洞检测算法以及服务器配置不当漏洞检测算法的建立方法是:根据攻击者的攻击方式涉及的对应漏洞的操作和数据,去拦截被保护程序内部的对应函数,来判断程序内部是否出现连续的、异常的操作和特殊的数据;其中操作是指漏洞利用规则中对应涉及到的、攻击者直接或间接引发的、被保护程序内部的函数调用;特殊数据是指:攻击者对被保护程序输入或注入的数据、攻击者直接或间接调用函数的参数及其返回值、攻击者直接或间接修改的被保护程序内部数据、攻击者从程序内部获取的数据;攻击方法包括但不限于:拦截函数并修改函数原本功能;在被保护程序内部非法执行函数调用;对被保护程序输入或注入特殊数据以获取代码执行权限;非法读取、修改、传输、写入被保护程序内部文件和数据;所述对应漏洞包括RCE类漏洞、反序列化漏洞、SQL注入漏洞以及服务器配置不当漏洞。
3.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,步骤1.1根据建立的通用漏洞利用规则集合,确定应用程序内部的关键信息收集点以及需要收集的信息种类,进而在应用程序内部的各个关键层次中对这些关键点进行实时的监控和信息提取;程序内部涉及的4个层次和对应要拦截的数据:
Java Web应用服务器层:拦截解析完HTTP协议请求的Request对象,其中包含URL、参数及上传数据信息;
应用程序关键源码层:Struts2、Spring-Web和Mybatis;
表达式语言层:包括:OGNL、SpEL表达式语言;
JDK底层行为监控层:读写文件、执行命令和查询数据库行为。
4.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,框架RCE类漏洞检测算法、反序列化漏洞检测算法、SQL注入漏洞检测算法以及服务器配置不当漏洞检测算法,其特征是,步骤2以通用漏洞利用规则集合为基础,来构造相应漏洞类型的规则匹配算法,进而对收到的上下文信息进行匹配检测;这种检测方式无需额外的特征库,直接根据基于通用漏洞利用规则集合构造出的规则匹配算法,对被搜集的程序内部信息进行匹配,从而判定漏洞和攻击行为。
5.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,步骤2中漏洞判定模块进行漏洞判定的具体方法是:
步骤2.1、接收上下文搜集模块基于RASP技术收集到的被保护程序内部实时信息,并将其作为漏洞判定算法的输入;
步骤2.2、采用RASP技术,在漏洞判定算法内部基于漏洞利用规则对信息进行实时判断
步骤2.3、输出对应的判断结果作为判定当前是否出现漏洞攻击的理由;
步骤2.4、结合漏洞判定算法对程序内部各项信息的判定结果,给出具体漏洞攻击类型,识别为攻击行为后,根据识别规则将攻击归类为对应类型。
6.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,步骤3中漏洞告警模块进行告警的具体步骤是:
步骤3.1、用户对告警模块进行参数配置,设置某种类型漏洞攻击的报告等级以及是否实时禁止漏洞攻击行为,例如:重要漏洞攻击拦截并记录,发邮件或短信通知安全工程师;可疑攻击行为只记录日志不报告
步骤3.2、一旦被保护程序内部出现漏洞攻击行为,根据用户对告警模块的配置信息,可实时禁止漏洞攻击行为;
步骤3.3、一旦被保护程序内部出现漏洞攻击行为,根据用户对告警模块的配置信息,记录攻击日志,并输出相应配置等级的漏洞攻击报告,报告信息具备可读性,详细保存漏洞攻击类型、URL、危害等级和各层次上下文信息。
7.如权利要求1所述的一种Java Web框架漏洞攻击通用检测与定位的方法,其特征是,步骤2.2中,若判定为漏洞攻击,模块将RASP模块各个层次拦截的线程上下文信息记录到文件中,并通过RASP技术Hook服务器HttpServletResponse的方式返回自定义错误页面;其中,Java的函数调用栈信息和上下文信息是快速定位回溯漏洞细节的关键点。
8.一种采用权利要求 1所述的方法的系统,其特征是,包括:
上下文信息搜集模块:在应用程序的各个关键层次部署RASP的探针代码,获取相关敏感函数的参数信息等关键上下文数据;
漏洞判定模块:根据建立的漏洞利用规则集合,即不同漏洞攻击类型在Web程序各个层次中的表现特征,构造攻击检测规则匹配算法;
漏洞告警模块:接收漏洞判定模块的判断结果,输出反馈信息,其中包含了对程序遭受的漏洞攻击的判定结果。
CN201910491961.XA 2019-06-06 2019-06-06 一种Java Web框架漏洞攻击通用检测与定位的方法及系统 Active CN110266669B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910491961.XA CN110266669B (zh) 2019-06-06 2019-06-06 一种Java Web框架漏洞攻击通用检测与定位的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910491961.XA CN110266669B (zh) 2019-06-06 2019-06-06 一种Java Web框架漏洞攻击通用检测与定位的方法及系统

Publications (2)

Publication Number Publication Date
CN110266669A CN110266669A (zh) 2019-09-20
CN110266669B true CN110266669B (zh) 2021-08-17

Family

ID=67917032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910491961.XA Active CN110266669B (zh) 2019-06-06 2019-06-06 一种Java Web框架漏洞攻击通用检测与定位的方法及系统

Country Status (1)

Country Link
CN (1) CN110266669B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110929264B (zh) * 2019-11-21 2022-08-30 中国工商银行股份有限公司 漏洞检测方法、装置、电子设备及可读存储介质
CN110912890B (zh) * 2019-11-22 2021-10-22 上海交通大学 一种面向内网的漏洞攻击检测系统
CN110958246B (zh) * 2019-11-29 2022-04-15 中电福富信息科技有限公司 一种基于web服务器的动态智能防护方法及其应用
CN113138913A (zh) * 2020-01-17 2021-07-20 深信服科技股份有限公司 Java代码注入检测方法、装置、设备及存储介质
CN111770079B (zh) * 2020-06-24 2022-09-02 绿盟科技集团股份有限公司 一种web框架注入漏洞检测方法及装置
CN112052448B (zh) * 2020-09-14 2023-12-12 莫毓昌 基于关键词自动识别和决策图模型的Web攻击检测方法
CN112671781A (zh) * 2020-12-24 2021-04-16 北京华顺信安信息技术有限公司 基于rasp的防火墙系统
CN112527691B (zh) * 2021-02-18 2021-06-11 深圳开源互联网安全技术有限公司 程序安全检测防护方法、中间件系统及安全中间件系统
CN116710894A (zh) * 2021-02-27 2023-09-05 华为技术有限公司 函数调用上下文的编码、解码方法及装置
CN113489677B (zh) * 2021-05-27 2022-06-07 贵州电网有限责任公司 一种基于语义上下文的零规则攻击检测方法及装置
CN113486277A (zh) * 2021-06-15 2021-10-08 北京华胜久安科技有限公司 Web应用访问方法、装置、电子设备及存储介质
CN113965405A (zh) * 2021-11-04 2022-01-21 杭州安恒信息技术股份有限公司 一种web攻击的监测方法、装置、设备及可读存储介质
CN114189360B (zh) * 2021-11-19 2023-09-29 上海纽盾科技股份有限公司 态势感知的网络漏洞防御方法、装置及系统
CN114499961A (zh) * 2021-12-24 2022-05-13 深圳开源互联网安全技术有限公司 一种安全预警方法、装置及计算机可读存储介质
CN114760089A (zh) * 2022-02-23 2022-07-15 深圳开源互联网安全技术有限公司 一种web服务器的安全防护方法与装置
CN115051820B (zh) * 2022-03-01 2024-03-22 深圳开源互联网安全技术有限公司 一种多维度防暴力破解方法、装置、设备及可读存储介质
CN116644425B (zh) * 2022-04-02 2024-02-20 港珠澳大桥管理局 基于Javaagent的Web漏洞即时阻断方法、装置、设备和存储介质
CN114900333B (zh) * 2022-04-15 2023-09-08 深圳开源互联网安全技术有限公司 一种多区域安全防护方法、装置、设备及可读存储介质
CN115189924B (zh) * 2022-06-22 2024-03-29 国网辽宁省电力有限公司电力科学研究院 一种OAuth2.0开放式重定向漏洞的检测方法及系统
CN115296895B (zh) * 2022-08-02 2024-02-23 中国电信股份有限公司 请求响应方法、装置、存储介质及电子设备
CN115801456B (zh) * 2023-01-31 2023-06-23 天翼云科技有限公司 网络攻击检测方法、装置、电子设备及存储介质
CN116668202A (zh) * 2023-08-02 2023-08-29 杭州默安科技有限公司 一种容器环境下内存马检测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198255A (zh) * 2013-04-03 2013-07-10 武汉大学 一种Android软件敏感行为监控与拦截方法及系统
CN106126417A (zh) * 2016-06-17 2016-11-16 深圳开源互联网安全技术有限公司 交互式应用程序安全测试方法及其系统
CN107888554A (zh) * 2016-09-30 2018-04-06 腾讯科技(深圳)有限公司 服务器攻击的检测方法和装置
CN108959071A (zh) * 2018-06-14 2018-12-07 湖南鼎源蓝剑信息科技有限公司 一种基于RASP的PHP变形webshell的检测方法及系统
CN109714342A (zh) * 2018-12-28 2019-05-03 国家电网有限公司 一种电子设备的保护方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160246590A1 (en) * 2015-02-20 2016-08-25 Sounil Yu Priority Status of Security Patches to RASP-Secured Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103198255A (zh) * 2013-04-03 2013-07-10 武汉大学 一种Android软件敏感行为监控与拦截方法及系统
CN106126417A (zh) * 2016-06-17 2016-11-16 深圳开源互联网安全技术有限公司 交互式应用程序安全测试方法及其系统
CN107888554A (zh) * 2016-09-30 2018-04-06 腾讯科技(深圳)有限公司 服务器攻击的检测方法和装置
CN108959071A (zh) * 2018-06-14 2018-12-07 湖南鼎源蓝剑信息科技有限公司 一种基于RASP的PHP变形webshell的检测方法及系统
CN109714342A (zh) * 2018-12-28 2019-05-03 国家电网有限公司 一种电子设备的保护方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
采用随机森林改进算法的WebShell检测方法;贾文超等;《计算机应用研究》;20170401;全文 *

Also Published As

Publication number Publication date
CN110266669A (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
CN110266669B (zh) 一种Java Web框架漏洞攻击通用检测与定位的方法及系统
Tan et al. Undermining an anomaly-based intrusion detection system using common exploits
Shu et al. Unearthing stealthy program attacks buried in extremely long execution paths
Salem et al. A survey of insider attack detection research
CN103617395B (zh) 一种基于云安全拦截广告程序的方法、装置和系统
US7555777B2 (en) Preventing attacks in a data processing system
Xue et al. Detection and classification of malicious JavaScript via attack behavior modelling
Wang et al. Jsdc: A hybrid approach for javascript malware detection and classification
US20090282480A1 (en) Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies
Deepa et al. A comprehensive survey on approaches to intrusion detection system
KR101132197B1 (ko) 악성 코드 자동 판별 장치 및 방법
Bossi et al. A system for profiling and monitoring database access patterns by application programs for anomaly detection
CN110958246B (zh) 一种基于web服务器的动态智能防护方法及其应用
Luoshi et al. A3: automatic analysis of android malware
WO2014103115A1 (ja) 不正侵入検知装置、不正侵入検知方法、不正侵入検知プログラム及び記録媒体
Wang et al. A combined static and dynamic analysis approach to detect malicious browser extensions
CN113190839A (zh) 一种基于SQL注入的web攻击防护方法及系统
Gorji et al. Detecting obfuscated JavaScript malware using sequences of internal function calls
Jasiul et al. Identification of malware activities with rules
Hannousse et al. Handling webshell attacks: A systematic mapping and survey
Murtaza et al. Total ads: Automated software anomaly detection system
Guo et al. An Empirical Study of Malicious Code In PyPI Ecosystem
Lin et al. Three‐phase behavior‐based detection and classification of known and unknown malware
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
Zhang et al. Research on SQL injection vulnerabilities and its detection methods

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