基于nginx的检测及防护CC攻击的系统及方法与流程

基于nginx的检测及防护cc攻击的系统及方法

技术领域

1.本公开涉及网络安全技术领域,具体而言,涉及一种基于nginx的检测及防护cc攻击的系统及方法。

2.cc全称为challenge collapsar,意为“挑战黑洞”,是应用层ddos(分布式拒绝服务)的一种。cc攻击通过模拟大量用户连续访问需要消耗大量服务器资源的页面(如访问数据库应用或需要进行大量统计的应用),导致web服务器和数据库服务器的cpu、io利用率飙升,直至服务器资源被耗尽,无法再对正常的web服务请求进行响应,形成拒绝服务攻击。由于cc攻击模拟的是正常用户访问,以少数僵尸机即可引发目标服务器的性能瘫痪,阻断正常用户访问,因此cc攻击具有很强的伪装性,难以被检测发现,传统安全防御方法不能有效抵御cc攻击。

3.在传统安全防御方法中,可对所有的请求源IP进行统计并计算其请求速率,进而对源ip(即配置黑白名单)进行限制,对源ip的连接数进行限制。但如今大多数cc攻击通常是通过大量傀儡机对被攻击的服务器发起请求,当被控制的傀儡机达到一定数量时,傀儡机发起请求的ip可各不相同,导致黑白名单策略很难奏效。此外,当傀儡机ip发送请求数不超过ip连接数阀值时,设置ip连接数阀值策略也很容易被绕过;当傀儡机ip的请求速率低于请求速率阀值且发向各网站的各个url的请求速率不固定时,设置一个适合网站内所有url的ip请求速率阈值是不现实的。

4.由于cc攻击时的用户请求数据量非常大,导致提取攻击特征比较困难,故而无法通过分析cc攻击特征,进而在防火墙设备上配置符合攻击特征的ip黑名单策略阻断其对网站的访问。

5.在传统安全防御方法中,还可采用token的方式进行防护。具体而言,为每个访问者定义一个token,保存在cookies中。用户访问时,必须要带有正确的token才可以访问服务器。客户端如果是一个正常的浏览器,那么就会支持http头中的set cookie和302重定向指令,将带上正确的token再次访问页面,服务器检测到正确的token,就会放行。用户后续的http请求都会带有这个token,可以正常访问页面。但采用token的方式需要对站点服务器进行改造,修改业务代码,增加了维护成本。同时,由于cc攻击访问的是需要消耗大量服务器资源的页面,但其本身只需要通过控制少量服务器,因此部分cc攻击支持设置cookie,这样也就检测不出来。

6.因此,需要一种可以快速检测出cc攻击、不需要ddos防护设备、成本低的基于nginx的检测及防护cc攻击的系统及方法。

7.有鉴于此,本公开提供一种基于nginx的检测及防护cc攻击的系统及方法。根据本公开的一方面,提出一种基于nginx的检测及防护cc攻击的系统,该系统包括:响应慢日志

增加模块,用于在nginx处增加响应慢日志,所述响应慢日志的信息项构成包括日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段;nginx配置模块,用于配置请求响应时间差阈值及日志上传协议;响应慢日志生成模块,用于基于响应慢日志的信息项构成以及请求响应时间差阈值以将请求响应时间差超过请求响应时间差阈值的http请求生成响应慢日志;响应慢日志传输模块,用于将所述响应慢日志采用所述日志上传协议进行上传;cc攻击分析平台,用于实时接收所述响应慢日志,以及对所接收到的响应慢日志进行分析以检测出cc攻击ip,以将所述cc攻击ip下发至fw设备的黑名单中防护cc攻击。

8.根据本公开的基于nginx的检测及防护cc攻击的系统,其中,所述响应慢日志生成模块采用syslog生成响应慢日志。

9.根据本公开的基于nginx的检测及防护cc攻击的系统,其中,所述nginx配置模块配置日志上传协议为upd协议。

10.根据本公开的基于nginx的检测及防护cc攻击的系统,其中,所述cc攻击分析平台在对所接收到的响应慢日志进行分析时,所述cc攻击分析平台接收用户配置的单位时间内用户ip请求数阈值,并基于单位时间内用户ip请求数阈值检测出单位时间内用户ip请求数大于所述单位时间内用户ip请求数阈值的ip,若所述ip不在白名单内,则判断所述ip为cc攻击ip并将所述ip加入黑名单。

11.根据本公开的基于nginx的检测及防护cc攻击的系统,其中,所述cc攻击分析平台通过webservice或者restful接口调用所述fw设备的黑名单接口,将所述cc攻击ip加入所述fw设备的黑名单。

12.根据本公开的基于nginx的检测及防护cc攻击的系统,其还包括:所述cc攻击分析平台在对所接收到的响应慢日志进行分析时,计算单位时间内url响应时间并对所述单位时间内url响应时间进行排名。

13.根据本公开的基于nginx的检测及防护cc攻击的系统,其还包括:所述cc攻击分析平台在对所接收到的响应慢日志进行分析后,将响应慢日志、针对所述响应慢日志计算出的所述单位时间内用户ip请求数及其排名、所述单位时间内url响应时间及其排名进行数据的web可视化。

14.本公开的另一方面提供一种基于nginx的检测及防护cc攻击的方法,其包括:增加响应慢日志,所述响应慢日志的信息项构成包括日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段;配置请求响应时间差阈值及日志上传协议;基于响应慢日志的信息项构成以及请求响应时间差阈值以将请求响应时间差超过请求响应时间差阈值的http请求生成响应慢日志;将所述响应慢日志采用所述日志上传协议进行上传;实时接收所述响应慢日志,以及对所接收到的响应慢日志进行分析以检测出cc攻击ip,以将所述cc攻击ip下发至fw设备的黑名单中防护cc攻击。

15.根据本公开的基于nginx的检测及防护cc攻击的方法,其中,在生成响应慢日志时,采用syslog生成响应慢日志。

16.根据本公开的基于nginx的检测及防护cc攻击的方法,其中,在配置日志上传协议时,配置日志上传协议为upd协议。

17.根据本公开的基于nginx的检测及防护cc攻击的方法,其中,在对所接收到的响应

慢日志进行分析时,接收用户配置的单位时间内用户ip请求数阈值,并基于单位时间内用户ip请求数阈值检测出单位时间内用户ip请求数大于所述单位时间内用户ip请求数阈值的ip,若所述ip不在白名单内,则判断所述ip为cc攻击ip并将所述ip加入黑名单。

18.根据本公开的基于nginx的检测及防护cc攻击烦人方法,其中,通过webservice或者restful接口调用所述fw设备的黑名单接口,将所述cc攻击ip加入所述fw设备的黑名单。

19.根据本公开的基于nginx的检测及防护cc攻击的方法,其还包括:在对所接收到的响应慢日志进行分析时,计算单位时间内url响应时间并对所述单位时间内url响应时间进行排名。

20.根据本公开的基于nginx的检测及防护cc攻击的方法,其还包括:在对所接收到的响应慢日志进行分析后,将响应慢日志、针对所述响应慢日志计算出的所述单位时间内用户ip请求数及其排名、所述单位时间内url响应时间及其排名进行数据的web可视化。

21.综上所述,采用本公开的基于nginx的检测及防护cc攻击的系统及方法,在nginx处增加一种http响应慢日志,对请求时间响应时间差超过阈值时间的响应慢日志上报到cc攻击分析平台,其通过阈值大小可过滤掉绝大多数大量无效的http请求。cc攻击分析平台在接收到响应慢日志后对其进行统计分析,基于统计出的单位时间内用户请求ip数,将超过用户配置的单位时间内用户请求ip数阈值的http请求ip在fw设备的白名单中进行查找,若不在白名单中则判断为是cc攻击ip。cc攻击分析平台和fw联动,通过webservice或者restful接口调用fw设备的黑名单接口,将cc攻击ip加入fw黑名单,阻断其对web服务器的访问,从而保护web服务器。本公开的基于nginx的检测及防护cc攻击的系统及方法,可以快速检测出cc攻击对象,其防护攻击不需要专用硬件,大大降低了成本;另外通过统计单位时间内url响应时间及其top排名,为用户提高程序性能提供依据,从而提高抗cc攻击的能力。

22.应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

23.通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

24.图1所示的是本公开实施例的基于nginx的检测和防护cc攻击的系统的应用场景类比图。

25.图2所示的是根据本公开实施例的基于nginx的检测和防护cc攻击的系统的原理图。

26.图3所示的是根据本公开实施例的基于nginx的检测及防护cc攻击的方法的流程示意图。

具体实施方式

27.现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本公开将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示

相同或类似的部分,因而将省略对它们的重复描述。

28.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、系统、实现或者操作以避免模糊本公开的各方面。

29.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

30.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

31.本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本公开所必须的,因此不能用于限制本公开的保护范围。

32.nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,其特点是占有内存少,并发能力强,在当今社会的互联网网站建设中应用广泛。图1所示的是本公开实施例的基于nginx的检测和防护cc攻击的系统的应用场景类比图。如图1所示,如a.com域名下面有子域名:finance.a.com、marketing.a.com、product.a.com。在进行网站建设时采用nginx作为反向代理服务器,即当nginx反向代理服务器接收到面向域名为a.com的访问请求时,将用户请求代理转发至finance.a.com、marketing.a.com或product.a.com站点。

33.由于cc攻击非常消耗资源,导致cc攻击中的http请求时间与正常请求中的http请求时间相比,其相应时间变的更长。本公开实施例的基于nginx的检测和防护cc攻击的系统,通过在nginx代码开源的基础上增加一种响应慢日志,对超过阈值时间的响应慢日志上报到cc攻击分析平台,cc攻击分析平台对响应慢日志进行统计汇总分析,快速检测出cc攻击ip;当cc攻击分析平台检测出cc攻击ip时,将cc攻击ip下发到fw设备。

34.图2所示的是根据本公开实施例的基于nginx的检测和防护cc攻击的系统的原理图。

35.如图2所示,本公开实施例的基于nginx的检测和防护cc攻击的系统包括响应慢日志增加模块202、nginx配置模块204、响应慢日志生成模块206、响应慢日志传输模块208和cc攻击分析平台210。

36.其中,响应慢日志增加模块202,用于在nginx处增加响应慢日志,所述响应慢日志的信息项构成包括日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段。其中,日志类型字段的取值为响应慢日志,客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段的取值为http请求的相关信息。

37.nginx配置模块204,用于配置请求响应时间差阈值及日志上传协议。更具体的,可通过nginx配置请求响应时间差阈值,使得请求响应时间差超过请求响应时间差阈值的请求或者未获得响应的http请求生成日志。从中可知,通过配置请求响应时间差阈值是可以

调整所生成的日志数量。

38.响应慢日志生成模块206,用于基于响应慢日志的信息项构成以及请求响应时间差阈值生成响应慢日志。更具体的,对于请求响应时间差超过请求响应时间差阈值的http请求,或者未获得响应的http请求,基于响应慢日志的信息项构成生成响应慢日志。

39.响应慢日志传输模块208,用于将所述响应慢日志采用所述日志上传协议进行上传。

40.cc攻击分析平台208,用于实时接收所述响应慢日志,以及对所接收到的响应慢日志进行分析以检测出cc攻击ip,以将所述cc攻击ip下发至fw设备的黑名单中防护cc攻击。

41.根据本公开实施例的基于nginx的检测及防护cc攻击系统,所述响应慢日志生成模块采用syslog生成响应慢日志。

42.根据本公开实施例的基于nginx的检测及防护cc攻击系统,所述nginx配置模块配置日志上传协议为upd协议,可充分利用udp协议发送及时、性能高的优点,避免影响nginx反向代理性能。

43.根据本公开实施例的基于nginx的检测及防护cc攻击系统,所述cc攻击分析平台通过webservice或者restful接口调用所述fw设备的黑名单接口,将所述cc攻击ip加入所述fw设备的黑名单。fw设备接收到cc攻击分析平台的下发的黑名单后,阻断其对web服务器的访问,从而保护web服务器。

44.可选择地,在本公开实施例的基于nginx的检测及防护cc攻击系统中,所述cc攻击分析平台在对所接收到的响应慢日志进行分析时,所述cc攻击分析平台接收用户配置的单位时间内用户ip请求数阈值,并基于单位时间内用户ip请求数阈值检测出单位时间内用户ip请求数大于所述单位时间内用户ip请求数阈值的ip,若所述ip不在白名单内,则判断所述ip为cc攻击ip并将所述ip加入黑名单。

45.更具体的,cc攻击分析平台启动syslog日志监听,实时分析nginx上报的响应慢日志,对于接收到的响应慢日志,解析其所包含的日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段,保存到数据库进行存储。cc攻击分析平台统计单位时间内用户ip请求数,对所述单位时间内用户ip请求数进行top排名,并与用户配置的单位时间内用户ip请求数阈值进行对比,对于单位时间内用户ip请求数超过单位时间内用户ip请求数阈值的ip,首先根据所述ip在fw设备中的白名单里面查找,如果不在白名单内,则判断为所述ip为cc攻击ip,将所述ip加入到fw设备中的黑名单中。

46.可选择地,在本公开实施例的基于nginx的检测及防护cc攻击系统中,所述cc攻击分析平台在对所接收到的响应慢日志进行分析时,计算单位时间内url响应时间并对所述单位时间内url响应时间进行排名。通过统计单位时间内url响应时间top排名,为用户优化程序提供依据,从而提升程序性能,进而提高程序抗cc攻击的能力。

47.可选择地,在本公开实施例的基于nginx的检测及防护cc攻击系统中,所述cc攻击分析平台在对所接收到的响应慢日志进行分析后,将响应慢日志、针对所述响应慢日志计算出的所述单位时间内用户ip请求数及其排名、所述单位时间内url响应时间及其排名进行数据的web可视化。具体而言,用户可以通过浏览器访问cc攻击分析平台,实时查看响应慢日志及针对所述响应慢日志的明细统计报表。

48.图3所示的是根据本公开实施例的基于nginx的检测及防护cc攻击的方法的流程示意图。如图3所示,在步骤s302中,在nginx处增加响应慢日志,所述响应慢日志的信息项构成包括日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段。

49.在步骤s304中,配置请求响应时间差阈值及日志上传协议。

50.在步骤s306处,判断是否请求响应时间差超过请求响应时间差阈值。

51.在步骤s306中判断是否http请求响应时间差超过请求响应时间差阈值的结果为“是”时进入步骤s308。在步骤s308中,生成并将所述日志通过日志上传协议发送到cc攻击分析平台。

52.在步骤s310中,cc攻击分析平台对所接收到的响应慢日志进行分析检测,以将检测出的cc攻击ip下发至fw设备的黑名单中防护cc攻击。

53.根据本公开实施例的基于nginx的检测及防护cc攻击方法,其中在生成响应慢日志时,采用syslog生成响应慢日志。

54.根据本公开实施例的基于nginx的检测及防护cc攻击方法,其中在配置日志上传协议时,配置日志上传协议为upd协议。

55.根据本公开实施例的基于nginx的检测及防护cc攻击方法,其中在对所接收到的响应慢日志进行分析时,接收用户配置的单位时间内用户ip请求数阈值,并基于单位时间内用户ip请求数阈值检测出单位时间内用户ip请求数大于所述单位时间内用户ip请求数阈值的ip,若所述ip不在白名单内,则判断所述ip为cc攻击ip并将所述ip加入黑名单。

56.根据本公开实施例的基于nginx的检测及防护cc攻击方法,其中通过webservice或者restful接口调用所述fw设备的黑名单接口,将所述cc攻击ip加入所述fw设备的黑名单。

57.可选择地,在本公开实施例的基于nginx的检测及防护cc攻击方法中,在对所接收到的响应慢日志进行分析时,计算单位时间内用户ip请求数并对所述单位时间内用户ip请求数进行排名,以及计算单位时间内url响应时间并对所述单位时间内url响应时间进行排名。

58.可选择地,在本公开实施例的基于nginx的检测及防护cc攻击方法中,在对所接收到的响应慢日志进行分析后,将响应慢日志、针对所述响应慢日志计算出的所述单位时间内用户ip请求数及其排名、所述单位时间内url响应时间及其排名进行数据的web可视化。

59.综上所述,采用本公开的基于nginx的检测及防护cc攻击的系统及方法,在nginx处增加一种http响应慢日志,对请求时间响应时间差超过阈值时间的响应慢日志上报到cc攻击分析平台,其通过阈值大小可过滤掉绝大多数大量无效的http请求。cc攻击分析平台在接收到响应慢日志后对其进行统计分析,基于统计出的单位时间内用户请求ip数,将超过用户配置的单位时间内用户请求ip数阈值的http请求ip在fw设备的白名单中进行查找,若不在白名单中则判断为是cc攻击ip。cc攻击分析平台和fw联动,通过webservice或者restful接口调用fw设备的黑名单接口,将cc攻击ip加入fw黑名单,阻断其对web服务器的访问,从而保护web服务器。本公开的基于nginx的检测及防护cc攻击的系统及方法,可以快速检测出cc攻击对象,其防护攻击不需要专用硬件,大大降低了成本;另外通过统计单位时间内url响应时间及其top排名,为用户提高程序性能提供依据,从而提高抗cc攻击的能力。

60.总体而言,本公开的基于nginx的检测和防护cc攻击的方法及装置,由于cc攻击非常消耗资源,导致请求时间和正常请求相比,其相应时间变的更长,故通过在nginx增加一种http响应慢日志,对超过阈值时间的响应慢日志上报到cc攻击分析平台,cc攻击分析平台对http响应慢日志进行统计汇总分析,快速检测出cc攻击ip;当cc攻击分析平台检测出cc攻击ip时,将攻击ip下发到fw设备。一般fw设备支持黑白名单特性,其支持提供webservice或者restful接口进行配置。cc攻击分析平台可以通过webservice或者restful接口调用fw设备的黑名单接口,将cc攻击ip加入fw黑名单,阻断其对服务器的访问,从而保护服务器。具体而言,在nginx开源代码的基础上,增加一种http响应慢日志,其记录请求响应时间差,支持记录包含日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差等字段。nginx配置文件配置响应慢日志时间阈值,可以通过时间阈值调整日志数量。对于请求响应时间差超过时间阈值的请求,或者没有响应的,生成响应慢日志,并通过syslog协议立即上传到日志分析管理平台。http响应慢日志利用syslog以udp协议发送方式,充分利用udp协议发送及时、性能高的优点,避免影响nginx反向代理性能。日志分析管理平台启动syslog日志监听,实时分析nginx上报的响应慢日志,对于响应慢日志,解析出日志类型、客户端ip、url、host、refer、user-agent、状态码、字节数、请求时间、请求响应时间差字段,保存到数据库进行存储。cc攻击分析平台统计单位时间内用户ip请求数top排名,与用户配置的请求数阈值进行对比,对于超过阈值的,首先根据ip在白名单里面查找,如果不在白名单里面,则判断为攻击ip,加入黑名单。cc攻击分析平台通过webservice或者restful接口调用fw设备的黑名单接口,将cc攻击ip加入fw黑名单。另外通过统计单位时间内url响应时间top排名,提供给用户,为程序进行优化提供依据,从而提升程序性能,从而提高抗cc攻击的能力。另外日志分析管理平台支将单位时间内用户ip请求数top排名、单位时间内url请求数top排名等多个维度的统计数据可视化,通过web呈现,用户可以通过浏览器访问cc攻击分析平台进行访问,实时查看响应慢日志明细以及统计报表。fw设备接收到cc攻击分析平台的下发的黑名单,阻断其对服务器的访问,从而保护web服务器。因此,本公开的基于nginx的检测和防护cc攻击的方法及装置通过在nginx增加一种http响应慢日志,对超过阈值时间的响应慢日志上报到cc攻击分析平台,从而过滤掉绝大多数大量无效的http请求,cc攻击分析平台实时对http响应慢日志进行汇总分析,依据单位时间内用户ip请求数top排名分析出cc攻击ip,cc攻击分析平台和fw联动,通过webservice或者restful接口调用fw设备的黑名单接口,将cc攻击ip加入fw黑名单,阻断其对服务器的访问,从而保护web服务器。这种方法可以快速检测出cc攻击对象,其防护攻击不需要专用硬件,大大降低了成本。另外还可以根据单位时间内url响应时间top排名为程序进行优化提供参考,提升程序性能,从而提高抗cc攻击的能力。

61.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。

62.因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含

实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。

63.还需要指出的是,在本公开的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

64.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

原文链接:https://www.xjishu.com/zhuanli/62/202210295629.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/22086

(0)
上一篇 2023年10月28日
下一篇 2023年10月28日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml