在IPv6" title="IPv6">IPv6网络中,由于使用ND协议" title="ND协议">ND协议代替了IPv4中的ARP协议" title="ARP协议">ARP协议,以及对用户的身份认证方面需要针对用户的IPv6地址进行处理,所以在IPv6的接入层安全技术相比在IPv4网络中,必须进行更新,使之能够满足在IPv6网络中使用的要求。并且,IPv6的接入层安全技术应能够与IPv4的接入层安全技术共存,满足在IPv6/IPv4双栈网络中的要求。
在园区网部署中,接入层的安全防护问题是一项很重要的部署考虑,在该问题上,主要考虑协议安全及用户身份安全两个部分。
协议安全:使用IPv4的园区网进行部署的时候,必须考虑ARP攻击的问题,防止网络中出现ARP欺骗及ARP泛洪带来的网络性能及可靠性问题。在部署IPv6后,要考虑使用ND协议带来的接入层安全风险。
用户身份安全:采用802.1X认证,确保接入网络的用户身份的可靠性,在部署了IPv6的网络中,为了确认接入用户的身份信息,同样需要进行用户身份认证。同时,为了后续对用户的接入信息进行绑定或审计等操作,认证客户端需要收集能够标识用户身份的信息,包括用户的登录名,IP地址等内容,上传到认证服务器。
一、ND协议安全
在IPv4网络中,针对ARP攻击问题,大部分的网络设备厂商都推出了各自的ARP防攻击解决方案,在很大程度上解决了ARP攻击的问题。伴随着IPv6网络的建设,在IPv6协议族中的NDP协议越来越被重视,而在ND协议的设计与ARP协议一样并未提供认证机制,导致网络中的主机是不可信的,从而使得针对ND协议的攻击非常容易。
1. ND协议的功能介绍
ND协议,全称为邻居发现协议(Neighbor Discovery Protocol),是IPv6的关键协议之一,可以说,ND协议是IPv4某些协议在IPv6中综合起来的升级和改进,如ARP、ICMP路由器发现和ICMP重定向等协议。当然,作为IPv6的基础性协议,ND还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、地址自动配置等。
1) ND协议的主要报文类型ND协议定义的报文使用ICMP承载,其类型包括:路由器请求报文、路由器通告报文、邻居请求报文、邻居通告报文和重定向报文。在本文中,我们主要关注ND协议发生攻击的情况,对ND的报文种类只做简要描述:
●路由器请求(RS):主机启动后,通过RS消息向路由器发出请求,期望路由器立即发送RA消息响应。从而获取网络中的配置信息,包括网关地址,网络前缀,链路MTU等信息。
● 路由器通告(RA):RA报文用于对RS报文进行回应。网关也可以通过周期性的在链路范围内组播RA报文,是同一链路范围内的主机获取相同的网络配置信息。这些配置信息包括:主机的地址获取方式;网络中的前缀信息;网络中的PMTU信息;网络中的网关信息等。
●邻居请求报文(NS):NS消息与NA消息配合实现邻居的链路层地址获取、检查邻居是否可达、重复地址检测等功能。
●邻居通告报文(NA):NA报文是主机对NS的响应报文,同时主机在链路层地址变化时也可以主动发送NA消息,以通知相邻节点自己的链路层地址或者角色发生改变。
2) ND协议主要功能介绍ND协议中,主要新增加了RA,RS两种报文,这两种报文的增加,使得在主机侧能够通过接收RA报文,获取网络中的配置参数,更加方便的进行网络的部署和管理。在地址解析,重复地址检查等功能上,ND协议与ARP协议没有过多的区别。
●路由器发现
路由器发现是指主机怎样定位本地链路上路由器和确定其配置信息的过程,主要包含查询缺省网关、前缀发现及参数发现三方面的内容。
●地址解析
地址解析是指某节点在知道目的节点IP地址的情况下,确定目的链路层地址的过程。
当一个节点需要得到同一本地链路上另外一个节点的链路层地址时,需要进行地址解析,该机制类似于IPv4中的ARP。 ND协议用NS和NA报文完成IPv6地址到链路层地址的解析,解析后的链路层地址和IP地址等信息用来建立节点的一个邻居缓存表项。
●邻居不可达检测
邻居不可达检测是节点如何确定邻居不可达状态的过程。
ND协议用NS和NA报文来验证邻居节点的可达性。节点在确定邻居的链路层地址后,跟踪邻居缓存表的状态,定时发送NS报文,如果邻居在规定的可达时间内(缺省值为30秒)不能接收或者发送返回的报文,则删除此邻居缓存表项。
邻居的可达性并不能说明端到端的可达性。因为相邻节点可能是主机或者路由器,所以相邻节点并不一定就是数据包的最终目标。NUD检测仅仅验证了到目标路径上第一跳的可达性状态。
●重复地址检测
重复地址检测是节点确定即将使用的地址是否被另一节点使用的过程。
在节点自动配置某个接口的IPv6单播地址之前,必须在本地链路范围内验证要使用的临时地址是唯一的,并且未被其他节点使用过。
只要NS报文发送到本地链路上(缺省发送一次NS报文),如果在规定时间内没有NA报文进行应答,则认为这个临时单播地址在本地链路上是唯一的,可以分配给接口;反之,这个临时地址是重复的,不能使用此地址。
2. ND常见攻击介绍
由于ND协议扩展了ARP协议的功能,而没有对其进行安全性的扩展,所以在IPv6的网络中,ND协议仍然面临原有ARP协议的风险,同时,在ND协议中新增的RA,RS报文,虽然简化了网络管理的工作,但引入了新的风险。
在IPv6的接入层ND防攻击中,除了要关注同ARP共有的地址欺骗攻击及DAD攻击外,特别需要关注针对RA的攻击。
1) 地址欺骗攻击地址欺骗攻击与IPv4中ARP攻击的方式类似,攻击者可以使用RS/NS/NA报文来修改受害主机或网关上受害主机的MAC地址,造成受害主机无法与网络进行正常的通信
图1 RS/NS/NA仿冒攻击示意图
如图1所示,攻击者能够伪造NS/NA报文,发送给网关或受害主机,通过这种方式来对网关上受害主机的MAC地址或受害主机上的特定的MAC地址进行修改,造成了受害用户无法接收到正常的数据报文。
另外,攻击者B能够利用虚假的NA/RS/NS报文,对正常用户及网关中的ND缓存进行改写,造成正常用户之间无法互访及网关无法向正确的用户专发报文等一系列的网络故障。
图2 DAD攻击示意图
Detection从前文的描述,我们知道,在局域网中ARP或ND攻击的根本原因是无法对所交互的ARP或ND报文进行验证,从而无法得知正确的用户IP、MAC、端口的绑定信息,所以无法对异常的ND报文进行过滤,使得网络中可能发生ARP/ND攻击。
Detection技术结合绑定表项对ND报文进行过滤,能够更好的防御ND攻击。
2) RA Trust与DHCP TrustRA Trust与DHCP
Trust的功能不同,但是思路是相同的,管理员可以在相应的连接DHCP服务器或网关的接口上进行配置,通过手工指定连接DHCP服务器与连接发送RA的设备的接口(通常是网关),能够避免网络中DHCP报文与RA报文的任意发送。当进行了RA
Trust与DHCP Trust后,DHCP的服务器端报文与RA报文只能从配置了TRUST的端口进入,避免了DHCP服务器欺骗与RA攻击,提升了局域网安全性。
snooping表项达到允许学习的最大数目后,将不允许新增动态学习表项,以保证当一个接口所接入的某一台主机发起ND攻击时不会导致整个设备的ND
Snooping表资源都被耗尽。
Detection技术,对非法报文进行过滤,提高了用户侧ND报文的可信性及安全性,防止网络出现地址欺骗及DAD造成的攻击。配合DHCP Trust与RA
Trust功能,禁止非法的DHCP报文与RA报文发送,防止了针对RA的攻击。通过限制ND
snooping表项的学习数量,避免的对设备的DoS攻击。通过提供了一套完整的ND防攻击解决方案,提高了用户接入层的ND安全水平。
图5 客户端IP地址上传