Web漏洞扫描行为的检测方法及装置的制造方法

文档序号:10515498阅读:250来源:国知局
Web漏洞扫描行为的检测方法及装置的制造方法
【专利摘要】本发明公开了一种Web漏洞扫描行为的检测方法,该方法流程包括:在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码;若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。本发明还提出一种Web漏洞扫描行为的检测装置。本发明提高了漏洞扫描行为判断的精确度,减少了检测Web漏洞扫描行为时的误报与漏报。
【专利说明】
Web漏洞扫描行为的检测方法及装置
技术领域
[0001]本发明涉及网络安全技术领域,尤其涉及一种Web漏洞扫描行为的检测方法及装置。
【背景技术】
[0002]Web漏洞扫描器是常见的Web安全自动化评估工具,可以经过简单的配置,对指定网站或其他Web应用进行自动化漏洞扫描,最后汇总输出漏洞扫描报告,Web漏洞扫描器常见的形式是单机软件、分布式云端扫描器和硬件扫描设备。这类工具操作简单、效果显著,常被黑客用来攻击网站。
[0003]Web扫描器在执行扫描任务的时候,会有若干特征,Web应用防火墙根据这些特征,可以识别不同的扫描器或扫描行为。传统的设备防扫描技术核心,是根据这些特征,提取防火墙规则,由防火墙的规则匹配引擎对每一个TCP连接或HTTP请求进行特征匹配,匹配到相应扫描器或扫描行为的特征之后就针对该TCP连接或HTTP请求采取防护措施:拦截、记录日志或放行。
[0004]在现有的防扫描技术框架下,虽然仅防网络扫描这一类规则就多达几百条,但防护效果仍然不够理想,误报与漏报频出,总体原因如下:
[0005]I )、绝大多数扫描器在漏洞扫描的三个阶段里,或多或少都会有一些自身特有的精心构造的请求,或者特有的测试例,这些精心构造的测试例,也可以作为识别扫描器的特征,对这些特征进行识别,以防止漏洞扫描;但是,部分特有请求或测试例需要触发条件。扫描器能够有选择地发送漏洞测试例,并不是所有的特有请求或测试例都能出现,只有在触发了特定的条件之后才会发送特定的测试例,则在没有触发特定条件的情况下,会导致防火墙规则失效,出现漏报。
[0006]2)、现有的防火墙框架下的基于文本特征的匹配与防护,都是检测一个TCP连接或HTTP请求/响应异常,就只对该TCP连接或HTTP会话采取措施。而一个扫描器会建立大量的TCP连接、发送海量HTTP请求,这样只有部分扫描请求被处理,会漏掉很多扫描请求,那些被漏掉的扫描请求,仍然能扫出不少漏洞,这是现有防扫描机制漏报的重要原因之一。
[0007]3)、一些防火墙规则针对特定文件或信息,例如,服务器配置文件、数据库文件、压缩文件、临时文件、已知其他敏感文件的请求进行监测,而这类规则是防扫描功能的误报重灾区,大量的压缩文件、数据文件或者其他特殊文件,在很多网站上本可以对这些文件或者信息正常访问,但是此类防火墙规则会匹配到这类请求,进而引发误报。
[0008]总之,现有的防扫描技术,根据TCP连接或者HTTP请求的文本特征来进行防护,导致误报与漏报现象严重。

【发明内容】

[0009]本发明提供一种Web漏洞扫描行为的检测方法及装置,其主要目的在于提高漏洞扫描行为判断的精确度,以减少检测Web漏洞扫描行为时的误报与漏报。
[0010]为实现上述目的,本发明提供一种Web漏洞扫描行为的检测方法,该Web漏洞扫描行为的检测方法包括:
[0011 ]在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码;
[0012]若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0013]可选地,所述在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤:
[0014]在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数;
[0015]若所述TCP并发连接数小于预设数目,则执行在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤。
[0016]可选地,所述在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤:
[0017]在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数;
[0018]若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率;
[0019]若所述HTTP请求频率小于所述预设频率,则执行在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤。
[0020]可选地,所述获取所述访问端的TCP并发连接数的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤:
[°021 ]在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段;
[0022]若所述HTTP请求的头部字段为合法字段,则执行获取所述访问端的TCP并发连接数的步骤。
[0023]可选地,所述判断所述访问请求中的HTTP请求的头部字段是否为合法字段的步骤包括:
[0024]提取所述HTTP请求的用户代理UA字段和Ref erer字段;
[0025]判断所述UA字段是否位于黑名单、且所述Referer字段是否合法,其中,当所述UA字段不位于所述黑名单,且所述Ref erer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
[0026]此外,为实现上述目的,本发明还提供一种Web漏洞扫描行为的检测装置,该Web漏洞扫描行为的检测装置包括:
[0027]添加模块,用于在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码;
[0028]判断模块,用于若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述J S代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0029]可选地,所述Web漏洞扫描行为的检测装置还包括:
[0030]第一获取模块,用于在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数;
[0031]所述添加模块,还用于若所述TCP并发连接数小于预设数目,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0032]可选地,所述Web漏洞扫描行为的检测装置还包括:
[0033]第二获取模块,用于在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数;
[0034]以及,若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率;
[0035]所述添加模块,还用于若所述HTTP请求频率小于所述预设频率,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0036]可选地,所述判断模块,还用于在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段;
[0037]所述第二获取模块,还用于若所述HTTP请求的头部字段为合法字段,则获取所述访问端的TCP并发连接数。
[0038]可选地,所述判断模块包括:
[0039]提取单元,用于提取所述HTTP请求的用户代理UA字段和Referer字段;
[0040]判断单元,用于判断所述UA字段是否位于黑名单、且所述Referer字段是否合法,其中,当所述UA字段不位于所述黑名单,且所述Referer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
[0041]本发明提出的Web漏洞扫描行为的检测方法及装置,在对访问端的访问请求进行应答时,在其响应信息的HTML文本中植入一个隐藏链接,和/或在响应信息的HTML文本中插入一段JS代码,上述隐藏链接不会显示在正常的浏览器中,如果用户是正常合法地浏览网站,就不会触发该链接,而且,如果是正常人为用浏览器上网,浏览器都会正常解析服务器返回的JS代码并执行该JS代码,而漏洞扫描器不会对JS代码进行解析,因此,若检测到访问端提取并访问了隐藏链接,和/或没有接收到访问端基于执行所述JS代码所发送的HTTP请求,则判定访问端的访问请求为Web漏洞扫描行为,本发明采用在HTML应答中植入隐藏链接和JS代码的方式,对接收到的访问请求对应的访问端进行主动探测,提高了漏洞扫描行为判断的精确度,进而极大地减少了检测Web漏洞扫描行为时的误报与漏报。
【附图说明】
[0042]图1为本发明Web漏洞扫描行为的检测方法第一实施例的流程图;
[0043]图2为本发明Web漏洞扫描行为的检测方法第二实施例的流程图;
[0044]图3为本发明Web漏洞扫描行为的检测装置第一实施例的功能模块示意图;
[0045]图4为本发明Web漏洞扫描行为的检测装置第二实施例的功能模块示意图。
[0046]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0047]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0048]本发明提供一种Web漏洞扫描行为的检测方法。
[0049]参照图1所示,为本发明Web漏洞扫描行为的检测方法第一实施例的流程图。
[0050]在第一实施例中,该Web漏洞扫描行为的检测方法包括:
[0051 ]步骤SlO,在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0052]可以理解的是,本实施例中提出的Web漏洞扫描行为的检测方法可以基于防火墙实现,所述防火墙可以是设置在Web服务器中的防护系统,也可以是独立设置的、与Web服务器连接的防护设备。
[0053]Web漏洞扫描器在对Web服务器进行漏洞扫描时,一般包含三个阶段:指纹识别、URL(Uniform Resource Locator,统一资源定位符)采集和漏洞探测,指纹识别一般是识另O、收集Web服务器端主机、操作系统的平台与版本,收集Web服务器名称、组件与版本,收集Web服务器程序开发语言、Web框架、中间件、网络库相关的名称与版本等等“指纹类”信息;URL采集通常是通过扫描器内置的爬虫程序实现,爬虫程序搜集网站都有哪些URL,并对URL进行动态URL与静态URL区分、URL去重、参数分析等基础的处理工作;漏洞探测通常是根据前面获取的Web指纹信息、URL库,有针对性地对Web应用漏洞探测。
[0054]访问端向Web服务器发送访问请求以获取相应的信息,防火墙对接收到的来自访问端的访问请求进行处理,以判断该访问请求是否合法,在未确定该访问请求是否合法之前,会对该访问请求进行应答,即会发送响应信息,本实施例的方法在应答阶段,采用主动探测的方式判断该访问请求是否合法,具体地,在响应信息的HTML(Hyper Text MarkupLanguage,超文本标记语言)文本中,即在文本型HTML应答(response)中植入一对隐藏的、在正常浏览器里不会显示出来的标签,标签里面包含一条隐藏的URL,这个隐藏的URL因为不会显示在浏览器中,如果用户是正常合法地浏览网站,就不会触发该链接,而扫描器的爬虫则会从HTML源码中把这条隐藏链接提取出来并对此进行访问、探测,如果访问端没有提取并访问该隐藏链接,说明访问端不是爬虫。
[0055]在其他实施例中,也可以在响应信息的HTML文本中插入一段JS(Javascript)代码,正常人为用浏览器上网,浏览器都可以正常解析服务器返回的JS代码,服务器会收到基于该JS代码发送的HTTP请求;而扫描器不会在扫描时调用JS解析引擎,更不会在漏洞扫描过程中调用内置开源浏览器内核来动态解析服务器返回的JS代码;因此,可以通过判断是否接收到访问端执行JS代码而返回HTTP请求来判断访问端的访问请求是否为Web漏洞扫描行为。
[0056]作为一种实施方式,可以同时在响应信息的HTML文本中插入JS代码以及植入隐藏的URL链接,其中,JS代码和隐藏链接可以是在不同的文本型HTML应答中。
[0057]步骤S20,若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0058]如果检测到访问端提取并访问了隐藏链接,和/或没有接收到访问端返回的HTTP请求,则判定访问端的访问请求为Web漏洞扫描行为,可以进一步地对该访问端采取防护措施,例如,直接封锁该访问端,断掉服务器与该访问端之间的所有网络通信,避免该访问端获知Web服务器的漏洞。
[0059]进一步地,为了进一步减少误报的情况,在未接收到访问端基于执行JS代码所发送的HTTP请求时,重复多次执行在文本型HTML应答中插入JS代码的步骤,其中,执行次数可以由用户设置;如果重复多次,仍然没有接收到执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0060]需要说明的是,上述文本型HTML应答指的是HTTP响应内容是“HTML代码”文本,只有这样的响应内容插入JS代码才能保证执行;如果是JS文件、图片文件、CSS(CascadingStyle Sheets,层叠样式表)文件等响应信息,插入的JS代码不能保证被执行,因此,在插入JS代码时,需要对大量的HTTP响应信息进行筛选,挑选合适的文本型HTML应答。可选地,该JS代码是一段功能简单、兼容绝大部分常见浏览器的简单JS代码,比如向网站发送一个简单的GET请求,但是JS代码里不能显示写出请求的URI(Uniform Resource Identifier,统一资源标识符),可以用JS函数把字符挨个串起来,这样做是防止扫描器中的爬虫程序捕获到JS代码里的URI字符串,使得该段JS代码失去本该有的作用。
[0061]若访问端既没有提取并访问隐藏链接,而且也基于JS代码返回了HTTP请求,则认为该访问端合法,判定访问端的访问请求不是Web漏洞扫描行为,进一步地,放行该访问请求,将其发送至Web服务器。
[0062]需要说明的是,本实施例提出的方法,并不影响其他防扫描措施的使用,例如,为了节省成本,可以在采取本实施例提出的主动探测措施的同时,结合其他方式判断接收到的访问请求是否合法,例如,对HTTP请求的头部字段进行校验,或者,获取访问端的TCP连接并发数进行校验等方式。
[0063]本实施例提出的Web漏洞扫描行为的检测方法,在对访问端的访问请求进行应答时,在其响应信息的HTML文本中植入一个隐藏链接,和/或在响应信息的HTML文本中插入一段JS代码,上述隐藏链接不会显示在正常的浏览器中,如果用户是正常合法地浏览网站,就不会触发该链接,而且,如果是正常人为用浏览器上网,浏览器都会正常解析服务器返回的JS代码并执行该JS代码,而漏洞扫描器不会对JS代码进行解析,因此,若检测到访问端提取并访问了隐藏链接,和/或没有接收到访问端基于执行所述JS代码所发送的HTTP请求,则判定访问端的访问请求为Web漏洞扫描行为,本发明采用在HTML应答中植入隐藏链接和JS代码的方式,对接收到的访问请求对应的访问端进行主动探测,提高了漏洞扫描行为判断的精确度,进而极大地减少了检测Web漏洞扫描行为时的误报与漏报。
[0064]参照图2所示,基于本发明Web漏洞扫描行为的检测方法的第一实施例提出本发明Web漏洞扫描行为的检测方法的第二实施例。在本实施例中,所述方法与第一实施例的区别在于,在步骤SlO之前,该Web漏洞扫描行为的检测方法还包括:
[0065]步骤S30,在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数。
[0066]若所述TCP并发连接数小于预设数目,则执行步骤S10。
[0067]若所述TCP并发连接数大于或于预设数目,则执行步骤S20。
[0068]由于扫描器通常会与目标Web服务器建立大量的、远超出正常人为浏览网站时产生的TCP并发连接,本实施例在上述实施例的基础上,在采用主动探测的措施之前,在接收到访问端的访问请求时,初步判断访问端是否为扫描器,对访问端的TCP并发连接数进行校验,其中,net stat命令即可查看TCP连接情况,Ne tstat是控制台命令,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,包括TCP连接情况。
[0069]为TCP并发连接数设置一个预设数目作为阈值,当TCP并发连接数大于或等于该阈值时,判定访问端的访问请求为Web漏洞扫描行为。若TCP并发连接数小于该阈值,则进一步采用主动探测的方式进行判断。
[0070]扫描器不仅会与目标Web服务器建立大量的、远超出正常人为浏览网站时产生的TCP并发连接,而且会在短时间内发送大量HTTP请求,HTTP请求发送频率远超正常人为浏览网站时对同域URL的访问频率,而且,在漏洞探测阶段,扫描器会对同一个URL发送大量HTTP请求,请求频率远超正常人为浏览网站时对同一 URL的请求频率。
[0071]作为一种实施方式,在步骤S30之后,该方法还包括步骤:
[0072]若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率;
[0073]若所述HTTP请求频率小于所述预设频率,则执行步骤S10。
[0074]对该访问端在预设时间间隔内HTTP请求的发送频率进行校验,若该频率大于用户预先设置的频率,则判定访问端的访问请求为Web漏洞扫描行为,若HTTP请求频率小于预设频率,则进一步采用主动探测的方式进行判断。
[0075]进一步地,在获取所述访问端在预设时间间隔内的HTTP请求频率之后,若所述HTTP请求频率小于所述预设频率,则获取所述访问端对同一个URL资源的HTTP请求发送频率;由于正常情况下,用户在使用浏览器时,不会在短时间内对同一个URL资源发送多次请求,如果获取到访问端对同一个URL资源的HTTP请求发送频率远超正常人为浏览网站时对同一 URL的请求频率,则判定访问端的访问请求为Web漏洞扫描行为;若访问端对同一个URL资源的HTTP请求发送频率小于用户设置的阈值,则进一步采用主动探测的方式进行判断。
[0076]进一步地,为了增强判断的准确性,在获取所述访问端的TCP并发连接数、获取所述访问端在预设时间间隔内的HTTP请求频率,以及获取所述访问端对同一个URL资源的HTTP请求发送频率时,可以进行多次采样,对多次采样的数据进行判断。
[0077]进一步地,在步骤S30之前,对接收到的访问请求进行头部字段的校验,判断其是否合法,具体地,在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段;若所述HTTP请求的头部字段为合法字段,则执行步骤S30,进一步校验,若所述HTTP请求的头部字段不是合法字段,则判定访问端的访问请求为Web漏洞扫描行为。这样,能够根据头部字段的校验过滤掉大部分漏洞扫描,可以减少主动探测的工作量。
[0078]其中,在对HTTP请求的头部字段进行校验时,主要对UA(User Agent,用户代理)字段和Referer字段进行校验,其中,UA字段值通常包括PC端浏览器所在操作系统的平台、浏览器名称、浏览器版本等信息,而扫描器在发送HTTP请求时,一般会有自己默认的UA,该UA值不同于常用浏览器的UA5Referer字段的值通常是一个超链接,当浏览器向Web服务器发送请求的时候,一般会带上Ref erer字段,告诉服务器该请求是从哪个页面链接过来的。
[0079]预先设置UA非法字段黑名单,将不合法的UA字段加入到黑名单中,判断所述UA字段是否位于黑名单。当所述UA字段不位于所述黑名单,且所述Referer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
[0080]关于Ref erer字段是否合法的判断,通过判断HTTP请求中是否有Referer字段或者判断其Referer值是否和所防护的网站同域来实现。
[0081 ]进一步地,为了进一步减少误判,在检测到同一访问端连续多个HTTP请求的头部字段不是合法字段时,针对访问端采取防护措施。
[0082]进一步地,删除或者替换向访问端发送的响应信息中的携带有Web服务器指纹信息的字段。
[0083]由于HTTP的响应头部字段中的一些字段会携带有Web服务器以及后台应用的相关指纹信息,例如X-Powered-By字段和Server字段,而扫描器仅仅根据这些信息就可以判断后台存在哪些漏洞,因此,在响应所述访问端的HTTP请求时,防火墙需要过滤掉所有HTTP响应头部字段中的携带有Web服务器指纹信息的字段,例如,可以直接删除掉这些字段,或者采用其他的一些随机值替换掉这些字段。
[0084]本实施例提出的Web漏洞扫描行为的检测方法,对TCP并发连接数和HTTP请求频率,设置好阈值,可以简单确认访问端是否为爬虫或扫描器,在这个基础上,结合主动探测机制,以及HTTP请求头部字段的校验,能够更加精确地判断访问端是否为扫描器,极大地减少了检测Web漏洞扫描行为时的误报与漏报。
[0085]本发明还提出一种Web漏洞扫描行为的检测装置。
[0086]参照图3所示,为本发明Web漏洞扫描行为的检测装置第一实施例的功能模块示意图。
[0087]在该实施例中,该Web漏洞扫描行为的检测装置包括:
[0088]添加模块10,用于在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0089]可以理解的是,本实施例中提出的Web漏洞扫描行为的检测装置可以基于防火墙实现,所述装置可以是设置有防护系统的Web服务器,也可以是独立设置的、与Web服务器连接的防火墙设备。
[0090]Web漏洞扫描器在对Web服务器进行漏洞扫描时,一般包含三个阶段:指纹识别、URL(Uniform Resource Locator,统一资源定位符)采集和漏洞探测,指纹识别一般是识另O、收集Web服务器端主机、操作系统的平台与版本,收集Web服务器名称、组件与版本,收集Web服务器程序开发语言、Web框架、中间件、网络库相关的名称与版本等等“指纹类”信息;URL采集通常是通过扫描器内置的爬虫程序实现,爬虫程序搜集网站都有哪些URL,并对URL进行动态URL与静态URL区分、URL去重、参数分析等基础的处理工作;漏洞探测通常是根据前面获取的Web指纹信息、URL库,有针对性地对Web应用漏洞探测。
[0091]访问端向Web服务器发送访问请求以获取相应的信息,防火墙对接收到的来自访问端的访问请求进行处理,以判断该访问请求是否合法,在未确定该访问请求是否合法之前,会对该访问请求进行应答,即会发送响应信息,本实施例在应答阶段,采用主动探测的方式判断该访问请求是否合法,具体地,添加模块1在响应信息的HTML (Hyper TextMarkup Language,超文本标记语言)文本中,即在文本型HTML应答(response)中植入一对隐藏的、在正常浏览器里不会显示出来的标签,标签里面包含一条隐藏的URL,这个隐藏的URL因为不会显示在浏览器中,如果用户是正常合法地浏览网站,就不会触发该链接,而扫描器的爬虫则会从HTML源码中把这条隐藏链接提取出来并对此进行访问、探测,如果访问端没有提取并访问该隐藏链接,说明访问端不是爬虫。
[0092]在其他实施例中,添加模块10也可以在响应信息的HTML文本中插入一段JS(Javascript)代码,正常人为用浏览器上网,浏览器都可以正常解析服务器返回的JS代码,服务器会收到基于该JS代码发送的HTTP请求;而扫描器不会在扫描时调用JS解析引擎,更不会在漏洞扫描过程中调用内置开源浏览器内核来动态解析服务器返回的JS代码;因此,可以通过判断是否接收到访问端执行JS代码而返回HTTP请求来判断访问端的访问请求是否为Web漏洞扫描行为。
[0093]作为一种实施方式,添加模块10可以同时在响应信息的HTML文本中插入JS代码以及植入隐藏的URL链接,其中,JS代码和隐藏链接可以是在不同的文本型HTML应答中。
[0094]判断模块20,用于若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0095]如果检测到访问端提取并访问了隐藏链接,和/或没有接收到访问端返回的HTTP请求,贝1J判断模块20判定访问端的访问请求为Web漏洞扫描行为,可以进一步地对该访问端采取防护措施,例如,直接封锁该访问端,断掉服务器与该访问端之间的所有网络通信,避免该访问端获知Web服务器的漏洞。
[0096]进一步地,为了进一步减少误报的情况,在未接收到访问端基于执行JS代码所发送的HTTP请求时,添加模块10重复多次执行在文本型HTML应答中插入JS代码,其中,执行次数可以由用户设置;如果重复多次,仍然没有接收到执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。
[0097]需要说明的是,上述文本型HTML应答指的是HTTP响应内容是“HTML代码”文本,只有这样的响应内容插入JS代码才能保证执行;如果是JS文件、图片文件、CSS(CascadingStyle Sheets,层叠样式表)文件等响应信息,插入的JS代码不能保证被执行,因此,添加模块10在插入JS代码时,需要对大量的HTTP响应信息进行筛选,挑选合适的文本型HTML应答。可选地,该JS代码是一段功能简单、兼容绝大部分常见浏览器的简单JS代码,比如向网站发送一个简单的GET请求,但是JS代码里不能显示写出请求的URI (Uniform ResourceIdentifier,统一资源标识符),可以用JS函数把字符挨个串起来,这样做是防止扫描器中的爬虫程序捕获到JS代码里的URI字符串,使得该段JS代码失去本该有的作用。
[0098]若访问端既没有提取并访问隐藏链接,而且也基于JS代码返回了HTTP请求,则认为该访问端合法,判定访问端的访问请求不是Web漏洞扫描行为,进一步地,放行该访问请求,将其发送至Web服务器。
[0099]需要说明的是,本实施例提出的装置,并不影响其他防扫描措施的使用,例如,为了节省成本,可以在采取本实施例提出的主动探测措施的同时,结合其他方式判断接收到的访问请求是否合法,例如,对HTTP请求的头部字段进行校验,或者,获取访问端的TCP连接并发数进行校验等方式。
[0100]本实施例提出的Web漏洞扫描行为的检测装置,在对访问端的访问请求进行应答时,在其响应信息的HTML文本中植入一个隐藏链接,和/或在响应信息的HTML文本中插入一段JS代码,上述隐藏链接不会显示在正常的浏览器中,如果用户是正常合法地浏览网站,就不会触发该链接,而且,如果是正常人为用浏览器上网,浏览器都会正常解析服务器返回的JS代码并执行该JS代码,而漏洞扫描器不会对JS代码进行解析,因此,若检测到访问端提取并访问了隐藏链接,和/或没有接收到访问端基于执行所述JS代码所发送的HTTP请求,则判定访问端的访问请求为Web漏洞扫描行为,本发明采用在HTML应答中植入隐藏链接和JS代码的方式,对接收到的访问请求对应的访问端进行主动探测,提高了漏洞扫描行为判断的精确度,进而极大地减少了检测Web漏洞扫描行为时的误报与漏报。
[0101]参照图4所示,基于本发明Web漏洞扫描行为的检测装置的第一实施例提出本发明Web漏洞扫描行为的检测装置的第二实施例。在本实施例中,所述装置与第一实施例的区别在于,该Web漏洞扫描行为的检测装置还包括:
[0102]第一获取模块30,用于在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数。
[0103]添加模块10,还用于若所述TCP并发连接数小于预设数目,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0104]判断模块20,还用于若所述TCP并发连接数大于或于预设数目,则判定访问端的访问请求为Web漏洞扫描行为。
[0105]由于扫描器通常会与目标Web服务器建立大量的、远超出正常人为浏览网站时产生的TCP并发连接,本实施例在上述实施例的基础上,在采用主动探测的措施之前,在接收到访问端的访问请求时,初步判断访问端是否为扫描器,对访问端的TCP并发连接数进行校验,其中,net stat命令即可查看TCP连接情况,Ne tstat是控制台命令,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,包括TCP连接情况。
[0106]为TCP并发连接数设置一个预设数目作为阈值,当TCP并发连接数大于或等于该阈值时,判断模块20判定访问端的访问请求为Web漏洞扫描行为。若TCP并发连接数小于该阈值,则进一步采用主动探测的方式进行判断。
[0107]扫描器不仅会与目标Web服务器建立大量的、远超出正常人为浏览网站时产生的TCP并发连接,而且会在短时间内发送大量HTTP请求,HTTP请求发送频率远超正常人为浏览网站时对同域URL的访问频率,而且,在漏洞探测阶段,扫描器会对同一个URL发送大量HTTP请求,请求频率远超正常人为浏览网站时对同一 URL的请求频率。
[0108]作为一种实施方式,该装置还包括:
[0109]第二获取模块,用于若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率;
[0110]添加模块10,还用于若所述HTTP请求频率小于所述预设频率,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。
[0111]判断模块20,还用于若HTTP请求频率大于或者于预设频率,则判定访问端的访问请求为Web漏洞扫描行为。
[0112]对该访问端在预设时间间隔内HTTP请求的发送频率进行校验,若该频率大于用户预先设置的频率,则判定访问端的访问请求为Web漏洞扫描行为,若HTTP请求频率小于预设频率,则进一步采用主动探测的方式进行判断。
[0113]进一步地,在获取所述访问端在预设时间间隔内的HTTP请求频率之后,若所述HTTP请求频率小于所述预设频率,则第二获取模块获取所述访问端对同一个URL资源的HTTP请求发送频率;由于正常情况下,用户在使用浏览器时,不会在短时间内对同一个URL资源发送多次请求,如果获取到访问端对同一个URL资源的HTTP请求发送频率远超正常人为浏览网站时对同一 URL的请求频率,则判断模块20判定访问端的访问请求为Web漏洞扫描行为;若访问端对同一个URL资源的HTTP请求发送频率小于用户设置的阈值,则进一步采用主动探测的方式进行判断。
[0114]进一步地,为了增强判断的准确性,在获取所述访问端的TCP并发连接数、获取所述访问端在预设时间间隔内的HTTP请求频率,以及获取所述访问端对同一个URL资源的HTTP请求发送频率时,第二获取模块可以进行多次采样,对多次采样的数据进行判断。
[0115]进一步地,判断模块20,还用于对接收到的访问请求进行头部字段的校验,判断其是否合法,具体地,判断模块20在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段;第二获取模块,还用于若所述HTTP请求的头部字段为合法字段,则获取所述访问端的TCP并发连接数,进一步校验,若所述HTTP请求的头部字段不是合法字段,则判断模块20判定访问端的访问请求为Web漏洞扫描行为。这样,能够根据头部字段的校验过滤掉大部分漏洞扫描,可以减少主动探测的工作量。
[0116]其中,在一实施例中,判断模块20可以包括以下单元,提取单元,用于提取所述HTTP请求的用户代理UA字段和Referer字段;判断单元,用于判断所述UA字段是否位于黑名单、且所述Referer字段是否合法,其中,当所述UA字段不位于所述黑名单,且所述Referer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
[0117]在判断模块对HTTP请求的头部字段进行校验时,主要对UA(UserAgent,用户代理)字段和Referer字段进行校验,其中,UA字段值通常包括PC端浏览器所在操作系统的平台、浏览器名称、浏览器版本等信息,而扫描器在发送HTTP请求时,一般会有自己默认的UA,该UA值不同于常用浏览器的UA5Referer字段的值通常是一个超链接,当浏览器向Web服务器发送请求的时候,一般会带上Referer字段,告诉服务器该请求是从哪个页面链接过来的。
[0118]预先设置UA非法字段黑名单,将不合法的UA字段加入到黑名单中,判断所述UA字段是否位于黑名单。当所述UA字段不位于所述黑名单,且所述Referer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
[0119]关于Ref erer字段是否合法的判断,通过判断HTTP请求中是否有Referer字段或者判断其Referer值是否和所防护的网站同域来实现。
[0120]进一步地,为了进一步减少误判,在检测到同一访问端连续多个HTTP请求的头部字段不是合法字段时,针对访问端采取防护措施。
[0121]进一步地,删除或者替换向访问端发送的响应信息中的携带有Web服务器指纹信息的字段。
[0122]由于HTTP的响应信息的头部字段中的一些字段会携带有Web服务器以及后台应用的相关指纹信息,例如X-Powered-By字段和Server字段,而扫描器仅仅根据这些信息就可以判断后台存在哪些漏洞,因此,在响应访问端的HTTP请求时,防火墙需要过滤掉所有HTTP响应头部字段中的携带有Web服务器指纹信息的字段,例如,可以直接删除掉这些字段,或者采用其他的一些随机值替换掉这些字段。
[0123]本实施例提出的Web漏洞扫描行为的检测装置,对TCP并发连接数和HTTP请求频率,设置好阈值,可以简单确认访问端是否为爬虫或扫描器,在这个基础上,结合主动探测机制,以及HTTP请求头部字段的校验,能够更加精确地判断访问端是否为扫描器,极大地减少了检测Web漏洞扫描行为时的误报与漏报。
[0124]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种Web漏洞扫描行为的检测方法,其特征在于,所述Web漏洞扫描行为的检测方法包括: 在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码; 若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。2.根据权利要求1所述的Web漏洞扫描行为的检测方法,其特征在于,所述在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤: 在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数; 若所述TCP并发连接数小于预设数目,则执行在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤。3.根据权利要求1所述的Web漏洞扫描行为的检测方法,其特征在于,所述在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤: 在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数; 若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率; 若所述HTTP请求频率小于所述预设频率,则执行在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码的步骤。4.根据权利要求3所述的Web漏洞扫描行为的检测方法,其特征在于,所述获取所述访问端的TCP并发连接数的步骤之前,所述Web漏洞扫描行为的检测方法还包括步骤: 在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段; 若所述HTTP请求的头部字段为合法字段,则执行获取所述访问端的TCP并发连接数的步骤。5.根据权利要求4所述的Web漏洞扫描行为的检测方法,其特征在于,所述判断所述访问请求中的HTTP请求的头部字段是否为合法字段的步骤包括: 提取所述HTTP请求的用户代理UA字段和Ref erer字段; 判断所述UA字段是否位于黑名单、且所述Referer字段是否合法,其中,当所述UA字段不位于所述黑名单,且所述Ref erer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。6.—种Web漏洞扫描行为的检测装置,其特征在于,所述Web漏洞扫描行为的检测装置包括: 添加模块,用于在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码; 判断模块,用于若检测到所述访问端提取并访问了所述隐藏链接,和/或未接收到所述访问端基于执行所述JS代码所发送的HTTP请求,则判定所述访问端的访问请求为Web漏洞扫描行为。7.根据权利要求6所述的Web漏洞扫描行为的检测装置,其特征在于,所述Web漏洞扫描行为的检测装置还包括: 第一获取模块,用于在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数; 所述添加模块,还用于若所述TCP并发连接数小于预设数目,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。8.根据权利要求6所述的Web漏洞扫描行为的检测装置,其特征在于,所述Web漏洞扫描行为的检测装置还包括: 第二获取模块,用于在接收到访问端的访问请求时,获取所述访问端的TCP并发连接数; 以及,若所述TCP并发连接数小于预设数目,则获取所述访问端在预设时间间隔内的HTTP请求频率; 所述添加模块,还用于若所述HTTP请求频率小于所述预设频率,则在向访问端发送的响应信息的超文本标记语言HTML文本中植入隐藏链接和/或JS代码。9.根据权利要求8所述的Web漏洞扫描行为的检测装置,其特征在于,所述判断模块,还用于在接收到访问端的访问请求时,判断所述访问请求中的HTTP请求的头部字段是否为合法字段; 所述第二获取模块,还用于若所述HTTP请求的头部字段为合法字段,则获取所述访问端的TCP并发连接数。10.根据权利要求9所述的Web漏洞扫描行为的检测装置,其特征在于,所述判断模块包括: 提取单元,用于提取所述HTTP请求的用户代理UA字段和Referer字段; 判断单元,用于判断所述UA字段是否位于黑名单、且所述Referer字段是否合法,其中,当所述UA字段不位于所述黑名单,且所述Referer字段合法时,判定所述访问请求中的HTTP请求的头部字段为合法字段。
【文档编号】H04L29/06GK105871845SQ201610199750
【公开日】2016年8月17日
【申请日】2016年3月31日
【发明人】董永信
【申请人】深圳市深信服电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1