CN113987478A - 基于nginx服务器检测和防护CC攻击的方法及系统 - Google Patents

基于nginx服务器检测和防护CC攻击的方法及系统 Download PDF

Info

Publication number
CN113987478A
CN113987478A CN202111270079.6A CN202111270079A CN113987478A CN 113987478 A CN113987478 A CN 113987478A CN 202111270079 A CN202111270079 A CN 202111270079A CN 113987478 A CN113987478 A CN 113987478A
Authority
CN
China
Prior art keywords
attack
response
log
response slow
slow log
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111270079.6A
Other languages
English (en)
Inventor
汪庆权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202111270079.6A priority Critical patent/CN113987478A/zh
Publication of CN113987478A publication Critical patent/CN113987478A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及一种基于nginx服务器检测和防护CC攻击的系统和方法。该系统包括:nginx服务器配置模块,该nginx服务器配置模块通过nginx服务器配置文件在该系统中配置响应慢日志时间阈值、上传协议;HTTP响应慢日志生成模块,用于对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;代理服务模块,其用于按照所述上传协议传送所述响应慢日志,响应网络对所述响应慢日志的分析来解析出CC攻击IP并对所解析出的CC攻击IP进行处理;以及CC攻击分析平台,用于根据请求的特征分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理。

Description

基于nginx服务器检测和防护CC攻击的方法及系统
技术领域
本公开涉及基于nginx服务器检测和防护CC攻击的方法及系统。更具体地说,本公开涉及通过HTTP响应慢日志过滤掉绝大多数大量无效的HTTP请求以快速检测出CC攻击IP的基于nginx服务器检测和防护CC攻击的方法和系统。
背景技术
DDOS分布式拒绝服务的一种,CC攻击模拟大量用户不停地访问那些需要消耗大量服务器资源的页面,耗尽服务器资源,如访问数据库应用及大量统计的应用,导致WEB服务器、数据库服务器CPU、IO利用率飙升,使得Web服务器无法对正常的Web服务请求进行响应,从而造成拒绝服务攻击。其具有很强的伪装性,其访问行为模拟正常用户访问特征,以少数僵尸机即可引发攻击目标服务器性能瘫痪,阻断正常用户访问,因此,CC攻击难以被检测发现,传统安全防御方法不能有效抵御CC攻击。
现有技术方案检测和防护CC攻击的方法包括限制源IP即配置黑白名单、限制源IP的连接数、对所有的请求源IP进行统计并计算其请求速率;分析CC攻击特征,将CC攻击特征IP的加入黑名单,如在防火墙设备上配置黑名单,阻断其对网站的访问;通过cookie的方式,为每个访问者定义一个token,保存在Cookies中,用户访问时,必须要带有正确的token才可以访问服务器。当用户第一次访问时,会检测到用户的Cookies里面并没有这个token,则返回一个302重定向,目标地址为当前页面,同时在返回的HTTP头中加入set cookies字段,对Cookies进行设置,使用户带有这个token。客户端如果是一个正常的浏览器,那么就会支持HTTP头中的set cookie和302重定向指令,将带上正确的token再次访问页面,服务器检测到正确的token,就会放行,用户后续的HTTP请求都会带有这个token,可以正常访问页面。
然而,如今大多数CC攻击通常是通过大量的傀儡机对被攻击的服务器发起请求。当被控制的傀儡机达到一定数量时,这些傀儡机发起请求的IP各不相同,黑白名单策略很难奏效;这些傀儡机IP发送的请求数并不高,不会超过IP连接数的阀值,因此配置连接数阀值手段也很容易被绕过;这些傀儡机IP的请求速率也不一定很高,低于请求速率的阀值、发向每个网站的每个URL的请求速率是不固定的,设置一个IP请求速率阈值,使之适合网站内所有的统一资源定位符(Uniform ResourceLocator,简称URL)是不现实的。所以,通过限制源IP即配置黑白名单、限制源IP的连接数、对所有的请求源IP进行统计并计算其请求速率,来实现检测和防护CC攻击难度太大。
另外,通过分析CC攻击特征,将CC攻击特征IP的加入黑名单来阻断其对网站的访问,由于用户请求数据量非常大,提取特征比较困难。所以这种阻断黑客其对网站的访问的方法也不容易实现。
而通过cookie的方式,为每个访问者定义一个token,保存在Cookies中,用户访问时,必须要带有正确的token才可以访问服务器这种检测和防护CC攻击的方法,需要站点服务器进行改造,修改业务代码,增加维护成本。同时,由于CC攻击访问的是需要消耗大量服务器资源的页面,通过控制少量服务器,部分CC攻击支持设置cookie,这样也就检测不出来。
因此,需要可以快速检测出CC攻击IP、不需要专用DDOS设备防护、不需要站点服务器进行改造以增加业务代码的检测和防护CC攻击的技术方案。
发明内容
本公开为了解决上述现有技术问题而提出基于nginx服务器检测和防护CC攻击的方法及系统,其可以快速检测出CC攻击IP并实现对基于nginx服务器反向代理的WEB服务器的可靠防护。
根据本公开的一个方面,提供一种基于nginx服务器检测和防护CC攻击的系统,该系统包括:nginx服务器配置模块,该nginx服务器配置模块通过nginx服务器配置文件在该系统中配置响应慢日志时间阈值、上传协议;HTTP响应慢日志生成模块,用于对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;代理服务模块,其用于按照所述上传协议传送所述响应慢日志,响应网络对所述响应慢日志的分析来解析出CC攻击IP并对所解析出的CC攻击IP进行处理;以及CC攻击分析平台,用于根据请求的特征分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理。
根据本公开的一个实施例,所述上传协议可以为syslog协议。
根据本公开的一个实施例,所述HTTP响应慢日志生成模块可以记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段。
根据本公开的一个实施例,所述代理服务模块可以将所述CC攻击分析平台下发的黑名单规则进行转换,在linux平台下转换为iptables规则,而在windows平台下转换为wfp规则,并将动作设置为drop,从而在linux系统下利用iptables下对CC攻击IP进行过滤防护,而在windows系统下利用wfp规则对攻击IP进行过滤防护。
根据本公开的一个实施例,所述代理服务模块可以在发生异常时自动重启,建立与CC攻击分析平台连接。
根据本公开的一个实施例,所述代理服务模块可以与所述CC攻击分析平台保持心跳以检测存活,并且如果代理服务模块超过一定时间没有心跳,所述CC攻击分析平台发送告警日志通知管理员处理。
根据本公开的一个实施例,所述CC攻击分析平台可以对于复杂的攻击,提供响应慢日志明细以及各字段统计分析报表,为用户人工分析CC攻击IP提供依据。
根据本公开的一个实施例,所述CC攻击分析平台可以对于响应慢日志,解析出包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段并保存到数据库,统计单位时间内HTTP响应慢日志的数量,当超过预设的阈值时启动CC攻击防护,而当低于所述预设的阈值时停止CC攻击防护。
根据本公开的一个实施例,所述预设的阈值可参考攻击分析平台HTTP响应慢日志的数量趋势图配置。
根据本公开的一个实施例,当单位时间内HTTP响应慢日志的数量超过预设的阈值时通过文字方式通知管理员存在CC攻击,以便及时处理。
根据本公开的一个实施例,当启动CC攻击防护时,CC攻击分析平台将当前HTTP响应慢日志各字段和系统内置的黑白名单库中的HTTP响应慢日志各字段进行比较,同时也将HTTP响应慢日志各字段与系统内置的标准浏览器、正常用户访问HTTP响应慢日志各字段组合特征库进行对比,从而及时筛选出攻击IP地址并将筛选出的攻击特征添加到黑名单特征库。
根据本公开的一个实施例,所述各字段统计分析报表包括统计各字段TOP排名、HTTP请求字段数量以及与浏览器发起的标准HTTP请求差异对比。
根据本公开的另一方面,提供一种基于nginx服务器检测和防护CC攻击的方法,该方法包括以下步骤:在开源nginx服务器基础上构建基于nginx服务器检测和防护CC攻击的系统,该系统包括:nginx服务器配置模块,该nginx服务器配置模块通过nginx服务器配置文件在该系统中配置响应慢日志时间阈值、上传协议;HTTP响应慢日志生成模块,用于对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;代理服务模块,其用于按照所述上传协议传送所述响应慢日志,响应网络对所述响应慢日志的分析来解析出CC攻击IP并对所解析出的CC攻击IP进行处理;以及CC攻击分析平台,用于根据请求的特征分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理;由nginx服务器配置模块通过nginx服务器配置文件在该基于nginx服务器检测和防护CC攻击的系统中配置响应慢日志时间阈值、上传协议;利用HTTP响应慢日志生成模块对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;利用代理服务模块建立与CC攻击分析平台的通信连接,然后按照所述上传协议将所述响应慢日志上报到CC攻击分析平台;并且利用CC攻击分析平台,根据请求的特征,对响应慢日志生成模块上报的HTTP响应慢日志进行分析,以分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述上传协议为syslog协议。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述生成响应慢日志的步骤包括记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述解析出CC攻击IP并对所解析出的CC攻击IP进行处理的步骤包括对下发的黑名单规则进行转换,在linux平台下转换为iptables规则,而在windows平台下转换为wfp规则,并将动作设置为drop,从而在linux系统下利用iptables下对CC攻击IP进行过滤防护,而在windows系统下利用wfp规则对攻击IP进行过滤防护。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述代理服务模块在发生异常时自动重启,建立与CC攻击分析平台连接。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述代理服务模块与所述CC攻击分析平台保持心跳以检测存活,并且如果代理服务模块超过一定时间没有心跳,所述CC攻击分析平台发送告警日志通知管理员处理。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述CC攻击分析平台对于复杂的攻击,提供响应慢日志明细以及各字段统计分析报表,为用户人工分析CC攻击IP提供依据。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述CC攻击分析平台对于响应慢日志,解析出包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段并保存到数据库,统计单位时间内HTTP响应慢日志的数量,当超过预设的阈值时启动CC攻击防护,而当低于所述预设的阈值时停止CC攻击防护。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述预设的阈值可参考攻击分析平台HTTP响应慢日志的数量趋势图配置。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中当单位时间内HTTP响应慢日志的数量超过预设的阈值时通过文字方式通知管理员存在CC攻击,以便及时处理。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中当启动CC攻击防护时,CC攻击分析平台将当前HTTP响应慢日志各字段和系统内置的黑白名单库中的HTTP响应慢日志各字段进行比较,同时也将HTTP响应慢日志各字段与系统内置的标准浏览器、正常用户访问HTTP响应慢日志各字段组合特征库进行对比,从而及时筛选出攻击IP地址并将筛选出的攻击特征添加到黑名单特征库。
根据本公开的基于nginx服务器检测和防护CC攻击的方法,其中所述各字段统计分析报表包括统计各字段TOP排名、HTTP请求字段数量以及与浏览器发起的标准HTTP请求差异对比。
本公开的上述基于nginx的检测和防护CC攻击的方法及系统,通过HTTP响应慢日志过滤掉绝大多数大量无效的HTTP请求,其可以快速检测出CC攻击IP,在linux系统利用iptables下发给内核对CC攻击IP进行过滤防护,windows系统利用wfp规则对攻击IP进行过滤防护。其防护攻击不需要专DDOS硬件,也不需要和FW等网络设备联动,其大大降低了成本及和其他产品依赖,对于HTTPS访问的CC攻击也适用,而由于HTTPS加密访问,一般DDOS硬件不具备HTTPS访问的检测能力,大大提升了检测能力。
附图说明
通过参照附图详细描述其示例实施例,本公开的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是示出通过nginx服务器做反向代理搭建的网络结构示意图;
图2示出了根据本公开的基于nginx服务器检测和防护CC攻击的系统的框图;以及
图3示出了根据本公开的基于nginx服务器检测和防护CC攻击的方法的流程图。
具体实施方式
以下将描述本公开的具体实施方式,需要指出的是,在这些实施方式的具体描述过程中,为了进行简明扼要的描述,本说明书不可能对实际的实施方式的所有特征均作详尽的描述。应当可以理解的是,在任意一种实施方式的实际实施过程中,正如在任意一个工程项目或者设计项目的过程中,为了实现开发者的具体目标,为了满足系统相关的或者商业相关的限制,常常会做出各种各样的具体决策,而这也会从一种实施方式到另一种实施方式之间发生改变。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本公开公开的内容相关的本领域的普通技术人员而言,在本公开揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本公开的内容不充分。
除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本公开所属技术领域内具有一般技能的人士所理解的通常意义。本公开专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”或者“一”等类似词语并不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的要素或者物件涵盖出现在“包括”或者“包含”后面列举的要素或者物件及其等同要素,并不排除其他要素或者物件。
图1是示出通过nginx服务器做反向代理搭建的网络结构示意图。在图1中,作为示例仅示出了一个A.COM主域名,在该主域名下仅有finance.A.com、marketing.A.com、product.A.com三个子域名。然而,本公开不限于图1这个示例,而是根据本公开的一个实施例,通过nginx服务器做反向代理搭建的网络可以包括多个主域名,每一个主域名可以包括任意个子域名。
在通过nginx服务器做反向代理搭建的网络中,nginx服务器将用户请求代理转发至finance.A.com、marketing.A.com、product.A.com站点。
总体上,根据本公开的基于nginx服务器检测和防护CC攻击的系统基于CC攻击非常消耗资源,导致请求时间变长的特征,通过在nginx服务器增加一种HTTP响应慢日志生成模块来生成超过阈值时间的响应慢日志,从而分析出CC攻击来源。
图2示出了根据本公开的基于nginx服务器检测和防护CC攻击的系统的框图。该系统通过在nginx服务器基础上添加HTTP响应慢日志生成模块210以及代理服务模块220而来,而且还包括nginx服务器配置模块230和CC攻击分析平台240。
由于nginx服务器是开源代码,所以可以直接在nginx开源代码的基础上,增加HTTP响应慢日志生成模块210、代理服务模块220、nginx服务器配置模块230和CC攻击分析平台240而形成根据本公开的基于nginx服务器检测和防护CC攻击的系统。
参考图2,根据本公开的一个实施例,在该基于nginx服务器的系统上,nginx服务器配置模块230通过nginx服务器配置文件在该基于nginx服务器的系统中配置响应慢日志时间阈值、上传协议等。
根据本公开的一个实施例,在该基于nginx服务器的系统上,一般配置通过syslog协议(作为上传协议)将响应慢日志(下文将详细描述)上传到CC攻击分析平台240,syslog协议以UDP协议发送方式,充分利用UDP协议发送及时、性能高的优点,避免影响nginx反向代理性能。
参考图2,根据本公开的一个实施例,HTTP响应慢日志生成模块210记录请求响应时间差,支持记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段。HTTP响应慢日志生成模块210根据所记录的数据,对于请求响应时间差超过响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志并上报到CC攻击分析平台240。
参考图2,根据本公开的一个实施例,代理服务模块220用于与CC攻击分析平台240通信,对CC攻击IP进行处理,例如代理服务模块220解析出攻击IP。
此外,代理服务模块220也支持将CC攻击分析平台240下发的黑名单规则进行转换,linux平台转换为iptables规则、windows平台会转换为wfp规则。如在linux平台,其将黑名单IP地址加入iptables input链,并将动作设置为drop,从而对服务器进行过滤防护。如“iptables-A INPUT-s 172.16.1.20-j DROP”表示将IP地址为172.16.1.20加入input链,动作设置为drop,这样当172.16.1.20访问nginx服务器时,都会被阻断。
另外,nginx代理服务模块220如果发生异常,会自动重启,建立和CC攻击分析平台240连接。nginx代理服务模块220也与CC攻击分析平台240保持心跳以检测存活。如果代理服务模块220超过60秒没有心跳,CC攻击分析平台240会发送告警日志通知管理员处理。
参考图2,根据本公开的一个实施例,CC攻击分析平台240对响应慢日志生成模块210上报的HTTP响应慢日志进行分析,根据请求特征分析出CC攻击IP,并自动将攻击的特征加入黑名单,对于复杂的攻击,提供慢日志明细以及各字段统计报表,为用户人工分析CC攻击IP提供依据。
具体来说,CC攻击分析平台240启动syslog日志监听,实时收取nginx上报的响应慢日志,对于响应慢日志,解析出各个字段,如日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段,保存到数据库中。
CC攻击分析平台240还统计单位时间内HTTP响应慢日志的数量,如果超过预设的阈值,那么启动CC攻击防护,此阈值可配置,具体配置数量可以参考攻击分析平台HTTP响应慢日志的数量趋势图配置。同时,当单位时间内HTTP响应慢日志的数量超过预设的阈值时,通过邮件、短信、微信消息等方式通知管理员存在CC攻击,以便管理员及时处理。另外当低于预设的阈值,停止CC攻击防护。
当启动CC攻击防护时,CC攻击分析平台240一方面将当前(请求)HTTP响应慢日志各字段和系统内置的黑白名单库中的HTTP响应慢日志各字段进行比较,同时也将HTTP响应慢日志字段和系统内置的标准浏览器、正常用户访问HTTP响应慢日志字段组合特征库进行对比,如比较HTTP响应慢日志各字段数量、顺序、必含字段、字段内容、字段内容长度等,从而及时筛选出攻击IP地址,将筛选出的攻击特征添加到黑名单特征库。另外对于复杂攻击,不好判断特征的,CC攻击分析平台240提供慢日志明细、HTTP请求字段统计分析报表,其包括统计各字段TOP排名、HTTP请求字段数量,和浏览器发起的标准HTTP请求差异对比等,为管理员处理CC攻击提供依据。
当通过程序或者管理员筛选出攻击IP地址后,其通过socket将攻击IP下发到nginx服务器上的代理服务模块220,以便代理服务模块220解析出攻击IP。
CC攻击分析平台240当检测出CC攻击IP时,将攻击IP通过socket发送给nginx服务器的代理服务模块220,以便代理服务模块220解析出攻击IP。对于代理服务模块220解析出的攻击IP,在linux系统下利用iptables对CC攻击IP进行过滤防护,在windows系统下利用wfp规则对攻击IP进行过滤防护。
图3示出了根据本公开的基于nginx服务器检测和防护CC攻击的方法的流程图。
根据本公开的一个实施例,根据本公开的基于nginx服务器检测和防护CC攻击的方法在步骤S310中,在开源nginx服务器基础上,通过增加图2所示的HTTP响应慢日志生成模块210、代理服务模块220、nginx服务器配置模块230和CC攻击分析平台240而形成如图2所示的根据本公开的基于nginx服务器检测和防护CC攻击的系统。
根据本公开的一个实施例,在步骤S320中,由nginx服务器配置模块230通过nginx服务器配置文件在该基于nginx服务器的系统中配置响应慢日志时间阈值、上传协议等。
根据本公开的一个实施例,在nginx服务器上,一般配置通过syslog协议(作为上传协议)将响应慢日志(下文将详细描述)上传到CC攻击分析平台240,syslog协议以UDP协议发送方式,充分利用UDP协议发送及时、性能高的优点,避免影响nginx反向代理性能。
根据本公开的一个实施例,在步骤S330中,利用HTTP响应慢日志生成模块210记录请求响应时间差,该HTTP响应慢日志生成模块210支持记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段。HTTP响应慢日志生成模块210根据所记录的数据,对于请求响应时间差超过响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志并在步骤S340中上报到CC攻击分析平台240。
根据本公开的一个实施例,在步骤S340中,利用代理服务模块220建立与CC攻击分析平台240的通信连接,然后将响应慢日志上报到CC攻击分析平台240。
接下来,在步骤S350中,利用CC攻击分析平台240对响应慢日志生成模块210上报的HTTP响应慢日志进行分析,根据请求特征分析出CC攻击IP,并自动将攻击的特征加入黑名单。对于复杂的攻击,提供慢日志明细以及各字段统计报表,为用户人工分析CC攻击IP提供依据。
具体来说,CC攻击分析平台240启动syslog日志监听,实时收取nginx上报的响应慢日志,对于响应慢日志,解析出各个字段,如日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段,保存到数据库中。
CC攻击分析平台240还统计单位时间内HTTP响应慢日志的数量,如果超过预设的阈值,那么启动CC攻击防护。此预设的阈值可配置,具体配置数量可以参考攻击分析平台HTTP响应慢日志的数量趋势图配置,同时通过邮件、短信、微信消息等方式通知管理员存在CC攻击,通知及时处理。另外当低于预设的阈值,停止CC攻击防护。
当启动CC攻击防护时,CC攻击分析平台240根据HTTP响应慢日志将HTTP各字段和系统内置的HTTP字段黑白名单库进行比较,同时也将请求字段和系统内置的标准浏览器、正常用户访问请求字段组合特征库进行对比,如比较请求字段数量、顺序、必含字段、字段内容、字段内容长度等,从而及时筛选出攻击IP地址,将筛选出的攻击特征添加到黑名单特征库。另外对于复杂攻击,不好判断特征的请求,CC攻击分析平台240提供慢日志明细、HTTP请求字段统计分析报表,其包括统计各字段TOP排名、HTTP请求字段数量,和浏览器发起的标准HTTP请求差异对比等,为管理员处理CC攻击提供依据。
当通过程序或者管理员筛检出攻击IP地址后,其通过socket将攻击IP下发到nginx服务器上的代理服务模块220。
在步骤S360中,利用代理服务模块220解析出攻击IP并将CC攻击分析平台240下发的黑名单规则进行转换,linux平台转换为iptables规则、windows平台会转换为wfp规则。对于代理服务模块220解析出的攻击IP,在linux系统下利用iptables下发给内核对CC攻击IP进行过滤防护,在windows系统下利用wfp规则对攻击IP进行过滤防护。如在linux平台,其将黑名单IP地址加入iptables input链,并将动作设置为drop,从而对服务器进行过滤防护。如“iptables-A INPUT-s 172.16.1.20-j DROP”表示将IP地址为172.16.1.20加入input链,动作设置为drop,这样当172.16.1.20访问nginx服务器时,都会被阻断。
本公开的上述基于nginx的检测和防护CC攻击的方法及系统,通过HTTP响应慢日志过滤掉绝大多数大量无效的HTTP请求,其可以快速检测出CC攻击IP,在linux系统利用iptables下发给内核对CC攻击IP进行过滤防护,windows系统利用wfp规则对攻击IP进行过滤防护。其防护攻击不需要专DDOS硬件,也不需要和FW等网络设备联动,其大大降低了成本及和其他产品依赖,对于HTTPS访问的CC攻击也适用,而由于HTTPS加密访问,一般DDOS硬件不具备HTTPS访问的检测能力,大大提升了检测能力。
总体而言,本发明提供了一种基于nginx的检测和防护CC攻击的方法及系统,由于CC攻击非常消耗资源,导致请求时间变长,故通过在nginx增加一种HTTP响应慢日志,对超过阈值时间的响应慢日志上报到CC攻击分析平台,CC攻击分析平台对HTTP响应慢日志进行分析,根据请求特征分析出CC攻击IP,并自动将攻击的特征加入黑名单,对于复杂的攻击,提供慢日志明细以及各字段统计报表,为用户人工分析CC攻击IP提供依据;另外nginx服务器开发部署一个agent服务程序,当CC攻击分析平台检测出CC攻击IP时,将攻击IP通过socket发送给nginx服务器agent程序,agent程序解析出攻击IP,linux系统利用iptables下发给内核对CC攻击IP进行过滤防护,windows系统利用wfp规则对攻击IP进行过滤防护。在nginx增加一种HTTP响应慢日志,对超过阈值时间的响应慢日志上报到CC攻击分析平台,其通过阈值大小可以过滤掉绝大多数大量无效的HTTP请求。CC攻击分析平台统计单位时间内HTTP响应慢日志的数量,如果超过预设的阈值,那么启动CC攻击防护,此阈值可配置,具体配置数量可以参考管理平台HTTP响应慢日志的数量趋势图配置。当低于预设的阈值,那么停止CC攻击防护CC攻击分析平台根据慢日志分析攻击特征,其和内置正常的浏览器、用户客户端发起的标准HTTP请求内置系统库进行特征比对,不仅仅比较单个字段,而且对请求字段组合进行对比,如比较请求字段数量、顺序、必含字段、字段内容、字段内容长度等,从而及时筛选出攻击IP地址,将筛选出的攻击特征添加到黑名单特征库。另外对于复杂攻击,不好判断特征的,管理员可以通过慢日志明细、慢日志字段统计报表、慢日志和正常HTTP请求差异对比等信息,为管理员手动处理CC攻击提供依据。CC攻击分析平台支持将攻击IP下发给nginx服务器上的agent程序,linux系统利用iptables规则下发给内核对CC攻击IP进行过滤防护,windows系统利用wfp规则对攻击IP进行过滤防护。相比较ddos防护设备,其对于HTTPS访问的CC攻击也适用,检测能力更强
在nginx开源代码的基础上,增加一种HTTP响应慢日志。另外开发一个agent程序部署在nginx服务器上。HTTP响应慢日志记录请求响应时间差,支持记录包含日志类型、客户端IP、method、url、host、refer、user-agent、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段。agent程序用于和CC攻击分析平台通信,对CC攻击IP进行处理。在nginx服务器上,通过nginx配置文件配置响应慢日志时间阈值、上传协议,对于请求响应时间差超过时间阈值的请求,或者没有响应的,生成响应慢日志;一般配置通过syslog协议上传到CC攻击分析平台,syslog协议以UDP协议发送方式,充分利用UDP协议发送及时、性能高的优点,避免影响nginx反向代理性能。CC攻击分析平台启动syslog日志监听,实时收取nginx上报的响应慢日志,对于响应慢日志,解析出各个字段,如日志类型、客户端IP、method、url、host、refer、user-agent、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差等字段,保存到数据库存储。CC攻击分析平台统计单位时间内HTTP响应慢日志的数量,如果超过预设的阈值,那么启动CC攻击防护,此阈值可配置,具体配置数量可以参考攻击分析平台HTTP响应慢日志的数量趋势图配置,同时通过邮件、短信、微信消息等方式通知管理员存在CC攻击,通知及时处理。另外当低于预设的阈值,停止CC攻击防护。
当启动CC攻击防护时,CC攻击分析平台根据HTTP响应慢日志一方面将HTTP各字段和系统内置的HTTP字段黑白名单库进行比较,同时也将请求字段和系统内置的标准浏览器、正常用户访问请求字段组合特征库进行对比,如比较请求字段数量、顺序、必含字段、字段内容、字段内容长度等,从而及时筛选出攻击IP地址,将筛选出的攻击特征添加到黑名单特征库。另外对于复杂攻击,不好判断特征的,CC攻击分析平台提供慢日志明细、HTTP请求字段统计分析报表,其包括统计各字段TOP排名、HTTP请求字段数量,和浏览器发起的标准HTTP请求差异对比等,为管理员处理CC攻击提供依据。当通过程序或者管理员筛选出攻击IP地址后,其通过socket将攻击IP发送到nginx服务器上的agent代理程序。nginx服务器上的agent程序,负责和CC攻击分析平台通信,支持将CC攻击分析平台下发的黑名单规则进行转换,linux平台转换为iptables规则、windows平台会转换为wfp规则。如在linux平台,其将黑名单IP地址加入iptables input链,并将动作甚至为drop,从而对服务器进行过滤防护。如“iptables-A INPUT-s 172.16.1.20-jDROP”表示将IP地址为172.16.1.20加入input链,动作设置为drop,这样当172.16.1.20访问nginx服务器时,都会被阻断。另外nginxagent程序如果发生异常,会自动重启,建立和CC攻击分析平台连接。其和CC攻击分析平台保持心跳以检测存活。如果agent程序超过60秒没有心跳,会发送告警日志通知管理员处理。
以上结合具体实施例描述了本公开的基本原理,但是需要指出的是,对本领域的普通技术人员而言,能够理解本公开的方法和系统的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本公开的说明的情况下运用他们的基本编程技能就能实现的。
因此,本公开的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本公开的目的也可以仅仅通过提供包含实现所述方法或者系统的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本公开,并且存储有这样的程序产品的存储介质也构成本公开。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
还需要指出的是,在本公开的系统和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (18)

1.一种基于nginx服务器检测和防护CC攻击的系统,该系统包括:
nginx服务器配置模块,该nginx服务器配置模块通过nginx服务器配置文件在该系统中配置响应慢日志时间阈值、上传协议;
HTTP响应慢日志生成模块,用于对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;
代理服务模块,其用于按照所述上传协议传送所述响应慢日志,响应网络对所述响应慢日志的分析来解析出CC攻击IP并对所解析出的CC攻击IP进行处理;以及
CC攻击分析平台,用于根据请求的特征分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理。
2.根据权利要求1所述的系统,其中,所述上传协议为syslog协议。
3.根据权利要求1所述的系统,其中,所述HTTP响应慢日志生成模块记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段。
4.根据权利要求1所述的系统,其中,所述代理服务模块将所述CC攻击分析平台下发的黑名单规则进行转换,在linux平台下转换为iptables规则,而在windows平台下转换为wfp规则,并将动作设置为drop,从而在linux系统下利用iptables下对CC攻击IP进行过滤防护,而在windows系统下利用wfp规则对攻击IP进行过滤防护。
5.根据权利要求3所述的系统,其中所述CC攻击分析平台对于复杂的攻击,提供响应慢日志明细以及各字段统计分析报表,为用户人工分析CC攻击IP提供依据。
6.根据权利要求5所述的系统,其中所述CC攻击分析平台对于响应慢日志,解析出包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段并保存到数据库,统计单位时间内HTTP响应慢日志的数量,当超过预设的阈值时启动CC攻击防护,而当低于所述预设的阈值时停止CC攻击防护。
7.根据权利要求6所述的系统,其中所述预设的阈值可参考攻击分析平台HTTP响应慢日志的数量趋势图配置。
8.根据权利要求6所述的系统,其中当单位时间内HTTP响应慢日志的数量超过预设的阈值时通过文字方式通知管理员存在CC攻击,以便及时处理。
9.根据权利要求6所述的系统,其中当启动CC攻击防护时,CC攻击分析平台将当前HTTP响应慢日志各字段和系统内置的黑白名单库中的HTTP响应慢日志各字段进行比较,同时也将HTTP响应慢日志各字段与系统内置的标准浏览器、正常用户访问HTTP响应慢日志各字段组合特征库进行对比,从而及时筛选出攻击IP地址并将筛选出的攻击特征添加到黑名单特征库。
10.一种基于nginx服务器检测和防护CC攻击的方法,该方法包括以下步骤:
在开源nginx服务器基础上构建基于nginx服务器检测和防护CC攻击的系统,该系统包括:nginx服务器配置模块,该nginx服务器配置模块通过nginx服务器配置文件在该系统中配置响应慢日志时间阈值、上传协议;HTTP响应慢日志生成模块,用于对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;代理服务模块,其用于按照所述上传协议传送所述响应慢日志,响应网络对所述响应慢日志的分析来解析出CC攻击IP并对所解析出的CC攻击IP进行处理;以及CC攻击分析平台,用于根据请求的特征分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理;
由nginx服务器配置模块通过nginx服务器配置文件在该基于nginx服务器检测和防护CC攻击的系统中配置响应慢日志时间阈值、上传协议;
利用HTTP响应慢日志生成模块对于请求响应时间差超过所述响应慢日志时间阈值的请求,或者没有响应的请求,生成响应慢日志;
利用代理服务模块建立与CC攻击分析平台的通信连接,然后按照所述上传协议将所述响应慢日志上报到CC攻击分析平台;并且
利用CC攻击分析平台,根据请求的特征,对响应慢日志生成模块上报的HTTP响应慢日志进行分析,以分析出CC攻击IP,自动将攻击的特征加入黑名单并将黑名单通过socket下发到代理服务模块,以便解析出CC攻击IP并对所解析出的CC攻击IP进行处理。
11.根据权利要求10所述的方法,其中所述上传协议为syslog协议。
12.根据权利要求10所述的方法,其中所述生成响应慢日志的步骤包括记录包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段。
13.根据权利要求10所述的方法,其中所述解析出CC攻击IP并对所解析出的CC攻击IP进行处理的步骤包括对下发的黑名单规则进行转换,在linux平台下转换为iptables规则,而在windows平台下转换为wfp规则,并将动作设置为drop,从而在linux系统下利用iptables下对CC攻击IP进行过滤防护,而在windows系统下利用wfp规则对攻击IP进行过滤防护。
14.根据权利要求13所述的方法,其中所述CC攻击分析平台对于复杂的攻击,提供响应慢日志明细以及各字段统计分析报表,为用户人工分析CC攻击IP提供依据。
15.根据权利要求14所述的方法,其中所述CC攻击分析平台对于响应慢日志,解析出包含日志类型、客户端IP、method、url、host、refer、user-代理、cookie、accept、accept-encoding、accept-language、cache-control、pragma、状态码、字节数、请求时间、请求响应时间差在内的字段并保存到数据库,统计单位时间内HTTP响应慢日志的数量,当超过预设的阈值时启动CC攻击防护,而当低于所述预设的阈值时停止CC攻击防护。
16.根据权利要求15所述的方法,其中所述预设的阈值可参考攻击分析平台HTTP响应慢日志的数量趋势图配置。
17.根据权利要求15所述的方法,其中当单位时间内HTTP响应慢日志的数量超过预设的阈值时通过文字方式通知管理员存在CC攻击,以便及时处理。
18.根据权利要求15所述的方法,其中当启动CC攻击防护时,CC攻击分析平台将当前HTTP响应慢日志各字段和系统内置的黑白名单库中的HTTP响应慢日志各字段进行比较,同时也将HTTP响应慢日志各字段与系统内置的标准浏览器、正常用户访问HTTP响应慢日志各字段组合特征库进行对比,从而及时筛选出攻击IP地址并将筛选出的攻击特征添加到黑名单特征库。
CN202111270079.6A 2021-10-29 2021-10-29 基于nginx服务器检测和防护CC攻击的方法及系统 Pending CN113987478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111270079.6A CN113987478A (zh) 2021-10-29 2021-10-29 基于nginx服务器检测和防护CC攻击的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111270079.6A CN113987478A (zh) 2021-10-29 2021-10-29 基于nginx服务器检测和防护CC攻击的方法及系统

Publications (1)

Publication Number Publication Date
CN113987478A true CN113987478A (zh) 2022-01-28

Family

ID=79744170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111270079.6A Pending CN113987478A (zh) 2021-10-29 2021-10-29 基于nginx服务器检测和防护CC攻击的方法及系统

Country Status (1)

Country Link
CN (1) CN113987478A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785552A (zh) * 2022-03-23 2022-07-22 杭州迪普科技股份有限公司 基于nginx的检测及防护CC攻击的系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114785552A (zh) * 2022-03-23 2022-07-22 杭州迪普科技股份有限公司 基于nginx的检测及防护CC攻击的系统及方法

Similar Documents

Publication Publication Date Title
US11316878B2 (en) System and method for malware detection
CN112383546B (zh) 一种处理网络攻击行为的方法、相关设备及存储介质
Kumar et al. Signature based intrusion detection system using SNORT
Choi et al. A method of DDoS attack detection using HTTP packet pattern and rule engine in cloud computing environment
CN109274637B (zh) 确定分布式拒绝服务攻击的系统和方法
US6704874B1 (en) Network-based alert management
KR101010302B1 (ko) Irc 및 http 봇넷 보안 관제를 위한 관리 시스템 및 그 방법
US10944784B2 (en) Identifying a potential DDOS attack using statistical analysis
US20180054458A1 (en) System and method for mitigating distributed denial of service attacks in a cloud environment
US20100325685A1 (en) Security Integration System and Device
US20210279332A1 (en) System and method for automatic generation of malware detection traps
CN112165445B (zh) 用于检测网络攻击的方法、装置、存储介质及计算机设备
Frye et al. An ontology-based system to identify complex network attacks
CN107360198B (zh) 可疑域名检测方法及系统
Haddadi et al. Botnet behaviour analysis: How would a data analytics‐based system with minimum a priori information perform?
CN113987478A (zh) 基于nginx服务器检测和防护CC攻击的方法及系统
WO2023116045A1 (zh) 攻击成功识别方法及防护系统
Firoz et al. Performance optimization of layered signature based intrusion detection system using snort
US11632393B2 (en) Detecting and mitigating malware by evaluating HTTP errors
Zhang et al. Error-sensor: mining information from HTTP error traffic for malware intelligence
Hong et al. Scalable command and control detection in log data through UF-ICF analysis
Sen Performance characterization & improvement of snort as an IDS
CN114257403A (zh) 误报检测方法、设备及可读存储介质
Sommestad et al. A test of intrusion alert filtering based on network information
EP3432544B1 (en) System and method of determining ddos attacks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication