CN104579841B - 根据接收的udp报文产生对特定统计数据项的统计结果的系统 - Google Patents
根据接收的udp报文产生对特定统计数据项的统计结果的系统 Download PDFInfo
- Publication number
- CN104579841B CN104579841B CN201510009966.6A CN201510009966A CN104579841B CN 104579841 B CN104579841 B CN 104579841B CN 201510009966 A CN201510009966 A CN 201510009966A CN 104579841 B CN104579841 B CN 104579841B
- Authority
- CN
- China
- Prior art keywords
- statistical result
- statistical
- data item
- request
- udp messages
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种根据接收的UDP报文产生针对特定统计数据项的统计结果的系统,所述UDP报文是通过负载均衡器解析来自网络的查询请求而产生的,所述系统包括:接收部分,用于接收所述负载均衡器发送的UDP报文;计算部分,根据预定义统计数据项组合、预定义统计时长对接收的UDP报文进行统计以产生统计结果,所述统计结果给出了在当前统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量;发送部分,根据汇总器的请求向其发送所述统计结果。
Description
技术领域
本发明涉及一种根据接收的UDP报文产生针对特定统计数据项的统计结果的系统。
背景技术
传统的负载平衡器(Load Balancer),如采用linux下HaProxy的配置,用于读取来自网络的每一个HTTP请求中所包含的cookies或URL解释,并且基于这些信息重写报头并将HTTP请求发往后端服务器群,使得后端服务器群中各服务器达到流量、资源占用的平衡状态。但是,传统的负载平衡器不会自动对网络的流量进行滤过检查,不能对攻击流量进行限流或丢弃。
在现有技术中,已知有基于流量清洗技术通过侦测TCP分组来实现针对ICMP/TCP/UDP流攻击进行防护的,通过重发TCP/UDP分组来实现。这种已知方案仅对TCP/UDP层的分组有效,它对于预防需解密的开放式系统互联参考模型(OSI)第7层应用层的HTTP流攻击无能为力。
一种想法是根据对访问URL做统计,根据单位时间访问量如QPS来限制访问请求。针对一个大型网站访问URL的统计通常消耗很多内存。一般来说,对于数据项IP地址、用户标识(USERID)、统一资源定位符(URL)等的任何一个组合,需要记录与该组合相关联的每一个访问的时间戳(timestamp)。当需要计算QPS时,将各个时间点过滤或排序,既费时又耗内存。
在现有技术中,当需要计算QPS时,将各个时间点过滤或排序,既费时又耗内存。
在现有技术中,当需要计算QPS时,将各个时间点过滤或排序,既费时又耗内存。
发明内容
根据本发明,提供一种根据接收的UDP报文产生针对特定统计数据项的统计结果的系统,所述UDP报文是通过负载均衡器解析来自网络的查询请求而产生的,所述系统包括:接收部分,用于接收所述负载均衡器发送的UDP报文;计算部分,根据预定义统计数据项组合和预定义统计时长对接收的UDP报文进行统计以产生统计结果,所述统计结果给出了在当前统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量;发送部分,根据汇总器的请求向其发送所述统计结果。
根据本发明的系统,其中所述预定义统计数据项组合包括下述之一:用户名、客户端IP地址和通用资源标示符;用户名和通用资源标示符;以及客户端IP地址和通用资源标示符。
根据本发明的系统,其中所述统计结果以JSONS数据格式通过web页形式被发送。
根据本发明的系统,其中,根据发送的所述统计结果,所述汇总器产生用于确定是否放行相应查询请求的黑名单。
附图说明
下面将参考附图详细地描述本发明的实施例,其中:
图1是根据本发明的用于对来自网络的访问请求进行限制的系统的结构图;
图2是根据接收的UDP报文产生针对特定统计数据项的统计结果的系统的示例性框图;
图3是根据本发明的对来自网络的访问请求产生黑名单的系统的示例性汇总器的组成的示例性框图。
具体实施方式
根据本发明,提供一种根据接收的UDP报文产生针对特定统计数据项的统计结果的系统以及包括多个这样系统的聚集器。
一个访问请求,如来自因特网的HTTP请求,包括如下数据项:该访问用户要访问的目的域名(host);用户请求的通用资源标示符(uri);用户名(uid);客户端IP地址(cip)等。
本发明的用于对来自网络的访问请求进行限制的系统包括负载均衡器、聚集器和汇总器。
所述负载均衡器接收来自所述网络的访问请求,把所接收的每个访问请求解析成一个UDP报文,并且把UDP报文传送给聚集器。
所述聚集器根据预定义统计数据项组合和预定义统计时长对接收到的UDP报文进行统计,并且根据汇总器的请求向其发送统计结果。所述统计结果给出了在当前的预定义统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量。
所述汇总器按照预定的请求时间间隔向所述聚集器请求统计结果,接收来自所述聚集器的统计结果,根据所接收的统计结果和预定义规则生成访问请求的黑名单,并且根据所述负载均衡器的请求把黑名单发送给所述负载均衡器,其中所述黑名单定义了对相应访问请求的处理动作。
所述负载均衡器根据当前黑名单确定对所接收的每个访问请求的处理动作。
下面结合具体实施例详细描述根据本发明实施例的用于对来自网络的访问请求进行限制的系统。但应该理解,具体实施例仅用于理解本发明的精神和具体实现,但本发明并不受限于特定的实施例。
图1示出根据本发明用于对来自网络的访问请求进行限制实施例的系统100,该系统100包括3个模块:
负载均衡器 101,
聚集器 102,和
汇总器 103。
负载均衡器101接收来自网络的访问请求,如来自因特网的HTTP请求,并将接收的访问请求解析成UDP报文,再将UDP报文传输给聚集器。
UDP报文因其资源消耗小、处理速度快等优势可以大大减小负载均衡器的额外开销。UDP协议不属于连接型协议,所以会存在一定的报文丢失现象。但这种丢失在可控误差范围之内,对系统的健硕性影响可忽略。
聚集器102可包括多台聚集机20。多台聚集机20水平独立扩展,即每台聚集机20是独立部署和运行的,它们相互之间没有影响和依赖。如果聚集器处理能力不能满足需要,可以增加机器,再部署新的聚集机20。这样可以较好地满足大交通流量的需要。
负载均衡器101把每个UDP报文传输至一台选定的聚集机20。各台聚集机20分别进行所述统计。
根据本发明的一个实施例,负载均衡器101用逐个轮询的方式向多台聚集机20发UDP报文。例如,第一个UDP包发给第一台聚集机20,第二个UDP包发给第二台聚集机20,依次把生成的UDP包按顺序发给各聚集机20。当给最后一台聚集机20发送过过UDP包之后,再重新向第一台聚集机20发送。
每台聚集机20按照预定义统计规则或条件,如预定义的统计数据项组合、预定义的统计时间间隔等,对接收到的UDP报文进行统计分析。
聚集机20接收UDP报文并且解析UDP报文。UDP报文中包含了用户的HTTP访问请求的信息:用户访问的目的域名(host)、用户请求的通用资源标示符(uri)、用户名(uid)、客户端IP地址(cip)等。
然后,聚集机20针对同一个目的域名(相同的host)、同一来源(相同的uid,相同的cip)的访问请求数量作统计,进而可计算出此来源的访问请求量。
如果在限定的时间段,如最近60秒或最近5分钟,考察上述统计访问请求量,那么可得出此来源的单位时间请求量,如通过访问请求量除以该时间段的时长来获得QPS值。QPS是指每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
然后,聚集机20根据汇总器103的请求向其发送统计结果。
汇总器103每隔一定时间,例如每隔10秒,向聚集器请求一次“统计结果”,这种请求例如以HTTP形式发出请求。
当聚集器102的各聚集机20收到来自汇总器103的请求后,则把当前的统计结果构造成响应报文,例如HTTP形式的响应报文,并且把包含当前统计结果的响应报文发给汇总器103。
汇总器103接收来自各聚集机20的响应报文,根据特定分类处理从所有聚集机20接收的报文中包含的统计结果,产生汇总的统计分析结果,并根据预定义规则生成黑名单。
根据本发明的一个实施例,黑名单中的一条黑名单记录包含4个参数:
目的域名(host),
源用户名(uid),
源客户端IP(cip),和
处理动作(action)。
该记录的含义可理解为,对于发送给该目的域名(host)的一请求,如果用户名和客户端IP等同于该记录中对应的值(源用户名、源客户端IP),则采取对应的处理动作。处理动作例如是对该请求进行拦截或重定向或延时。当一访问请求的目的域名、用户名、客户端IP地址与一黑名单记录的目的域名、用户名、客户端IP地址,则称该访问请求匹配黑名单。
在汇总器103的配置文件中设置针对具体目的域名的单位时间请求量阀值和处理动作。
汇总器103根据具有某种统计数据项组合该访问请求的汇总统计结果进行判断,当这种访问请求的单位时间访问量(QPS)值超过了其目的域名对应的单位时间访问量阀值时,则产生相应的黑名单记录,该记录包括该请求的目的域名、用户名和客户端IP以及相应的处理动作。所产生的黑名单记录被加入黑名单,从而产生当前黑名单。
另外,在汇总器103中还维护一个白名单。白名单可以具有黑名单同样的结构,但白名单实现一种优先处理策略,对匹配白名单的访问请求,处理动作一律是放行,即把该访问请求发往其目的后端服务器(host)。
汇总器103将黑名单和预定义的白名单异步加载至负载均衡器101。根据本发明的一个实施例,汇总器103的监听线程用于给负载均衡器101提供黑名单列表。当负载均衡器101发起请求时,监听线程获取黑名单,并把黑名单连同白名单发送给负载均衡器101。
负载均衡器101是黑名单中“处理动作”的实际执行者。
如果一访问请求匹配白名单,由于负载均衡器101的处理原则是白名单优先,因此不论该访问请求是否匹配黑名单,负载均衡器101的对该查询执行的处理动作是放行。如果访问请求不匹配白名单而匹配黑名单,则负载均衡器101根据黑名单的规定采取相应处理动作。如果访问请求即不匹配白名单也不匹配黑名单,则可以对该访问请求放行。
根据本发明,负载均衡器101根据汇总器103发送来的黑名单和白名单,对来自网络的访问请求做如下处理:
当该访问请求匹配白名单或者不匹配黑名单时,则对该访问请求放行,即构造相应的UDP报文并发给聚集器。因只有这种放行流量才是真正发到相应后端服务器的流量,聚集器要继续计算这种访问请求的“统计结果”。
当该访问请求不匹配白名单且匹配黑名单时,对该访问请求按照黑名单中相应记录规定的处理动作来进行操作。
由于本发明的方法是定期进行访问请求的新统计并产生新的黑名单,因此在应用统计结果和黑名单时,是指的应用时的“当前”统计结果和“当前”黑名单。
本发明的系统和方法适于解决网络的拒绝服务(DOS)攻击和分布式的拒绝服务攻击。本发明的技术尤其适合于针对HTTP流攻击的防范。通过对用户流量的分析和统计,找到符合模式匹配的攻击流量并加以限流或丢弃,来达到保护其后端的效果。
下面结合具体实施例详细描述聚集机20及其执行统计的过程。但应该理解,具体实施例仅用于理解本发明的精神和具体实现,但本发明并不受限于特定的实施例。
根据本发明的聚集机20根据接收的UDP报文产生针对特定统计数据项的统计结果。如图2所示,根据本发明的一个实施例,聚集机20包括接收部分21、计算部分22和发送部分23.
接收部分21,用于接收来自负载均衡器1发送的UDP报文,所述UDP报文是通过负载均衡器解析来自网络的查询请求而产生的。
计算部分22根据预定义统计数据项组合和预定义统计时长对接收的UDP报文进行统计以产生统计结果。
发送部分23根据汇总器的请求向其发送所述统计结果。发送部分23在收到来自汇总器的请求后,把当前的统计结果构造成响应报文,然后把响应报文发送给汇总器。
对于来自网络的每个HTTP请求,它只能被负载均衡器解析成一个UDP报文并传输至聚集器集群上的某一台聚集机20上。各聚集机20根据预定义的统计条件,如根据UDP报文中的数据项比如用户名userid、IP地址ip和通用资源标示符uri的特定组合以及指定的统计时段,进行访问请求次数的统计。
对接收的UDP报文,聚集机20从该UDP报文中抽取信息项如userid、ip、uri等,以这些信息项的指定组合(可以存在多种组合)作为统计数据项,按照设定的统计时间段时长(如分为短时间段和长时间段)进行请求次数的统计。
常用统计数据项包括如下三种:
userid+ip+uri;
userid+uri;
ip+uri。
统计完成后,集聚生成统计结果,例如以JSONS数据格式的web页形式。在接收到汇总器3的请求时,把统计结果传送给汇总器。
一台聚集机20计算流量统计的详细过程如下:
在启动统计过程之后,当接收到给定统计数据项的第一个upd报文时,对相应变量进行初始化,将接收到该“第一个upd报文”的当前时刻作为有效开始计算时刻,访问次数设为1,开始时间设为该当前时间,持续时间设为0:
total_count=1;
start_time=time(NULL);
last_length=0;
在后续的统计计算中,last_length是从开始计算时刻start_time到当前时刻current_time的持续时间的时长。
对于后续接收的该统计数据项的报文,根据该报文的接收时间与设定的统计时间段的关系,访问次数的计算分为三种情况:
(1)当接收时间落在第一个统计时间段内时,访问次数在原基础上增1,持续时间为当前时间与有效开始计算时间之差。假设设定的统计时间段时长设置为60秒,那么一小时中就有60个统计时间段,该“第一个统计时间段”可被认为是某一个60秒的时间。
(2)当接收时间落在所述第一个统计时间段之后等长的第二个统计时间段之间时,有效开始计算时间将被重新记录。将接受时间作为新的统计时间段的末点,将相应的起点时刻记为有效开始计算时间。此时的访问次数为新的统计时间段内的访问次数,计算方法为先计算原统计时间段内的QPS,将QPS乘以新的统计时间段中原统计时间段部分的时间,再增1,持续时间即为统计时间段时长。
(3)当接收时间落在第二个统计时间段之后时,当前的接收时间将被定为有效开始计算时间,访问次数重新设置为1,持续时间为0,等同于初始化,重新计算流量。
以设定统计时间段为60秒为例,相应算法伪代码如下:
关于统计时间的设定,可设置为短时间段统计和长时间段两种。短时间段统计是为防范dos快攻击,即短时间内大量的连接请求冲击服务器,使得所有可用的资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。而长时间段统计是为防范dos慢攻击。
下面结合具体实施例详细描述汇总器103的汇总统计处理和黑名单的生成。但应该理解,具体实施例仅用于理解本发明的精神和具体实现,但本发明并不受限于特定的实施例。
汇总器根据特定分类读取所有聚集机20的请求次数统计结果,汇总统计结果,根据预定义策略生成黑名单列表,并把黑名单异步加载至负载均衡器。
汇总器模块的构成和具体工作原理如图3所示。
汇总器103包括接收部分1031、生成部分1032、监听部分1033、配置文件1036和数据库1037。
根据本发明的实施例,接收部分1031可为每台聚集机20器创建一个接收线程,接收线程每隔一定时间(如一分钟)从每台聚集机20器Web页输出上读取针对不同数据项组合的请求数的统计数据。统计数据例如是JSONSG格式的数据。
汇总器103的生成部分1032把从多台聚集机20器接收的数据针对预定的数据统计项进行汇总。
不同的统计数据项组合包括userid+ip+uri、ip+uri、userid+uri。
这对这些不同数据项组合的请求数会分别被存储到对应的hashmap中。Hashmap是基于哈希表的Map接口的实现,在计算机编程中用于存储、查找等功能。
当针对某个统计数据项组合的请求数超过配置文件中预定义的黑名单阀值时,如0.5QPS(每秒查询率),userid或ip便被添加到黑名单列表中,从而产生当前的黑名单。
根据一个实施例,生成部分1032中的入库线程将hashmap里的汇总数据存入数据库1037。根据本发明的实施例,为了在入库线程和接收线程之间不对共享的hashmap加锁,使用双hashmap。
另外,系统的监控终端200可通过HTTP协议直接获取数据库1037的数据,数据以JSONS格式导出,不通过汇总器103。
汇总器103的监听部分1033用于给负载均衡器101提供黑名单列表。当负载均衡器101发起请求时,监听部分1033获取黑名单,并把黑名单连同白名单发送给负载均衡器101。
根据本发明的一个实施例,汇总器103可采用主从两台服务器一起工作的模式,一台为主服务器作为正常工作机器,一台为从服务器作为数据备份机器,当主服务器出现故障以后,从服务器会自动接管主服务器的所有工作,从而保证系统的高可靠性。
尽管结合附图和特定实施例描述了本发明。但附图和说明书中的实施例仅仅是本发明的实例,而不是用于限制本发明。本发明的范围由权利要求书来限定。
Claims (4)
1.一种根据接收的UDP报文产生针对特定统计数据项的统计结果的系统,所述UDP报文是通过负载均衡器解析来自网络的查询请求而产生的,所述系统包括:
接收部分,用于接收所述负载均衡器发送的UDP报文;
计算部分,根据预定义统计数据项组合和预定义统计时长对接收的UDP报文进行统计以产生统计结果,所述统计结果给出了在当前统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量;
发送部分,根据汇总器的请求向其发送所述统计结果,使得所述汇总器根据所述统计结果,产生用于确定是否放行相应查询请求的黑名单。
2.根据权利要求1所述的系统,其中所述预定义统计数据项组合包括下述之一:
用户名、客户端IP地址和通用资源标示符;
用户名和通用资源标示符;以及
客户端IP地址和通用资源标示符。
3.根据权利要求1所述的系统,其中所述统计结果以JSONS数据格式通过web页形式被发送。
4.一种根据接收的UDP报文产生针对特定统计数据项的统计结果的汇聚器,所述汇聚器包括多个如权利要求1所述的系统,其中
这多个系统彼此独立运行,分别执行所述的统计以产生各自的统计结果,并且
根据汇总器的请求,所述多个系统分别向所述汇总器发送各自的统计结果,并且由所述汇总器产生汇总的统计结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510009966.6A CN104579841B (zh) | 2015-01-09 | 2015-01-09 | 根据接收的udp报文产生对特定统计数据项的统计结果的系统 |
HK15105140.1A HK1204727A1 (zh) | 2015-01-09 | 2015-05-29 | 根據接收的 報文產生對特定統計數據項的統計結果的系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510009966.6A CN104579841B (zh) | 2015-01-09 | 2015-01-09 | 根据接收的udp报文产生对特定统计数据项的统计结果的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579841A CN104579841A (zh) | 2015-04-29 |
CN104579841B true CN104579841B (zh) | 2018-09-14 |
Family
ID=53095105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510009966.6A Active CN104579841B (zh) | 2015-01-09 | 2015-01-09 | 根据接收的udp报文产生对特定统计数据项的统计结果的系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104579841B (zh) |
HK (1) | HK1204727A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580216B (zh) * | 2015-01-09 | 2017-10-03 | 北京京东尚科信息技术有限公司 | 一种对访问请求进行限制的系统和方法 |
CN104580228A (zh) * | 2015-01-16 | 2015-04-29 | 北京京东尚科信息技术有限公司 | 对来自网络的访问请求产生黑名单的系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561004A (zh) * | 2013-10-22 | 2014-02-05 | 西安交通大学 | 基于蜜网的协同式主动防御系统 |
CN104104652A (zh) * | 2013-04-03 | 2014-10-15 | 阿里巴巴集团控股有限公司 | 一种人机识别方法、网络服务接入方法及相应的设备 |
CN104113519A (zh) * | 2013-04-16 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 网络攻击检测方法及其装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202742B (zh) * | 2006-12-13 | 2011-10-26 | 中兴通讯股份有限公司 | 一种防止拒绝服务攻击的方法和系统 |
-
2015
- 2015-01-09 CN CN201510009966.6A patent/CN104579841B/zh active Active
- 2015-05-29 HK HK15105140.1A patent/HK1204727A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104104652A (zh) * | 2013-04-03 | 2014-10-15 | 阿里巴巴集团控股有限公司 | 一种人机识别方法、网络服务接入方法及相应的设备 |
CN104113519A (zh) * | 2013-04-16 | 2014-10-22 | 阿里巴巴集团控股有限公司 | 网络攻击检测方法及其装置 |
CN103561004A (zh) * | 2013-10-22 | 2014-02-05 | 西安交通大学 | 基于蜜网的协同式主动防御系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104579841A (zh) | 2015-04-29 |
HK1204727A1 (zh) | 2015-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6726331B2 (ja) | アクセス要求を規制するシステムおよび方法 | |
US11122067B2 (en) | Methods for detecting and mitigating malicious network behavior and devices thereof | |
US10666621B2 (en) | Methods and systems for API proxy based adaptive security | |
US10257224B2 (en) | Method and apparatus for providing forensic visibility into systems and networks | |
US10237875B1 (en) | Routing-aware network limiter | |
EP2544408B1 (en) | Parallel processing for multiple instance real-time monitoring | |
Walfish et al. | DDoS defense by offense | |
CN101834866B (zh) | 一种cc攻击防护方法及其系统 | |
US8904524B1 (en) | Detection of fast flux networks | |
US7889656B2 (en) | Binned duration flow tracking | |
US20080144655A1 (en) | Systems, methods, and computer program products for passively transforming internet protocol (IP) network traffic | |
CN104580228A (zh) | 对来自网络的访问请求产生黑名单的系统和方法 | |
US20110191223A1 (en) | Internet Control Management and Accounting in a Utility Computing Environment | |
Cao et al. | Entropy‐based denial‐of‐service attack detection in cloud data center | |
Pujol et al. | Back-office web traffic on the internet | |
US7366790B1 (en) | System and method of active latency detection for network applications | |
US11019022B1 (en) | Processing packets with returnable values | |
CN107872465A (zh) | 一种分布式网络安全监测方法及系统 | |
CN104579841B (zh) | 根据接收的udp报文产生对特定统计数据项的统计结果的系统 | |
CN112788039B (zh) | 一种DDoS攻击识别方法、装置及存储介质 | |
Oro et al. | Benchmarking IP blacklists for financial botnet detection | |
GB2431321A (en) | Restricting the propagation of malicious code through an information technology network | |
CN106161339B (zh) | 获取ip访问关系的方法及装置 | |
US20020073231A1 (en) | Tracerouting a list of internet hosts | |
Lu et al. | Effects and implications of file size/service time correlation on web server scheduling policies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1204727 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |