发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的拒绝服务攻击的攻击源的识别装置和相应的拒绝服务攻击的攻击源的识别方法。本发明一个进一步的目的是要准确识别出拒绝服务攻击的 攻击源,以便有针对性地进行安全防护。
依据本发明的一个方面,提供了一种拒绝服务攻击的攻击源的识别方法。该拒绝服务攻击的攻击源的识别方法包括以下步骤:获取目标主机的多个统一资源定位符URL的访问请求的列表;利用列表查询得出第一URL,该第一URL为在第一预定时间段内访问请求量最大的统一资源定位符;利用列表查询得出在第一预定时间段内向第一URL发出最多请求的一个或多个请求源;分别判断第一URL接收的访问所占的总访问请求量的占比是否超过预设访问占比以及请求源的请求量是否超过请求阈值;若以上两个判断结果均为是,将请求量超过请求阈值的请求源列为可疑攻击源。
可选地,获取目标主机的多个统一资源定位符URL的访问请求的列表包括:读取与目标主机数据连接的网页应用防护系统的运行日志文件;对运行日志文件文件进行分析,得到列表,列表中记录了目标主机的每个URL接收到的请求源清单和清单中每个请求源发出的访问请求量。
可选地,请求阈值通过占比动态计算得出,请求阈值的计算步骤包括:使用预设基础值除以占比,将得到的除商与预设的误拦裕量相加;将相加得到的加和作为请求阈值。
可选地,将请求量超过请求阈值的请求源列为可疑攻击源之后还包括:对可疑攻击源的访问请求进行分析,根据分析结果选择是否开启对可疑攻击源的攻击防护机制。
可选地,对可疑攻击源的访问请求进行分析包括:判断可疑攻击源向目标主机发出访问请求的目标URL是否仅为第一URL;若是,开启对可疑攻击源的攻击防护机制。
可选地,开启对可疑攻击源的攻击防护机制包括:过滤掉可疑攻击源向目标主机发送的访问请求。
可选地,获取目标主机的多个统一资源定位符URL的访问请求的列表之前还包括:判断向目标主机发出的访问请求总量是否超过预设的网站安全响应阈值;若是,执行获取目标主机的多个统一资源定位符URL的访问请求的列表的步骤。
根据本发明的另一个方面,提供了一种拒绝服务攻击的攻击源的识别装置包括:列表获取模块,用于获取目标主机的多个统一资源定位符URL的访问请求的列表;URL分析模块,用于利用列表查询得出第一URL,该第一URL为在第一预定时间段内访问请求量最大的统一资源定位符;请求源分析模块, 用于利用列表查询得出在第一预定时间段内向第一URL发出最多请求的一个或多个请求源;判断模块,用于分别判断第一URL接收的访问所占的总访问请求量的占比是否超过预设访问占比以及请求源的请求量是否超过请求阈值;攻击源确定模块,用于在判断模块的两个判断结果均为是的情况下,将请求量超过请求阈值的请求源列为可疑攻击源。
可选地,列表获取模块被配置为:读取与目标主机数据连接的网页应用防护系统的运行日志文件;对运行日志文件文件进行分析,得到列表,列表中记录了目标主机的每个URL接收到的请求源清单和清单中每个请求源发出的访问请求量。
可选地,上述拒绝服务攻击的攻击源的识别装置还包括:请求阈值计算模块,用于使用预设基础值除以占比,将得到的除商与预设的误拦裕量相加;将相加得到的加和作为请求阈值。
可选地,上述拒绝服务攻击的攻击源的识别装置还包括:攻击源分析模块,用于对可疑攻击源的访问请求进行分析,根据分析结果选择是否开启对可疑攻击源的攻击防护机制。
可选地,上述拒绝服务攻击的攻击源的识别装置还包括:安全响应判断模块,用于判断向目标主机发出的访问请求总量是否超过预设的网站安全响应阈值;上述列表获取模块被配置为:在安全响应判断模块的判断结果为是的情况下,执行获取所述目标主机的多个统一资源定位符URL的访问请求的列表的步骤。
本发明的拒绝服务攻击的攻击源的识别方法和拒绝服务攻击的攻击源识别的装置在目标主机出现访问量出现异常等异常情况后,对目标主机的多个URL中的接收到请求最多的URL进行分析,分析对该请求最多的URL发送的请求是否符合多攻击源攻击单一URL的攻击特征,经过判断精确地得出可疑攻击源,以便进行进一步分析和安全防护,提高了网络安全性。
进一步地,本发明的技术方案根据多攻击源攻击单一URL的攻击特征对判断拒绝服务攻击的判断阈值进行计算,可根据目标主机的访问特点进行灵活设置,符合对不同目标主机的攻击防护要求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会 更加明了本发明的上述以及其他目的、优点和特征。
具体实施方式
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
图1是根据本发明一个实施例的拒绝服务攻击的攻击源的识别装置200的网络应用环境的示意图,在图中,网页客户端110访问目标网站时,经过域名解析系统的解析,将输入的域名解析为网页防护系统分布在各地机房的节点服务器120对应的地址,节点服务器120通过互联网向目标网站的主机(host)140发出访问请求,在目标主机host140之前设置了网页应用防护系统130(WebApplication Firewall,简称WAF),向目标主机140发出的访问请求必须经过WAF130才能到达目标主机140,WAF130作为网站防火防火墙,提供网站的加速和缓存服务,可防止黑客利用跨站注入等漏洞对网站进行入侵,保护网站不被篡改和入侵,提高网站主机的安全性。本发明实施例的拒绝服务攻击的攻击源的识别装置200与多个WAF130数据连接,根据WAF130收到的向目标主机140发送的访问请求进行拒绝服务攻击的攻击源识别。
拒绝服务攻击的方式包含以下多种方式:使用单一互联网协议地址 (InternetProtocol,进程IP地址)对某一host的单个URL进行攻击、使用多个IP对单个URL进行攻击、使用单一IP对多个URL进行攻击、使用多个IP对多个URL进行攻击,由于对多个URL进行攻击需要使用网络爬虫技术抽取URL攻击的难度较大,因此,一般进行拒绝服务攻击大多使用对单一URL进行攻击的方式。
本发明实施例的拒绝服务攻击的攻击源的识别装置200及其相应的方法可以有效地对单一URL的攻击源进行识别。
图2是根据本发明一个实施例的拒绝服务攻击的攻击源的识别装置200示意图。该拒绝服务攻击的攻击源的识别装置200一般性地可以包括:列表获取模块210、URL分析模块220、请求源分析模块230、判断模块240、攻击源确定模块250,在一些优化的方案中还可以增加设置有请求阈值计算模块270、攻击源分析模块280、安全响应判断模块260。
在以上部件中,列表获取模块210用于获取目标主机140的多个统一资源定位符(Uniform Resource Locator,简称URL)的访问请求的列表;URL分析模块220用于利用列表查询得出第一URL,该第一URL为在第一预定时间段内访问请求量最大的统一资源定位符;请求源分析模块230用于利用列表查询得出在第一预定时间段内向第一URL发出最多请求的一个或多个请求源;判断模块240用于分别判断第一URL接收的访问所占的总访问请求量的占比是否超过预设访问占比以及请求源的请求量是否超过请求阈值;攻击源确定模块250用于在判断模块的两个判断结果均为是的情况下,将请求量超过请求阈值的请求源列为可疑攻击源。
对于一般拒绝服务攻击,由于攻击源主要对目标主机140的某个URL集中进行请求,而一般正常访问请求,对所有URL的请求数量应该大体是平均的,本实施例的拒绝服务攻击的攻击源的识别装置200利用拒绝服务攻击的特点,利用收到请求量最大的URL是否请求量异常识别出可以攻击源。
启动以上拒绝服务攻击的攻击源的识别装置200可以由目标主机的访问量骤升或者目标主机的响应不正常的异常事件触发。例如当前目标主机140收到的请求总量远远大于正常访问量的峰值,或者目标主机140对访问请求的返回大多为无效数据(50X)时,就可以启动对攻击源的识别。
列表获取模块210可以利用WAF130的运行日志文件得到URL列表,例如列表获取模块210读取与目标主机数据连接的网页应用防护系统WAF130的运行日志文件;对运行日志文件文件进行分析,得到列表,列表中记录了目 标主机的每个URL接收到的请求源清单和清单中每个请求源发出的访问请求量。表1示出了本实施例的拒绝服务攻击的攻击源的识别装置200利用WAF运行日志获取的URL列表。
表1
如表1所示,通过对日志文件的分析,某个host对应有多个URL,分别为URL1、URL2、URL3……,在第一预定时间段内,对URL1发出请求访问的请求源为IP1、IP2、IP3、IP4;对URL2发出请求访问的请求源为IP2、IP3、IP4;对URL3发出请求访问的请求源为IP2、IP3。
若在第一预定时间段内URL1的访问请求量最大,则将URL1作为第一URL,然后确定出此时请求访问URL1最大的一个或多个IP,判断URL1所占对host所有URL请求量的占比是否超过预设请求占比,以及请求访问URL1最大的一个或多个IP的访问量是否超过预设请求阈值,如果两个判断结果均为,确定请求访问URL1最大的一个或多个IP对应的请求源为可疑攻击源。
以上预设请求占比为对拒绝服务攻击的攻击行为进行分析得出的经验值,一般可以设置为80%至90%,也就说一个URL接收的请求量占host请求量的绝大部分,就可以认为该URL受到了攻击。
以上预设请求阈值可以固定设置,但是为了满足不同host的请求情况,以及动态变化的请求量的变化,可由请求阈值计算模块270进行动态计算。请求阈值计算模块270的一种配置方式为:使用预设基础值除以占比,将得到的除商与预设的误拦裕量相加;将相加得到的加和作为请求阈值。例如该预设阈值的计算公式为:
阈值=预设基础值/占比+误拦裕量
在预设基础值取值为100、预设的误拦裕量取值为100的情况下,如果第一URL接收的请求量达到host总请求量的90%,则可以得到阈值=100/90%+100=211.1,从而如果有对第一URL发出的请求量超过211次的请 求源,即认为该请求源存在攻击可疑性。
以上预设基础值和预设的误拦裕量可疑根据host的实际访问情况,进行灵活设置,以上具体取值仅为实际举例。
在确定出可疑攻击源后,可以进一步对攻击源分析,以确定可疑攻击源是否是真正攻击源,在这种情况下,攻击源分析模块280对可疑攻击源的访问请求进行分析,根据分析结果选择是否开启对可疑攻击源的攻击防护机制。具体分析的方法可以为:判断当前可疑攻击源是否除了第一URL外,是否请求了host的其他URL,如果当前可疑攻击源除第一URL还请求了其他的URL,按照拒绝服务攻击的攻击特点,该可疑攻击源并非实际的攻击源。具体进行判断时,可以判断该可以攻击源是否在一段时间内集中对host超过2个URL进行了访问,如是,可以将排除该可疑攻击源。如果可疑攻击源仅对第一URL发出了请求,就可以确定其进行了拒绝服务攻击,直接封锁该可疑攻击源对host的请求。
由于本实施例的拒绝服务攻击的攻击源的识别装置200对攻击源进行了多重判断和识别,识别的准确性好,因此对识别出的攻击源直接进行封锁,不会影响到正常用户的访问。
另外,考虑到拒绝服务攻击的攻击源的识别装置200的以上识别过程也会消耗大量的资源,因此安全响应判断模块260判断向目标主机发出的访问请求总量是否超过预设的网站安全响应阈值;上述列表获取模块210仅在安全响应判断模块260的判断结果为是的情况下,执行获取所述目标主机的多个统一资源定位符URL的访问请求的列表的步骤。安全响应判断模块260设立了一个存活机制,仅在host的访问量超过安全响应的数量时,进行启动。安全响应阈值可以根据host正常情况下可以正常响应的请求量进行设定。
为了在受到拒绝服务攻击后,尽快实现攻击源的识别,以上第一预定时间段可以设置为10秒至30秒,也就是在受到攻击后1分钟之内实现对攻击源的识别和处理,大大提高了拒绝服务攻击的安全防护效率。
本发明实施例还提供了一种拒绝服务攻击的攻击源的识别方法,该拒绝服务攻击的攻击源的识别方法可以由以上实施例中的拒绝服务攻击的攻击源的识别装置200来执行,以识别出针对目标主机的拒绝服务攻击。图3是根据本发明一个实施例的拒绝服务攻击的攻击源的识别方法的示意图,该拒绝服务攻击的攻击源的识别方法包括以下步骤:
步骤S302,获取目标主机的多个统一资源定位符URL的访问请求的列表;
步骤S304,利用列表查询得出第一URL,该第一URL为在第一预定时间段内访问请求量最大的统一资源定位符;
步骤S306,利用列表查询得出在第一预定时间段内向第一URL发出最多请求的一个或多个请求源;
步骤S308,判断第一URL接收的访问所占的总访问请求量的占比是否超过预设访问占比;
步骤S310,判断对第一URL访问请求量最大的请求源的请求量是否超过请求阈值;
步骤S312,若步骤S308和S310的判断结果均为是,确定请求源为拒绝服务攻击的可疑攻击源。
其中,上第一预定时间段可以设置为10秒至30秒,也就是在受到攻击后1分钟之内实现对攻击源的识别和处理,大大提高了拒绝服务攻击的安全防护效率。
步骤S302的一种列表的获得方式为:读取与目标主机数据连接的网页应用防护系统的运行日志文件;对运行日志文件文件进行分析,得到列表,列表中记录了目标主机的每个URL接收到的请求源清单和清单中每个请求源发出的访问请求量。
步骤S310中的请求阈值通过占比动态计算得出,请求阈值的计算步骤包括:使用预设基础值除以占比,将得到的除商与预设的误拦裕量相加;将相加得到的加和作为请求阈值。从而计算公式为:阈值=预设基础值/占比+误拦裕量。
在步骤S312之后,还可以对可疑攻击源的访问请求进行分析,根据分析结果选择是否开启对可疑攻击源的攻击防护机制。具体分析的方法可以为:判断可疑攻击源向目标主机发出访问请求的目标URL是否仅为第一URL;若是,开启对可疑攻击源的攻击防护机制。如果当前可疑攻击源除第一URL还请求了其他的URL,按照拒绝服务攻击的攻击特点,该可疑攻击源应该并非实际的攻击源。具体进行判断时,可以判断该可以攻击源是否在一段时间内集中对host超过2个URL进行了访问,如是,可以将排除该可疑攻击源。如果可疑攻击源仅对第一URL发出了请求,就可以确定其进行了拒绝服务攻击,直接封锁该可疑攻击源对host的请求。
另外,为了防止一些中小型网站自身的不稳定造成消耗识别资源的问题,在步骤S302之前还可以判断向目标主机发出的访问请求总量是否超过预设的网站安全响应阈值;若是,执行步骤S302。
以下针对一个中型网站的应用以上流程的应用实例进行介绍。
该中型网站的host包含4个URL分别为:URL1、URL2、URL3、URL4,某日的10s中之内的各URL接收的请求量如表2所示,
表2
Host接收到的请求总量为550,超过了该网站的安全响应阈值300,而且URL1接收到的请求量为500,占所有URL请求总量超过了90%,此时确定URL1为第一URL,并确定出IP1和IP4的请求量最大。
然后计算请求量阈值=100/90%+100=211,IP1的请求量超过了该阈值,被确定为可以攻击源。通过对除URL1之外的其他URL进行分析,发现IP1仅对URL1进行了访问,其余URL2、URL3、URL4均未收到IP1的访问请求,从而确定了IP1对本host发送了拒绝服务攻击,开启对IP1的拒绝服务攻击防护,封锁IP1对host的访问请求。
本发明实施例的拒绝服务攻击的攻击源的识别方法和拒绝服务攻击的攻击源识别的装置在目标主机出现访问量出现异常等异常情况后,对目标主机的多个URL中的接收到请求最多的URL进行分析,分析对该请求最多的URL发送的请求是否符合多攻击源攻击单一URL的攻击特征,经过判断精确地得出可疑攻击源,以便进行进一步分析和安全防护,提高了网络安全性。
进一步地,本发明的技术方案根据多攻击源攻击单一URL的攻击特征对判断拒绝服务攻击的判断阈值进行计算,可根据目标主机的访问特点进行灵活设置,符合对不同目标主机的攻击防护。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的拒绝服务攻击的攻击源的识别装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施 例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。