CN108234341B - 基于设备指纹的Nginx动态被动限流方法及系统 - Google Patents

基于设备指纹的Nginx动态被动限流方法及系统 Download PDF

Info

Publication number
CN108234341B
CN108234341B CN201810072003.4A CN201810072003A CN108234341B CN 108234341 B CN108234341 B CN 108234341B CN 201810072003 A CN201810072003 A CN 201810072003A CN 108234341 B CN108234341 B CN 108234341B
Authority
CN
China
Prior art keywords
user
cid
data packets
difference value
current limiting
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
Application number
CN201810072003.4A
Other languages
English (en)
Other versions
CN108234341A (zh
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.)
Beijing Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information Technology 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 Beijing Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201810072003.4A priority Critical patent/CN108234341B/zh
Publication of CN108234341A publication Critical patent/CN108234341A/zh
Application granted granted Critical
Publication of CN108234341B publication Critical patent/CN108234341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种基于设备指纹的Nginx动态被动限流方法,包括:收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳,从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。本发明能够不用客户端配合即可对恶意用户进行有效识别。本发明还公开了一种基于设备指纹的Nginx动态被动限流系统。

Description

基于设备指纹的Nginx动态被动限流方法及系统
技术领域
本发明属于Nginx技术领域,尤其涉及一种基于设备指纹的Nginx动态被动限流方法及系统。
背景技术
Nginx是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器。
目前,基于Nginx的限流策略是根据请求中的参数,比如用户id、即cid 等,进行限流,cid等参数是可以伪造的,传统的限流方式不能彻底解决恶意用户的攻击。
因此,如何有效的解决恶意用户的攻击是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于设备指纹的Nginx动态被动限流方法,能够不用客户端配合即可对恶意用户进行有效识别。
为了实现上述目的,本发明提供如下技术方案:
一种基于设备指纹的Nginx动态被动限流方法,包括:
收集用户客户端发送给服务器的所有数据包,其中,所述数据包中包含 tcp时间戳;
从所述Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移;
将所述用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断所述差值是否小于预设阈值;
当所述差值小于所述预设阈值时,对所述差值对应的用户标识cid进行限流处理。
优选地,所述数据包中还包含:本地观察时间。
优选地,所述方法还包括:
存储所述tcp时间戳、本地观察时间和用户标识cid。
优选地,所述存储所述tcp时间戳、本地观察时间和用户标识cid包括:
存储所述tcp时间戳、本地观察时间和用户标识cid至时序数据库。
优选地,所述方法还包括:
将所述时钟偏移存储于数据库。
一种基于设备指纹的Nginx动态被动限流系统,包括:
收集模块,用于收集用户客户端发送给服务器的所有数据包,其中,所述数据包中包含tcp时间戳;
计算模块,用于从所述Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移;
比较模块,用于将所述用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断模块,用于判断所述差值是否小于预设阈值;
限流模块,用于当所述差值小于所述预设阈值时,对所述差值对应的用户标识cid进行限流处理。
优选地,所述数据包中还包含:本地观察时间。
优选地,所述系统还包括:
第一存储模块,用于存储所述tcp时间戳、本地观察时间和用户标识cid。
优选地,所述第一存储模块具体用于:
存储所述tcp时间戳、本地观察时间和用户标识cid至时序数据库。
优选地,所述系统还包括:
第二存储模块,用于将所述时钟偏移存储于数据库。
从上述技术方案可以看出,本发明提供了一种基于设备指纹的Nginx动态被动限流方法,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳,然后从Nginx中获取用户标识 cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid 的时钟偏移,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例1的方法流程图;
图2为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例2的方法流程图;
图3为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例3的方法流程图;
图4为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例4的方法流程图;
图5为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例1的结构示意图;
图6为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例2的结构示意图;
图7为本发明公开的一种基于设备指纹的Nginx动态被动限流实施例3 的结构示意图;
图8为本发明公开的一种基于设备指纹的Nginx动态被动限流实施例4 的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例1的流程图,所述方法包括:
S101、收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳;
当需要进行限流控制时,首先在用户客户端给服务器发送数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳。
S102、从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
当收集到户发送给客户端的所有数据包后,进一步从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包对数据包中的用户标识cid进行计算,计算出该用户标识cid的时钟偏移。
S103、将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S104、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S105、当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳,然后从Nginx 中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图2所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例2的流程图,所述方法包括:
S201、收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳、本地观察时间。
S202、从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
S203、存储tcp时间戳、本地观察时间和用户标识cid;
当收集到户发送给客户端的所有数据包后,对数据包中的tcp时间戳、本地观察时间和用户标识cid进行存储。
S204、将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S205、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S206、当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳、本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图3所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例3的流程图,所述方法包括:
S301、收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳、本地观察时间。
S302、从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
S303、存储tcp时间戳、本地观察时间和用户标识cid至时序数据库;
当收集到户发送给客户端的所有数据包后,对tcp时间戳、本地观察时间和用户标识cid进行存储,将tcp时间戳、本地观察时间和用户标识cid存放于时序数据库中。
S304、将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S305、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S306、当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳、本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid至时序数据库中,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图4所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流方法实施例4的流程图,所述方法包括:
S401、收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳和本地观察时间。
S402、从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
S403、存储tcp时间戳、本地观察时间和用户标识cid至时序数据库;
当收集到户发送给客户端的所有数据包后,对tcp时间戳、本地观察时间和用户标识cid进行存储,将tcp时间戳、本地观察时间和用户标识cid存放于时序数据库中。
S404、将时钟偏移存储于数据库;
当计算出每个用户标识cid的时钟偏移后,将计算出的时钟偏移存储于数据库中。
S405、将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
S406、判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
S407、当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid至时序数据库中,将时钟偏移存储于数据库,并将用户标识cid 的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图5所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例1的结构示意图,所述系统包括:
收集模块501,用于收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳;
当需要进行限流控制时,首先在用户客户端给服务器发送数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳。
计算模块502,用于从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
当收集到户发送给客户端的所有数据包后,进一步从Nginx中获取用户标识cid,利用用户客户端发送给服务器的所有数据包对数据包中的用户标识 cid进行计算,计算出该用户标识cid的时钟偏移。
比较模块503,用于将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块504,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块505,用于当差值小于预设阈值时,对差值对应的用户标识cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳,然后从Nginx 中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图6所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例2的结构示意图,所述系统包括:
收集模块601,用于收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳和本地观察时间。
计算模块602,用于从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
第一存储模块603,用于存储tcp时间戳、本地观察时间和用户标识cid;
当收集到户发送给客户端的所有数据包后,对数据包中的tcp时间戳、本地观察时间和用户标识cid进行存储。
比较模块604,用于将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块605,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块606,用于当差值小于预设阈值时,对差值对应的用户标识cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳、本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图7所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例3的结构示意图,所述系统包括:
收集模块701,用于收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳、本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳、本地观察时间。
计算模块702,用于从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
第一存储模块703,用于存储tcp时间戳、本地观察时间和用户标识cid 至时序数据库;
当收集到户发送给客户端的所有数据包后,对tcp时间戳、本地观察时间和用户标识cid进行存储,将tcp时间戳、本地观察时间和用户标识cid存放于时序数据库中。
比较模块704,用于将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
当计算出每个用户标识cid的时钟偏移后,将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块705,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块706,用于当差值小于预设阈值时,对差值对应的用户标识cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳、本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid至时序数据库中,将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
如图8所示,为本发明公开的一种基于设备指纹的Nginx动态被动限流系统实施例4的结构示意图,所述系统包括:
收集模块801,用于收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间;
当需要进行限流控制时,首先在用户客户端发送给服务器数据时,收集用户客户端发送给服务器的所有数据包。其中,收集的数据包中包含tcp时间戳和本地观察时间。
计算模块802,用于从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移;
然后,从Nginx中获取用户标识cid,对数据包中的用户标识cid进行计算,利用用户客户端发送给服务器的所有数据包计算出该用户标识cid的时钟偏移。
第一存储模块803,用于存储tcp时间戳、本地观察时间和用户标识cid 至时序数据库;
当收集到户发送给客户端的所有数据包后,对tcp时间戳、本地观察时间和用户标识cid进行存储,将tcp时间戳、本地观察时间和用户标识cid存放于时序数据库中。
第二存储模块804,用于将时钟偏移存储于数据库;
当计算出每个用户标识cid的时钟偏移后,将计算出的时钟偏移存储于数据库中。
比较模块805,用于将用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
将计算出的用户标识cid的时钟偏移两两进行对比,并计算出两个时钟偏移的差值,
判断模块806,用于判断差值是否小于预设阈值;
对计算出的两个时钟偏移的差值进行判断,判断差值是否小于预设阈值。其中,预设阈值可以根据限流需求进行灵活设置。
限流模块807,用于当差值小于预设阈值时,对差值对应的用户标识cid 进行限流处理。
当计算出的两个时钟偏移的差值小于预设阈值时,对差值对应的两个用户标识cid的请求进行限流或直接拒绝。
综上所述,在上述实施例中,当需要进行限流时,首先收集用户客户端发送给服务器的所有数据包,其中,数据包中包含tcp时间戳和本地观察时间,然后从Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个用户标识cid的时钟偏移,存储tcp时间戳、本地观察时间和用户标识cid至时序数据库中,将时钟偏移存储于数据库,并将用户标识cid 的时钟偏移进行两两对比,计算出两个时钟偏移的差值,判断差值是否小于预设阈值,当差值小于预设阈值时,对差值对应的用户标识cid进行限流处理。无需客户端配合即可识别出恶意用户,有效解决了传统的限流方式不能彻底解决恶意用户的攻击的问题。
为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制VLSI电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。
模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。
实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一系统或网络。
本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。
再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于设备指纹的Nginx动态被动限流方法,其特征在于,包括:
收集用户客户端发送给服务器的所有数据包,其中,所述数据包中包含tcp时间戳;
从所述Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移;
将所述用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;
判断所述差值是否小于预设阈值;
当所述差值小于所述预设阈值时,对所述差值对应的用户标识cid进行限流处理。
2.根据权利要求1所述的方法,其特征在于,所述数据包中还包含:本地观察时间。
3.根据权利要求2所述的方法,其特征在于,还包括:
存储所述tcp时间戳、本地观察时间和用户标识cid。
4.根据权利要求3所述的方法,其特征在于,所述存储所述tcp时间戳、本地观察时间和用户标识cid包括:
存储所述tcp时间戳、本地观察时间和用户标识cid至时序数据库。
5.根据权利要求4所述的方法,其特征在于,还包括:
将所述时钟偏移存储于数据库。
6.一种基于设备指纹的Nginx动态被动限流系统,其特征在于,包括:
收集模块,用于收集用户客户端发送给服务器的所有数据包,其中,所述数据包中包含tcp时间戳;
计算模块,用于从所述Nginx中获取用户标识cid,并利用用户客户端发送给服务器的所有数据包计算出每个所述用户标识cid的时钟偏移;所述用户客户端发送给服务器的所有数据包由所述收集模块收集得到;
比较模块,用于将所述用户标识cid的时钟偏移进行两两对比,计算出两个时钟偏移的差值;所述用户标识cid的时钟偏移由所述计算模块计算得到;
判断模块,用于判断所述差值是否小于预设阈值;所述差值由所述比较模块计算得到;
限流模块,用于当所述差值小于所述预设阈值时,对所述差值对应的用户标识cid进行限流处理;所述差值小于所述预设阈值由所述判断模块判断得到。
7.根据权利要求6所述的系统,其特征在于,所述数据包中还包含:本地观察时间。
8.根据权利要求7所述的系统,其特征在于,还包括:
第一存储模块,用于存储所述tcp时间戳、本地观察时间和用户标识cid。
9.根据权利要求8所述的系统,其特征在于,所述第一存储模块具体用于:
存储所述tcp时间戳、本地观察时间和用户标识cid至时序数据库。
10.根据权利要求9所述的系统,其特征在于,还包括:
第二存储模块,用于将所述时钟偏移存储于数据库。
CN201810072003.4A 2018-01-25 2018-01-25 基于设备指纹的Nginx动态被动限流方法及系统 Active CN108234341B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810072003.4A CN108234341B (zh) 2018-01-25 2018-01-25 基于设备指纹的Nginx动态被动限流方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810072003.4A CN108234341B (zh) 2018-01-25 2018-01-25 基于设备指纹的Nginx动态被动限流方法及系统

Publications (2)

Publication Number Publication Date
CN108234341A CN108234341A (zh) 2018-06-29
CN108234341B true CN108234341B (zh) 2021-06-11

Family

ID=62667276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810072003.4A Active CN108234341B (zh) 2018-01-25 2018-01-25 基于设备指纹的Nginx动态被动限流方法及系统

Country Status (1)

Country Link
CN (1) CN108234341B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3617922A1 (en) * 2018-08-31 2020-03-04 Niometrics (Pte.) Ltd. Apparatus and methods for deriving fingerprints of communications devices

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072106A (zh) * 2006-05-12 2007-11-14 国际商业机器公司 用于防御拒绝服务攻击的方法和系统
CN101437030A (zh) * 2008-11-29 2009-05-20 成都市华为赛门铁克科技有限公司 一种防止服务器被攻击的方法、检测装置及监控设备
CN103384242A (zh) * 2013-03-15 2013-11-06 中标软件有限公司 基于Nginx代理服务器的入侵检测方法及系统
CN103442018A (zh) * 2013-09-17 2013-12-11 网宿科技股份有限公司 Cc攻击的动态防御方法和系统
CN103491060A (zh) * 2012-06-13 2014-01-01 北京新媒传信科技有限公司 一种防御Web攻击的方法、装置、及系统
CN105025080A (zh) * 2015-06-02 2015-11-04 深圳市创梦天地科技有限公司 一种分布式系统的过载保护方法和服务器
CN105100070A (zh) * 2015-06-29 2015-11-25 北京奇虎科技有限公司 防止对接口服务进行恶意攻击的方法及装置
CN105656886A (zh) * 2015-12-29 2016-06-08 北京邮电大学 一种基于机器学习的网站攻击行为的检测方法及装置
CN106210129A (zh) * 2016-08-18 2016-12-07 中国银行股份有限公司 一种基于Web服务器配置的限流方法及系统
CN106789831A (zh) * 2015-11-19 2017-05-31 阿里巴巴集团控股有限公司 识别网络攻击的方法和装置
CN106911582A (zh) * 2017-03-07 2017-06-30 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的实时流量控制方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101072106A (zh) * 2006-05-12 2007-11-14 国际商业机器公司 用于防御拒绝服务攻击的方法和系统
CN101437030A (zh) * 2008-11-29 2009-05-20 成都市华为赛门铁克科技有限公司 一种防止服务器被攻击的方法、检测装置及监控设备
CN103491060A (zh) * 2012-06-13 2014-01-01 北京新媒传信科技有限公司 一种防御Web攻击的方法、装置、及系统
CN103384242A (zh) * 2013-03-15 2013-11-06 中标软件有限公司 基于Nginx代理服务器的入侵检测方法及系统
CN103442018A (zh) * 2013-09-17 2013-12-11 网宿科技股份有限公司 Cc攻击的动态防御方法和系统
CN105025080A (zh) * 2015-06-02 2015-11-04 深圳市创梦天地科技有限公司 一种分布式系统的过载保护方法和服务器
CN105100070A (zh) * 2015-06-29 2015-11-25 北京奇虎科技有限公司 防止对接口服务进行恶意攻击的方法及装置
CN106789831A (zh) * 2015-11-19 2017-05-31 阿里巴巴集团控股有限公司 识别网络攻击的方法和装置
CN105656886A (zh) * 2015-12-29 2016-06-08 北京邮电大学 一种基于机器学习的网站攻击行为的检测方法及装置
CN106210129A (zh) * 2016-08-18 2016-12-07 中国银行股份有限公司 一种基于Web服务器配置的限流方法及系统
CN106911582A (zh) * 2017-03-07 2017-06-30 北京搜狐新媒体信息技术有限公司 一种基于Nginx服务器的实时流量控制方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
nginx对特定参数限流;weixin_34376562;《https://blog.csdn.net/weixin_34376562/article/details/93319708》;20170202;1-3 *
利用互质增量时间戳解决移动代理的重复攻击;罗曼;《湖州师范学院学报》;20070228;59-63 *
基于时间戳报文流的本地时钟漂移补偿时间同步方案研究;全渝娟,刘桂雄,郑玉红;《内蒙古大学学报》;20080331;191-195 *

Also Published As

Publication number Publication date
CN108234341A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
US20220272105A1 (en) Blockchain-based data detection method, apparatus, and computer-readable storage medium
CN102769549B (zh) 网络安全监控的方法和装置
CN105282047B (zh) 访问请求处理方法及装置
CN107046468B (zh) 一种物理层认证门限确定方法及系统
CN109194680B (zh) 一种网络攻击识别方法、装置及设备
US20180367565A1 (en) Method, device, server and storage medium of detecting dos/ddos attack
CN112434039A (zh) 数据的存储方法、装置、存储介质以及电子装置
TW201447627A (zh) 人機識別方法及相應的人機識別系統
CN111770106A (zh) 数据威胁分析的方法、装置、系统、电子装置和存储介质
CN111898124B (zh) 进程访问控制方法和装置、存储介质及电子设备
CN110417747B (zh) 一种暴力破解行为的检测方法及装置
JP2017016650A (ja) コンピュータネットワーク上の資産を検出および識別するための方法およびシステム
CN112463772B (zh) 日志处理方法、装置、日志服务器及存储介质
CN110677384A (zh) 钓鱼网站的检测方法及装置、存储介质、电子装置
JP6629973B2 (ja) 携帯電話番号を変更するためのサービス要求を認識する方法及び装置
CN107046516B (zh) 一种识别移动终端身份的风控控制方法及装置
CN110955677A (zh) 一种身份验证方法、装置及系统
CN108234341B (zh) 基于设备指纹的Nginx动态被动限流方法及系统
CN113641970B (zh) 风险检测方法、装置及计算设备
Songma et al. Classification via k-means clustering and distance-based outlier detection
CN108092777B (zh) 数字证书的监管方法及装置
CN113676497A (zh) 数据阻断的方法和装置、电子设备和存储介质
CN112511384B (zh) 流量数据处理方法、装置、计算机设备和存储介质
CN112769635B (zh) 多粒度特征解析的服务识别方法及装置
CN108234342B (zh) 基于设备指纹的Nginx动态主动限流方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant