ARP(Address Resolution Protocol,地址解析协议)用于将网络层的IP地址解析为数据链路层地址。IP地址只是主机在网络层中的地址,如果要将网络层中数据包传送给目的主机,必须知道目的主机的数据链路层地址(比如以太网络MAC地址)。因此必须将IP地址解析为数据链路层地址。
ARP协议用于将IP地址解析为MAC地址,并在主机内部维护一张ARP表,记录最近与本主机通信的其它主机的MAC地址与IP地址的对应关系。当主机需要与陌生主机通信时,首先进行ARP地址解析,ARP地址解析过程如图11?3所示:
1) A在自己的ARP表中查询是否存在主机B的IP地址和MAC地址的对应条目。若存在,直接向主机B发送数据。若不存在,则A向整个局域网中广播一份称为“ARP请求”的数据链路帧,这个请求包含发送端(即主机A)的IP地址和MAC地址以及接收端(即主机B)的IP地址。
2) 局域网的每个主机接收到主机A广播的ARP请求后,目的主机B识别出这是发送端在询问它的IP地址,于是给主机A发出一个ARP应答。这个应答包含了主机B的MAC地址。
3) 主机A接收到主机B发出的ARP应答后,就将主机B的IP地址与MAC地址的对应条目添加自己的ARP表中,以便后续报文的转发。
扫描绑定功能即通过交换机向局域网或VLAN发送指定IP段的ARP请求报文,当收到相应的ARP应答报文时,将分析ARP应答报文来获得四元信息。由此可见,通过扫描绑定功能可以很方便的将局域网用户的四元信息进行绑定。
DHCP侦听
随着网络规模的不断扩大和网络复杂度的提高,经常出现计算机的数量超过可供分配的IP地址的情况。同时随着便携机及无线网络的广泛使用,计算机的位置也经常变化,相应的IP地址也必须经常更新,从而导致网络配置越来越复杂。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是在BOOTP协议基础上进行了优化和扩展而产生的一种网络配置协议,并有效解决了上面这些问题。
DHCP工作原理
DHCP采用“客户端/服务器”通信模式,由客户端向服务器提出配置申请,服务器返回为客户端分配的IP地址等配置信息,以实现网络资源的动态配置。通常一台服务器可以为多台客户端分配IP,如图11?5所示:
针对DHCP客户端的需求不同,DHCP服务器提供三种IP地址分配策略:
1) 手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定IP地址。通过DHCP将固定IP地址分配给客户端。
2) 自动分配地址:DHCP服务器为客户端分配租期为无限长的IP地址。
3) 动态分配地址:DHCP服务器为客户端分配具有一定有效期限的IP地址,当使用期限到期后,客户端需要重新申请地址。
绝大多数客户端均通过动态分配地址的方式获取IP地址,其获取IP地址的过程如下图所示:
1) 发现阶段,客户端以广播方式发送DHCP-DISCOVER报文寻找DHCP服务器。
2) 提供阶段,DHCP服务器接收到客户端发送的DHCP-DISCOVER报文后,根据IP地址分配的优先次序从地址池中选出一个IP地址,与其它参数一起通过DHCP-OFFER报文发送给客户端(发送方式根据客户端发送的DHCP-DISCOVER报文中的flag字段决定,具体请见DHCP报文格式的介绍)。
3) 选择阶段,如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。
4) 确认阶段,DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认地址分配给该客户端,则返回DHCP-ACK报文;否则将返回DHCP-NAK报文,表明地址不能分配给该客户端。
Option 82
DHCP报文格式基于BOOTP的报文格式,共有8种类型的报文,每种报文的格式相同。DHCP和BOOTP消息的不同主要体现在选项(Option)字段,并利用Option字段来实现功能扩展。例如DHCP可以利用Option字段传递控制信息和网络配置参数,实现地址的动态分配,为客户端提供更加丰富的网络配置信息。更多DHCP Option选项的介绍,请参见RFC 2132。
Option 82选项记录了DHCP客户端的位置信息,交换机接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option 82,并转发给DHCP服务器。管理员可以从Option 82中获得DHCP客户端的位置信息,以便定位DHCP客户端,实现对客户端的安全和计费等控制。支持Option 82的服务器还可以根据该选项的信息制订IP地址和其它参数的分配策略,提供更加灵活的地址分配方案。
Option 82最多可以包含255个子选项。若定义了Option 82,则至少要定义一个子选项。目前本交换机支持两个子选项:Circuit ID(电路ID子选项)和Remote ID(远程ID子选项)。由于Option 82的内容没有统一规定,不同厂商通常根据需要进行填充。目前本交换机对子选项的填充内容如下,电路ID子选项的填充内容是接收到DHCP客户端请求报文的端口所属VLAN的编号以及端口号,远程ID子选项的填充内容是接收到DHCP客户端请求报文的DHCP Snooping设备的MAC地址。
DHCP服务欺骗攻击
在DHCP工作过程中,通常服务器和客户端没有认证机制,如果网络上存在多台DHCP服务器,不仅会给网络造成混乱,也对网络安全造成很大威胁。这种网络中出现非法的DHCP服务器,通常分为两种情况:
1) 用户不小心配置的DHCP服务器,由此引起的网络混乱非常常见。
2) 黑客将正常的DHCP服务器中的IP地址耗尽,然后冒充合法的DHCP服务器,为客户端分配IP地址等配置参数。例如黑客利用冒充的DHCP服务器,为用户分配一个经过修改的DNS服务器地址,在用户毫无察觉的情况下被引导至预先配置好的假的金融网站或电子商务网站,骗取用户的帐户和密码,如图11?7所示。
DHCP侦听是运行在交换机上的一种DHCP安全特性。通过设置DHCP服务器的连接端口为授信端口,只处理授信端口发来的DHCP响应报文;通过监听DHCP报文,记录用户从DHCP服务器获取局域网用户的四元信息,进行绑定后与ARP攻击防护、IP源防护等安全功能配合使用;同时也可以过滤不可信任的DHCP信息,防止局域网中发生DHCP服务欺骗攻击,提高网络的安全性。
ARP防护
根据11.1.3 扫描绑定所述的ARP地址解析过程可知,利用ARP协议,可以实现相同网段内的主机之间正常通信或者通过网关与外网进行通信。但由于ARP协议是基于网络中的所有主机或者网关都为可信任的前提制定的,因此在实际复杂的网络中,此过程存在大量的安全隐患,从而导致针对ARP协议的欺骗攻击非常常见。网关仿冒、欺骗网关、欺骗终端用户和ARP泛洪攻击均是在学校等大型网络中常见的ARP攻击,以下简单介绍这几种常见攻击:
网关仿冒
攻击者发送错误的网关MAC给受害者,而网络中的受害者收到这些ARP响应报文时,自动更新ARP表,导致不能正常访问网络。如图11?9所示。
如图,攻击者发送伪造的网关ARP报文给局域网中的正常用户,相应的局域网用户收到此报文后更新自己的ARP表项。当局域网中正常用户要与网关进行通信时,将数据包封装上错误的目的MAC地址,导致通信中断。
欺骗网关
攻击者发送错误的终端用户的IP/MAC的对应关系给网关,导致网关无法和合法终端用户正常通信。如图11?10所示。
如图,攻击者发送伪造的用户A的ARP报文给网关,网关收到此报文后更新自己的ARP表项,当网关与局域网中用户A进行通信时,将数据包封装上错误的目的MAC地址,导致通信中断。
欺骗终端用户
攻击者发送错误的终端用户/服务器的IP/MAC的对应关系给受害的终端用户,导致同网段内两个终端用户之间无法正常通信。如图11?11所示。
如图,攻击者发送伪造的用户A的ARP报文给用户B,用户B收到此报文后更新自己的ARP表项,当用户B与用户A进行通信时,将数据包封装上错误的目的MAC地址,导致通信中断。
中间人攻击
攻击者不断向局域网中计算机发送错误的ARP报文,使受害主机一直维护错误的ARP表项。当局域网主机互相通信时,将数据包发给攻击者,再由攻击者将数据包进行处理后转发。在这个过程中,攻击者窃听了通信双方的数据,而通信双方对此并不知情。这就是中间人攻击。如图11?12所示。
假设同一个局域网内,有3台主机通过交换机相连:
A主机:IP地址为192.168.0.101,MAC地址为00-00-00-11-11-11;
B主机:IP地址为192.168.0.102,MAC地址为00-00-00-22-22-22;
攻击者:IP地址为192.168.0.103,MAC地址为00-00-00-33-33-33。
1. 首先,攻击者向主机A和主机B发送伪造的ARP应答报文。
2. A主机和B主机收到此ARP应答后,更新各自的ARP表。
3. A主机和B主机通信时,将数据包发送给错误的MAC地址,即攻击者。
4. 攻击者窃听了通信数据后,将数据包处理后再转发到正确的MAC地址,使A主机和B主机保持正常的通信。
5. 攻击者连续不断地向A主机和B主机发送伪造的ARP响应报文,使二者的始终维护错误的ARP表。
在A主机和B主机看来,彼此发送的数据包都是直接到达对方的,但在攻击者看来,其担当的就是“第三者”的角色。这种嗅探方法,也被称作“中间人”的方法。
ARP泛洪攻击
攻击者伪造大量不同ARP报文在同网段内进行广播,消耗网络带宽资源,造成网络速度急剧降低;同时,网关学习此类ARP报文,并更新ARP表,导致ARP表项被占满,无法学习合法用户的ARP表,导致合法用户无法访问外网。
在本交换机中,通过四元绑定功能在用户接入交换机时即对用户的四元信息进行绑定;而在ARP防护功能中则利用在交换机中绑定的四元信息对ARP报文进行检查,过滤非法ARP报文。通过上述两步可以很好的对局域网中ARP攻击进行防御。