当前位置:
文档之家› 基于IPv6邻居发现协议的攻击工具的设计与实现
基于IPv6邻居发现协议的攻击工具的设计与实现
认路由器,从而接受该重定向。
3 攻击工具的实现与效果 3.1 实验环境 3.1.1 硬件环境
实验中采用多台主机,均为 P4 3.0GHz,intel处理器, 512M 内存的 Windows XP主机,Cisco交换机,路由器(使用 双网卡Linux主机)搭建。
实验网络拓扑结构如图1 。
图 2 攻击工具整体架构图
(2)重复地址检测(DAD)DoS 链路内的恶意攻击节点可以监听本链路的 DAD报文,提
取出每一个 DAD报文中的待检测地址,并以此地址伪造一个 NA 进行回复。这样被攻击节点会认为此地址已被使用,从而 只能再生成一个新的地址,并进行 DAD。攻击节点一直针对 DAD 数据包进行回复,所以将导致被攻击节点始终无法获得 IP 地址,从而切断了被攻击节点与外界的联系。
为 C 的 M A C 地址,从而使 A 发送到 B 的数据都重定向到 C 。 IETF RFC 2460.1998.
[上接 75 页]
法提供训练数据集(Training Data Set)作为算法的输入,分类 i个属性{0 s i s Length(X )-1}, Y (i+k)表示Y连接记录的第十个
器,B 为客户端,C 为攻击者。它们的地址情况如下:
的物理接入控制不能得到较好保证的场合,并不会在所有的网
服务器A:IP(3ffa:b00:ffff::1)、MAC(00-11-25-6f-0f-3e) 络环境下使用。因此,本文中所提到的针对 NDP的攻击方法将 客户端B:IP(3ffa:b00:ffff::2)、MAC(00-11-25-6f-0f-c1) 在一段很长的时期内存在,成为网络安全隐患,那么,如何针
3 入侵检测引擎
采用定期训练分类器,不断更新规则库,提高了检测的 精度,改善了网络入侵检测的有效性,实践验证了系统的有 效性和精确度,但还有一定的不足,如规则库的建立所依赖
在每条连接记录中,参加模式比较的属性由源主机IP、源 的模式 R 只考虑了连接记录包头的基本信息,并未考虑数据
攻击者C:IP(3ffa:b00:ffff::3)、MAC(00-13-d4-d9-bc-bd) 对 ND 下的攻击进行有效的防护将成为下一步的研究方向。
攻击者 C 向服务器 A 发送 NA ,使服务器 A 的邻居缓存 参考文献
表发生改变,改变正常用户 B 在 A 邻居缓存表中的 MAC 地址 [1]Deering S,Hinden R.Internet protocol version 6 specification.
器的输入是经过预处理后的网络连接记录和构造的候选特征 属性{Osi+’’= Length(Y)-1},定义函数Equ(I,k)为X(i)和Y(i+k)
的组合体,输出为用户行为规则库。其过程中存在并使用着正 的比较结果。
常行为规则或异常行为规则,因此,分类引擎的功能有:(1)分 4 结语
析被检测系统的原始历史数据,形成规则库。(2)进一步降低误 报率。(3)更新规则库,识别新的攻击类型。
SA。目前只能通过管理员在节点上手动设置密钥,建立安全关 联 SA,当网络中存在大量节点时,节点间需要建立很多安全关 联,这给管理员带来了很大的负担。目前,IETF 的 Securing Neighbor Discovery工作组正在研究此问题的解决方法,即Secure Neighbor Discovery,但同样由于认证机制过于复杂,常用于网络
2.2 IPv6下特有的DoS
(1)配置虚假的地址前缀和网络参数 链路内的主机根据 RA 报文中的参数进行网络设置,当
恶意攻击节点伪造 RA 中的各项参数,则被攻击节点的网络 配置将受到不同程度的影响。攻击主机发送包含错误子网前 缀的 RA,被攻击主机使用错误的前缀信息配置 IP地址,导致 该主机无法在子网中正常运行。攻击主机发送包含恶意参数 的虚假 RA,假扮路由器,来破坏通信,如声明较小值的 MTU、 hop limit、router lifetime,被攻击主机按此参数配置后发出的 数据包将无法到达目的节点。
一个IP地址来运行IKE,而IKE用来建立IPSec中的安全关联SA,
但在进行地址配置获得一个 IP 地址时需要已建立的安全关联
图 4 未配置全球地址的 图 5 配置虚假地址前缀的 网络配置情况 网络配置情况
(3)A R P 欺骗攻击模块 假设有三台局域网内的机器 A、B、C,其中,A 为服务
其生命期值为0,被欺骗的主机就会认为该路由器不再提供服 务,进而选择假的主机作为默认路由器,攻击者就有机会截 取主机的通信或者实施中间人攻击。
(2 )A R P 欺骗 由于邻居缓存默认总是用新的信息来覆盖旧的,攻击者
只需发送包含不同链路层地址的 NS 或 NA,就能将本应发送 到被攻击主机的报文转发到其他链路层地址,从而使被攻击
隐患。所以,在此基础上设计和实现了一个基于 IPv6下的针 对 NDP 的攻击工具。攻击的原理是构造虚假的 NA 报文、RA 报文和重定向报文,诱骗被攻击主机进行错误的配置,从而 实现攻击意图。
整个攻击工具由如下功能模块构成:洪水式 DoS攻击模 块、虚假地址前缀和参数攻击模块、邻居不可达检测攻击模 块、重复地址检测攻击模块、ARP 欺骗攻击模块、恶意最后 一跳路由攻击模块和虚假重定向报文攻击模块。系统的整体 架构图如图 2。
图 6 被攻击主机邻居缓存表信息更改
4 结论
本文分析并实现了基于IPv6下NDP的攻击工具,由此引入
图 3 SYN泛洪 DoS 攻击效果
的问题是如何避免基于 ND 安全缺陷的攻击,比较有效的办法
是对 ND 报文进行认证,甄别合法报文,保证其可信性和完整
性,但利用IPSec时仍然受到密钥管理的困扰,即一个节点需要
包捕获开发包 WinPcap,利用此开发包来实现攻击数据包的 构成与发送。
(2) 虚假参数攻击模块 被攻击主机原来没有全球地址,只有临时链路本地地址
3.2 系统实现
(fe80::211:25ff:fe6f:f3e),使用NDP配置一个全球地址,但是
2008.10 网络安全技术与应用 31
应 用 安 全 由于地址前缀 1985:5:14:0/64是一个虚假地址前缀,配置 上的全球地址也不能工作。图 4 和图 5 为效果显示情况。
2.1 洪水式拒绝服务攻击(DoS)
(1)SYN 泛洪攻击 一种利用 TCP 协议缺陷,发送大量伪造源地址的 SYN连
接请求,使被攻击方资源耗尽,CPU 满负荷或内存不足,从
而无法正常工作的攻击方式。 (2)Land 洪水攻击 利用一个特别打造的 SYN包,它的源地址和目标地址都
被设置成某一个服务器地址,导致接受服务器向它自己的地 址发送 SYN-ACK 消息,结果这个地址又发回 ACK 消息并创 建一个空连接,被攻击的服务器每接收一个这样的连接都将 保留,直到超时。
2 IPv6 下的基于 NDP 协议的攻击
基于 NDP 协议的攻击是 IPv6 的一个十分重要的安全威 胁。IPv6 节点通过 NDP 来确定链路上邻居的链路层地址,寻 找进行包转发的邻居路由器。另外,节点使用邻居发现机制 可以确定邻居的可达性,并检测改变的链路层地址。NDP 是在 基于完全可信网络的前提下提出的,其安全威胁主要分为三种。
0 引言
为了更好地了解 NDP的安全性,模拟真实IPv6网络下的 攻击形式,本文针对此协议开发了一个攻击工具,通过这个 攻击工具来全面了解 N D P 的缺陷所在,为将来开发安全的 NDP奠定基础,同时还可以用来作为测试 IPv6防火墙性能的 测试工具。
1 NDP 安全威胁分析
NDP 在设计时对其安全性进行了一定考虑,为确保收到 的邻节点发现报文来自本地链路上的节点,发送方将其发出 的所有ND报文中的hop limit字段的初始值均置为255,每经 过一个路由器值减 1,当接收方收到一个 ND 报文时,它会首 先检查IPv6报头中的hop limit,如果此字段的值等于255,则 说明该报文来自本链路的合法节点,接受该报文,否则就说 明该报文来自本链路外,丢弃该报文。验证 ND 报文中的 hop limit的值是否等于255这一方法,只防止了由链路外的节点 发起的基于邻节点发现的网络攻击,并不能解决链路内恶意 节点的攻击问题。因此,链路内节点之间的安全性无法得到 有效保证。
图6为被攻击服务器A上的邻居缓存表更改情况,其中,3ffa: b00:ffff::2(客户端B)对应的MAC地址00-13-d4-d9-bc-bd是攻 击主机 C 上的 MAC 地址,那么 A 发送给 B 的信息都会被 C 窃 取;同理,攻击者 C 也可以窃取 B 发送给 A 的信息,这样就 形成了中间人攻击。
3.1.2 软件环境
(1) SYN泛洪DoS攻击模块 SYN 泛洪攻击会导致 CPU 使用率升高,内存严重不足,
鼠标跳跃,机器反应慢,导致机器无法正常工作,无法和别
攻Fra Baidu bibliotek工具主要在 Windows 平台下开发,开发工具使用 的机器进行正常通信。图 3 为效果显示的情况,CPU 使用率
Visual Studio 2005,开发语言使用C语言,以及专业网络数据 为 100%,内存占用 460MB(本身 512MB)。
30 网络安全技术与应用 2008.10
应 用 安 全
续发送虚假 NA 来响应 NUD 的 NS ,进而造成拒绝服务。
2.3 重定向攻击
3.2.1 IPv6攻击工具设计
从 NDP的安全威胁分析可以看出,该协议存在一些安全
(1)恶意的最后一跳路由器 攻击者周期性地发送RA,假冒真的最后一跳路由器声明
3.2.2 IPv6攻击过程
(1) 通过WinPcap库函数pcap_findalldevs()获取攻击主 机的网卡列表;
(2) 递归网卡列表,选择要发送数据包的网卡; (3)通过 pcap_open_live()打开所选择的网卡适配器 adapter,并且将网卡设定为混杂模式; (4) 攻击函数Attack()由包填充函数Fill_Packet()和数 据报发送函数pcap_sendpacket()构成; (5)填充函数 Fill_Packet()主要填充数据链路层 Ethernet、网络层 IPv6、以及上层协议,如 ICMPv6协议、
应 用 安 全
基于IPv6邻居发现协议的
攻击工具的设计与实现
吴京京 赖英旭 马乾 北京工业大学计算机学院 北京 100022 摘要:本文深入分析了 IPv6 中邻居发现协议(NDP)的安全威胁,然后具体分析了针对邻居发现协议的主要攻击形式,并 在此基础上开发了攻击工具。这为将来开发安全的 NDP奠定了一定基础,同时还为测试 IPv6防火墙性能提供了测试工具。 关键词:IPv6;邻居发现;攻击
主机的邻居缓存表产生错误,严重影响被攻击主机正常的网
络通信。但攻击时间受限,攻击者必须一直对虚假的链路层
地址做出响应以使攻击继续。
(3)虚假的重定向报文
利用重定向报文将发送到固定目的节点的报文转发到链
路上的另一个地址。攻击者使用最后一跳路由器作源地址发
送重定向报文给合法主机,主机检查报文源地址是自己的默
(3)邻居不可达检测(NUD)失败 节点通常依赖上层信息来确定其他节点是否可达,但如
果上层通信的延迟足够长,节点就会激活 NUD,发送 NS 到 目的节点,如果可达,目的节点会回应 NA。否则经过几次重 试失败后,该节点就会删除对应的邻居缓存记录。攻击者持
作者简介:吴京京(1983-),女,硕士,研究方向:IPv6 网络、信息安全。马乾(1985-),男, 硕士,研究方向:信息安全。
TCP 协议。在计算 IPv6 上层校验和时,由于 IPv6的伪头结 构与IPv4的伪头结构不同,因此必须使用IPv6新的伪头结构 来计算。
(6) 在对网络数据包填充完毕后,通过pcap_sendpacket
()函数将数据包发送出去。
3.2.3 部分IPv6攻击实现与效果
图 1 链路内攻击网络拓扑结构