CN110290114B - 一种基于预警信息的漏洞自动化防护方法及系统 - Google Patents

一种基于预警信息的漏洞自动化防护方法及系统 Download PDF

Info

Publication number
CN110290114B
CN110290114B CN201910479345.2A CN201910479345A CN110290114B CN 110290114 B CN110290114 B CN 110290114B CN 201910479345 A CN201910479345 A CN 201910479345A CN 110290114 B CN110290114 B CN 110290114B
Authority
CN
China
Prior art keywords
vulnerability
early warning
affected
parameter
names
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
CN201910479345.2A
Other languages
English (en)
Other versions
CN110290114A (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 CN201910479345.2A priority Critical patent/CN110290114B/zh
Publication of CN110290114A publication Critical patent/CN110290114A/zh
Application granted granted Critical
Publication of CN110290114B publication Critical patent/CN110290114B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • 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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

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

Abstract

本发明公开了一种基于预警信息的漏洞自动化防护方法及系统,以Web应用正常行为的调用分析和实时调用拦截作为解决问题的突破口,以漏洞预警公告作为出发点:通过正常行为调用分析确定漏洞的影响范围,避免影响其他业务的运转;通过实时调用拦截对可能存在攻击行为的函数调用进行参数检查,通过参数记录来判定异常行为;通过爬取安全网站的漏洞预警公告,从中提取出关键缺陷信息,准确定位漏洞影响文件与函数并自动进行漏洞响应和自动防护。本发明能够根据漏洞预警信息自动对Web应用的漏洞实施应急响应措施,以较低的性能损耗及时阻止漏洞攻击,解决了人工进行漏洞响应速度慢、存在漏报误报的问题,并且能够应对未知攻击,具备一定的可用性。

Description

一种基于预警信息的漏洞自动化防护方法及系统
技术领域
本发明涉及计算机网络安全技术领域,具体涉及一种基于预警信息的漏洞自动化防护方法及系统。
背景技术
随着互联网的迅猛发展,Web应用在各行各业中发挥着越来越重要的作用。然而,网络安全事件层出不穷,针对各类网站的攻击愈演愈烈。虽然各大安全厂商推出了相应的防护系统,但这些防护系统对于未知的漏洞利用攻击几乎没有防护能力,在漏洞预警后依然能看到很多企业和政府单位受到漏洞波及。同时,从漏洞披露到补丁发布,再到系统完全修复漏洞有一定的周期,时间从数天到数月不等。安全漏洞是不可避免的,每天都会有新的漏洞被披露,每天都会有漏洞预警公告。一般情况下只能依赖于安全工程师的人工分析,将漏洞攻击的特征抽象为规则应用到防火墙中,而临时的规则可能与实际业务产生冲突。
现有的研究中对漏洞预警和漏洞公告的处理都是交由运维部门人工分析,再由安全工程师针对漏洞制定相应的防护策略,应急响应的研究主要集中在系统已经发生了实际的入侵事件,而这一过程往往存在滞后性,导致攻击者先于安全工程师加固系统之前进行漏洞利用。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的漏洞响应方式根据场景的不同可以分为如下三种:1、漏洞和补丁均已公布:可以直接给系统打补丁,不需要更改防火墙配置,但是无法在第一时间做出响应;2、漏洞公布、补丁未知:这种情况一般由安全工程师进行人工分析,将漏洞攻击的特征抽象为规则应用到防火墙中,而临时的规则可能与实际业务产生冲突,并且响应速度慢;3、漏洞未知:目前防范未知漏洞攻击一般采用对系统进行大规模监测的方法,及时发现异常攻击行为并阻断,但这种方式对系统性能损耗太大,存在漏报和误报,实用性不高。
由此可知,现有技术中的方法主要存在响应速度慢和性能损耗大的技术问题。
发明内容
有鉴于此,本发明提供了一种基于预警信息的漏洞自动化防护方法及系统,用以解决或者至少部分解决现有技术中的方法存在响应速度慢、性能损耗大的技术问题。
为了解决上述技术问题,本发明第一方面提供了一种基于预警信息的漏洞自动化防护方法,包括:
遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名、受影响的Web应用名称以及版本号;
根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;
根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查;
当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,得到判定结果;
根据判定结果确定是否进行自动防护。
在一种实施方式中,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,包括:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
在一种实施方式中,所述方法还包括:
根据受影响的URL请求生成对应的转发规则;
并根据对应的转发规则对受影响的URL请求进行分类和转发。
在一种实施方式中,根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查,包括:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截。
在一种实施方式中,根据判定结果确定是否进行自动防护,包括:
如果判定结果为异常请求,则阻止函数调用,并提取该URL请求的关键信息,进行报警。
基于同样的发明构思,本发明第二方面提供了一种基于预警信息的漏洞自动化防护系统,包括:
爬虫模块,用于遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名、受影响的Web应用名称以及版本号;
调用关系分析模块,用于受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;
参数检查扩展模块,用于根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查,以及根据判定结果确定是否进行自动防护;
异常判定模块,用于当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,得到判定结果。
在一种实施方式中,异常判定模块具体用于:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
在一种实施方式中,所述系统还包括负载均衡模块,用于:在爬虫模块根据受影响的URL请求生成对应的转发规则后,
根据对应的转发规则对受影响的URL请求进行分类和转发。
在一种实施方式中,参数检查扩展模块,具体用于:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截,且在调用执行之前将函数名和具体参数发给异常判定模块。
在一种实施方式中,参数检查扩展模块还用于:
如果判定结果为异常请求,则阻止函数调用,并提取该URL请求的关键信息。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于预警信息的漏洞自动化防护方法,通过遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息;根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;然后根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查;当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名判断受影响的URL请求是否为异常请求,得到判定结果;再根据判定结果确定是否进行自动防护。
由于本发明提供的自动化防护方法可以从预警通告中提取出关键信息,并进行自动防护,本发明定时获取各个安全网站的漏洞预警信息,根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截,从而能够通过对缺陷文件调用的实时拦截,在发生漏洞预警后对缺陷类函数的调用及时进行拦截和检查,避免漏洞被利用攻击。并且进一步判断受影响的URL请求是否为存在异常,进而进行自动防护,无需人工干预以及修改防火墙配置,提高了响应的速度。
进一步地,可以根据提取的关键信息的内容,确定采用哪种异常判定方法,从而可以适应不同的情况,提高了方法的通用性。
进一步地,根据受影响的URL请求生成对应的转发规则,并根据对应的转发规则对受影响的URL请求进行分类和转发,即采用基于反向代理的负载均衡,将受影响的URL请求转发到自动防护系统的服务器节点上,从而降低了性能损耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中基于预警信息的漏洞自动化防护方法的流程图;
图2为本发明实施例中基于预警信息的漏洞自动化防护系统的结构框图;
图3为一种具体示例中基于预警信息的漏洞自动化防护系统的架构图。
具体实施方式
本发明的目的在于针对现有技术中的方法存在响应速度慢的技术问题,提供一种基于预警信息的漏洞自动化防护方法,从而达到迅速响应漏洞预警,对Web应用进行自动化防护的技术效果。
为达到上述技术效果,本发明的主要构思如下:
以Web应用正常行为的调用分析和实时调用拦截作为解决问题的突破口,以漏洞预警公告作为出发点:通过正常行为调用分析确定漏洞的影响范围,避免影响其他业务的运转;通过实时调用拦截对可能存在攻击行为的函数调用进行参数检查,通过参数记录来判定异常行为;通过爬虫定期爬取各大安全网站的漏洞预警公告,从中提取出关键缺陷信息,准确定位漏洞影响文件与函数并自动进行漏洞响应。
本发明能够根据漏洞预警信息自动对Web应用的漏洞实施应急响应措施,以较低的性能损耗及时阻止漏洞攻击,解决了人工进行漏洞响应速度慢、存在漏报误报的问题,并且能够应对未知攻击,具备一定的可用性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
以PHP Web应用作为防护对象为例,本发明实施例提供了一种基于预警信息的漏洞自动化防护方法,请参见图1,该方法包括:
步骤S1:遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名。
具体来说,预设安全公告页面可以是各大安全网站,例如国家信息安全漏洞库的漏洞预警页面、安全客的资讯页面、CNVD的安全公告页面和cxsecurity网站的相关产品漏洞页面等等。提取出的关键信息是与漏洞相关的信息,还包括受影响的PHP应用名称以及版本号。
步骤S2:根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截。
具体来说,步骤S2用于判断是否进行漏洞响应,可以根据受影响的PHP应用名称及版本号来决定的。具体为:首先需要根据Web应用名称以及版本号确定当前应用是否受到影响,再根据存在缺陷的文件名和函数名确定受影响的URL请求。漏洞响应的含义是:预警公告中发布了新的漏洞预警,当前Web应用受到影响,就要采取防范措施,所有与漏洞文件相关的请求都需要进行检查,因为与漏洞文件相关的请求并不一定都是攻击请求,正常用户的请求直接放行,黑客攻击请求则要拦截。
举例来说,现在漏洞预警中提示“ThinkPHP 3.2.4之前版本中(使用在OpenSource BMS v1.1.1版本和其他设备上)中存在命令执行漏洞,远程攻击者可借助public//?s=index/hinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=URL利用该漏洞执行命令。”,如果本发明防护的网站就是用ThinkPHP来建站的,并且版本为3.2.4,受到漏洞影响,那么就需要进行漏洞响应,如果使用别的建站系统比如PHPCMS、或者虽然用ThinkPHP,但是版本号为3.2.5(即不在漏洞影响范围内),这些情况下就不需要进行漏洞响应,因为没有受到影响。另外,考虑到不少Web应用是基于某一开源系统进行开发的,例如ThinkCMF、EyouCms等是基于ThinkPHP进行开发的,ThinkPHP存在的漏洞在ThinkCMF、EyouCms上同样很有可能存在,本发明在针对ThinkCMF这类应用进行防护时,除了关注漏洞公告中关于ThinkCMF的确切漏洞外,还会对ThinkPHP的漏洞同样保持关注,发生漏洞预警后都进行响应,从而减少漏报并提高Web应用的安全性。
进一步,假如需要进行漏洞响应,那么所有涉及到public//?s=index/hinkapp/invokefunction的请求都需要发往部署有自动防护系统的服务器节点做检查,这些请求中普通用户虽然也访问了public//?s=index/hinkapp/invokefunction,但是没有做攻击行为,所以可以判定为正常请求,而恶意用户利用了命令执行漏洞做攻击,检查出来后就需要拦截。
在本实施方式中,可以对PHP Web应用进行漏洞响应,在其他实施方式中也可以对其他类型的Web应用进行漏洞响应,在此不做具体限定。
步骤S3:根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查。
具体来说,预先配置的策略可以根据实际情况进行设置。
在一种实施方式中,根据预先配置的策略决定直接对有缺陷的PHP文件名对应的文件调用进行拦截还是对参数进行检查,包括:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截。
通过本发明的方法能够完成对PHP任意方法调用的实时拦截,对爬虫模块传递的文件名或函数名进行调用拦截,直接阻止调用或者根据构建的正常行为规范模型,对可能产生攻击的请求进行严格检查。并且能够以较低的性能损耗来应对未知攻击,无需对Web服务器做大规模检测,能够依据漏洞预警信息快速准确地定位漏洞,从而进行针对性的监测与拦截,降低性能损耗。
步骤S4:当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名,判断受影响的URL请求是否为异常请求,得到判定结果。
具体来说,步骤S4根据当前的漏洞信息和函数来选取不同的判定策略,从而判定受影响的URL请求是否为异常请求。
在一种实施方式中,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断所有受影响URL请求是否为异常请求,包括:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
具体来说,在Web应用正常运行阶段,防护系统能自动完成调用关系分析工作,同时根据Web应用的行为记录构建正常行为规范模型,完成函数调用的合法参数判定依据,为不同类型的函数设置不同的合法参数规则。本发明可以根据情况采取不同的判定策略。
第一种,当提取的关键信息的内容包括漏洞类型、漏洞名称时,则可以将其与预先构建的漏洞数据库进行匹配,从而确定是否需要进行响应。
第二种,当提取的关键信息的内容没有指明具体的漏洞类型时,则通过预先构建的正常行为规范模型来进行判定。
第三种,可以结合第一种和第二种两种方式进行判定。
具体来说,第一种方式根据漏洞预警信息采用提前设置的针对固定类型漏洞的通用检查策略。漏洞数据库可以包含与漏洞对应的名称或特征。可以针对不同类型的漏洞,通用检查策略的检查内容不同,因此需要运维人员对不同类型的漏洞攻击都维护一个关键词黑名单。当发生漏洞预警需要检查时,则检查参数中是否出现一次或多次黑名单中的关键词。举例来说,如果漏洞预警信息通知是SQL注入漏洞,则检查是否存在SQL命令或者明显的SQL注入特征,比如“concat”、“updatexml”、“--”等。如果漏洞预警信息通知是远程命令执行漏洞,则检查参数中是否存在“eval”、“system”、“ls”、“cat”或者其他远程命令执行特征。
第二种方式,将函数的执行和参数活动范围与正常行为规范模型进行比对,计算参数之间的差异性。差异性的阈值需要人工进行设置,如果差异性大于阈值,则可能存在攻击行为。如果符合正常行为规范模型的预期,则可以放行。
其中,正常行为规范模型可以对行为日志进行分析,理清各个PHP文件、类和函数之间的调用关系后构建。此外,还可以根据不同请求的参数对数据集进行丰富,以供后续是否进行防护响应时用。在系统正常运行阶段,防护系统能自动完成调用关系分析工作,同时根据Web应用的行为记录构建正常行为规范模型,完成函数调用的合法参数判定依据,为不同类型的函数设置不同的合法参数规则。
也就是说,若漏洞预警明确给出了存在缺陷的文件名或函数名以及漏洞类型,可以直接依据第1种策略来判断;反之,若漏洞预警信息中只给出了存在缺陷的文件名或者函数名,漏洞细节与漏洞类型均不清楚,则通过第2种策略(正常行为规范模型预期检查)来判断攻击行为。
在服务器性能允许的情况下,可以结合第一种和第二种方式,即通用检查策略和正常行为规范模型预期检查策略可以同时实行,从而提高PHP Web应用的安全性。
步骤S5:根据判定结果确定是否进行自动防护。
在一种实施方式中,步骤S5可以通过下述方式来实现包括:
如果判定结果为异常请求,则阻止函数调用,并提取该URL请求的关键信息。
具体来说,当提取出关键信息后,还可以通过报警模块通知运维人员。
在一种实施方式中,所述方法还包括:
根据受影响的URL请求生成对应的转发规则;
并根据对应的转发规则对受影响的URL请求进行分类和转发。
具体来说,本发明通过上述方式可以实现负载均衡和URL规则转发。自动防护系统部署在服务器集群的某个节点上,能够自动从调用链分析中找到受影响的URL,并且提炼为转发规则,让负载均衡调度器将所有受影响的URL请求都转发到部署了自动防护系统的服务器节点上,其它请求则转发到正常服务器节点上,只有受影响的URL请求响应速度变慢,从而降低系统性能损耗,且不会对正常用户体验造成影响。
总体来说,本发明提供的方法具有以下显著效果:
1.能够基于预警信息迅速定位受影响的文件与函数,自动进行漏洞响应;
2.能够以较低的性能损耗防御未知攻击,高效准确拦截攻击行为,误报率低(实际测试中仅个别漏洞存在低于4%的误报率);
3.发生漏洞预警第一时间短信通知运维人员;
4.漏洞自动防护系统可以实现扩充,进一步兼容JAVA、Python、ASP.NET等Web应用。
基于同样的发明构思,本发明还提供了一种与实施例一中基于预警信息的漏洞自动化防护方法对应的系统,具体参见实施例二。
实施例二
以PHP Web应用作为防护对象为例,本发明实施例提供了一种基于预警信息的漏洞自动化防护系统,该系统包括:
爬虫模块201,用于遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名;
调用关系分析模块202,用于根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;
参数检查扩展模块203,用于根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查,以及根据判定结果确定是否进行自动防护;
异常判定模块204,用于当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,得到判定结果。
具体来说,还可以包括报警模块205,即本发明提供的基于预警信息的漏洞自动化防护系统包括爬虫模块、负载均衡模块、参数检查扩展模块、调用关系分析模块、异常判定模块和报警模块。在不同的情况下,自动化防护系统内各个模块的工作内容不同。在“爬虫模块”没有发现漏洞预警的时候,自动防护系统的工作重点在于分析PHP Web应用的行为日志。
其中,异常判定模块具体用于:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
具体来说,正常行为规范模型由调用关系分析模块构建,在正常情况下系统执行下述操作
1)负载均衡模块随机将URL请求转交给普通服务器节点和部署自动防护系统的服务器节点处理;
2)搭载自动防护系统的服务器节点在响应正常请求后,生成详细的PHP调用行为日志;
3)调用关系分析模块对行为日志进行分析,理清各个PHP文件、类和函数之间的调用关系,构建正常行为规范模型,并根据不同请求的参数对数据集进行丰富,以供异常判定模块判定行为时调用。
本发明的系统能够完成对PHP任意方法调用的实时拦截,对爬虫模块传递的文件名或函数名进行调用拦截,直接阻止调用或者根据构建的正常行为规范模型,对可能产生攻击的请求进行严格检查。并且够以较低的性能损耗来应对未知攻击,无需对Web服务器做大规模检测,能够依据漏洞预警信息快速准确地定位漏洞,从而进行针对性的监测与拦截,降低性能损耗。
在一种实施方式中,所述系统还包括负载均衡模块,用于:在爬虫模块根据受影响的URL请求生成对应的转发规则后,
根据对应的转发规则对受影响的URL请求进行分类和转发。
具体来说,如图3所示,当爬虫模块发现漏洞预警后,会从预警通告中提取存在缺陷的PHP文件名和函数名,发送给调用关系分析模块,由调用关系分析模块根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名找出所有受影响的URL请求,返回给“爬虫模块”,同时将存在缺陷的PHP文件名发给“参数检查扩展模块”,通知其对敏感函数进行拦截。另一方面发送消息通知普通服务器节点对缺陷PHP文件的所有调用进行拦截,然后“爬虫模块”将这些受影响的URL请求生成对应的转发规则,将这些规则发给“负载均衡模块”;“负载均衡模块”应用规则对URL请求进行分类和转发,负责将所有受影响的URL请求都交给部署了自动防护系统的服务器节点处理。
其中,参数检查扩展模块,具体用于:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截,且在调用执行之前将函数名和具体参数发给异常判定模块。
具体来说,参数检查扩展模块在接收到存在缺陷的PHP文件名后,根据预先配置的策略决定直接对文件调用进行拦截还是对参数进行检查。如果是直接拦截,则在处理到相关调用时直接将页面跳转到某个情况说明页面;如果要进行参数检查,则对相关PHP敏感函数进行拦截,在调用执行之前将函数名和具体参数发给异常判定模块。
异常判定模块在接收到函数名和具体参数后,可以根据当前预警的漏洞信息和函数的位置决定不同的判定策略,也可以根据“调用关系分析模块”构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平。最后将判定结果返回给参数检查扩展模块,由参数检查扩展模块根据判定结果决定当前缺陷函数的执行与否。如果发现异常行为,则阻止函数调用,提取该URL请求的关键信息,通过报警模块通知运维人员。
本发明所提供的基于预警信息的漏洞自动化防护系统,目前针对PHP Web应用,远期可以兼容ASP.NET、JAVA等应用。本系统可以根据漏洞预警信息第一时间对PHP Web应用进行自动化应急响应,阻止漏洞利用攻击。
在本发明中提供的漏洞自动化防护系统具有以下两个显著特点。第一,系统会定时爬取各大安全网站上的漏洞预警信息,从中提取出受影响的文件、函数的关键信息,并能够以较低的性能损耗在第一时间自动进行漏洞响应,无需人工干预以及修改防火墙配置。第二,能够通过对PHP调用的实时拦截,在发生漏洞预警后对缺陷类函数的调用及时进行拦截和检查,避免漏洞被利用攻击。
总而言之,本发明所设计的漏洞自动化防护系统具有以下优点:能够定时从各大安全网站上爬取漏洞预警信息,快速自动定位漏洞影响文件与函数,缩小检查范围,实现精准漏洞防护;采用基于反向代理的负载均衡,将受影响的URL请求转发到自动防护系统的服务器节点上,从而降低了性能损耗;能够基于预警信息自动进行漏洞响应,无需人工干预,快速高效。
下面通过一个具体示例,对本发明提供的基于预警信息的漏洞自动化防护系统的具体应用进行介绍。
本示例中选择PHPCMS的CNVD-2017-04180任意文件上传漏洞作为自动防护系统的应急响应流程演示,因为该漏洞的预警公告提供的信息比较精细,影响范围不大,可以通过异常判定模块调用正常行为规范模型进行恶意判定,而其它漏洞由于涉及多个URL或者缺陷文件属于冗余模块等情况,可使用直接拦截的手段阻止漏洞利用攻击。
修改相应的配置后,运行爬虫模块,爬虫可以在CNVD的安全公告页面遍历到PHPCMS的漏洞,标题为“关于PHPCMS V9.6WAP模块存在任意文件上传漏洞的安全公告”。通过名称匹配和版本号匹配,确定当前运行的PHP Web应用会受到该漏洞影响,于是提取HTML中“a”标签的“href”的值,读取公告的正文,通过正则匹配,可以匹配到缺陷文件名“/phpcms/libs/classes/attachment.class.php”。由于CNVD网站使用了反爬虫措施,在第一次访问网站时会返回一段混淆的需要计算的JavaScript脚本,由浏览器计算后发送指定“Cookie”才能正常访问页面。因此,爬虫模块的Python脚本使用WebDriver模块,调用浏览器对网页内容进行获取和解析。经过计时,爬虫模块获取缺陷文件名需要31.8秒。
爬虫模块将缺陷文件名“/phpcms/libs/classes/attachment.class.php”通过socket传递给调用关系分析模块。调用关系分析模块在图形数据库Neo4j中根据缺陷文件名找到受影响的URL,
为“/phpcms/index.php?m=member&c=index&a=register&siteid=1”。调用关系分析模块通知其它普通服务器节点进行拦截代码植入,对缺陷文件“/phpcms/libs/classes/attachment.class.php”插入PHP扩展所提供的全局拦截函数,同时将自动防护系统从行为分析模式切换为异常判定模式,部署在自动防护系统节点上的PHP扩展对所有敏感函数进行拦截检查。最后调用关系分析模块将受影响的URL信息返回给爬虫模块。经过计时,该部分操作耗时4.2秒。
爬虫模块收到受影响的URL后,对Nginx的配置文件进行修改:先找到负载均衡的配置处,将部署自动防护系统的节点地址后面的“weight=1”改为“down”,这样不受影响的URL请求就不会由部署了自动防护系统的节点处理。接着在“server”的代码块内插入如下代码。
location/phpcms/index\.php{
if($request~"m=member&c=index&a=register&siteid=1"){
proxy_pass http://192.168.48.128;
break;}
}
之后再执行命令“nginx-s reload”就能够使配置生效。通过这种方式更新配置比直接重启的优势在于Nginx不会停止对请求的响应。经过计时,该部分操作耗时0.05秒。至此,针对预警信息的自动化漏洞防护系统已经完成了对该漏洞的应急响应措施,总共耗时36.05秒。
当攻击者发起漏洞利用攻击时,攻击脚本会通过“/phpcms/index.php?m=member&c=index&a=register&siteid=1”构造了一个畸形的数据请求。该攻击会调用敏感函数“copy”,将指定的文件复制到专门的上传目录。由于过滤函数的缺陷,导致后缀名为“.php”的文件也能被复制到上传目录,并且会返回文件地址,导致攻击者能够利用该漏洞上传后门和木马。在自动防护系统所构建的正常行为规范模型中,正常行为中“/phpcms/index.php?m=member&c=index&a=register&siteid=1”这个URL所对应的敏感函数操作只有“fwrite”,而且执行环境位于“client.class.php”而不是缺陷文件“attachment.class.php”,因此正常行为规范模型能够识别该攻击。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种基于预警信息的漏洞自动化防护方法,其特征在于,包括:
遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名、受影响的Web应用名称以及版本号;
根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;
根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查;
当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,得到判定结果;
根据判定结果确定是否进行自动防护;
其中,当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,包括:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据受影响的URL请求生成对应的转发规则;
并根据对应的转发规则对受影响的URL请求进行分类和转发。
3.如权利要求1所述的方法,其特征在于,根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查,包括:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截。
4.如权利要求1所述的方法,其特征在于,根据判定结果确定是否进行自动防护,包括:
如果判定结果为异常请求,则阻止函数调用,并提取该URL请求的关键信息,进行报警。
5.一种基于预警信息的漏洞自动化防护系统,其特征在于,包括:
爬虫模块,用于遍历预设安全公告页面,当发现漏洞预警后,从预警通告中提取出关键信息,其中,提取出关键信息包括漏洞类型、漏洞名称、存在缺陷的文件名、函数名、受影响的Web应用名称以及版本号;
调用关系分析模块,用于根据受影响的Web应用名称以及版本号、存在缺陷的文件名和函数名,找出所有受影响的URL请求,并发送消息通知普通服务器节点对缺陷文件的所有调用进行拦截;
参数检查扩展模块,用于根据预先配置的策略决定直接对有缺陷的文件名对应的文件调用进行拦截还是对参数进行检查,以及根据判定结果确定是否进行自动防护;
异常判定模块,用于当进行参数检查时,根据漏洞类型、漏洞名称、存在缺陷的文件名、函数名,判断受影响的URL请求是否为异常请求,得到判定结果;
其中,异常判定模块具体用于:
预先构建漏洞数据库,针对不同类型的漏洞攻击维护不同的关键词黑名单,根据需要检查的请求参数中是否含有黑名单关键词来判定是否为异常请求;和/或
通过构建的正常行为规范模型,检查函数的执行和参数活动范围是否处于正常水平,如果不处于正常范围,则判定为异常请求,其中,正常行为规范模型通过对正常情况下的行为日志进行分析后构建。
6.如权利要求5所述的系统,其特征在于,所述系统还包括负载均衡模块,用于:在爬虫模块根据受影响的URL请求生成对应的转发规则后,
根据对应的转发规则对受影响的URL请求进行分类和转发。
7.如权利要求5所述的系统,其特征在于,参数检查扩展模块,具体用于:
如果是直接拦截,则在处理到相关文件调用时直接将页面跳转至情况说明页面;如果要进行参数检查,则对相关敏感函数进行拦截,且在调用执行之前将函数名和具体参数发给异常判定模块进行判定。
8.如权利要求5所述的系统,其特征在于,参数检查扩展模块还用于:
如果判定结果为异常请求,则阻止函数调用,并提取该URL请求的关键信息。
CN201910479345.2A 2019-06-04 2019-06-04 一种基于预警信息的漏洞自动化防护方法及系统 Active CN110290114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910479345.2A CN110290114B (zh) 2019-06-04 2019-06-04 一种基于预警信息的漏洞自动化防护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910479345.2A CN110290114B (zh) 2019-06-04 2019-06-04 一种基于预警信息的漏洞自动化防护方法及系统

Publications (2)

Publication Number Publication Date
CN110290114A CN110290114A (zh) 2019-09-27
CN110290114B true CN110290114B (zh) 2020-09-08

Family

ID=68003180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910479345.2A Active CN110290114B (zh) 2019-06-04 2019-06-04 一种基于预警信息的漏洞自动化防护方法及系统

Country Status (1)

Country Link
CN (1) CN110290114B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027075A (zh) * 2019-12-06 2020-04-17 吉林亿联银行股份有限公司 一种漏洞防护方法、装置及电子设备
CN111163097B (zh) * 2019-12-31 2022-03-22 新浪网技术(中国)有限公司 一种Web应用防火墙的实现系统及方法
CN112468360A (zh) * 2020-11-13 2021-03-09 北京安信天行科技有限公司 一种基于指纹的资产发现识别和检测方法及系统
CN112817611B (zh) * 2021-01-29 2023-08-29 深圳忆联信息系统有限公司 系统测试异常环境的拦截方法、装置、计算机设备及存储介质
CN114448721B (zh) * 2022-03-11 2023-06-13 全球能源互联网研究院有限公司南京分公司 一种漏洞无感缓解装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855320A (zh) * 2012-09-04 2013-01-02 珠海市君天电子科技有限公司 一种利用搜索引擎对关键词相关url的收集方法和装置
CN106982194A (zh) * 2016-01-19 2017-07-25 中国移动通信集团河北有限公司 漏洞扫描方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442412B (zh) * 2008-12-18 2011-04-06 西安交通大学 一种基于软件缺陷及网络攻击关系挖掘的攻击预警方法
CN102468985B (zh) * 2010-11-01 2016-03-23 北京神州绿盟信息安全科技股份有限公司 针对网络安全设备进行渗透测试的方法和系统
CN103390129B (zh) * 2012-05-08 2015-12-16 腾讯科技(深圳)有限公司 检测统一资源定位符安全性的方法和装置
CN102945351B (zh) * 2012-11-05 2015-10-28 中国科学院软件研究所 云环境下基于二维码的移动智能终端安全漏洞修复方法
CN104363236A (zh) * 2014-11-21 2015-02-18 西安邮电大学 一种自动化漏洞验证的方法
CN106302350B (zh) * 2015-06-01 2019-09-03 阿里巴巴集团控股有限公司 Url监测方法、装置及设备
CN107798051A (zh) * 2016-08-31 2018-03-13 安提特软件有限责任公司 文件对象模型事务爬行器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855320A (zh) * 2012-09-04 2013-01-02 珠海市君天电子科技有限公司 一种利用搜索引擎对关键词相关url的收集方法和装置
CN106982194A (zh) * 2016-01-19 2017-07-25 中国移动通信集团河北有限公司 漏洞扫描方法及装置

Also Published As

Publication number Publication date
CN110290114A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110290114B (zh) 一种基于预警信息的漏洞自动化防护方法及系统
US10637880B1 (en) Classifying sets of malicious indicators for detecting command and control communications associated with malware
KR101547999B1 (ko) 악성링크 자동 탐지 장치 및 방법
RU2622870C2 (ru) Система и способ оценки опасности веб-сайтов
US7865953B1 (en) Methods and arrangement for active malicious web pages discovery
US10652274B2 (en) Identifying and responding to security incidents based on preemptive forensics
US9838419B1 (en) Detection and remediation of watering hole attacks directed against an enterprise
CN111404909A (zh) 一种基于日志分析的安全检测系统及方法
CN102332071B (zh) 发现疑似恶意信息、追踪恶意文件的方法及装置
US10505986B1 (en) Sensor based rules for responding to malicious activity
US20110219454A1 (en) Methods of identifying activex control distribution site, detecting security vulnerability in activex control and immunizing the same
KR20060117693A (ko) 웹 보안방법 및 그 장치
Uemura et al. Availability analysis of an intrusion tolerant distributed server system with preventive maintenance
CN112003838A (zh) 网络威胁的检测方法、装置、电子装置和存储介质
CN113518077A (zh) 一种恶意网络爬虫检测方法、装置、设备及存储介质
CN111625821A (zh) 一种基于云平台的应用攻击检测系统
CN111611590A (zh) 涉及应用程序的数据安全的方法及装置
KR102396237B1 (ko) 사이버 위협 정보 처리 장치, 사이버 위협 정보 처리 방법 및 사이버 위협 정보 처리하는 프로그램을 저장하는 저장매체
CN114024773B (zh) 一种webshell文件检测方法及系统
CN114285626B (zh) 一种蜜罐攻击链构建方法及蜜罐系统
KR20150064331A (ko) 웹서버 모니터링 및 악성코드 분석 장치
KR101464736B1 (ko) 정보보호 관리 시스템 및 이를 통한 홈페이지 위변조 탐지 방법
CN102801740A (zh) 木马病毒的阻止方法及装置
Anbalagan A study of software security problem disclosure, correction and patching processes
KR100977150B1 (ko) 웹 사이트 점검 방법 및 그 시스템

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