异常流量的检测方法及装置、防御Web攻击的方法和装置转让专利

申请号 : CN201510375117.2

文献号 : CN104994091B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 于杨

申请人 : 东软集团股份有限公司

摘要 :

本发明提供了一种异常流量的检测方法和装置,其方法包括:获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;从接收到的待检测流量中提取待检测流量特征;匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量。本发明提供的方法能够很好地应对0day漏洞,有利于提高网络安全。本发明还提供了防御Web攻击的方法和装置。

权利要求 :

1.一种异常流量的检测方法,其特征在于,包括:

获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;

从接收到的待检测流量中提取待检测流量特征;

匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;

当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量;

其中,所述获取基准流量特征具体包括:通过学习合法URL的特征获取基准流量特征,所述学习合法URL的特征获取基准流量特征包括第一次迭代学习过程,所述第一次迭代学习过程包括第一学习阶段和第二学习阶段;

在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户,并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,切换到第二学习阶段;

在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户,并累积合法URL的第二用户量,直到输入所述合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同;

比较第二学习阶段内记录的流量特征与第一学习阶段内记录的流量特征是否一致,如果是,将第一学习阶段内和第二学习阶段内记录的流量特征确定为基准流量特征。

2.根据权利要求1所述的方法,其特征在于,所述比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,还包括:进行下一次迭代学习过程;其中,所述进行下一次迭代学习过程包括:记录合法URL的特征以及输入该合法URL的新用户并累积所述新用户的数量,直到所述新用户的数量达到第二预设数量;所述新用户为先前学习过程中没有记录的用户;

比较最新一次记录的URL特征与先前已经记录的URL特征是否一致,如果是,确定最新一次和先前已经记录的URL特征为基准流量特征。

3.根据权利要求1所述的方法,其特征在于,所述基准流量特征和所述待检测流量特征包括Method信息、Query String信息、Cookie信息和Referer信息中的至少一种,所述Query String包括至少一个key-value对;所述分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量,具体包括:当所述与基准流量特征不匹配的特征为Referer信息时,判断所述Referer信息是否为预设域名,如果是,确定所述待检测流量不是异常流量;如果否,确定所述待检测流量为异常流量;

当所述与基准流量特征不匹配的特征为传输协议的请求方法时,确定该待检测流量为异常流量;

当所述与基准流量特征不匹配的特征为Query String的key信息时,确定该待检测流量为异常流量;

和/或,

当所述与基准流量特征不匹配的特征为Query String的Value信息时,判断Value信息是否具备攻击特征,如果是,确定该待检测流量为异常流量,如果否,确定该待检测流量不是异常流量。

4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:当所述待检测流量为异常流量时,阻止待检测流量。

5.一种防御Web攻击的方法,其特征在于,包括:

采用权利要求1-3任一项所述的方法检测接收到的流量是否为异常流量;

当接收到的流量为异常流量时,追踪产生异常流量的用户;

根据所述用户在当前预设时间段内产生异常流量的程度确定该用户在该当前预设时间段内的信任度;

判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,不阻止该用户输入的异常流量,如果否,阻止该用户输入的异常流量。

6.一种异常流量的检测装置,其特征在于,包括:

获取单元,用户获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;

提取单元,用于从接收到的待检测流量中提取待检测流量特征;

匹配单元,用于匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;

分析确定单元,用于当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量;

其中,所述获取单元包括:

第一学习单元,用于在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,切换到第二学习阶段;

第二学习单元,用于在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户并累积合法URL的第二用户量,直到输入该合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同;

比较单元,用于比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,如果是,将第一学习阶段内和第二学习阶段内记录的流量特征确定为基准流量特征。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:阻止单元,用于当所述待检测流量为异常流量时,阻止待检测流量。

8.一种防御Web攻击的装置,其特征在于,包括:

检测单元,用于采用权利要求1-3任一项所述的方法检测接收到的流量是否为异常流量;

追踪单元,用于当接收到的流量为异常流量时,追踪产生异常流量的用户;

确定信任度单元,用于根据所述用户在当前预设时间段内产生的异常流量的程度确定该用户在该当前预设时间段内的信任度;

判断单元,用于判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,不阻止该用户输入的异常流量,如果否,阻止该用户输入的异常流量。

说明书 :

异常流量的检测方法及装置、防御Web攻击的方法和装置

技术领域

[0001] 本发明涉及网络安全技术领域,尤其涉及一种异常流量的检测方法及装置,以及基于该异常流量检测方法的防御Web攻击的方法和装置。

背景技术

[0002] 随着计算机技术的发展,当前计算机面临的是日益先进且多样的Web攻击。丰富的Java脚本和SQL(结构化查询语言,Structured Query Language)给黑客提供了Web攻击的可乘之机。为了防御Web攻击,需要对输入到网站上的流量进行检测,以检测出对网站攻击的异常流量。
[0003] 目前大多采用特定代码来检测异常流量,进而抵御其对Web的攻击。然而,特定代码存在以下问题:
[0004] 要么由于检测的范围过于宽泛而导致误报威胁,要么由于对句法限定过于精确而造成威胁漏报。并且,特定代码检测都是基于预先设置好的攻击特征进行检测,这些预先设置后的攻击特征也可以称之为黑名单。由于黑名单是根据已经发生的Web攻击设置的,因此,基于特定代码检测异常流量的方法具有防御滞后和“事后更新”的特点,如此导致特定代码检测的方法只能防御现有的已知的Web攻击,在应对0day漏洞的防御时略显滞后,因此,现有的基于特定代码的异常流量检测方法不能对网络进行有效、及时地保护。

发明内容

[0005] 有鉴于此,本发明的第一方面提供了一种异常流量的检测方法和装置。
[0006] 基于本发明的第一方面,本发明的第二方面提供了一种防御Web攻击的方法和装置。
[0007] 为了解决上述技术问题,本发明采用了如下技术方案:
[0008] 一种异常流量的检测方法,包括:
[0009] 获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;
[0010] 从接收到的待检测流量中提取待检测流量特征;
[0011] 匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;
[0012] 当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量。
[0013] 可选地,所述获取基准流量特征具体包括:通过学习合法URL的特征获取基准流量特征,所述学习合法URL的特征获取基准流量特征包括第一次迭代学习过程,所述第一次迭代学习过程包括第一学习阶段和第二学习阶段;
[0014] 在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户,并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,切换到第二学习阶段;
[0015] 在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户,并累积合法URL的第二用户量,直到输入所述合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同;
[0016] 比较第二学习阶段内记录的流量特征与第一学习阶段内记录的流量特征是否一致,如果是,将第一学习阶段内和第二学习阶段内记录的流量特征确定为基准流量特征。
[0017] 可选地,所述比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,还包括:进行下一次迭代学习过程;其中,所述进行下一次迭代学习过程包括:
[0018] 记录合法URL的特征以及输入该合法URL的新用户并累积所述新用户的数量,直到所述新用户的数量达到第二预设数量;所述新用户为先前学习过程中没有记录的用户;
[0019] 比较最新一次记录的URL特征与先前已经记录的URL特征是否一致,如果是,确定最新一次和先前已经记录的URL特征为基准流量特征。
[0020] 可选地,所述基准流量特征和所述待检测流量特征包括Method信息、Query String信息、Cookie信息和Referer信息中的至少一种,所述Query String包括至少一个key-value对;所述分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量,具体包括:
[0021] 当所述与基准流量特征不匹配的特征为Referer信息时,判断所述Referer信息是否为预设域名,如果是,确定所述待检测流量不是异常流量;如果否,确定所述待检测流量为异常流量;
[0022] 当所述与基准流量特征不匹配的特征为传输协议的请求方法时,确定该待检测流量为异常流量;
[0023] 当所述与基准流量特征不匹配的特征为Query String的key信息时,确定该待检测流量为异常流量;
[0024] 和/或,
[0025] 当所述与基准流量特征不匹配的特征为Query String的Value信息时,判断Value信息是否具备攻击特征,如果是,确定该待检测流量为异常流量,如果否,确定该待检测流量不是异常流量。
[0026] 可选地,还包括:当所述待检测流量为异常流量时,阻止待检测流量。
[0027] 一种防御Web攻击的方法,包括:
[0028] 采用上述任一项所述的方法检测接收到的流量是否为异常流量;
[0029] 当接收到的流量为异常流量时,追踪产生异常流量的用户;
[0030] 根据所述用户在当前预设时间段内产生异常流量的程度确定该用户在该当前预设时间段内的信任度;
[0031] 判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,不阻止该用户输入的异常流量,如果否,阻止该用户输入的异常流量。
[0032] 一种异常流量的检测装置,包括:
[0033] 获取单元,用户获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;
[0034] 提取单元,用于从接收到的待检测流量中提取待检测流量特征;
[0035] 匹配单元,用于匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;
[0036] 分析确定单元,用于当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量。
[0037] 可选地,所述获取单元包括:
[0038] 第一学习单元,用于在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,切换到第二学习阶段;
[0039] 第二学习单元,用于在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户并累积合法URL的第二用户量,直到输入该合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同;
[0040] 比较单元,用于比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,如果是,将第一学习阶段内和第二学习阶段内记录的流量特征确定为基准流量特征。
[0041] 可选地,所述装置还包括:
[0042] 阻止单元,用于当所述待检测流量为异常流量时,阻止待检测流量。
[0043] 一种防御Web攻击的装置,包括:
[0044] 检测单元,用于采用上述任一项所述的方法检测接收到的流量是否为异常流量;
[0045] 追踪单元,用于当接收到的流量为异常流量时,追踪产生异常流量的用户;
[0046] 确定信任度单元,用于根据所述用户在当前预设时间段内产生的异常流量的程度确定该用户在该当前预设时间段内的信任度;
[0047] 判断单元,用于判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,不阻止该用户输入的异常流量,如果否,阻止该用户输入的异常流量。
[0048] 相较于现有技术,本发明具有以下有益效果:
[0049] 本发明提供的异常流量检测方法中,将合法URL构建的URL特征确定为基准流量特征,然后用待检测流量的流量特征与基准流量特征进行匹配,当待检测流量的流量特征中存在与基准流量特征不匹配的特征时,再对该与基准流量特征不匹配的特征进行进一步分析,以确定该待检测流量是否为异常流量。由于异常流量中必然存在与合法正常流量不匹配的特征,因此,通过将待检测流量的流量特征与基准流量特征进行匹配的方法,能够将所有可能的异常流量均检测出来。因此,通过本发明提供的异常流量检测方法不会出现对异常流量漏检的情况。
[0050] 另外,在本发明中,基准流量特征是根据合法的URL构建的URL特征确定的,其与异常流量的攻击特征无关。因此,不管攻击Web的异常流量的攻击特征如何发生演变,通过本发明提供的异常流量的检测方法均可以将该攻击Web的异常流量检测出来。因此,本发明提供的异常流量检测方法能否检测出异常流量不受先前设置的“黑名单”的限制,所以,相较于现有技术基于“黑名单”进行异常流量的检测方法,本发明提供的异常流量检测方法克服了防御滞后的缺陷。另外,由于本发明提供的异常流量检测方法的基准流量特征不受攻击特征的影响,不管攻击特征现在或将来如何演变,该方法均能够将与基准流量特征不匹配的流量检测出来,从而能够将异常流量检测出来。因此,本发明提供的方法能够很好地应对0day漏洞,有利于提高网络安全。

附图说明

[0051] 为了清楚地理解本发明的技术方案,下面将描述本发明的具体实施方式时用到的附图做一简要说明。显而易见地,这些附图仅是本发明的部分实施例,本领域普通技术人员在不付出创造性劳动的前提下,还可以获得其它附图。
[0052] 图1是本发明实施例一提供的异常流量检测方法的流程示意图;
[0053] 图2是本发明实施例一提供的获取基准流量特征的方法流程示意图;
[0054] 图3是本发明实施例一提供的异常流量检测装置的结构示意图;
[0055] 图4是本发明实施例二提供的防御Web攻击的方法流程示意图;
[0056] 图5是本发明实施例二提供的防御Web攻击的装置的结构示意图。

具体实施方式

[0057] 为使本发明的发明目的、技术手段和技术效果更加清楚、完整,下面结合附图对本发明的具体实施方式进行详细描述。
[0058] 实施例一
[0059] 图1是本发明实施例一提供的异常流量的检测方法的流程示意图。如图1所示,该方法包括以下步骤:
[0060] S101、获取网站的基准流量特征:
[0061] 需要说明的是,本发明实施例所述的基准流量特征是根据网站的合法URL构建得到的URL特征。如何确定一个URL是否合法呢?在本发明实施例中,可以通过检查URL的响应来确定URL是否合法。例如,当URL的响应为“HTTP 200 OK”,则表明该URL是合法正确的;当URL的响应为“HTTP 404 Not Found”时,则表明该URL不存在或者该URL是一个已断开的链接或引用,其是不合法的。
[0062] 在本发明实施例中,可以采用以下三种方式中的任意一种方式获取网站的基准特征流量。
[0063] 第一种、通过内置的方式记录网站的合法URL的特征,然后根据网站的合法URL的特征构建网站的基准流量特征:
[0064] 这种方式适用于针对一种或者几种被广泛认知的Web应用,如phpbb、wordpress等。但是由于网站的实现技术千差万别,而且内置的流量特征只能是事先知道的Web应用类型,因此该通过内置的方式记录网站的合法URL的特征不能适用于任意类型的网站。
[0065] 第二种、通过管理员的配置记录网站的合法URL的特征,然后根据网站的合法URL的特征构建基准流量特征:
[0066] 这种方式可以适用于任意类型的网站,但是这种方式需要管理员手动配置和更新一个可能包含成千上万数量的URL、表单子段和参数的巨大白名单。因而这种方式不仅容易出错,而且会给管理人员带来巨大的配置负担。
[0067] 第三种、通过学习的方式构建网站的合法URL的特征,然后根据网站的合法URL的特征获取基准流量特征:
[0068] 通过学习用户访问网站的过程中输入的合法URL构建网站的URL特征,这种方式不仅可以适用于任何类型的网站,而且不需要管理员手动配置,并且每次学习到的特征都是针对特定网站,具有很高的准确性。
[0069] 通过学习的方式获取基准流量特征的具体过程至少包括第一迭代学习过程,其中,第一迭代学习过程包括第一学习阶段和第二学习阶段,该通过学习的方式获取基准流量特征的方法流程示意图如图2所示,其以下步骤:
[0070] S201、在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户,并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,Web防御系统的学习阶段从第一学习阶段切换到第二学习阶段:
[0071] 需要说明的是,Web防御系统部署在网站的前端,Web防御系统在接收到用户访问网站时输入的URL请求后,首先要验证该URL是否为合法URL,只有在确定该URL是合法URL后,才会将该URL加入到学习列表中,对该URL进行学习。本发明实施例通过检查该URL对应的响应是否正确来确定URL是否合法。当URL的响应正确时,则该URL是合法正确的,当URL的响应表明该URL不存在或者该URL是一个已断开的链接或引用,则该URL不是合法的。
[0072] 在确定接收到的URL为合法URL后,Web防御系统将该合法URL加入到学习列表中进行学习。其中,Web防御系统在学习合法URL的第一学习阶段内执行以下操作:记录合法URL的特征以及输入该合法URL的第一用户,并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量。
[0073] 设定被学习到的合法URL的第一用户量从0开始累积到第一预设数量的学习阶段为第一学习阶段。其中,第一预设数量为经验值,根据网站设计的大小,第一预设数量可以取不同数值。经过多次试验验证,当第一预设数量为30时,可以满足绝大多数网站的需求。另外,为了方便描述,在本发明实施例中,将第一学习阶段学习到的合法URL的用户定义为第一用户,需要说明的是,第一用户不是一个用户,而是多个用户的统称。当同一个用户在第一学习阶段内多次输入合法URL时,在累计第一用户量时只对该用户累计一次。
[0074] 根据URL的特征信息,记录合法URL的特征可以具体包括:记录合法URL的Method信息、Query String信息、Cookie信息以及Referer信息中的至少一种。其中,Query String信息由一个或者多个key-value对构成。学习过程中会记录下key的名称以及与之对应的value的类型与长度,例如,key的名称为name(姓名),value的类型为字符串,最大长度为20。
[0075] S202、在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户,并累积合法URL的第二用户量,直到输入所述合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同:
[0076] 需要说明的是,本发明实施例所述的学习URL的特征的阶段包括两个学习阶段:第一学习阶段和第二学习阶段。不同学习阶段学习不同用户输入的合法URL。当第一学习阶段学习完成后,Web防御系统自动切换到第二学习阶段。
[0077] 需要说明的是,在第二学习阶段对合法URL的学习过程与在第一学习阶段对合法URL的学习过程相同,其区别仅在于,在第一学习阶段学习的合法URL来自于第一用户,在第二学习阶段学习的合法URL来自于第二用户。其中,与第一用户相似,第二用户也不是一个用户,而是在第二学习阶段学习到的合法URL对应的多个用户的统称,并且,第二用户中的每一个用户与第一用户中的每一个用户均不相同。
[0078] 另外,与第一预设数量相同,第二预设数量也是经验值,根据网站设计的大小,第二预设数量可以取不同数值。通常情况下,为了准确地获取到基准流量特征,第二预设数量大于第一预设数量。举例来说,当第一预设数量为30时,第二预设数量可以为100。
[0079] S203、比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,如果是,执行步骤S204,如果否,执行步骤S205至步骤S207:
[0080] 由于第一学习阶段内记录的合法URL的用户与第二学习阶段内记录的合法URL的用户不同,所以,第一学习阶段内学习到的URL的特征与第二学习阶段内学习到的URL特征不会导致因为固定用户的上网习惯而导致两个学习阶段学习到的URL特征一致的问题,所以,当两个学习阶段学习到的URL特征一致时,说明,学习到的合法URL的特征进行稳定状态,因此,也就能够将第二学习阶段和第一学习阶段学习到的合法URL的特征确定为网站的基准流量特征。
[0081] 另外,由于第二学习阶段内记录的合法URL的用户与第一学习阶段内记录的合法URL的用户不同,所以,不会出现由于固定用户的上网习惯导致URL的特征进行稳定状态的假象,因此,当第一学习阶段和第二学习阶段学习到的URL特征一致时,就表明URL特征真正进入了稳定状态,所以,由此得到的基准流量特征的精度较高。
[0082] 另外,一个URL的特征通常会包括多个子特征信息,因此,所述比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,具体包括:比较第二学习阶段内记录的流量特征的每个子特征信息和对应的第一学习阶段内记录的流量特征的每个子特征信息是否一致,当第二学习阶段内记录的流量特征中存在至少一个子特征信息与对应的第一学习阶段内的子特征信息不一致时,就认为记录的流量特征不稳定,需要继续进行迭代学习。只有当第二学习阶段内记录的流量特征的所有子特征信息与对应的第一学习阶段内记录的流量特征的所有子特征信息均分别对应一致时,才认为记录的流量特征稳定,才会将记录的URL特征确定为基准流量特征。
[0083] 举例来说,在第一学习阶段记录的URL为aabc的Query String特征信息中key的名称为sid,value的类型为字符串,最大长度为23;在第二学习阶段记录的100个用户的合法URL的特征中,如果针对该URL的Query String特征信息中key的名称为依然为sid,value的类型为字符串,最大长度为23,则该URL特征进入稳定状态,将该URL的Query String特征信息确定为基准流量特征。如果发现针对URL为/aabc的合法请求中sid的value出现了数字,则说明该URL的特征还未进入稳定状态,需要进行第二次迭代学习直到该URL的特征稳定为止。
[0084] 当第二学习阶段内记录的流量特征与第一学习阶段内记录的流量特征一致时,说明通过一次迭代学习过程就能够获取到网站的基准流量特征。当第二学习阶段内记录的流量特征与第一学习阶段内记录的流量特征不一致时,则需要进行多次迭代学习才能获取到网站的基准流量特征。
[0085] S204,将第二学习阶段和第一学习阶段内记录的流量特征确定为基准流量特征。
[0086] S205、记录合法URL的特征以及输入该合法URL的第三用户,并累积合法URL的第三用户量,直到输入所述合法URL的第三用户量达到第二预设数量;所述第三用户与所述第一用户以及第二用户各不相同:
[0087] 当第二学习阶段内记录的流量特征与第一学习阶段内记录的流量特征不一致时,则进行第二次迭代学习以获取到基准流量特征。学习阶段从第二学习阶段切换到第三学习阶段,以开始第二次迭代学习过程。在该第三学习阶段内,记录来自第三用户的合法URL的特征以及第三用户,并累积第三用户量,直到第三用户量达到第二预设数量,其中,第三用户不同于第二用户和第一用户。
[0088] S206、比较第三学习阶段内记录的流量特征与先前学习阶段内的流量特征是否一致,如果是,执行步骤S207。
[0089] 需要说明的是,当第二学习阶段学习到的URL特征与第一学习阶段学习到的URL特征一致时,通过一次迭代学习即可获取到网站的基准流量特征。当第三学习阶段学习到的URL特征与第一学习阶段以及第二学习阶段学习到的URL特征一致时,通过两次迭代学习即可获取到网站的基准流量特征。
[0090] 实际上,在本发明实施例中,网站的基准流量特征有可能通过更多次迭代学习才能获取到。如此,Web防御系统可能将经过多个学习阶段,直到获取到基准流量特征。当通过多次迭代学习获取到网站的基准流量特征时,每一次迭代学习过程,均需要执行以下操作:
[0091] 步骤A、记录新用户输入的合法URL的特征以及这些新用户,并累积这些新用户的数量,直到这些新用户的数量达到第二预设数量:
[0092] 需要说明是的,所述新用户是指在先前迭代学习过程中没有记录的用户。所以,这些新用户在先前迭代学习过程中也没有被累积过用户量。
[0093] 步骤B、比较最新一次记录的URL特征与先前已经记录的URL特征是否一致,如果是,则确定最新一次和先前已经记录的URL特征为基准流量特征,如果否,则进入下一次迭代学习过程:
[0094] 需要说明的是,先前已经记录的URL是指在最新一次记录URL特征之前的迭代学习过程中记录的URL特征。例如,若最新一次记录URL特征是第三次记录URL特征,则先前已经记录的URL特征为第二次和第一次记录URL的特征。
[0095] S207、将第一学习阶段、第二学习阶段和第三学习阶段学习记录的流量特征确定为基准流量特征。
[0096] 通过以上所述的学习方法即可获取到网站的基准流量特征。需要说明的是,实际情况下,可能通过一次迭代学习过程即可获取到网站的基准流量特征,如通过步骤S201至步骤S203。也有可能通过两次迭代学习过程即可获取到网站的基准流量特征,如通过步骤S201至步骤S205。另外,还可能通过两次以上的迭代学习过程才能获取到网站的基准流量特征。当通过两次以上的迭代学习过程才能获取到网站的基准流量特征时,循环执行上述步骤A至步骤B进行迭代学习直到最新一次迭代学习过程中记录的流量特征与先前迭代学习过程中记录的流量特征一致,才将该最新一次迭代学习学习记录的流量特征以及先前迭代学习过程中记录的流量特征确定为基准流量特征。
[0097] 由于基准流量特征是根据合法URL构建得到的URL特征,所以,基准流量特征均是合法URL对应的特征,换句话说,基准流量特征均是正常合法流量对应的流量特征。因此,与“黑名单”相对,本发明实施例所述的基准流量特征相当于“白名单”。只要一个URL的特征与基准流量特征完全匹配,则表明该URL中的特征均符合合法URL对应的特征,则可以确定该URL为合法URL,该URL对应的流量为正常流量而非异常流量,其不会对网络产生危害。
[0098] S102、从接收到的待检测流量中提取待检测流量特征:
[0099] 当Web防御系统获取到网站的基准流量特征后,该Web防御系统从学习模式切换到防御保护模式。首先从待检测流量中提取待检测流量特征。
[0100] 需要说明的是,本发明实施例所述的流量对应网站上的至少一个资源定位符URL(Uniform Resource Locator)。因此,本发明实施例中,流量特征即为一个或多个URL对应的特征。作为本发明的一个具体实施例,基准流量特征以及待检测流量特征包括URL的Method信息、Query String信息、Cookie信息和Referer信息中的至少一种特征信息,所述Query String包括至少一个key-value对。
[0101] 当计算机网络接收到用户输入的URL请求后,如果要对该URL进行检测时,则该URL即为待检测流量。根据URL的特征构成,从该待检测流量中提取待检测流量特征。提取的待检测流量特征可以包括URL的Method信息、Query String信息、Cookie信息和Referer信息中的至少一种。
[0102] S103、匹配待检测流量特征和基准流量特征,以确定所述待检测流量特征中是否存在与基准流量特征不匹配的特征:
[0103] 需要说明的是,本发明实施例所述的基准流量特征是根据合法URL构建得到的URL特征。如何确定一个URL是否合法呢?在本发明实施例中,可以通过检查URL的响应来确定URL是否合法。例如,当URL的响应为“HTTP 200 OK”,则表明该URL是合法正确的;当URL的响应为“HTTP 404 Not Found”时,则表明该URL不存在或者该URL是一个已断开的链接或引用,其是不合法的。
[0104] 由于基准流量特征是根据合法URL构建得到的URL特征,所以,基准流量特征均是合法URL对应的特征,换句话说,基准流量特征均是正常流量对应的流量特征。因此,与“黑名单”相对,本发明实施例所述的基准流量特征相当于“白名单”。只要一个URL的特征与基准流量特征完全匹配,则表明该URL中的特征均符合合法URL对应的特征,则可以确定该URL为合法URL,该URL对应的流量为正常流量而非异常流量,其不会对网络产生危害。
[0105] 在本发明实施例中,基准流量特征作为检测异常流量的标准,因此,将前述步骤提取到的待检测流量特征与该基准流量特征进行匹配,以确定待检测流量特征中是否存在与该基准流量特征不匹配的特征。
[0106] S104、当所述待检测流量特征中存在与基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量:
[0107] 由于异常流量中必然存在与基准流量特征不匹配的特征,所以,当一个待检测流量中存在与基准流量特征不匹配的特征时,则该待检测流量可能为异常流量。需要说明的是,待检测流量特征中的与基准流量特征不匹配的特征不一定会对网络造成危害,当该与基准流量特征不匹配的特征不会对网络造成危害时,确定该待检测流量仍为合法流量,而非异常流量。只有当该与基准流量特征不匹配的特征会对网络造成危害时,才将该待检测流量确定为异常流量。
[0108] 另外,不同的流量特征对网络的危害程度不同,所以,当待检测流量特征中存在与基准流量特征不匹配的特征时,需要进一步分析该与基准流量特征不匹配的特征的类型,以确定该待检测流量特征是否为异常流量。并且针对不同类型的与该基准流量特征不匹配的特征,本发明实施例会采用不同的分析方法。
[0109] 如上所述,流量特征包括URL的Method、Query String、Cookie和Referer信息中的至少一种特征信息,所述Query String包括至少一个key-value对。
[0110] 当所述与基准流量特征不匹配的特征为Referer信息时,所述分析与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量,具体包括:
[0111] 判断所述Referer信息是否为预设域名,如果是,确定所述待检测流量是合法流量而非异常流量,如果否,确定所述待检测流量为异常流量。
[0112] 需要说明的是,在本发明实施例中,一些网站上可能嵌入有一些搜索引擎,如baidu、google,也有可能嵌入有一些值得信任的门户网站如sohu、sina等等,此外,网站上还有可能嵌入有合作伙伴的网站链接。嵌入的这些网站的域名信息与基准流量特征中的域名信息可能不匹配。但是,这些域名对应的流量不会对网络造成危害,所以,当待检测流量特征包括此类的域名信息时,该待检测流量不会对网络造成危害,确定该待检测流量为合法流量而非异常流量,反之,当所述Referer信息不是预设域名,而是陌生域名时则确定该检测流量为异常流量。
[0113] 在本发明实施例中,将上述所述的搜索引擎域名、门户网站的域名以及合作伙伴的网站的域名统称为预设域名。需要说明的是,在本发明实施例中,所述预设域名除了包括上述域名外,还可以包括其它域名。
[0114] 当所述与基准流量特征不匹配的特征为传输协议的请求方法时,确定该待检测流量为异常流量。这是因为,对于每个URL来说,其传输协议的请求方法是一定的,基本不会发生改变。所以,当待检测流量特征中存在的与基准流量特征不匹配的特征为传输协议的请求方法时,确定该待检测流量为异常流量。
[0115] 由于一个网站的key信息是固定的,因此,当所述与基准流量特征不匹配的特征为Query String的key信息时,确定该待检测流量为异常流量。
[0116] 当所述与基准流量特征不匹配的特征为Query String的value信息时,在确定待检测流量是否为异常流量之前,需要判断该value信息中是否具备攻击特征,如果是,确定该待检测流量为异常流量。如果否,则该待检测流量属于非常规但无害的流量,确定该待检测流量不是异常流量。
[0117] S105、当所述待检测流量为异常流量时,阻止待检测流量:
[0118] 为了保证网络的安全,防止异常流量对网络造成危害,在检测到待检测流量为异常流量后,Web防御系统还可以阻断该待检测流量。
[0119] 以上为本发明实施例一提供的异常流量的检测方法。在该检测方法中,将合法URL构建的URL特征确定为基准流量特征,然后用待检测流量的流量特征与基准流量特征进行匹配,当待检测流量的流量特征中存在与基准流量特征不匹配的特征时,再对该与基准流量特征不匹配的特征进行进一步分析,以确定该待检测流量是否为异常流量。由于异常流量中必然存在与合法正常流量不匹配的特征,因此,通过将待检测流量的流量特征与基准流量特征进行匹配的方法,能够将所有可能的异常流量均检测出来。因此,通过本发明提供的异常流量检测方法不会出现对异常流量漏检的情况。
[0120] 另外,在本发明中,基准流量特征是根据合法的URL构建的URL特征确定的,其与异常流量的攻击特征无关。因此,不管攻击Web的异常流量的攻击特征如何发生演变,通过本发明提供的异常流量的检测方法均可以将该攻击Web的异常流量检测出来。因此,本发明提供的异常流量检测方法能否检测出异常流量不受先前设置的“黑名单”的限制,所以,相较于现有技术基于“黑名单”进行异常流量的检测方法,本发明提供的异常流量检测方法克服了防御滞后的缺陷。另外,由于本发明提供的异常流量检测方法的基准流量特征不受攻击特征的影响,不管攻击特征现在或将来如何演变,该方法均能够将与基准流量特征不匹配的流量检测出来,从而能够将异常流量检测出来。因此,本发明提供的方法能够很好地应对0day漏洞,有利于提高网络安全。
[0121] 进一步地,由于上述学习方法获取到的基准流量特征针对不同的网站具有不同的特性,进而使得本发明提供的异常流量检测方法能够参考客户环境的业务逻辑,能够实现准确地检测异常流量。
[0122] 基于上述实施例一提供的异常流量的检测方法,本发明实施例还提供了一种异常流量的检测装置。图3是本发明实施例一提供的异常流量的检测装置。如图3所示,该异常流量的检测装置包括以下单元:
[0123] 获取单元31,用户获取网站的基准流量特征,所述基准流量特征包括由合法URL构建得到的URL特征;
[0124] 提取单元32,用于从接收到的待检测流量中提取待检测流量特征;
[0125] 匹配单元33,用于匹配待检测流量特征和基准流量特征,以确定待检测流量特征中是否存在与基准流量特征不匹配的特征;
[0126] 分析确定单元34,用于当所述待检测流量特征中存在与所述基准流量特征不匹配的特征时,分析所述与基准流量特征不匹配的特征,以确定所述待检测流量是否为异常流量。
[0127] 通过以上所述的异常流量检测装置能够将输入到网站上的异常流量准确地检测出来。并且,由于基准流量特征不受攻击特征的影响,不管异常流量的攻击特征如何演变,本发明提供的异常流量检测装置均可以将异常流量检测出来,所以该异常流量检测装置能够应对0day漏洞。
[0128] 为了能够防止异常流量对网站的攻击,上述所述的异常流量检测装置还可以包括:
[0129] 阻止单元35,用于当所述待检测流量为异常流量时,阻止待检测流量。
[0130] 作为本发明的一个具体实施例,所述获取单元31包括:
[0131] 第一学习单元311,用于在第一学习阶段内,记录合法URL的特征以及输入该合法URL的第一用户并累积输入该合法URL的第一用户量,直到输入该合法URL的第一用户量达到第一预设数量,当输入该合法URL的用户量达到第一预设数量后,切换到第二学习阶段;
[0132] 第二学习单元312,用于在第二学习阶段内,记录合法URL的特征以及输入该合法URL的第二用户并累积合法URL的第二用户量,直到输入该合法URL的第二用户量达到第二预设数量;所述第二用户与所述第一用户不同;
[0133] 比较单元313,用于比较第二学习阶段内记录的流量特征是否与第一学习阶段内记录的流量特征是否一致,如果是,将第一学习阶段内和第二学习阶段内记录的流量特征确定为基准流量特征。
[0134] 另外,由于Web防御系统是通过检测异常流量进行防御的。当Web防御系统检测到异常流量时,就会阻止这一行为。但是,当这些异常流量是合法用户无意中输入的时,如此导致了误报威胁的发生。如何实现防御系统在不阻碍合法流量的前提下抵御Web攻击,也是网络安全技术领域的一大技术问题。
[0135] 为了解决上述技术问题,本发明实施例还提供了一种防御Web攻击的方法。具体参见实施例二。
[0136] 实施例二
[0137] 图4是本发明实施例二提供的防御Web攻击的方法的流程示意图。如图4所示,该方法包括以下步骤:
[0138] S401、检测接收到的流量是否为异常流量;
[0139] 根据实施例一所述的异常流量检测方法中的步骤S101至步骤S104检测接收到的流量是否为异常流量。
[0140] S402、当接收到的流量为异常流量时,追踪产生异常流量的用户;
[0141] 当接收到的流量为异常流量时,追踪产生异常流量的用户。
[0142] S403、根据所述用户在当前预设时间段内产生异常流量的程度确定该用户在该预设时间段内的信任度:
[0143] 需要说明的是,用户输入当前流量对应的时刻向前推一段时间段,该时间段的时长即为当前预设时间段。
[0144] 根据用户在一段时间段内产生异常流量的程度定义该用户在这一段时间段内的信任度。根据用户在不同预设时间段内产生的异常流量的程度,该用户的信任度在不同预设时间段可能不同。也就是说,用户的信任度会随着时间迭代。例如,用户A在当前5秒内产生了1%的异常流量,该用户A的在当前5秒内的信任度为99,当该用户A在下一个5秒内产生了20%的异常流量,用户在该下一个5秒内的信任度为79,依次类推。
[0145] S404、判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,执行步骤S405,如果否,执行步骤S406。
[0146] 为了能够区分出合法用户和非法用户即黑客,本发明实施例预先设置有预设信任度。当用户当前时间段内的信任度大于预设信任度时,认为该用户为合法用户,当用户当前时间段的信任度不大于预设信任度时,认为该用户为非法用户即黑客。针对合法用户和黑客输入的异常流量,Web防御系统会采取不同的措施。
[0147] S405、不阻止该用户的异常流量。
[0148] S406、阻止该用户的异常流量。
[0149] 通过以上实施例提供的防御Web攻击的方法,不会阻止合法用户无意中输入的异常流量,降低了防御系统误报威胁的几率,提高了防御系统查杀异常流量的准确性。
[0150] 基于上述实施例所述的防御Web攻击的方法,本发明实施例还提供了一种防御Web攻击的装置。图5是本发明实施例提供的防御Web攻击的装置结构示意图。如图5所示,该装置包括以下单元:
[0151] 检测单元51,用于采用实施例一所述的步骤S101至步骤S104所述的方法检测接收到的流量是否为异常流量;
[0152] 追踪单元52,用于当接收到的流量为异常流量时,追踪产生异常流量的用户;
[0153] 确定信任度单元53,用于根据所述用户在当前预设时间段内产生的异常流量的程度确定该用户在该当前预设时间段内的信任度;
[0154] 判断单元54,用于判断所述用户在该预设时间段内的信任度是否大于预设信任度,如果是,不阻止该用户输入的异常流量,如果否,阻止该用户输入的异常流量。
[0155] 通过以上实施例提供的防御Web攻击的装置,不会阻止合法用户无意中输入的异常流量,降低了防御系统误报威胁的几率,提高了防御系统查杀异常流量的准确性。
[0156] 以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。