《2022年IPv解决方案ND防攻击技术白皮书 .pdf》由会员分享,可在线阅读,更多相关《2022年IPv解决方案ND防攻击技术白皮书 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、IPv6解决方案 ND 防攻击技术白皮书关键词: ND ,ARP ,ND 攻击,ARP 攻击,交换机, IPV6摘 要:本文介绍了在 IPv6网络中的 ND 攻击及防攻击的技术思路以及H3C 公司的ND 防攻击方案部署的典型方案以及技术特点。缩略语清单:缩略语英文全名中文解释NDPNeighbor DiscoverProtocol邻居发现协议ARPAddress ResolutionProtocol地址解析协议IPv6Internet ProtocolVersion 6因特网协议第六版1ND 攻击概述邻居发现协议( Neighbor Discovery Protocol,以下称 ND 协议)是
2、IPv6的一个关键协议,可以说,ND 协议是IPv4某些协议在 IPv6中综合起来的升级和改进,如 ARP 、ICMP 路由器发现和 ICMP 重定向等协议。当然,作为 IPv6的基础性协议, ND 还提供了其他功能,如前缀发现、邻居不可达检测、重复地址检测、地址自动配置等。在IPv4网络中, ARP 攻击问题已经为广大的网络管理者,设备厂商所认识,ARP 攻击能够造成大面积网络不能正常访问外网,使得正常用户深受其害。针对 ARP 攻击,大部分的网络设备厂商都推出了自己的ARP 防攻击解决方案,在很大程度上解决了ARP 攻击的问题。而伴随着 IPv6网络的建设,在 IPv6协议族中的 NDP
3、协议越来越被重视,而在 ND 协议的设计与ARP 协议一样并未提供认证机制,导致网络中的主机是不可信的,从而使得针对 ND 协议的攻击非常容易。2ND 协议介绍2.1ND 报文类型ND 协议定义的报文使用 ICMP 承载,其类型包括:路由器请求报文、路由器通告报文、邻居请求报文、邻居通告报文和重定向报文。由于ND 报文中的可选字段及代码类型较多,下面描述的ND 报文中的各个字段并不完全,主要描述了涉及到ND 防攻击技术的选项。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共
4、 14 页 - - - - - - - - - 2.1.1路由器请求报文RS Router Solicitation Message主机启动后,通过 RS 消息向路由器发出请求,期望路由器立即发送RA 消息响应。 RS 报文格式如图 1。图1 路由器请求报文?Type 类型字段,值133?Code 代码字段,值0?Options 选项字段?源链路层地址选项仅用于已编址的链路层可用于 RS报文的只有源链路层地址选项,表明该报文发送者的链路层地址。如果 IPv6头的源地址为未指定地址,则不能包括该选项。 同时,IPv6报文头中的字段要求如下:?Hop Limit 值255,保证是本地链路上的报文?
5、Source Address 发送接口的本地链路地址或未指定地址?Destination Address 本地链路中所有路由器的 组播地址 FF02:22.1.2路由器通告报文RA Router Advertisement Message路由器周期性的发布RA消息,其中包括前缀和一些标志位的信息,或者以 RA报文响应路由器请求报文RS。RA的报文格式如图 2。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 图2 路由器通告报文
6、?Type 类型字段,值134?Code 代码字段,值0?M 管理地址配置标识(Managed address configuration)0无状态地址分配,客户端通过无状态协议(如ND )获得IPv6地址;1有状态地址分配,客户端通过有状态协议(如DHCPv6 )获得IPv6地址。?O 其它有状态配置标识(Other stateful configuration) 0客户端通过无状态协议(如ND )获取除地址外的其他配置信息; 1客户端通过有状态协议(如DHCPv6 )获取除地址外的其他配置信息,如 DNS 、SIP服务器信息。 协议规定,若 M 标记置为 1,则O 标记也应置为 1,否则无
7、意义。?Router Lifetime 缺省路由器的生命周期(单位:秒)表示发送该 RA报文的路由器作为缺省路由器的生命周期。RouterLifetime 最长 9000秒小时,缺省值 30分钟。如果该字段为0时,表示该路由器不能作为缺省路由器,但RA报文的其他信息仍然有效。?Reachable Time 可达时间(单位:毫秒)发送 NS报文后,在得到邻居可达性确认后,认为邻居可达的时间,0表示不指定。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - -
8、- - - - - - 路由器在接口上通过发送RA报文,让同一链路上的所有节点都使用相同的可达时间。若Reachable Time为0,表示路由器不指定该字段参数。该值可配置,RA报文中缺省值为 0。?Retrans Timer 重传定时器(单位:毫秒)重传 NS报文的时间间隔,用于邻居不可达检测和地址解析。若该值为0,表示路由器不指定该字段参数。该值可配置,RA报文缺省值为0。?Options 选项字段?源链路层地址选项仅用于已编址的链路层。当路由器正在多个链路层地址上进行负荷分担时,要忽略该选项。? MTU 选项链路的可变 MTU?前缀信息选项用于地址自动配置的前缀信息,可包含多个?路由信
9、息选项用于主机生成缺省路由,表明前缀通过该路由器是可达的 同时,IPv6报文头中的字段要求如下:?Source Address 必须是发送接口的本地链路地址?Destination Address 组播地址 FF02:1 ,或发送 RS 请求报文的主机的单播地址2.1.3邻居请求报文 NS Neighbor Solicitation Message主机通过 NS 消息可以得到邻居的链路层地址、检查邻居是否可达、重复地址检测等。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共
10、 14 页 - - - - - - - - - 图3 邻居请求报文?Type 类型字段,值135?Code 代码字段,值0?Target Address 目标地址,16bytes请求目标的 IP地址,不能是组播地址,可以是本地链路、本地站点、全局地址。?Options 选项字段?源链路层地址选项和RS报文的选项相同,可用于NS报文的只有源链路层地址选项。源链路层选项仅用于已编址的链路层,如果IPv6头的源地址为未指定地址,则不能包括该选项。 同时,IPv6报文头中字段要求如下:?Source Address 发送接口的地址或未指定地址(DAD 检测)?Destination Address 目
11、的节点单播地址或目的节点地址对应的请求节点组播地址需要说明,如果源地址为未指定地址,则目的地址应为被请求节点的组播地址,并且没有源链路层地址选项。1.1邻居通告报文 NA Neighbor Advertisement MessageNA 报文是主机对 NS 的响应报文,同时主机在链路层地址变化时也可以主动发送NA 消息,以通知相邻节点自己的链路层地址或者角色发生改变。图4 邻居通告报文名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - -
12、 - ?Type 类型字段,值136?Code 代码字段,值0?R 路由器标记(Router Flag)表示NA 报文发送者的角色。置位表示发送者是路由器,复位表示发送者为主机。?S 请求标记(Solicited Flag)置位表示为响应单播NS发送的 NA 报文。在 NUD 探测中, S标记作为邻居可达性确认标记;在组播通告或非请求单播通告中,S标记必须清零,如 DAD 检测中 NS报文用的是被请求节点的组播地址,当地址冲突时,回应的 NA报文的 S标记需要清零。?O 重载标记(Override Flag)1表示需要用目标链路层地址选项中的链路层地址,来更新邻居缓存表。0只有在链路层地址未知
13、时,才能用目标链路层地址选项来更新邻居缓存表。?Target Address 目标地址,16bytes如果是针对 NS 而发送NA ,该字段直接拷贝 NS 报文目标地址;如果不是针对NS 发送的NA ,该地址是链路层地址发生改变的网络节点的IP地址。目标地址不能是组播地址。?Options 选项字段,只能是目的链路层地址选项,通告发送者的链路层地址。同时, IPv6报文头中字段要求如下:?Source Address 必须是发送接口的单播地址?Destination Address 单播地址或者所有节点的组播地址(FF02:1 )2.1.4重定向报文 Redirect Message路由器通过
14、重定向报文通知主机到目的地有更好的下一跳地址,或者通知主机目的地址为本网段邻居。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 图5 重定向报文?Type 类型字段,值137?Code 代码字段,值0?Target Address 目标地址,16bytes到达目的地址的下一跳地址。如果目标为路由器(本地链路外的报文),必须使用路由器的本地链路地址;如果是主机(本地链路报文),目标地址和目的地址必须一致。?Destination
15、 Address 目的地址,即IPv6 头部的目的地址,16bytes?Options 选项字段?目标链路层地址选项:新下一跳的链路层地址。?重定向头选项:触发报文尽可能多的部分,但不应使重定向报文超过 1280bytes。 同时,IPv6报文头中字段要求如下:?Source Address 发送接口的本地链路地址?Destination Address 触发重定向的数据报文的单播地址2.2ND 协议主要功能介绍名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 -
16、 - - - - - - - - 2.2.1路由器发现 Router Discovery路由器发现是指主机怎样定位本地链路上路由器和确定其配置信息的过程,主要包含以下三方面的内容:路由器发现 Router Discovery路由器发现是主机定位邻居路由器以及选择哪一个路由器作为缺省网关的过程。前缀发现 Prefix Discovery主机发现本地链路上的一组IPv6前缀的过程,用于主机的地址自动配置。参数发现 Parameter Discovery主机发现相关操作参数的过程,如链路最大传输单元(MTU )、输出报文的缺省跳数限制(Hop Limit )、地址配置方式等信息。在路由器通告报文 R
17、A中承载着路由器的相关信息,ND协议通过 RS和RA 的报文交互完成路由器发现、前缀发现和参数发现三大功能。协议交互主要有两种情况:主机请求触发路由器通告和路由器定期发送路由器通告。(1) 主机请求触发路由器通告当主机启动时,主机会向本地链路范围内所有的路由器发送RS报文,触发邻接路由器响应RA报文。主机发现本地链路上的路由器后,自动配置缺省路由器,建立缺省路由表、前缀列表和设置其它的配置参数。(2) 路由器定期发送路由器通告路由器周期性的发送RA报文,使主机发现本地链路上的路由器及其配置信息,主机根据这些内容来维护缺省路由表、前缀列表和配置其它参数。1.2地址解析 Address resol
18、ution地址解析是指某节点在知道目的节点IP地址的情况下,确定目的链路层地址的过程。当一个节点需要得到同一本地链路上另外一个节点的链路层地址时,需要进行地址解析,该机制类似于IPv4中的ARP 。 ND协议用NS 和NA 报文完名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 成IPv6地址到链路层地址的解析,解析后的链路层地址和IP地址等信息用来建立节点的一个邻居缓存表项。当一个节点 A要传送数据包到另一个节点B时,如果不知
19、道 B的链路层地址,则需要完成以下协议交互过程:A发送一个 NS 报文到网络上,目的地址为Node B对应的被请求节点组播地址,选项字段中带上 Node A的链路层地址。B侦听到该 NS 报文后,由于报文的目的地址属于自己被请求节点的组播地址,处理该报文;发送一个NA 报文应答 NS ,同时在消息的目标链路层地址选项中带上自己的链路层地址。A接收到NA 报文后,获悉了 B的链路层地址,创建一个目标节点的邻居缓存表项。这样通过交互后, A和B就知道了对方的链路层地址,建立其对方的邻居缓存表项(类似于 IPv4的ARP 表),可以相互通信了。此外,一个节点的链路层地址发生改变时,可以用所有节点的组
20、播地址FF02:1 发送NA 报文,通知本地链路上的其他节点,使这些节点可以刷新自己的邻居缓存表。2.2.2邻居不可达检测NUD Neighbor UnreachabilityDetection邻居不可达检测是节点怎样确定邻居不可达状态的过程。ND协议用 NS和NA 报文来验证邻居节点的可达性。节点在确定邻居的链路层地址后,跟踪邻居缓存表的状态,定时发送NS报文,如果邻居在规定的可达时间内(缺省值为30秒)不能接收或者发送返回的报文,则删除此邻居缓存表项。邻居的可达性并不能说明端到端的可达性。因为相邻节点可能是主机或者路由器,所以相邻节点并不一定就是数据包的最终目标。NUD 检测仅仅验证了到目
21、标路径上第一跳的可达性状态。1.3重复地址检测 DAD Duplicate Address Detection 重复地址检测是节点确定即将使用的地址是否被另一节点使用的过程。在节点自动配置某个接口的IPv6单播地址之前,必须在本地链路范围内验证要使用的临时地址是唯一的,并且未被其他节点使用过。只要NS报文发送到本地链路上(缺省发送一次NS报文),如果在规定时间内没有 NA 报文进行应答,则认为这个临时单播地址在本地链路名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14
22、页 - - - - - - - - - 上是唯一的,可以分配给接口;反之,这个临时地址是重复的,不能使用此地址。3ND 常见攻击介绍3.1ND 常见攻击类型3.1.1地址欺骗攻击攻击者可以使用 RS/NS/NA报文来修改受害主机或网关上受害主机的MAC 地址,造成受害主机无法与网络进行正常的通信。如下图所示:图6 RS/NS/NA仿冒攻击示意图如上图所示,攻击者能够伪造NS/NA 报文,发送给网关或受害主机,通过这种方式来对网关上受害主机的MAC 地址或受害主机上的特定的 MAC 地址进行修改,这样就造成了受害用户无法接收到正常的数据报文。3.1.2DAD 攻击名师资料总结 - - -精品资料
23、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 当受害主机进行 DAD 查询的时候,攻击者通过NS或NA 报文进行干扰,使得受害主机的DAD 过程失败,无法获取到IP地址,这种攻击的概率和 NS/NA 的欺骗攻击相比,相对较少。见下图:图7 DAD 攻击示意图如上图所示,在受害者进行DAD 检测时,攻击者可以伪造NS报文,与受害者产生冲突,也可以伪造NA 报文,应答受害者的NS报文。这两种情况,受害主机都无法获取地址,进行正常的网络通信。3.1.3RA 攻
24、击RA 能够携带很多网络配置信息,包括默认路由器,网络前缀列表,是否使用DHCP 服务器进行有状态地址分配等网络配置的关键信息。如果受害者接收了虚假的 RA 信息,会造成网络配置错误,从而引发欺骗攻击。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 图8 RA攻击示意图如上图所示,攻击者发送伪造的RA 报文,其中可以造成多种攻击: 1)伪造不存在的前缀,修改受害主机的路由表。 2)伪造网关的 MAC 及lifetime,造成
25、受害主机的默认网关改变。 3)伪造DHCP 服务器,同时伪造 RA 中的M bit ,造成受害主机使用DHCP 服务器分配到虚假的地址。3.1.4针对网关的泛洪攻击通过发送大量的 NS/RS 报文,造成网关的表项溢出。图9 泛洪攻击示意图攻击者通过伪造大量的 NS/RS 报文,发送给网关,使得网关的表项溢出,造成网关无法提供正常的服务。4H3C 的ND 防攻击解决方案通过对上述的 ND 攻击类型的介绍。我们可以推出发现当前ND 攻击防御的关键所在:如何获取到合法用户和网关的IPv6地址-MAC 对应关系,并如何利用该对应关系对 ND 报文进行检查,过滤掉非法ND 报文。H3C 公司解决这一关键
26、问题的思路是,通过自动的ND 监控模式、 DHCP 监控模式与手工配置的方式,获取到合法用户的IP-MAC 对应关系。再配合 RA trust与DHCP trust 对RA 报文与DHCP 报文进行限制,从而解决不同环境下的ND防攻击问题。同时,为了避免网关的 ND 表项被异常的 ND 报文打满溢出造成 DoS 攻击,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 在网关上能够针对端口配置最大的ND 表项学习数量,能够缓解此
27、类攻击。4.1信任表项与 ND Detection从前文的描述,我们知道,在局域网中ARP 或ND 攻击的根本原因是无法对所交互的 ARP 或ND 报文进行验证,从而无法得知正确的用户IP、MAC 、端口的绑定信息,所以无法对异常的ND 报文进行过滤,使得网络中可能发生ARP/ND 攻击。H3C 通过ND snooping、DHCP snooping 、手工配置等手段在接入层交换机上建立的一张 IP、MAC 、Port 的可信表项,获取可靠的用户IP地址与MAC 地址的对应关系。通过这张表项,结合ND Detection 技术,对异常的ND 报文进行过滤,达到防止 ND 攻击的效果。H3C 的
28、ND snooping与DHCP snooping 是一种动态获取用户 IP、MAC 、Port对应关系的技术,下面分别对这两种技术进行简要描述:ND snooping:ND 协议报文的交互过程在上文已经进行了描述,在NDsnooping 中,监听 ND 协议的DAD 交互过程,获取用户的 IP、MAC 、Port 的对应关系。DHCP snooping :通过监听 DHCP 的交互过程,获得用户的 IP、MAC 、Port的绑定表项。手工绑定表项:手工绑定是一种常用的技术,在一些规模不大的网络中,或者对安全性要求较高且不经常变化的网络中,使用手工绑定来建立可信表项。在建立了绑定表项之后,能够
29、保证一个已经获取了IP地址的用户只能使用已获取的地址进行通信,过滤掉所有的不在绑定表项中的IPv6的非法用户发送的 IP报文。ND Detection 是H3C 在ND 防攻击方面的创新技术,通过结合已经建立的绑定表项,这个绑定表项可以是使用ND snooping,DHCP snooping ,手工来进行配置的,通过比较已经获取到的可信表项中的IP与MAC 地址,对ND 报文进行过滤,丢弃异常的报文。相比单纯使用ACL 进行的用户绑定,ND Detection 技术结合绑定表项对 ND 报文进行过滤,能够较好的防御ND 攻击。4.2RA Trust 与DHCP TrustRA Trust 与D
30、HCP Trust的功能不同,但是思路是相同的,管理员可以在相应的连接 DHCP 服务器或网关的接口上进行配置,通过手工指定连接DHCP 服务器与连接发送 RA 的设备的接口接口 (通常是网关 ),能够避免网络中DHCP 报文与RA 报文的任意发送。当进行了RA Trust 与DHCP Trust后,DHCP 的服务器端报文与 RA 报文只能从配置了 TRUST 的端口进入,避免了DHCP 服务器欺骗与 RA 攻击,提升了局域网安全性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
31、13 页,共 14 页 - - - - - - - - - 5总结综上所述, H3C 的ND 防攻击解决方案,通过在网络设备学习可信的用户接入表项,同时配合 ND Detection 技术,对非法报文进行过滤,提高了用户侧 ND 报文的可信性及安全性。再配合DHCP Trust与RA Trust 功能,禁止非法的 DHCP 报文与RA 报文发送,从多方面提升了ND 协议的安全性,解决了在 IPv6网络中存在的 ND 攻击问题。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -