MAC Flooding攻击原理及预防方法

  在网络环境中,不得不提的一个攻击方式是MAC flooding攻击。这篇文章旨在介绍MAC Flooding的原理和防范方法,可以有效帮助网络工程师提高所在网络的安全性。

  在典型的MAC flooding中,攻击者能让目标网络中的交换机不断泛洪大量不同源MAC地址的数据包,导致交换机内存不足以存放正确的MAC地址和物理端口号相对应的关系表。如果攻击成功,交换机会进入failopen模式,所有新进入交换机的数据包会不经过交换机处理直接广播到所有的端口(类似HUB集线器的功能)。攻击者能进一步利用嗅探工具(例如Wireshark)对网络内所有用户的信息进行捕获,从而能得到机密信息或者各种业务敏感信息。可见MAC flooding攻击的后果是相当严重的,然而思科对于这种攻击也建立了良好的保护机制!

了解MAC Flooding原理

  如图所示,网络中有3个PC和一个交换机,在正常情况下,如果PC A向PC B发送信息,PC C是不会知道的,过程都通过中间的交换机进行透明的处理,并且会记录下源MAC地址和源端口的信息到交换机中,以便下次快速转发。

mac_learning

  当攻击者PC C利用MAC flooding攻击对交换机发送很多非法的包含不同源MAC地址的封包时,交换机会把所有这些MAC地址记录到自己的CAM(Content Addressable Memory)表之中,当这些记录超过一定的数量(不同型号的机器不同,详情请查看文章最后),超过交换机所能承载的内存的时候,MAC flooding的效果就达成了。

mac_flooding_attack

  当MAC flooding效果达成的时候,交换机就变成了集线器,对所有信息进行无定向广播,PC A 发送给PC B的信息PC C也可以收到了。这个时候PC C就可以捕获数据进行数据截取等操作。

mac_flooding_attack_2

 如何预防MAC Flooding

  通过开启Cisco的Port Security功能能有效的防范MAC flooding攻击。更明细地,可以控制每个端口所能发送的源MAC地址数量,甚至可以自动或手动绑定一个MAC地址到特定端口。

Port Security定义了3种MAC地址方式:

  1. Static secure MAC addresses:通过switchport port-security mac-address 0000.1111.2222接口命令静态手工定义的MAC地址,将会保存到交换机的配置文件中。
  2. Dynamic secure MAC addresses:交换机自动学习,交换机重启会重新学习
  3. Sticky secure MAC addresses:可以通过自动学习或者手工指定,保存在CAM表和配置文件中。如果保存到配置文件中,交换机重启不需要重新学习。

配置例子:

xiaopeiqing# conf t
xiaopeiqing(config)# interface fastethernet0/1
xiaopeiqing(config-if)# switchport mode access
xiaopeiqing(config-if)# switchport port-security
|开启port security功能
xiaopeiqing(config-if)# switchport port-security maximum 10
|定义最大MAC地址数为10
xiaopeiqing(config-if)# switchport port-security violation restrict
|定义violation机制
xiaopeiqing(config-if)# switchport port-security mac-address aaaa.aaaa.aaaa
|手工定义MAC地址
xiaopeiqing(config-if)# switchport port-security mac-address bbbb.bbbb.bbbb
|手工定义MAC地址

其中Violation模式有三种:

  1. protect:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报
  2. restrict:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报,并向SNMP发送trap报文
  3. shutdown:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机端口直接变为errdisable状态,并向SNMP发送trap报文

各种型号交换机最大可存储的条目

bridge_table_entries

 



 
 » 除非注明,本博客文章均为挨踢小茶原创,转载请以链接形式标明本文地址
该日志由 挨踢小茶 于2012年06月23日发表在 信息安全, 路由交换 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: MAC Flooding攻击原理及预防方法 | 挨踢茶馆
关键字:

MAC Flooding攻击原理及预防方法:目前有11 条留言

  1. 8楼
    issacy:

    在企业网的交换机端口,启动端口安全还是很有必要的。文章将的很明白

    2012-08-10 上午 10:01 [回复]
  2. 7楼
    TC:

    估计没几个可以看懂。我表示鸭梨很大。呵呵

    2012-06-26 下午 2:02 [回复]
  3. 6楼
    童熙:

    噢噢,不懂,看不明白

    2012-06-24 下午 5:49 [回复]
  4. 5楼
    小杰:

    有点难度了,学习了!

    2012-06-24 下午 5:21 [回复]
  5. 大概看懂了~

    2012-06-24 下午 1:54 [回复]
  6. 地板
    多丽人:

    很专业的文章哦

    2012-06-24 上午 11:40 [回复]
  7. 板凳
    luacloud:

    最纠结的就是让我一个纯程序员去处理网络攻击= =|||

    2012-06-23 下午 8:12 [回复]
  8. 沙发
    雷东升:

    高深了,端午节快乐

    2012-06-23 下午 7:54 [回复]

发表评论



快捷键:Ctrl+Enter

无觅相关文章插件,快速提升流量