一种面向IPv6网络的假冒源地址报文探测方法

文档序号:7997512阅读:176来源:国知局
一种面向IPv6网络的假冒源地址报文探测方法
【专利摘要】本发明公开了一种面向IPv6网络的假冒源地址报文探测方法,客户端根据探测命令的指示构造M个假冒源地址报文,并连同M个正常报文构成探测队列,发送给服务器;服务器根据接收到正常报文和假冒源地址报文的情况分析单次探测结果,并根据单次探测结果推算对主机假冒的源地址的初步过滤效果;服务器根据单个主机的N次探测结果推算对主机假冒的源地址的最终过滤效果;根据单个子网内多个主机的多次探测结果推算子网的源地址过滤效果;根据不同子网的源地址过滤效果推算整个园区网对假冒源地址的过滤效果。本发明按照服务器的指令构造假冒IPv6源地址报文,服务器根据假冒源地址报文的接收情况分析探测客户端接入子网是否实施了细粒度的源地址验证。
【专利说明】-种面向IPv6网络的假冒源地址报文探测方法

【技术领域】
[0001] 本发明涉及计算机网络管理领域,尤其涉及一种面向IPv6网络的假冒源地址报 文探测方法。

【背景技术】
[0002] 随着互联网编号分配机构 IANA (Internet Assigned Numbers Authority)于 2011 年2月宣布最后一批IPv4地址已经分配到地区互联网注册管理中心,亚太地区中心在2011 年4月宣布不再分配IPv4地址,IPv4网络地址已经基本耗尽。互联网将逐步过渡到IPv6 时代,新的网络建设将完全采用IPv6地址。在中国,在下一代互联网示范工程(China Next Generation Internet, CNGI)的推动下,IPv6网络已经得到了广泛的应用。
[0003] 但是由于互联网根据目的地址进行报文转发的体系结构,到达互联网的数据报文 的源地址并不会被检查,这就导致了假冒源地址攻击现象的存在,并导致了分布式拒绝服 务攻击、中间人攻击等多种严重危害互联网安全的问题。针对这一问题,源地址验证协议 SAVI (Source Address Validation Improvement),IP 源保护(IP Source Guard)和动态 ARP检测(DAI,Dynamic ARP Inspection)等协议被提出和实现。这些协议部署到连接用户 的接入网,将可以防止主机假冒同一子网中的IP地址,实现细粒度的假冒源地址过滤。
[0004] 假冒地址过滤效果一直是互联网研究的一个重要课题,互联网数据分析合作协会 (CAIDA,Cooperative Association for Internet Data Analysis)利用其分布在世界各 地的基础设施,进行了 12000次的主动探测,其主要是针对IPv4网络探测主机是否能够假 冒其他子网的IP地址及未分配地址等。但是在CAIDA的探测项目和现有技术中针对IPv6 网络中主机假冒其同一子网中的其他IP地址没有进行探测,也需要对IPv6网络中的假冒 源地址过滤现状进行研究,同时对于IPv6网络的安全和管理建设也具有重要意义。


【发明内容】

[0005](一)要解决的技术问题
[0006] 针对上述缺陷,本发明要解决的技术问题是如何在IPv6网络环境下实现假冒源 地址过滤效果的探测,并避免防火墙等过滤设备和网络丢包对探测准确性的影响。
[0007] (二)技术方案
[0008] 为解决上述问题,本发明提供了一种面向IPv6网络的假冒源地址报文探测方法, 具体包括以下步骤:
[0009] S1 :客户端向服务器发送正常报文;
[0010] S2 :所述服务器向所述客户端发送回应命令;
[0011] S3:所述客户端根据所述回应命令的指示发送Μ个正常报文到所述服务器,其中 Μ彡2 ;
[0012] S4:所述服务器计算所述正常报文的接收情况,如果正常报文接收率大于第一阈 值,则发送探测命令给所述客户端,否则进入步骤S7 ;
[0013] S5:所述客户端根据所述探测命令的指示构造 Μ个假冒源地址报文,并连同Μ个正 常报文构成探测队列,发送给所述服务器;
[0014] S6 :所述服务器根据接收到所述正常报文和所述假冒源地址报文的情况分析单次 探测结果,并根据单次探测结果推算对主机假冒的源地址的初步过滤效果;
[0015] S7 :每经过一段时间间隔后,所述客户端重复步骤S6,发送新的探测队列,共计重 复Ν次,所述服务器根据单个主机的Ν次探测结果推算对主机假冒的源地址的最终过滤效 果,其中Ν彡2;
[0016] S8:根据单个子网内多个主机的多次探测结果推算子网对假冒的源地址的过滤效 果;
[0017] S9 :根据不同子网的源地址过滤效果推算整个园区网对假冒的源地址的过滤效 果。
[0018] 进一步地,所述步骤S5中构造假冒源地址报文具体包括:
[0019] S51 :确定使用哪个适配器来发送所述假冒源地址报文;
[0020] S52 :确定所述假冒源地址报文的目的MAC地址;
[0021] S53 :根据所述目的MAC地址构造所述假冒源地址报文。
[0022] 进一步地,所述步骤S51具体包括:
[0023] S511 :所述客户端向所述服务器发送正常报文;
[0024] S512 :确定所述正常报文使用的本地IP地址;
[0025] S513 :读取适配器信息表,比较确定所述IP地址对应的适配器即为用来发送所述 假冒源地址报文的适配器。
[0026] 进一步地,所述步骤S52具体包括:
[0027] S521 :源主机发送邻居请求报文请求目的主机的MAC地址,如果所述源主机收到 回应,则所述目的主机和所述源主机在同一子网,使用所述目的主机的MAC地址作为目的 MAC地址,否则所述目的主机和所述源主机不在同一子网,进入步骤S522 ;
[0028] S522 :读取适配器信息表,获得网关对应的IP地址,查找所述IP地址是否在所述 源主机的网络邻居表中,如果在,则读取所述网络邻居表中与所述IP地址对应的MAC地址, 并使用所述IP地址对应的MAC地址作目的MAC地址,否则,进入步骤S523 ;
[0029] S523 :所述源主机发送所述邻居请求报文请求网关的MAC地址,使用所述网关的 MAC地址作为目的MAC地址。
[0030] 进一步地,所述步骤S53具体包括:
[0031] S531 :根据步骤S51确定的适配器调用接口函数,构造指定目的端口、源端口、报 文内容的UDP报文;
[0032] S532 :调用接口函数,构造指定源地址、目的地址的IP报文段;
[0033] S533 :调用接口函数,根据步骤S52确定的目的MAC地址构造指定目的MAC地址的 以太网报文。
[0034] 进一步地,所述步骤S6中推算对主机假冒的源地址的初步过滤效果具体包括:
[0035] S61 :如果所述正常报文的接收率为0或低于第一阈值则丢弃本次结果;
[0036] S62:如果所述正常报文的接收率超过所述第一阈值,所述假冒源地址报文的接收 率也超过所述第一阈值,则判断对主机假冒的源地址没有进行过滤;
[0037] S63:如果所述正常报文的接收率超过所述第一阈值,所述假冒源地址报文的接收 率低于第二阈值,则判断对主机假冒的源地址已进行过滤,其余不满足条件的探测结果被 丢弃。
[0038] 进一步地,所述步骤S7中所述服务器根据单个主机的N次探测结果推算对主机假 冒的源地址的最终过滤效果具体包括:
[0039] S71 :根据所述步骤S6中的推算方法,计算N次探测后对主机假冒的源地址的最终 过滤效果;
[0040] S72:如果所述主机最终的源地址过滤效果超过第三阈值则判断对主机假冒的源 地址已进行过滤;
[0041] S73:如果所述主机最终的源地址过滤效果低于第四阈值则判断对主机假冒的源 地址没有进行过滤,其余不满足条件的探测结果被丢弃。
[0042] 进一步地,所述步骤S8具体包括:
[0043] S81 :选择单个子网中不同位置的多个主机,每个主机发送多个探测队列到所述服 务器。
[0044] S82:所述服务器基于多个主机的多次探测结果,判断所述子网对假冒的源地址的 过滤效果。
[0045] 进一步地,所述步骤S9具体包括:
[0046] S91 :对整个园区网中的所有参与探测的IP地址进行排序;
[0047] S92 :初始化子网源地址过滤效果情况表,将每个子网中源地址过滤效果初始化为 "未进行过滤";
[0048] S93 :读取每一个IP地址与所述IP地址对应的过滤效果,统计每一个子网对假冒 源地址的过滤效果;
[0049] S94:将所有子网的过滤效果累加,再除以所述园区网中参与探测的子网数目,推 算所述园区网对假冒的源地址的过滤效果。
[0050] 进一步地,所述步骤S93具体包括:
[0051] S931 :读取第一个IP地址,设为前一 IP地址,设置前一子网号为所述IP地址的子 网号,将IP地址数目置1,所述前一 IP地址的过滤效果为子网对所述假冒源地址的过滤效 果;
[0052] S932 :读取下一 IP地址与所述IP地址对应的过滤效果,如果所述下一个IP地址 和所述前一 IP地址属于同一子网,则前一 IP地址的过滤效果加上当前IP地址的过滤效果 为子网对所述假冒源地址的累加过滤效果,且所述IP地址数目加1,否则执行步骤S933 ;
[0053] S933 :设置前一子网的过滤效果为前一子网的累加过滤效果/IP地址数目,并写 入子源地址过滤情况表,设置前一 IP地址为当前IP地址,前一子网为当前IP地址对应的 子网;
[0054] S934 :循环执行S932-S933的过程,直到结束所有IP地址。
[0055] (三)有益效果
[0056] 本发明提供了一种面向IPv6网络的假冒源地址报文探测方法,由服务器端控制 客户端的假冒源地址、端口、发送频率等行为,便于系统总体的调度和分析;通过发送正常 报文,探测网络路径上的服务质量及对假冒探测报文的影响;通过设计随机生成的假冒源 地址和端口号,避免了防火墙等过滤设备的影响;通过设计多组探测报文,避免网络丢包等 因素对探测准确性的影响;通过设计报文探测队列实现IP地址的假冒报文可达性判断;通 过启发式园区网过滤效果推算方法,具有更接近实际的推算结果。通过可控机制设计假冒 的IPv6源地址报文探测细粒度的真实源地址验证机制的部署效果和部署范围。客户端按 照服务器端的指令构造 IPv6假冒源地址报文,假冒同一子网的其他IP地址,发送到服务 器端,服务器端根据假冒源地址报文的接收情况分析探测客户端接入子网是否实施了细粒 度的源地址验证,实现了在windows环境下自动推算假冒报文的目的MAC地址、使用的网络 适配器等参数,并构造 IPv6假冒报文的方法。本发明基于多个客户端的探测结果,对园区 网细粒度的源地址验证技术部署情况进行推算的启发式算法。

【专利附图】

【附图说明】
[0057] 图1为本发明实施例中的一种面向IPv6网络的假冒源地址报文探测方法的步骤 流程图;
[0058] 图2为本发明实施例中的一种面向IPv6网络的假冒源地址报文探测方法中步骤 S9的执行流程图;
[0059] 图3为本发明实施例中的各大学IPv6网络过滤假冒源地址报文的效果图;
[0060] 图4为本发明实施例中的不同区域过滤假冒源地址报文的效果图。

【具体实施方式】
[0061] 下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。
[0062] 本发明实施例中提供了一种面向IPv6网络的假冒源地址报文探测方法,步骤流 程如图1所示,具体包括以下步骤:
[0063] 步骤S1 :客户端向服务器发送正常报文。此处的正常报文是用于测试用的,所以 可以发个简单的"hello"报文给服务器。
[0064] 步骤S2 :服务器向客户端发送回应命令。服务器通过回应命令指示客户端以指定 的源端口、目的端口来发送正常报文。
[0065] 步骤S3 :客户端根据回应命令的指示发送Μ个正常报文到服务器,其中Μ > 2。
[0066] 步骤S4 :服务器计算正常报文的接收情况,如果正常报文接收率大于第一阈值, 则发送探测命令给客户端,否则进入步骤S7。
[0067] 其中探测命令用以指示客户端以指定的源地址、源端口、目的端口,用于接下来的 构造假冒源地址报文,步骤S1-S4先以客户端发送正常报文到服务器,一方面探测网络上 的避免拥塞情况,避免丢包对测量结果的影响,同时正常报文能够发送到服务器可以避免 了针对目的地址及源端口、目的端口的防火墙等过滤规则对探测结果的影响。
[0068] 步骤S5 :客户端根据探测命令的指示构造 Μ个假冒源地址报文,并连同Μ个正常 报文构成探测队列,发送给服务器。
[0069] 客户端和服务器协作探测接入网是否实现细粒度的源地址验证。客户端发送源地 址假冒报文到服务器,而源地址为客户端同一子网的其它IP地址。如果交换机进行了源地 址验证,则服务器不能收到假冒源地址报文,因此服务器收到假冒源地址报文就表示交换 机没有进行源地址验证。
[0070] 本实施例在IPv6网络环境下,没有能够直接构造 IPv6假冒源地址报文的函数实 现,因此需要逐步构造 UDP报文段、IP报文段和以太网报文段,下面介绍在本实施例中如何 推算报文构造需要的各项参数,并使用LIBNET函数(一种接口函数)报文构造函数逐步构造 各个报文段,构造假冒源地址报文具体包括:
[0071] 步骤S51 :确定使用哪个适配器来发送假冒源地址报文。一个主机可能会有多个 适配器,如以太网卡、无线网卡。在利用LIBNET函数构造假冒报文的时候,需要针对适配器 初始化,假冒源地址报文将通过该适配器进行发送。在本实施例中首先通过发送正常报文 到目的主机,然后确定使用的适配器,具体过程如下:
[0072] 步骤S511 :客户端向服务器发送正常报文。
[0073] 步骤S512 :确定正常报文使用的本地IP地址。
[0074] 步骤S513 :读取适配器信息表,比较确定IP地址对应的适配器即为用来发送假冒 源地址报文的适配器。
[0075] 步骤S52 :确定假冒源地址报文的目的MAC地址。在构造以太网报文的时候,为 了让假冒源地址报文能够正确到达目的主机,必须在以太数据包中填充正确的目的MAC地 址。如果目的主机和源主机在同一子网,则需要填充目的主机的MAC地址;如果目的主机和 源主机不在同一子网,则需要填充网关的MAC地址。因此需要判断目的主机和源主机是否 在同一子网,然后分情况构造目的MAC地址,具体包括:
[0076] 步骤S521 :源主机发送邻居请求报文(neighbor solicitation)请求目的主机的 MAC地址,如果源主机收到回应,则目的主机和源主机在同一子网,使用目的主机的MAC地 址作为目的MAC地址,否则目的主机和源主机不在同一子网,进入步骤S522。
[0077] 步骤S522 :读取适配器信息表,获得网关对应的IP地址,查找该IP地址是否在源 主机的网络邻居表中,如果在,则读取网络邻居表中与IP地址对应的MAC地址,并使用该IP 地址对应的MAC地址作目的MAC地址,否则,进入步骤S523。
[0078] 步骤S523 :源主机发送邻居请求报文(neighbor solicitation)请求网关的MAC 地址,使用该网关的MAC地址作为目的MAC地址。
[0079] 步骤S53 :根据目的MAC地址构造假冒源地址报文。在步骤S51中确定了适配器, 在步骤S52中确定了目的MAC地址,另外,服务器会随机生成假冒源地址和端口号并发送给 客户端,客户端依据以上信息,构造假冒源地址报文,具体包括:
[0080] 步骤S531 :根据步骤S51确定的适配器调用LIBNET接口函数,对指定的适配器进 行初始化,并构造指定目的端口、源端口、报文内容的m)P报文。
[0081] 步骤S532 :调用LIBNET接口函数,构造指定源地址、目的地址的IP报文段。
[0082] 步骤S533 :调用LIBNET接口函数,根据步骤S52确定的目的MAC地址构造指定目 的MAC地址的以太网报文。
[0083] 步骤S6 :服务器根据接收到正常报文和假冒源地址报文的情况分析单次探测结 果,并根据单次探测结果推算对主机假冒的源地址的初步过滤效果。主机上单次探测结果 中发送多个报文的探测情况和推算结果如表1所示。
[0084] 表1单主机单次探测推算结果
[0085]

【权利要求】
1. 一种面向IPv6网络的假冒源地址报文探测方法,其特征在于,所述方法包括: 51 :客户端向服务器发送正常报文; 52 :所述服务器向所述客户端发送回应命令; 53 :所述客户端根据所述回应命令的指示发送Μ个正常报文到所述服务器,其中 Μ彡2 ; 54 :所述服务器计算所述正常报文的接收情况,如果正常报文接收率大于第一阈值,则 发送探测命令给所述客户端,否则进入步骤S7 ; 55 :所述客户端根据所述探测命令的指示构造 Μ个假冒源地址报文,并连同Μ个正常报 文构成探测队列,发送给所述服务器; 56 :所述服务器根据接收到所述正常报文和所述假冒源地址报文的情况分析单次探测 结果,并根据单次探测结果推算对主机假冒的源地址的初步过滤效果; 57 :每经过一段时间间隔后,所述客户端重复步骤S6,发送新的探测队列,共计重复Ν 次,所述服务器根据单个主机的Ν次探测结果推算对主机假冒的源地址的最终过滤效果, 其中Ν彡2 ; 58 :根据单个子网内多个主机的多次探测结果推算子网对假冒的源地址的过滤效果; 59 :根据不同子网的源地址过滤效果推算整个园区网对假冒的源地址的过滤效果。
2. 如权利要求1所述的方法,其特征在于,所述步骤S5中构造假冒源地址报文具体包 括: 551 :确定使用哪个适配器来发送所述假冒源地址报文; 552 :确定所述假冒源地址报文使用的目的MAC地址; 553 :根据所述目的MAC地址构造所述假冒源地址报文。
3. 如权利要求2所述的方法,其特征在于,所述步骤S51具体包括: 5511 :所述客户端向所述服务器发送正常报文; 5512 :确定所述正常报文使用的本地IP地址; 5513 :读取适配器信息表,比较确定所述本地IP地址对应的适配器即为用来发送所述 假冒源地址报文的适配器。
4. 如权利要求2所述的方法,其特征在于,所述步骤S52具体包括: 5521 :源主机发送邻居请求报文请求目的主机的MAC地址,如果所述源主机收到回应, 则所述目的主机和所述源主机在同一子网,使用所述目的主机的MAC地址作为目的MAC地 址,否则所述目的主机和所述源主机不在同一子网,进入步骤S522 ; 5522 :读取适配器信息表,获得网关对应的IP地址,查找所述IP地址是否在所述源主 机的网络邻居表中,如果在,则读取所述网络邻居表中与所述IP地址对应的MAC地址,并使 用所述IP地址对应的MAC地址作目的MAC地址,否则,进入步骤S523 ; 5523 :所述源主机发送所述邻居请求报文请求网关的MAC地址,使用所述网关的MAC地 址作为目的MAC地址。
5. 如权利要求2所述的方法,其特征在于,所述步骤S53具体包括: 5531 :根据步骤S51确定的适配器调用接口函数,构造指定目的端口、源端口、报文内 容的Μ)Ρ报文; 5532 :调用接口函数,构造指定源地址、目的地址的IP报文段; S533 :调用接口函数,根据步骤S52确定的目的MAC地址构造指定目的MAC地址的以太 网报文。
6. 如权利要求1所述的方法,其特征在于,所述步骤S6中推算对主机假冒的源地址的 初步过滤效果具体包括: 561 :如果所述正常报文的接收率为0或低于第一阈值则丢弃本次结果; 562 :如果所述正常报文的接收率超过所述第一阈值,所述假冒源地址报文的接收率也 超过所述第一阈值,则判断对主机假冒的源地址没有进行过滤; S63:如果所述正常报文的接收率超过所述第一阈值,所述假冒源地址报文的接收率低 于第二阈值,则判断对主机假冒的源地址已进行过滤,其余不满足条件的探测结果被丢弃。
7. 如权利要求1所述的方法,其特征在于,所述步骤S7中所述服务器根据单个主机的 N次探测结果推算对主机假冒的源地址的最终过滤效果具体包括: 571 :根据所述步骤S6中的推算方法,计算N次探测后对主机假冒的源地址的最终过滤 效果; 572 :如果所述主机的最终过滤效果超过第三阈值则判断对主机假冒的源地址已进行 过滤; 573 :如果所述主机的最终过滤效果低于第四阈值则判断对主机假冒的源地址没有进 行过滤,其余不满足条件的探测结果被丢弃。
8. 如权利要求1所述的方法,其特征在于,所述步骤S8具体包括: 581 :选择单个子网中不同位置的多个主机,每个主机发送多个探测队列到所述服务 器。 582 :所述服务器基于多个主机的多次探测结果,判断所述子网对假冒源地址的过滤效 果。
9. 如权利要求1所述的方法,其特征在于,所述步骤S9具体包括: 591 :对整个园区网中的所有参与探测的IP地址进行排序; 592 :初始化子网源地址过滤效果情况表,将每个子网中源地址过滤效果初始化为"未 进行过滤"; 593 :读取每一个IP地址与所述IP地址对应的过滤效果,统计每一个子网对假冒源地 址的过滤效果; S94:将所有子网的过滤效果累加,再除以所述园区网中参与探测的子网数目,推算所 述园区网对假冒的源地址的过滤效果。
10. 如权利要求9所述的方法,其特征在于,所述步骤S93具体包括: 5931 :读取第一个IP地址,设为前一 IP地址,设置前一子网号为所述IP地址的子网 号,将IP地址数目置1,所述前一 IP地址的过滤效果为所述前一子网对所述假冒源地址的 过滤效果; 5932 :读取下一 IP地址与所述IP地址对应的过滤效果,如果所述下一个IP地址和所 述前一 IP地址属于同一子网,则前一 IP地址的过滤效果加上当前IP地址的过滤效果为 所述前一子网对所述假冒源地址的累加过滤效果,且所述IP地址数目加1,否则执行步骤 S933 ; S933:设置前一子网的过滤效果为前一子网的累加过滤效果/IP地址数目,并写入子 网源地址过滤情况表,设置前一 IP地址为当前IP地址,前一子网为当前IP地址对应的子 网; S934 :循环执行S932-S933的过程,直到结束所有IP地址。
【文档编号】H04L29/06GK104065630SQ201310095156
【公开日】2014年9月24日 申请日期:2013年3月22日 优先权日:2013年3月22日
【发明者】杨家海, 安常青, 李福亮 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1