伪造白名单IP地址检测方法、装置及服务器与流程

文档序号:12132299阅读:1724来源:国知局
伪造白名单IP地址检测方法、装置及服务器与流程

本发明涉及网络安全技术领域,具体涉及一种伪造白名单IP地址检测方法、装置及服务器。



背景技术:

分布式拒绝服务(DDoS,Distributed Denial of Service)攻击是攻击者通过让大量的网络流量同时涌向攻击目标,造成目标主机网络拥塞、资源耗尽甚至宕机,实现让目标主机拒绝服务的目的。

DDoS攻击通常是由僵尸网络和代理服务器上各种攻击软件、应用软件产生大量流量来实现的。在攻击中,伪造源IP攻击是很常用的方式,其中典型的伪造源IP是通过伪造白名单中的合法IP,也就是攻击者猜出了白名单的一个或几个IP之后,然后将攻击IP地址伪造成合法的白名单IP地址向服务器发起请求,按照通常的逻辑,命中白名单的IP地址可能会直接穿透DDoS防御系统而不被阻拦,考虑到这种攻击方式,现有的应对该攻击方式的方法如下:

(1)针对白名单中单个IP的阈值限制,这种方法是为白名单中的每个IP维护一个计数器,当某一计数器的超过指定的阈值后,将该计数器对应的白名单IP视为非法IP,从白名单中剔除。

由于白名单表中的IP数目可能很多,假设是一千万个(全量是40亿),为每一个白名单IP维护一个32位的计数器,需要36MB的内存空间,而实际发生攻击时,伪造的白名单IP通常只有少数个,也就是说36MB中绝大部分是没有实际利用到的,而又不得不分配其内存空间,造成资源的浪费,并且在一个成熟的防御系统中会有很多细化的白名单,各个白名单还存在很多的条目重合,更加容易造成内存空间的浪费。



技术实现要素:

本发明的首要目的在于提供一种伪造白名单IP地址检测方法和装置。

本发明的另一目的在于提供一种应用该方法的服务器。

为实现该目的,本发明采用如下技术方案:

第一方面,本发明提供一种伪造白名单IP地址检测方法,包括如下步骤:

获取DDoS攻击发生时预设时间内按时间域排列的访问请求IP地址;

将所述访问请求IP地址转化为二进制IP地址并计算时间域上相邻两个所述二进制IP地址的汉明距离;

当某一个/多个汉明距离满足预设条件时,判断该汉明距离所对应的二进制IP地址为伪造的白名单源IP地址;

将所述伪造的白名单源IP地址从白名单中剔除。

结合第一方面的第一种可能的实现方式,所述汉明距离满足预设条件具体包括:

统计在所述预设时间内各汉明距离出现的概率,当某一个/多个汉明距离出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

结合第一方面的第二种可能的实现方式,所述汉明距离满足预设条件具体包括:

获取按时间域排列的各汉明距离,计算时间域上相邻两个汉明距离的差值的绝对值;

统计在所述预设时间内各汉明距离的差值的绝对值出现的概率,当某一个/多个汉明距离的差值的绝对值出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

进一步的,所述方法还包括后续步骤:

将所述伪造的白名单源IP地址的访问请求丢弃。

更进一步的,所述方法还包括后续步骤:

当DDoS攻击结束后,将被剔除的被伪造的白名单IP地址重新加入到白名单,以当所述被伪造的白名单IP地址为合法IP地址时,反馈所述合法IP地址的访问请求。

相应地,第二方面,本发明提供一种伪造白名单IP地址检测装置,包括:

获取模块:用于获取DDoS攻击发生时预设时间内按时间域排列的访问请求IP地址;

转化模块:用于将所述访问请求IP地址转化为二进制IP地址并计算时间域上相邻两个所述二进制IP地址的汉明距离;

判断模块:用于当某一个/多个汉明距离满足预设条件时,判断该汉明距离所对应的二进制IP地址为伪造的白名单源IP地址;

清除模块:用于将所述伪造的白名单源IP地址从白名单中剔除。

结合第二方面的第一种可能的实现方式,所述汉明距离满足预设条件具体包括:

统计在所述预设时间内各汉明距离出现的概率,当某一个/多个汉明距离出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

结合第二方面的第二种可能的实现方式,所述汉明距离满足预设条件具体包括:

获取按时间域排列的各汉明距离,计算时间域上相邻两个汉明距离的差值的绝对值;

统计在所述预设时间内各汉明距离的差值的绝对值出现的概率,当某一个/多个汉明距离的差值的绝对值出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

进一步的,所述装置还包括:

丢弃模块:用于将所述伪造的白名单源IP地址的访问请求丢弃;

更新模块:用于当DDoS攻击结束后,将被剔除的被伪造的白名单IP地址重新加入到白名单,以当所述被伪造的白名单IP地址为合法IP地址时,反馈所述合法IP地址的访问请求。

第三方面,本发明提供一种服务器,包括存储器、一个或多个处理器,所述一个或多个处理器被配置为用于执行上述伪造白名单IP地址检测方法的任意一项步骤。

与现有技术相比,本发明具备如下优点:

本发明不需为白名单中的每一个IP添加计数器,假设白名单中IP的数目是1千万个时,为每一个IP维护一个32位计数器需要消耗36MB的内存空间,而本发明利用白名单攻击的特性,只需要消耗32个字节的内存空间,牺牲工程上可以接受的少量精度换取节省大比例内存的效果;

另外,由于防御系统中不止有一个白名单,例如还有针对某个端口的白名单,针对某种上层协议的白名单,针对sym的白名单等等,本发明可以同时使用在所有存在白名单的机制中,且其带来的内存空间节省是线性累加的,尤其对于很多白名单中存在大量的重复条目,本发明节省内存空间效果更佳显著。

显然,上述有关本发明优点的描述是概括性的,更多的优点描述将体现在后续的实施例揭示中,以及,本领域技术人员也可以本发明所揭示的内容合理地发现本发明的其他诸多优点。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

【附图说明】

图1为本发明伪造白名单IP地址检测方法的一实施例流程示意图;

图2为发起访问请求的IP地址数据流在时间域上的线性排列表的一实施例示意图;

图3为白名单攻击发生时,发起访问请求的IP地址数据流在时间域上的线性排列表的一实施例示意图;

图4为本发明伪造白名单IP地址检测装置的一实施例示意图。

【具体实施方式】

下面结合附图和示例性实施例对本发明作进一步地描述,其中附图中相同的标号全部指的是相同的部件。此外,如果已知技术的详细描述对于示出本发明的特征是不必要的,则将其省略。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。

本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。

众所周知,DDoS攻击最常用的方式就是短时间内向攻击目标发送大量的访问请求,造成目标主机网络拥塞,资源耗尽,使目标主机无法对合法的访问请求进行回馈,实现让目标主机拒绝服务。

DDoS攻击包括针对白名单进行攻击,目前对白名单的攻击手法有两种,最常见的一种是伪造单一的白名单IP地址,另外一种是同时伪造多个白名单IP地址,本方法的前提是攻击者猜中白名单中的一个/多个IP地址,然后将攻击IP地址伪造成合法的白名单IP地址向服务器发起请求,以使攻击IP地址穿透DDoS防御系统而向目标发起攻击。

图1为本发明一种伪造白名单IP地址检测方法的一实施例流程示意图,包括步骤S100-S400。

本方法实现的前提是DDoS防御系统判定DDoS攻击发生并且命中了白名单,之后利用本方法确定伪造的白名单IP地址并响应该命中的伪造的白名单IP地址,也就是说,本方法的目的在于不需为白名单中的每一个IP添加计数器的情况下,让命中白名单次数过多的IP的访问请求不通过,不摧毁白名单本身,而后进入下一清洗阶段,而其他正常的白名单转发至目的服务器,不进入清洗阶段。

步骤S100:获取DDoS攻击发生时预设时间内按时间域排列的访问请求IP地址。

当发生白名单攻击时,攻击目标的服务器上可将发起访问请求的IP地址数据流看成一条在时间域上的线性排列表(参阅图2),通过提取列表中一段连续的IP地址数据流即可获取到预定时间内按时间域排列的访问请求IP地址。

由于下述要将命中白名单的过程看成一随机过程进行分析,故提取的一段IP地址数据流中所包含的IP地址应该足够多,满足将其看作随机过程进行分析,而目前最大的DDoS攻击,其攻击峰值流量达到每秒453.8GB,假定500MB的数据流量满足随机过程分析,在峰值为453.8G/s的攻击时仅需1~5ms的数据流量即可满足。在实际操作中,可以500MB流量为临界点,获取数据流量达到500MB时这段时间的IP地址数据流。

步骤S200:将所述访问请求IP地址转化为二进制IP地址并计算时间域上相邻两个所述二进制IP地址的汉明距离。

两个IP地址的汉明距离指的是两个IP地址以二进制码表示时,两者之间不同位的数目,计算时是将两者进行异或(xor)运算,得到的结果中包含“1”的位数即两个IP地址的汉明距离。例如两个IP地址分别为IP1:192.168.8.1,IP2:192.168.6.1,两者转化为二进制码后为IP1:1100 0000,1010 1000,0000 1000,0000 0001,IP2:1100 0000,1010 1000,0000 0110,0000 0001,IP1与IP2异或运算得到的结果为0000 0000,0000 0000,0000 1110,0000 0000,所以IP1与IP2的汉明距离为3。

将上述提取到的预设时间内按时间域排列一段连续的IP地址数据流,每相邻两个IP地址计算其相应的汉明距离,可以清楚地知道,32位二进制的IP地址的汉明距离为0-32区间内任一整数(包括0跟32),因此可构建一个0-32任一整数与概率的二维数组[N,P],用于统计0-32任一整数在预设时间内出现的概率。

步骤S300:当某一个/多个汉明距离满足预设条件时,判断该汉明距离所对应的二进制IP地址为伪造的白名单源IP地址。

其中,判断某一个/多个汉明距离满足预设条件包括以下两种实施方式:

第一张实施方式:统计在所述预设时间内各汉明距离出现的概率,当某一个/多个汉明距离出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

由上述可知,两个32位二进制的IP地址的汉明距离为[0,32]区间内任一整数,当发起访问请求的IP地址数据流流量足够大时,即预设时间内有大量的访问请求IP地址,可将每一次相邻IP地址间的切换所得出的时间域上相邻两个IP地址之间的汉明距离看成一个随机事件,即在该预设时间内,每个汉明距离出现的概率可视为相等概率1/33,说明二维数组[N,P]中任意一个整数N出现的概率是相等的。

当发生白名单攻击时,访问请求的IP地址数据流中包含了大量重复的攻击者伪造的白名单IP地址,例如伪造者伪造了3个白名单IP地址IP1、IP2、IP3进行攻击,服务器在攻击发生的时间内接收到的访问请求中,大部分是IP地址为IP1/IP2/IP3发起的访问请求,其中也包含了合法的IP4(参阅图3),假设IP1、IP2、IP3两两之间的汉明距离分别为A、B、C(A、B、C可能相等),则在攻击发生时,访问请求的IP地址数据流中相邻两个IP地址之间的汉明距离大部分是0、A、B、C,此时统计在预设时间内各汉明距离出现的概率并记录在二维数组[N,P]中,当二维数组[N,P]中某一个/多个整数N(即汉明距离,这里为0、A、B、C)出现的概率P大于预设阈值时,判断该汉明距离对应的两个IP地址为伪造的白名单IP地址。如将汉明距离为0的概率的预设阈值设为1/4,1-32其他整数的汉明距离的预设阈值设为1/10,当预设时间内统计汉明距离为A出现的概率为2/9时,说明在该时间内的访问请求数据流中的相邻两个IP地址是IP1跟IP2(即从IP1切换到IP2或从IP2切换到IP1)的概率是2/9,大于预设出现的概率值1/10,所以判断汉明距离为A的相邻两个IP地址为伪造的白名单IP地址。

第二种实施方式:获取按时间域排列的各汉明距离,计算时间域上相邻两个汉明距离的差值;统计在所述预设时间内各汉明距离的差值的绝对值出现的概率,当某一个/多个汉明距离的差值的绝对值出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

在本实施方式中,先获取在步骤200中得到了按时间域排列的各汉明距离,接着计算时间域上相邻两个汉明距离的差值的绝对值,在上述可知,两个IP地址的汉明距离为[0,32]区间内任一整数,因而两个汉明距离的差值的绝对值也是[0,32]区间内任一整数,每一个汉明距离的差值的绝对值出现的概率也是相等的,如IP1、IP2、IP3两两之间的汉明距离分别为A、B、C(A、B、C可能相等),则其差值的绝对值为0、|A-B|、|A-C|、|B-C|,在攻击发生时,统计在预设时间内各相邻汉明距离差值的绝对值出现的概率,当某一个/多个汉明距离差值的绝对值(这里为0、|A-B|、|A-C|、|B-C|)出现的概率大于到预设阈值时,判断该汉明距离差值的绝对值对应的两个IP地址为伪造的白名单IP地址。

步骤S400:将所述伪造的白名单源IP地址从白名单中剔除。

在完成上述判断后确定了攻击者伪造了哪些白名单IP地址,将所述伪造的白名单IP地址从白名单中剔除,在服务器仍处于DDoS攻击状态时,当所述伪造的白名单IP地址向服务器发起访问请求时,服务器将该访问请求丢弃,即将该访问请求视为非法请求,同时将该访问请求的IP地址送至清洗设备以对其进行后续处理。

优选的,所述方法还包括后续步骤:在服务器判断DDoS攻击结束后,将被剔除的被伪造的白名单IP地址重新加入到白名单,该IP地址本是白名单中合法的IP地址,只是被攻击者猜中后利用其进行DDoS攻击,服务器根据上述的步骤判断其为攻击者伪造的白名单IP地址,不对该IP地址的访问请求进行反馈,而当攻击结束后,若该IP地址向服务器发送访问请求,很大概率该IP地址为合法IP地址,故在攻击结束后应将该IP地址重新加入到白名单中,以当该IP地址发起访问请求时,服务器能进行及时响应并反馈该访问请求。

相应地,图4为本发明伪造白名单IP地址检测装置的一实施例示意图,包括:

获取模块100:用于获取DDoS攻击发生时预设时间内按时间域排列的访问请求IP地址。

当发生白名单攻击时,攻击目标的服务器上可将发起访问请求的IP地址数据流看成一条在时间域上的线性排列表(参阅图2),获取模块100通过提取列表中一段连续的IP地址数据流即可获取到预定时间内按时间域排列的访问请求IP地址。

转化模块200:用于将所述访问请求IP地址转化为二进制IP地址并计算时间域上相邻两个所述二进制IP地址的汉明距离。

转化模块200将上述提取到的预设时间内按时间域排列一段连续的IP地址数据流,每相邻两个IP地址计算其相应的汉明距离,可以清楚地知道,32位二进制的IP地址的汉明距离为0-32区间内任一整数(包括0跟32),因此可构建一个0-32任一整数与概率的二维数组[N,P],用于统计0-32任一整数在预设时间内出现的概率。

判断模块300:用于当某一个/多个汉明距离满足预设条件时,判断该汉明距离所对应的二进制IP地址为伪造的白名单源IP地址。

其中,判断模块300判断某一个/多个汉明距离满足预设条件包括以下两种实施方式:

第一张实施方式:统计在所述预设时间内各汉明距离出现的概率,当某一个/多个汉明距离出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

由上述可知,两个32位二进制的IP地址的汉明距离为[0,32]区间内任一整数,当发起访问请求的IP地址数据流流量足够大时,即预设时间内有大量的访问请求IP地址,可将每一次相邻IP地址间的切换所得出的时间域上相邻两个IP地址之间的汉明距离看成一个随机事件,即在该预设时间内,每个汉明距离出现的概率可视为相等概率1/33,说明二维数组[N,P]中任意一个整数N出现的概率是相等的。

当发生白名单攻击时,访问请求的IP地址数据流中包含了大量重复的攻击者伪造的白名单IP地址,例如伪造者伪造了3个白名单IP地址IP1、IP2、IP3进行攻击,服务器在攻击发生的时间内接收到的访问请求中,大部分是IP地址为IP1/IP2/IP3发起的访问请求,其中也包含了合法的IP4(参阅图3),假设IP1、IP2、IP3两两之间的汉明距离分别为A、B、C(A、B、C可能相等),则在攻击发生时,访问请求的IP地址数据流中相邻两个IP地址之间的汉明距离大部分是0、A、B、C,此时统计在预设时间内各汉明距离出现的概率并记录在二维数组[N,P]中,当二维数组[N,P]中某一个/多个整数N(即汉明距离,这里为0、A、B、C)出现的概率P大于预设阈值时,判断模块300判断该汉明距离对应的两个IP地址为伪造的白名单IP地址。如将汉明距离为0的概率的预设阈值设为1/4,1-32其他整数的汉明距离的预设阈值设为1/10,当预设时间内统计汉明距离为A出现的概率为2/9时,说明在该时间内的访问请求数据流中的相邻两个IP地址是IP1跟IP2(即从IP1切换到IP2或从IP2切换到IP1)的概率是2/9,大于预设出现的概率值1/10,所以判断模块300判断汉明距离为A的相邻两个IP地址(IP1跟IP2)为伪造的白名单IP地址。

第二种实施方式:获取按时间域排列的各汉明距离,计算时间域上相邻两个汉明距离的差值;统计在所述预设时间内各汉明距离的差值的绝对值出现的概率,当某一个/多个汉明距离的差值的绝对值出现的概率大于预设阈值时,确定该汉明距离满足预设条件。

在本实施方式中,判断模块300先获取转化模块200得到了按时间域排列的各汉明距离,接着计算时间域上相邻两个汉明距离的差值的绝对值,在上述可知,两个IP地址的汉明距离为[0,32]区间内任一整数,因而两个汉明距离的差值的绝对值也是[0,32]区间内任一整数,每一个汉明距离的差值的绝对值出现的概率也是相等的,如IP1、IP2、IP3两两之间的汉明距离分别为A、B、C(A、B、C可能相等),则其差值的绝对值为0、|A-B|、|A-C|、|B-C|,在攻击发生时,统计在预设时间内各相邻汉明距离差值的绝对值出现的概率,当某一个/多个汉明距离差值的绝对值(这里为0、|A-B|、|A-C|、|B-C|)出现的概率大于到预设阈值时,判断模块300判断该汉明距离差值的绝对值对应的两个IP地址为伪造的白名单IP地址。

清除模块400:用于将所述伪造的白名单源IP地址从白名单中剔除。

在完成上述判断后确定了攻击者伪造了哪些白名单IP地址,清除模块400将所述伪造的白名单IP地址从白名单中剔除,在服务器仍处于DDoS攻击状态时,当所述伪造的白名单IP地址向服务器发起访问请求时,服务器的丢弃模块将该访问请求丢弃,即将该访问请求视为非法请求,同时将该访问请求的IP地址送至清洗设备以对其进行后续处理。

优选的,所述装置还包括更新模块:用于在服务器判断DDoS攻击结束后,将被剔除的被伪造的白名单IP地址重新加入到白名单。被伪造的IP地址本是白名单中合法的IP地址,只是被攻击者猜中后利用其进行DDoS攻击,服务器根据上述的模块判断其为攻击者伪造的白名单IP地址,不对该IP地址的访问请求进行反馈,而当攻击结束后,若该IP地址向服务器发送访问请求,很大概率该IP地址为合法IP地址,故在攻击结束后应将该IP地址重新加入到白名单中,以当该IP地址发起访问请求时,服务器能进行及时响应并反馈该访问请求。

另外,本发明还提供一种服务器,包括:

存储器:用于存储该方法实现过程中产生的候选中间数据以及结果数据;

一个或多个处理器:用于执行实现上述方法的任意一项步骤。

本发明不需为白名单中的每一个IP添加计数器,假设白名单中IP的数目是1千万个时,为每一个IP维护一个32位计数器需要消耗36MB的内存空间,而本发明利用白名单攻击的特性,只需要消耗32个字节的内存空间,牺牲工程上可以接受的少量精度换取节省大比例内存的效果;另外,由于防御系统中不止有一个白名单,例如还有针对某个端口的白名单,针对某种上层协议的白名单,针对sym的白名单等等,本发明可以同时使用在所有存在白名单的机制中,且其带来的内存空间节省是线性累加的,尤其对于很多白名单中存在大量的重复条目,本发明节省内存空间效果更佳显著。

虽然上面已经示出了本发明的一些示例性实施例,但是本领域的技术人员将理解,在不脱离本发明的原理或精神的情况下,可以对这些示例性实施例做出改变,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1