二层攻击防范技术

本文详细阐述了DHCPSnooping的功能,包括防止仿冒者攻击、中间人攻击、DoS攻击,以及DHCP报文交互过程。文章还介绍了如何通过DHCPSnooping建立绑定表,以及IPSG、DAI和端口安全等技术在防范ARP欺骗和MAC地址安全上的应用。
摘要由CSDN通过智能技术生成

DHCP Snooping

DHCP Snooping功能用于防止:

(1)、DHCP Server仿冒者攻击。

(2)、中间人攻击与IP/MAC Spoofing攻击。

(3)、改变CHADDR值的DoS攻击。

(4)、0ption82。

  • 1、DHCP Server仿冒者攻击

• 攻击者在网络中部署一台仿冒的DHCP服务器,用户获取了仿冒DHCP服务器提供的信息,流量就容易被劫持。

  • 2、中间人攻击与IP/MAC Spoofing攻击。

• 分配虚假网关,用户流量访问外网会发给虚假网关转发,流量容易劫持,造成中间人攻击。

  • 3、改变CHADDR值的DoS攻击。

• 对DHCP产生DoS攻击。

DHCP工作原理

DHCP报文类型

  • 1、DHCP DISCOVER

• DHCP客户端广播发送的,用来查找网络中可用的DHCP服务器。

  • 2、DHCP OFFER

• DHCP服务器用来响应客户端DHCP DISCOVER 请求,并为客户端指定相应配置参数。

  • 3、DHCP REQUEST

• DHCP客户端广播发送给DHCP服务器,用来请求配置参数或者续借租期。

  • 4、DHCP ACK

• DHCP服务器通知客户端可以使用分配的IP地址和配置参数。

  • 5、DHCP NAK

• DHCP服务器通知客户端地址请求不正确或者租期已过期。

  • 6、DHCP RELEASE

• DHCP客户端主动向DHCP服务端发送,告知服务器该客户不再需要分配的IP地址。

  • 7、DHCP DECLINE

• DHCP客户端发现地址冲突或由于其它原因导致地址不使用,则发送 DHCP-DECLINE 报文,通知服务器所分配的IP地址不可用。

  • 8、DHCP INFORM

• DHCP客户端已经有IP地址,用它来向服务器请求其他的配置参数。

DHCP报文结构

DHCP SERVER与CLIENT的标准交互过程

  • 1、CLENT首先发出广播的DHCP DISCOVER报文,广播的目的是让DHCP  SERVER能够收到这个请求报文。在这个报文中,CLIENT可以在“选项” 字段中加入“request paramter list”选项,表明自己想要获得的各种参数,而且四个IP地址字段都必须为0。

• Discover报文广播发,封装在UDP报文中,源端口为68,目的端口为67。

• option55可选项中,包含了客户端想要获取的一些信息,子网掩码、网关、域名等信息。

• DHCP报文比较丰富,工作也比较复杂的一个协议。

• DHCP报文中四个重要的地址字段

• Client IP address:客户端目前的IP

• Your(Client)IP address:表名DHCP服务器为客户端分配的IP是多少。

• Next Server IP address:描述DHCP服务器自身的IP地址。

• Relay agent IP address:DHCP中继设备的IP地址。

  • 2、由于DHCP DISCOVER报文是广播,那么所有的DHCP SERVER都能够收到,所有的DHCP SERVER都会响应一个DHCP OFFER报文,其中“你的IP地址”字段就是DHCP SERVER能够提供给CLIENT使用的IP地址,而且DHCP SERVER会把自己的IP地址放在“选项”字段中以便CLIENT区分不同的DHCP SERVER,发出此报文后,在DHCP SERVER上就会存在一个已分配IP地址使用记录。
  • 3、CLIENT能够收到所有的DHCP OFFER报文,但CLIENT只能处理其中的一个。一般的原则是CLIENT接收、处理最先收到的那个DHCP OFFER报文。CLIENT会再发出一个广播的DHCP REQUEST,一般的原则是CLIENT接收、处理最先收到的那个DHCP OFFER报文。CLIENT会再发出一个广播的DHCP REQUEST报文,在“选项”字段中会加入选中的DHCP SERVER的IP地址和用户想要的IP地址之所以广播是因为要通知所有的DHCP SERVER进行相应的处理。

• DHCP REQUEST何时用广播何时用单播取决于DHCP报文交互的事件而定。

  • 4、DHCP SERVER收到DHCP REQUEST报文(广播),判断“选项”字段中的DHCP SERVER的IP地址是否与自己的地址相同,不相同,则不做任何处理,如果自己发出过DHCP OFFER报文,则清除相应IP地址记录;当“选项”字段中的DHCP SERVER的IP地址是与自己的IP地址相同时,DHCP SERVER就会响应一个DHCP ACK报文,其内容同DHCP OFFER类似并在“选项”字段中增加了IP地址使用租期选项。
  • 5、CLIENT收到DHCP ACK报文后(经过上面【第四步】的处理后,有且只有一个DHCP ACK报文),会检查DHCP SERVER分配给自己的IP地址是否能够使用,如在以太网类型的网络中,CLIENT会发出免费的ARP请求来确定DHCP SERVER分配的IP地址是否已经被别人使用,如果可以使用,则CLIENT成功获得IP地址,并根据IP地址使用租期自动启动续延过程。
  • 6、如果CLIENT发现DHCP SERVER分配的IP地址已经被别人使用,则CLIENT会发出DHCP DECLINE报文通知DHCP SERVER禁用这个IP地址以免引起IP地址冲突。然后CLIENT又开始新的DHCP过程,从第1步开始。
  • 7、当CLIENT成功获取IP地址后,会根据IP地址使用租期自动启动续延过程,在使用租期过去50%时刻处,向DHCP SERVER发送单播DHCP REQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCP ACK报文,则租期相应向前延长,如果失败即没有收到DHCP ACK报文,则CLIENT继续使用这个IP地址。在使用租期过去87.5%时刻处,向DHCP SERVER发送广播DHCP REQUEST报文续延租期,如果成功即收到DHCP SERVER的DHCP ACK报文,则租期相应向前延长;如果失败即没有收到DHCP ACK报文,则CLIENT继续使用这个IP地址,在使用租期到期时,CLIENT应自动放弃使用这个IP地址,并开始新的DHCP过程,从第1步开始。
  • 8、CLIENT在成功获取IP地址后,随时可以通过发送DHCP RELEASE报文释放自己的IP地址,DHCP SERVER收到DHCPRELEASE报文后,会回收相应的IP地址重新分配。当存在DHCP RELAY时,所有的DHCP报文都会经过DHCP RELAY进行转发,整个DHCP交互过程同上面类型,只是在报文封装时,稍有不同,由上面的叙述可以看出,DHCP SERVER的行为完全由CLIENT来驱动,DHCP SERVER无法控制CLIENT的行为。因此DHCP协议的安全性比较差。

DHCP报文变化情况

• 1、中继收到广播的Discover报文,改成单播,源地址为中继设备接口地址,目标地址是中继的DHCP服务器地址,中继收到后单播给客户端。2、DHCP服务器收到单播Discover后会回应一个单播的Offer,这个Offer回给中继设备,中继收到后单播给客户端。3、客户端发广播请求Rquest,中继继续转为单播发给DHCP服务器,DHCP使用单播回给中继,中继再单播给客户端。不同事件下,报文产生的封装就不一样。

• 2、中继单播Offer

• 这里我们发现抓包看到的是 DHCP Offer单播报文,DHCP Offer 是广播报文。其实 DHCP Offer 报文有可能是单播,也有可能是广播。DHCP 在报文的标志字段有一个广播位,如果 Client 支持接收 Offer 单播报文,那么 Client 就会将发送报文中的广播位设为 0 ,否则为 1 。

• 2、如果没有DHCP中继,正常这个Offer是广播发送的。

• 这个时候就有问题了,目标地址是客户端的地址,客户端还没地址,这个单播如何发送?

• 这个时候报文的源地址就是中继服务器的地址,目标地址是DHCP服务器即将发给客户端的地址,虽然这个地址客户端没正式使用,但是中继回给客户端Offer会预先使用,目标MAC地址中继可以通过Discover获取。

• 但是如果有大量的Discover如何把报文回送对应客户端的MAC地址(也就是你怎么能知道这些MAC对应的哪个Offer报文)?

• 有可能是中继记录了客户端发Discover的记录信息,由中继实现客户端个体的信息记录(猜想)。

• 中继设备如何知道客户端MAC地址的抓包

  • 通过中继后全是单播报文

DHCP Server仿冒者攻击&DOS

  • 一个广播域中存在多个DHCP服务器,就不能客户端获取固定的DHCP服务器下发的地址。
  • 攻击方式:合法的DHCP和非法的DHCP都可能给客户端提供地址,但是非法的为了让合法的DHCP服务器无法提供地址,会对合法的DHCP服务器进行DoS攻击(冒充用户发起大量地址请求,耗尽合法DHCP服务器地址池)
  • 防御方式:把连接客户端的接口(物理或vlan接口)设置为不信任接口把连接DHCP服务器接口(物理或vlan接口)设置为信任接口

• 凡是从不信任接口收到的DHCP Reply(Offer、AGK、NAK)报文直接丢弃,这样可以隔离DHCP Server仿冒者攻击。

DHCP Snooping

监听分析客户端和DHCP服务器报文交互行为,从而建立一个四源组的绑定表项。

监听绑定表的生成,绑定表记录了:(1)、客户端所在vlan/接口信息(2)、客户端自身的MAC信息(3)、客户端通过DHCP服务端获取的IP地址信息(4)、客户端申请到的地址租期时间

  • DHCP Snooping绑定表中的表项分为两种:(1)、通过命令行配置的静态表项,只能通过命令行删除。(适合IP地址固定的场景)(2)、通过DHCP Snooping功能自动学习到的动态表项(通过ACK报文生成),并根据DHCP租期进行老化。DHCP Snooping绑定表中的动态表项是根据DHCPserver回的ACK报文自动生成的。根据网络设备层次不同,动态表项的建立过程也不同:在二层设备上    1)、如果使能了0ption82选项,二层设备通过侦听DHCP报文,在DHCP请求报文中插入0ption82,DHCP Server会在ACK报文中携带0ption82选项。二层设备分析0ption82选项即可确定DHCPReply报文回应给哪个接口,从而建立对应的DHCPSnooping绑定表项。    2)、如果未使能0ption82选项,二层设备根据MAC地址表来识别不同的接口信息。

• 0ption82中继信息选项

• 客户端跨网段获取IP地址的时候,中继设备通常会给DHCP报文添加中继信息,0ption82选项包含若干子选项

• 子选项1是agent circuit ID代理电路ID:描述中继的设备接收到客户端DHCP报文的接口号信息和vlan信息。

• 子选项2是agent Remote ID代理远程ID:交换机接收到客户端信息的接口MAC地址

  • DHCP Snooping绑定表

• 在三层设备上对于配置为“不信任”的接口,设备通过侦听DHCP Reply消息(DHCP没有Reply消息,Reply是Offer、ACK、NAK三种应答报文的统称),获取DHCP Server分配给用户的IP地址、用户MAC地址、报文通过的接口等信息,建立不信任侧的IP与MAC绑定表项。该表项与分配给用户的IP地址具有同样的租期,租约到期或者用户释放该IP地址则自动删除该表项。

改变CHADDR值的DoS攻击

1、CHADDR:Client Hardware Address;2、攻击者改变的不是数据帧头部的源MAC 地址,而是改变DHCP报文中的CHADDR;3、检查DHCP Request报文中CHADDR字段。

攻击者通过发送大量DHCP的Request消耗服务器的地址池。

ARP攻击

Arp中间人攻击

  • 攻击者大量伪造ARP广播报文,在广播中描述自身是1.3,MAC地址是自身真实MAC代理原始主机的MAC,其他主机收到后会ARP表刷新。
  • 某个主机一直大量发送源IP不是自己,源MAC自己的报文,这就是ARP攻击。

二层通信主机需要知道对方的MAC地址双方才能进行通信,实现一个报文的转发。

  • Arp表一般记录了同一网段中某一个主机IP和MAC的对应关系,ARP是动态生成的(可以被删除、刷新)。

ARP报文信息

  • 在DHCP交互过程中,被设备监听到并形成IP与MAC的绑定表,设备可以根据IP和MAC去找绑定表中进行核对是否一致,从而判断是否被欺骗。

ARP网关欺骗

攻击原理:攻击者伪造网关地址,使用自身MAC发大量ARP请求报文,让所有客户端认为网关的MAC地址是自己。

防御原理:开启ARP欺骗攻击防范后,设备只在自己主动向其他主机发起ARP请求并得到回应的情况下才更改ARP表项,而不会学习主机主动发来的ARP请求报文。

IPSG(IP源防护)

IPSG背景

随着网络规模越来越大,基于源P的攻击也逐渐增多,一些攻击者利用欺骗的手段获取到网络资源,取得合法使用网络的能力,甚至造成被欺骗者无法访问网络,或者信息泄露,造成不可估量的损失。IP Source Guard 是指设备在作为二层设备使用时,利用绑定表来防御IP 源欺骗的攻击。当设备在转发IP报文时,将此IP报文中的源IP、源MAC、端口、VLAN 信息和绑定表的信息进行比较,如果信息匹配,说明是合法用户,则允许此用户正常转发,否则认为是攻击者,丢弃该用户发送的IP报文。

IPSG防御原理

IP地址包括IPv4地址和IPv6地址,即使用IPSG功能后,设备将对用户IP报文的源IPv4地址和源IPv6地址都进行检查。IPSG功能只对IP类型的报文有效。对其他类型的报文,如PPPoE(Point-to-Point Protocol overEthernet)报文无法生效。

  • 为了防止此类攻击,可以在DC交换机上接口或者VLAN上配置IPSG功能,对入方向的IP报文进行绑定表匹配检查,如果报文的信息和绑定表不一致则丢弃报文。DHCP Client通过DHCP上线。用户上线后,交换机根据DHCP ACK报文生成用户的绑定表,绑定表包括用户的源IP、源MAC、端口、VLAN 信息。当用户发送IP报文时,交换机查找此IP报文是否和该用户的绑定表匹配,如果是相同的,则允许报文通过,否则丢弃该IP报文。这样,合法用户发送的IP报文会被允许通过,而攻击者发送虚假的IP报文,无法匹配到绑定表,报文被丢弃,无法攻击其他用户。IPSG功能是基于绑定表对IP报文进行检查,检查内容包括:源IP地址、源MAC地址、VLAN和接口。设备支持的IPSG可以对这几项的任意组合进行检查。在接口(VLAN)视图下:(1)、接口+IP(2)、接口+MAC(3)、接口+IP+MAC(4)、接囗+IP+VLAN(5)、接囗+MAC+VLAN(6)、接囗+IP+MAC+VLANIP地址包括IPv4地址和IPv6地址,即使能IPSG功能后,设备将对用户IP报文的源IPv4地址和源IPv6地址都进行检查。默认检查项:(1)、VLAN视图下IP报文检查选项 源IP地址、源MAC地址和接口(2)、接口视图下的IP报文检查选项 源IP地址、源MAC地址和VLAN

可以依赖动态DHCP生成绑定表项或者静态手工配置

DAI(动态ARP检测)

用于防范ARP中间人攻击

IPSG这个IP源防护是针对业务报文做源IP地址、源MAC地址检测。

DAI是对ARP报文做检测

ARP的四种欺骗方式(ARP中四个地址信息可以是假的)

  • 源IP和源MAC要和绑定表中的一致(也可能是假的,和绑定表不一致会丢包)。
  • 目标IP和目标MAC可能是假的。

DAI配置

  • 1、采用如下思路在SwitchA上进行配置,使用动态ARP检测功能,使SwitchA对收到的ARP报文对应的源IP、源MAC、VLAN以及接口信息进行DHCP Snooping绑定表匹配检查,实现防止ARP中间人攻击。2、使能动态ARP检测丢弃报文告警功能,使SwitchA开始统计丢弃的不匹配DHCP Snooping绑定表的ARP报文数量,并在丢弃数量超过告警阈值时能以告警的方式提醒管理员,这样可以使管理员根据告警信息以及报文丢弃计数来了解当前ARP中间人攻击的频率和范围。3、配置DHCP Snooping功能,并配置静态绑定表,使动态ARP检测功能生效。

端口安全

端口安全(PortSecurity)功能将交换机接口学习到的MAC地址变为安全MAC地址(包括安全动态MAC和StickyMAC),可以阻止除安全MAC和静态MAC之外的主机通过本接口和交换机通信,从而增强设备安全性。

防止MAC地址被盗用

端口安全功能:

  • 1、限制一个接口学习的MAC地址数量(任意或者指定)

MAC表浩劫攻击

攻击原理:主机发送大量伪造的源MAC地址数据帧,直到MAC地址表学满为止,这样会导致交换机再遇到新的报文转发MAC地址不在表里进行泛洪转发。(交换机变Hub)

端口学习安全MAC地址方式

安全MAC地址分为两种:安全动态MAC与StickyMAC。二者定义及区别如下:

  • 1、安全动态MAC地址:使用端口安全而未使能SticKy MAC功能时学习到的MAC地址,缺省情况下,安全动态MAC地址不会被老化,设备重启后安全动态MAC地址会丢失,需要重新学习。
  • 2、Sticky MAC地址:使用端口安全后又传能SiKY MAC功能后学习到的MAC地址,StidyMAC地址不会被老化,保存配置后重启设备,ScK MAC地址不会丢失,无需重新学习。未使用端口安全功能时,设备的MAC地址表项可通过动态学习或静态配置,当某个接口使用端口安全功能后,该接口上之前学习到的动态MAC地址表项会被删除,之后学习到的MAC地址将变为安全动态MAC地址,此时该接口仅允许匹配安全MAC地址或静态MAC地址的报文通过,若接着使用Sicky MAC功能,安全动态MAC地址表项将转化为Sicky MAC表项,之后学习到的MAC地址也变为Sticky MAC地址,直到安全MAC地址数量达到限制,将不再学习MAC地址,并对接口或报文采取配置的保护动作。

• 适合终端用户位置相对固定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数通工程师小明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值