常见的交换机攻击之二:MAC地址攻击。
我们都知道,在交换机中,有一张MAC地址表,在这表中,记录着某个MAC地址所对应的端口。如现在主机A通过交换机发送一条信息给B。若是第一次通信,则交换机会根据ARP等方法确认对方的位置。根据IP地址确认对方的MAC地址与对应的端口号之后, 就会在自己的MAC地址表中进行记录。下次再向B发送信息的时候,交换机就会核对这张表,若表中有这条记录的话,交换机就会直接把这条记录转发出去。很明显,这种处理机制,可以节省网络带宽,提高网络运行效率。因为若没有这一份表,则在通信之前,每次交换机都需要确认到底该从哪个端口发送出去,甚至通过广播协议确认端口信息,这显然对于数据转发的效率是有不利影响的。
在交换机中,一般是把MAC地址存储在内容可寻址存储器中,英文简称为CAM,它是一个128K大小的保留内存,专门用来存储MAC地址以及对应的端口号,以便交换机快速查询。现在如果病毒向CAM(内容可寻址存储器)发送大量的数据包,就会导致交换机开始向各个端口发送大批量的信息。显然,这给网络安全埋下了隐患,最后甚至会导致交换机在拒绝服务攻击中发生崩溃。交换机崩溃是一个比较严重的事件,它会使得企业内部的很多应用服务无法响应。
现在一些交换机在设计的时候,本身就提供了一些防攻击的工具,如采用一些技术,当交换机的资源快耗竭的时候,他就会通知发送方,暂缓发送信息。他的进入端口也会不再接收任何数据。这虽然也会造成网络的中断,但是至少交换机不会崩溃。
另外在一些比较新型的交换机者,也配备了一些自我反击功能。下面笔者以思科的交换机为例,看看其在这方面有什么可圈可点的表现。思科可以防止MAC/CAM 攻击。通过配置“端口安全性模块”可以实现如下控制。
一是可以配置端口上最大可以通过的MAC地址数量。
二是可以配置端口上学习或通过哪些MAC地址。、
三是可以实现对于超过规定数量的 MAC处理进行违背处理。
具体来说,端口上学习或通过哪些 MAC地址,可以通过静态手工定义,也可以在交换机自动学习。交换机动态学习端口MAC ,直到指定的MAC 地址数量,交换机关机后重新学习。目前比较新的技术是Sticky Port Security,交换机将学到的MAC地址写到端口配置中,交换机重启后配置仍然存在。如此的话,当计算机重新启动之后,MAC地址对应表仍然存在交换机中,如此的话,就可以减少MAC攻击的几率。
而对于超过规定数量的MAC处理进行处理一般有三种方式,可能不同的型号稍微有点区别。
第一种方式:Shutdown,这种方式保护能力最强,也最极端。所以在遇到一些特殊的情况,可能会误判,从而可能会为我们管理网络带来麻烦,如某台设备中了病毒,病毒间断性伪造源 MAC 在网络中发送报文。此时,交换机就会误判,而直接把这个端口关闭掉。
第二种方式:Protect,丢弃非法流量,不报警。也就是说,当交换机认为已经超过规定数量的MAC地址,则就会把这个数据流量直接拒绝掉,并且,不会向管理员报警。
第三种方式:Restrict ,丢弃非法流量,报警。这种方式跟第二种方式类似,为一的不同是,这种方式当遇到意外情况的时候,会向管理员报警。
对比上面三种处理方式,笔者建议是采用第三种处理。因为这个灵活性更大,而且,不会因为误判而影响到其它的数据流量。
责任编辑:小草