攻击流量的自动识别及验证方法及系统转让专利

申请号 : CN201710569847.5

文献号 : CN107196969B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 凌霄王润辉陈莹

申请人 : 携程旅游信息技术(上海)有限公司

摘要 :

本发明提供一种攻击流量的自动识别及验证方法及系统,所述自动识别及验证方法包括:获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库为本地特征库,所述第二特征库为开源特征库;依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出步骤:输出所述验证结果。本发明提供的攻击流量的自动识别及验证方法及系统利用两个特征库提升系统处理效率。

权利要求 :

1.一种攻击流量的自动识别及验证方法,其特征在于,包括:镜像步骤:获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;

识别步骤:依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库包括多个第一类特征,所述第一特征库为本地特征库,所述第二特征库包括多个第二类特征,所述第二特征库为开源特征库,所述识别步骤包括:若所述镜像数据流与所述第一特征库中的任一第一类特征都不匹配,则丢弃所述镜像数据流;

若所述镜像数据流与所述第一特征库中的任一第一类特征匹配,则所述镜像数据流与所述第二特征库中的多个第二类特征匹配;

验证动作确定步骤:依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;

验证步骤:依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出步骤:输出验证结果。

2.如权利要求1所述的自动识别及验证方法,其特征在于,所述第二特征库更新所述第二类特征时,若存在新的第二类特征与所述第一类特征相同,则不将该新的第二类特征更新至所述第二类特征库。

3.如权利要求1所述的自动识别及验证方法,其特征在于,根据所述第二特征库识别所述镜像数据流是否为攻击流量时,所述第二特征库中若存在与所述第一类特征相同的第二类特征,则不再依据该第二类特征识别所述镜像数据流是否为攻击流量。

4.如权利要求1所述的自动识别及验证方法,其特征在于,所述镜像数据流与所述第二特征库中的多个第二类特征匹配的步骤包括:若所述镜像数据流与所述第二特征库中的任一第二类特征都不匹配,则将所述镜像数据流存入一非攻击特征流量数据库;

若所述镜像数据流与所述第二特征库中的任一第二类特征匹配,则依据所匹配的第二类特征识别所述镜像数据流为所述攻击流量。

5.如权利要求1所述的自动识别及验证方法,其特征在于,所述验证动作确定步骤包括:依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征在包含第二类特征和验证动作集的对应关系的规则库中确定一验证动作集,所述验证动作集包括多个验证动作;

在所确定的验证动作集中确定一验证动作。

6.如权利要求1所述的自动识别及验证方法,其特征在于,在所述依次根据第一特征库识别所述镜像数据流是否为攻击流量的步骤之后,所述依次根据第二特征库识别所述镜像数据流是否为攻击流量的步骤之前,还包括:对所述镜像数据流进行误报过滤。

7.如权利要求6所述的自动识别及验证方法,其特征在于,所述对所述镜像数据流进行误报过滤的步骤包括:依据网站架构、响应码、自定义错误页面及对比测试中任一项或多项丢弃认定为攻击无效的所述镜像数据流。

8.如权利要求1所述的自动识别及验证方法,其特征在于,所述验证步骤还包括:验证环境判断步骤:

判断识别为所述攻击流量的所述镜像数据流所访问的生产环境中的生产域名是否有对应的测试环境中的测试域名;

若所述生产域名有对应的测试域名,则执行测试验证步骤:该识别为所述攻击流量的所述镜像数据流于测试环境中进行验证;

若所述生产域名没有对应的测试域名,则执行生产验证步骤:该识别为所述攻击流量的所述镜像数据流于生产环境中进行验证。

9.如权利要求8所述的自动识别及验证方法,其特征在于,所述验证环境判断步骤之后,所述执行测试验证步骤之前和/或所述验证环境判断步骤之后,所述生产验证步骤之前还包括:确定该识别为所述攻击流量的所述镜像数据流是否需要登陆。

10.如权利要求8所述的自动识别及验证方法,其特征在于,所述执行测试验证步骤和/或所述生产验证步骤还包括:对来自相同域名和/或相同路径的识别为所述攻击流量的所述镜像数据流去重。

11.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述第一类特征包括:用户代理、Cookie字段、POST请求模式中的一项或多项。

12.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述第二特征库中的第二类特征实时更新,且由一开源、分布式计算机系统维护。

13.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述验证动作包括工具检测和/或重放检测。

14.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述输出步骤包括:输出验证为攻击成功的所述镜像数据流;

输出验证为攻击失败的所述镜像数据流;和/或

输出至少部分验证为攻击成功的所述镜像数据流的验证过程。

15.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述验证步骤之后还包括:将验证为攻击失败的所述镜像数据流存入非攻击特征流量数据库。

16.如权利要求1至10任一项所述的自动识别及验证方法,其特征在于,所述数据流为应用层数据流。

17.一种攻击流量的自动识别及验证系统,其特征在于,包括:镜像模块,用于获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;

识别模块,用于依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库包括多个第一类特征,所述第一特征库为本地特征库,所述第二特征库包括多个第二类特征,所述第二特征库为开源特征库,所述识别模块还用于:若所述镜像数据流与所述第一特征库中的任一第一类特征都不匹配,则丢弃所述镜像数据流;

若所述镜像数据流与所述第一特征库中的任一第一类特征匹配,则所述镜像数据流与所述第二特征库中的多个第二类特征匹配;

验证动作确定模块,用于依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;

验证模块,用于依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出模块,用于输出验证结果。

18.如权利要求17所述的攻击流量的自动识别及验证系统,其特征在于,还包括:第一缓冲模块,用于将经所述镜像模块镜像处理的镜像数据流以消息队列的模式发送至所述识别模块。

19.如权利要求18所述的攻击流量的自动识别及验证系统,其特征在于,还包括:第二缓冲模块,用于将经所述识别模块识别为攻击流量的镜像数据流以消息队列的模式发送至所述验证模块。

20.如权利要求19所述的攻击流量的自动识别及验证系统,其特征在于,所述第一缓冲模块及所述第二缓冲模块为高吞吐量分布式的发布订阅消息系统或企业消息系统。

说明书 :

攻击流量的自动识别及验证方法及系统

技术领域

[0001] 本发明涉及计算机应用技术领域,尤其涉及一种攻击流量的自动识别及验证方法及系统。

背景技术

[0002] 随着互联网的不断发展,被外部攻击者进行恶意攻击的事件数量增长迅速,公司的信息安全关乎到公司利益价值。现有技术通常是对恶意流量进行提取,然后告警,由运营人员或开发人员对告警进行响应。
[0003] 目前,一些应用安全技术仅仅采用流量攻击特征捕获的方式进行识别,这样的方式至少会带来如下缺陷:1)海量的告警会导致漏洞响应的效率降低;2)仅仅采用流量攻击特征捕获的方式进行识别增加系统数据处理量,整个系统识别效率降低。

发明内容

[0004] 本发明为了克服上述现有技术存在的缺陷,提供一种攻击流量的自动识别及验证方法及系统,以提高系统处理效率。
[0005] 根据本发明的一个方面,提供一种攻击流量的自动识别及验证方法,包括:镜像步骤:获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;识别步骤:依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库包括多个第一类特征,所述第一特征库为本地特征库,所述第二特征库包括多个第二类特征,所述第二特征库为开源特征库;验证动作确定步骤:依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;验证步骤:依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出步骤:输出所述验证结果。
[0006] 可选地,所述第二特征库更新所述第二类特征时,若存在新的第二类特征与所述第一类特征相同,则不将该新的第二类特征更新至所述第二类特征库。
[0007] 可选地,根据所述第二特征库识别所述镜像数据流是否为攻击流量时,所述第二特征库中若存在与所述第一类特征相同的第二类特征,则不再依据该第二类特征识别所述镜像数据流是否为攻击流量。
[0008] 可选地,所述识别步骤包括:若所述镜像数据流与所述第一特征库中的任一第一类特征都不匹配,则丢弃所述镜像数据流;若所述镜像数据流与所述第一特征库中的任一第一类特征匹配,则所述镜像数据流与所述第二特征库中的多个第二类特征匹配。
[0009] 可选地,所述镜像数据流与所述第二特征库中的多个第二类特征匹配的步骤包括:若所述镜像数据流与所述第二特征库中的任一第二类特征都不匹配,则将所述镜像数据流存入一非攻击特征流量数据库;若所述镜像数据流与所述第二特征库中的任一第二类特征匹配,则依据所匹配的第二类特征识别所述镜像数据流为所述攻击流量。
[0010] 可选地,所述验证动作确定步骤包括:依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征在包含第二类特征和验证动作集的对应关系的规则库中确定一验证动作集,所述验证动作集包括多个验证动作;在所确定的验证动作集中确定一验证动作。
[0011] 可选地,在所述依次根据第一特征库识别所述镜像数据流是否为攻击流量的步骤之后,所述依次根据第二特征库识别所述镜像数据流是否为攻击流量的步骤之前,还包括:对所述镜像数据流进行误报过滤。
[0012] 可选地,所述对所述镜像数据流进行误报过滤的步骤包括:依据网站架构、响应码、自定义错误页面及对比测试中任一项或多项丢弃认定为攻击无效的所述镜像数据流。
[0013] 可选地,所述验证步骤还包括:验证环境判断步骤:判断识别为所述攻击流量的所述镜像数据流所访问的生产环境中的生产域名是否有对应的测试环境中的测试域名;若所述生产域名有对应的测试域名,则执行测试验证步骤:该识别为所述攻击流量的所述镜像数据流于测试环境中进行验证;若所述生产域名没有对应的测试域名,则执行生产验证步骤:该识别为所述攻击流量的所述镜像数据流于生产环境中进行验证。
[0014] 可选地,所述验证环境判断步骤之后,所述执行测试验证步骤之前和/或所述验证环境判断步骤之后,所述生产验证步骤之前还包括:确定该识别为所述攻击流量的所述镜像数据流是否需要登陆。
[0015] 可选地,所述执行测试验证步骤和/或所述生产验证步骤还包括:对来自相同域名和/或相同路径的识别为所述攻击流量的所述镜像数据流去重。
[0016] 可选地,所述第一类特征包括:用户代理、Cookie字段、POST请求模式中的一项或多项。
[0017] 可选地,所述第二特征库中的第二类特征实时更新,且由一开源、分布式计算机系统维护。
[0018] 可选地,所述验证动作包括工具检测和/或重放检测。
[0019] 可选地,所述输出步骤包括:输出验证为攻击成功的所述镜像数据流;输出验证为攻击失败的所述镜像数据流;和/或输出至少部分验证为攻击成功的所述镜像数据流的验证过程。
[0020] 可选地,所述验证步骤之后还包括:将验证为攻击失败的所述镜像数据流存入非攻击特征流量数据库。
[0021] 可选地,所述数据流为应用层数据流。
[0022] 根据本发明的又一方面,还提供一种攻击流量的自动识别及验证系统,包括:镜像模块,用于获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;识别模块,用于依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库包括多个第一类特征,所述第一特征库为本地特征库,所述第二特征库包括多个第二类特征,所述第二特征库为开源特征库;验证动作确定模块,用于依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;验证模块,用于依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出模块,用于输出所述验证结果。
[0023] 可选地,自动识别及验证系统还包括:第一缓冲模块,第一缓冲模块,用于将经所述镜像模块镜像处理的镜像数据流以消息队列的模式发送至所述识别模块。
[0024] 可选地,自动识别及验证系统还包括:第二缓冲模块,用于将经所述识别模块识别为攻击流量的镜像数据流以消息队列的模式发送至所述验证模块。
[0025] 可选地,所述第一缓冲模块及所述第二缓冲模块为高吞吐量分布式的发布订阅消息系统或企业消息系统。
[0026] 相比现有技术,本发明的优势在于:
[0027] 1)通过第一特征库和第二特征库依次识别镜像数据流是否为攻击流量,减少攻击流量的告警,同时由于第一特征库为本地特征库而第二特征库为开源特征库,第一特征库先于第二特征库进行镜像数据流的识别,减少与开源的第二特征库通过网络交互的镜像数据流,增加系统对于攻击流量的识别效率,减少系统性能压力;
[0028] 2)通过第二特征库与第一特征库中的特征去重,进一步减少在第二特征库的不必要的重复的匹配操作,进而减少与开源的第二特征库的网络交互,减少系统性能压力;
[0029] 3)第二特征库中的第二类特征由一开源、分布式计算机系统维护,可进行实时处理,提升攻击流量特征库更新的实时性;
[0030] 4)采用测试环境进行测试,确保在不影响生产业务的同时,最大限度实现攻击流量的验证;
[0031] 5)在测试环境和/或生产环境中进行登录,维护镜像数据流的会话生命周期;
[0032] 6)在攻击流量的识别过程中进行误报过滤,减少告警的同时进一步减少系统性能压力;
[0033] 7)利用非攻击特征流量数据库储存具有非攻击特征的镜像数据流,便于后续回溯操作;以及
[0034] 8)在输出时显示不同的信息,以便提供更多识别验证信息供人工或后续进一步处理,进一步减少误报率。

附图说明

[0035] 通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得更加明显。
[0036] 图1示出了根据本发明实施例的攻击流量的自动识别及验证系统的结构示意图。
[0037] 图2示出了根据本发明实施例的攻击流量的自动识别及验证系统的拓扑图。
[0038] 图3示出了根据本发明一具体实施例的攻击流量的自动识别及验证系统的示意图。
[0039] 图4示出了根据本发明实施例的攻击流量的自动识别及验证方法的流程图。
[0040] 图5示出了根据本发明实施例的攻击流量的识别步骤的流程图。
[0041] 图6示出了根据本发明实施例的攻击流量的验证动作确定步骤的流程图。
[0042] 图7示出了根据本发明实施例的攻击流量的验证步骤的流程图。

具体实施方式

[0043] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
[0044] 所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员应意识到,没有所述特定细节中的一个或更多,或者采用其它的方法、组元、材料等,也可以实践本发明的技术方案。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本发明。
[0045] 附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0046] 本发明中所述的“第一”、“第二”等序数词仅为命名区分,并非用于限定不同的设备或不同的结构。
[0047] 为了解决现有技术的缺陷,提高系统处理效率,本发明提供一种攻击流量的自动识别及验证方法及系统。
[0048] 本发明提供的攻击流量的自动识别及验证方法,包括:镜像步骤:获取数据流,并对所述数据流进行镜像映射,得到镜像数据流;识别步骤:依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量,其中,所述第一特征库中的第一类特征的更新频率小于所述第二特征库中的第二类特征的更新频率,所述第一特征库与所述第二特征库不具有相同的特征;验证动作确定步骤:依据识别为所述攻击流量的所述镜像数据流所匹配的所述第二类特征确定识别为所述攻击流量的所述镜像数据流的验证动作;验证步骤:依据所确定的验证动作验证识别为所述攻击流量的所述镜像数据流是否成功攻击;以及输出步骤:输出所述验证结果。
[0049] 下面结合附图说明本发明提供的攻击流量的自动识别及验证方法及系统。
[0050] 首先参见图1和图2,图1示出了根据本发明实施例的攻击流量的自动识别及验证系统的结构示意图;图2示出了根据本发明实施例的攻击流量的自动识别及验证系统的拓扑图。
[0051] 如图1和图2所示,多个电子设备110通过网络访问一些生产系统160的服务器。该些电子设备110的访问请求及其他请求形成数据流,攻击流量的自动识别及验证系统120用于对该些数据流是否为攻击流量进行自动识别和验证。该些电子设备110可以是计算机、手机、平板电脑等具有联网功能的电子设备。
[0052] 如图2所示,通过互联网发送来的数据流部分经由一负载均衡设备150进行生产系统160进行处理。自动识别及验证系统120对该些数据流进行镜像,且该些镜像数据流的部分或全部可在生产系统160所在的生产环境中进行验证。可选地,自动识别及验证系统120、负载均衡设备150及生产系统160位于同一局域网中,并通过有线或无线的方式相互通讯。可选地,负载均衡设备150前端还可以设置交换机,负载均衡设备150用于对经由交换机最终访问生产系统160的数据流进行负载平衡。
[0053] 继续参见图1,攻击流量的自动识别及验证系统120包括镜像模块121、识别模块122、验证动作确定模块123、验证模块124及输出模块125。
[0054] 镜像模块121用于获取数据流,并对数据流进行镜像映射,得到镜像数据流。识别模块122用于依次根据第一特征库和第二特征库识别镜像数据流是否为攻击流量。
[0055] 具体而言,第一特征库170包括多个第一类特征。第一类特征可以包括用户代理、Cookie字段、POST请求模式中的一项或多项。第二特征库180包括多个第二类特征。第二特征库180中的第二类特征可实时更新并由一开源、分布式计算机系统维护。第二特征库180例如可以是病毒软件中的病毒库。在发明的各个实施例中,第一特征库170为一本地特征库,第二特征库180为一开源特征库,该开源特征库180位于云端,通过网络与攻击流量的自动识别及验证系统120实时通信。可以理解,在一些实施例中,第一特征库170中的第一类特征可以不进行更新。在一些变化例中,第一特征库170中的第一类特征可以按照几周、几个月为周期进行更新替换。对于第二特征库180,可以理解,第二特征库180中的第二类特征由一例如流式处理的开源、分布式计算机系统进行维护,可以实现实时更新。此外,第二特征库180中的第二类特征还可以结合大数据处理,进一步提高第二特征库180中的第二类特征的实时性。由此可见,第一特征库170由于位于本地,便于系统进行匹配,而第二特征库180位于云端且实时更新,若未经由第一特征库170进行初步的匹配动作,则将有大量的镜像数据流需要通过网络以与第二特征库180中的第二类特征进行匹配。第一特征库170的本地设置可以减少对于第二特征库180的匹配处理的性能压力,增加整体匹配识别速度。
[0056] 进一步地,本发明的各实施例还可以实现实时更新的第二特征库180中的第二类特征与第一特征库170中的第一类特征的去重操作。具体而言,第二特征库180更新第二类特征时,若存在新的第二类特征与第一类特征相同,则不将该新的第二类特征更新至第二类特征库180。以此,在实时更新的过程中,维护第二特征库180中始终不会包括与第一特征库170重复的特征,以此,减少与第二特征库180匹配的重复操作,进一步增加识别速度。
[0057] 在一些变化例汇总,还可以在镜像数据流与第二特征库180匹配过程中,预先判断第二特征库180中是否存在与第一类特征相同的第二类特征,若存在,则不再依据该第二类特征识别镜像数据流是否为攻击流量。以此,在实时匹配的过程中,使得与第二特征库180的匹配操作中始终不会产生与第一特征库170重复的匹配操作,进一步增加识别速度。
[0058] 验证动作确定模块123用于依据识别为攻击流量的镜像数据流所匹配的第二类特征确定识别为攻击流量的镜像数据流的验证动作。验证模块140用于依据所确定的验证动作验证识别为攻击流量的镜像数据流是否成功攻击。可选地,验证模块140还可以确定识别为攻击流量的镜像数据流在生产环境130中还是测试环境140中进行验证。验证模块140验证后,由输出模块125输出验证结果。例如,输出模块125可以输出验证为攻击成功的镜像数据流。在一些实施例中,输出模块125还可以输出验证为攻击失败的镜像数据流。在又一些实施例中,输出模块125还可以输出至少部分验证为攻击成功的所述镜像数据流的验证过程,以便后续工作人员进行误报判断。
[0059] 继续参见图3,图3示出了根据本发明一具体实施例的攻击流量的自动识别及验证系统的示意图。图3所示的攻击流量的自动识别及验证系统120与图1所示类似,与图1不同的是,图3所示的攻击流量的自动识别及验证系统120还包括一第二缓冲模块126及第二缓冲模块127。
[0060] 第一缓冲模块126用于将经由镜像模块121镜像处理的镜像数据流以消息队列的模式发送至识别模块122。第一缓冲模块126避免流量吞吐过大造成的延迟,以队列消息模式保证每一笔数据均经过识别。在本实施例中,第一缓冲模块126可以是高吞吐量分布式的发布订阅消息系统。
[0061] 第二缓冲模块127用于将经识别模块122识别为攻击流量的镜像数据流以消息队列的模式发送至验证模块124。第二缓冲模块127可同样实现镜像数据流传输时的缓冲作用。在一些实施例中,识别为攻击流量的镜像数据流直接由识别模块122经由第二缓冲模块127发送至验证模块124。在一些变化例中,识别为攻击流量的镜像数据流经由识别模块122发送至验证动作确定模块123,再由验证动作确定模块123将识别为攻击流量的镜像数据流和对应的验证动作经由第二缓冲模块127发送至验证模块124。在又一些变化例中,识别为攻击流量的镜像数据流直接由识别模块122发送至第二缓冲模块127,识别为攻击流量的镜像数据流对应的验证动作由验证动作确定模块123发送至第二缓冲模块127,第二缓冲模块
127以消息队列的模式储存有识别为攻击流量的镜像数据流和对应的验证动作,并将识别为攻击流量的镜像数据流和对应的验证动作发送至验证模块124。在本实施例中,第二缓冲模块127可以是企业消息系统。
[0062] 在一些变化例中,可以仅设置第一缓冲模块126或第二缓冲模块127。在又一些变化例中,第一缓冲模块126可以是企业消息系统,第二缓冲模块127可以是高吞吐量分布式的发布订阅消息系统。在另一些变化例中,第一缓冲模块126和第二缓冲模块127可以是相同的缓冲设备。在另一些变化例中,第一缓冲模块126和第二缓冲模块127可以其他的具有缓冲作用的服务器集群,在此不予赘述。
[0063] 下面结合图4至图7描述本发明实施例的攻击流量的自动识别及验证方法。图4示出了根据本发明实施例的攻击流量的自动识别及验证方法的流程图。图5示出了根据本发明实施例的攻击流量的识别步骤的流程图。图6示出了根据本发明实施例的攻击流量的验证动作确定步骤的流程图。图7示出了根据本发明实施例的攻击流量的验证步骤的流程图。
[0064] 如图4所示,攻击流量的自动识别及验证方法包括5个步骤。
[0065] 首先是镜像步骤S401,获取数据流,并对数据流进行镜像映射,得到镜像数据流。
[0066] 之后是识别步骤S402,依次根据第一特征库和第二特征库识别所述镜像数据流是否为攻击流量。
[0067] 具体而言,第一特征库包括多个第一类特征。第一类特征可以包括用户代理、Cookie字段、POST请求模式中的一项或多项。第二特征库包括多个第二类特征。第二特征库中的第二类特征可实时更新并由一开源、分布式计算机系统维护。在发明的各个实施例中,第一特征库中的第一类特征更新频率远小于第二特征库中的第二类特征更新频率。对于第一特征库,可以理解,在一些实施例中,第一特征库中的第一类特征可以不进行更新。在一些变化例中,第一特征库中的第一类特征可以按照几周、几个月为周期进行更新替换。对于第二特征库,可以理解,第二特征库中的第二类特征由一例如流式处理的开源、分布式计算机系统进行维护,可以实现实时更新。此外,第二特征库中的第二类特征还可以结合大数据处理,进一步提高第二特征库中的第二类特征的实时性。由此可见,第一特征库的无需实时更新,更便于系统进行匹配,进而减少对于第二特征库的匹配处理的性能压力,增加整体匹配识别速度。
[0068] 进一步地,识别步骤S402的具体执行可见参见图5。识别步骤S402包括如下步骤:
[0069] 步骤S421,判断所述镜像数据流与所述第一特征库中的第一类特征是否匹配。
[0070] 若镜像数据流与第一特征库中的任一第一类特征都不匹配,则执行步骤S422丢弃镜像数据流。
[0071] 若镜像数据流与第一特征库中的任一第一类特征匹配,则执行步骤S423,镜像数据流与第二特征库中的多个第二类特征匹配。例如,在一些实施例中,可以根据流式处理上的策略实时捕获到具备第二类特征的镜像数据流中的请求。
[0072] 若镜像数据流与第二特征库中的任一第二类特征都不匹配,则执行步骤S424,将镜像数据流存入一非攻击特征流量数据库。
[0073] 若镜像数据流与第二特征库中的任一第二类特征匹配,则继续执行步骤S403。
[0074] 在一些变化例中在上述步骤S421判断镜像数据流与第一特征库中的任一第一类特征匹配之后,在步骤S423之前,还包括误报过滤的步骤。误报过滤的步骤可以包括依据网站架构、响应码、自定义错误页面及对比测试中任一项或多项丢弃认定为攻击无效的镜像数据流。例如,某些网站架构为Apache(Web服务器),但其攻击流量是针对IIS(Internet Information Services,互联网信息服务)的攻击,这种情况下会直接丢弃。再例如,有些页面会有容错处理,容错页面会有特殊字段,如果发现了这样饿字段,则认为该攻击无效,也可以直接丢弃。误报过滤通过非特征的方式进行筛选,无需充放镜像数据流中的数据包,进一步减少系统识别的性能压力和系统误报率。
[0075] 识别步骤S402之后,执行验证动作确定步骤S403,依据识别为攻击流量的镜像数据流所匹配的第二类特征确定识别为攻击流量的所述镜像数据流的验证动作。
[0076] 进一步地,验证动作确定步骤S403的具体执行可见参见图6。验证动作确定步骤S403包括如下步骤:
[0077] 步骤S431,依据识别为攻击流量的镜像数据流所匹配的第二类特征在包含第二类特征和验证动作集的对应关系(当请求数据包符合正则表达式之一,如:union\s{0,}(\sall\s|\sdistinct\s|\(|\s{1,})\s{0,}select则判断为可能是sql注入攻击,那么可以根据重放方式观察响应结果,也可以直接扔给sql注入工具,如sqlmap)的规则库中确定一验证动作集。验证动作集包括多个验证动作。
[0078] 步骤S432,在所确定的验证动作集中确定一验证动作。具体而言,验证动作可以包括工具检测(如sqlmap,bugscan,pocscan等)和/或重放检测。验证动作集中验证动作的确定可依据系统当前处理速度和处理量来判断,也可通过系统具有的不同工具在进行确定。在一些变化例中,也可由人工置顶一项或多项验证动作,实现多种复测方式。
[0079] 验证动作确定步骤S403之后,执行验证步骤S404,依据所确定的验证动作验证识别为攻击流量的镜像数据流是否成功攻击。
[0080] 进一步地,验证步骤S404的具体执行可见参见图7。验证步骤S404包括如下步骤:
[0081] 验证环境判断步骤S441,判断识别为攻击流量的镜像数据流所访问的生产环境中的生产域名是否有对应的测试环境中的测试域名。
[0082] 若生产域名有对应的测试域名,则进一步执行步骤S445,判断该访问是否需要登陆,若需要登陆则执行步骤S446进行登录,若无需登陆则直接执行测试验证步骤S447,该识别为攻击流量的镜像数据流于测试环境中进行验证。
[0083] 若所述生产域名没有对应的测试域名,则进一步执行步骤S442,判断该访问是否需要登陆,若需要登陆则执行步骤S443进行登录,若无需登陆则直接执行生产验证步骤S444,该识别为攻击流量的镜像数据流于生产环境中进行验证。
[0084] 利用测试环境(例如UAT用户验收测试环境)进行验证复测以避免测试时可能造成的生产系统崩溃,故障,性能降低等影响。此外,对于需要登录业务系统进行攻击流量验证的环节,可以通过登陆维护一套会话生命周期,当会话超时能自动获取到新的会话令牌。在一些变化例中,可以省略上述登陆判断及登陆步骤,以减少系统额外的处理动作。
[0085] 在一些具体实施例中,上述生产验证步骤S444和/或测试验证步骤S447还可以包括对来自相同域名和/或相同路径的识别为攻击流量的镜像数据流去重的操作,以进一步增加系统处理速度和效率。
[0086] 验证步骤S404之后,执行输出步骤S405,输出验证结果。在输出步骤S405中可以输出验证为攻击成功的镜像数据流。在一些实施例中,在输出步骤S405中还可以输出验证为攻击失败的镜像数据流。在又一些实施例中,在输出步骤S405中还可以输出至少部分验证为攻击成功的所述镜像数据流的验证过程,以便后续工作人员进行误报判断。至少部分验证为攻击成功的所述镜像数据流可以例如是XSS漏洞(Cross Site Scripting,跨站脚本攻击)、敏感信息泄漏漏洞等。考虑到验证动作(例如工具检测的判断)也有一定误报率,故输出验证动作的验证过程,当审核人员进行审核时直接根据验证动作的验证过程进行判断是否有效,降低人工操作的时间,提高效率。
[0087] 在一些具体实施例中,验证步骤S404之后(例如输出步骤S405之前或者之后)还可以包括将验证为攻击失败的所述镜像数据流存入非攻击特征流量数据库。该非攻击特征流量数据库与上述步骤S424中的非攻击特征流量数据库为同一个非关系型数据库。
[0088] 进一步地,在本发明的各个实施例中,上述需要识别和验证的数据流为应用层数据流,且可选地符合HTTP协议。
[0089] 以上各个实施例的描述仅仅是示意性地,本领域技术人员还可以实现更多的变化例,在不背离本发明构思的前提下,步骤、模块的增加和省略都落入本发明的保护范围之内,在此不予赘述。
[0090] 相比现有技术,本发明的优势在于:
[0091] 1)通过第一特征库和第二特征库依次识别镜像数据流是否为攻击流量,减少攻击流量的告警,同时由于第一特征库为本地特征库而第二特征库为开源特征库,第一特征库先于第二特征库进行镜像数据流的识别,减少与开源的第二特征库通过网络交互的镜像数据流,增加系统对于攻击流量的识别效率,减少系统性能压力;
[0092] 2)通过第二特征库与第一特征库中的特征去重,进一步减少在第二特征库的不必要的重复的匹配操作,进而减少与开源的第二特征库的网络交互,减少系统性能压力;
[0093] 3)第二特征库中的第二类特征由一开源、分布式计算机系统维护,可进行实时处理,提升攻击流量特征库更新的实时性;
[0094] 4)采用测试环境进行测试,确保在不影响生产业务的同时,最大限度实现攻击流量的验证;
[0095] 5)在测试环境和/或生产环境中进行登录,维护镜像数据流的会话生命周期;
[0096] 6)在攻击流量的识别过程中进行误报过滤,减少告警的同时进一步减少系统性能压力;
[0097] 7)利用非攻击特征流量数据库储存具有非攻击特征的镜像数据流,便于后续回溯操作;以及
[0098] 8)在输出时显示不同的信息,以便提供更多识别验证信息供人工或后续进一步处理,进一步减少误报率。
[0099] 综上所述,本发明在最大限度减少对生产系统影响的同时,精准发现外部利用成功的漏洞,并通过实时验证的方式显示出来,且操作灵活,可针对恶意攻击请求分类匹配,也可在漏洞复测时指定多种验证动作,部分漏洞可通过架构层面的配置直接处理,无需重放数据包,进一步减少对系统的影响,同时操作人员不再需要对每条告警逐一处理,仅需关注经过验证模块处理后的结果,更加提升人员效率。
[0100] 通过以上的实施方式的描述,本领域的技术人员易于理解,本公开实施例可以通过硬件实现,也可以通过软件结合必要的硬件的方式来实现。因此,本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
[0101] 本领域技术人员可以理解,附图只是示例实施方式的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。
[0102] 本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0103] 以上具体地示出和描述了本发明的示例性实施方式。应该理解,本发明不限于所公开的实施方式,相反,本发明意图涵盖包含在所附权利要求范围内的各种修改和等效置换。