论文部分内容阅读
常在河边走,哪有不湿鞋?作为网络管理员无时无刻都可能受到病毒的困扰。ARP病毒是局域网中非常普遍的攻击类型,可很多人在遇到突如其来的ARP攻击时却手足无措。
最近,公司的局域网老是遭到ARP攻击,一上班同事就纷纷抱怨自己电脑上网速度很慢,还时不时提示遭受ARP攻击。忙活了大半天才让整个网络恢复正常。本文整理了遭遇ARP后的一些处理办法,以期能对同行有所帮助。按照常理来说,应对ARP攻击预防应该是第一位的,但根据很多网络故障的实际情况来看,往往又是一个个亡羊补牢的故事。
“低能”交换机
每个客户端主机都用一个ARP高速缓存存放最近IP地址与MAC硬件地址之间的映射记录。只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断地发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
有一种说法是交换机上可以防止ARP攻击,但是如果交换机没有进行过安全设置,一样避免不了ARP病毒爆发后的混乱局面。要知道交换机上同样维护着一个动态的MAC缓存,对应的列表保存了交换机的接口(Port)对应MAC地址。这个表开始是空的,交换机从来往数据帧中学习。
由于MAC-Port缓存表是动态更新的,那么让整个交换机的接口表都改变的方法是对交换机进行MAC地址欺骗的洪泛攻击,不断发送大量假MAC地址的数据包让交换机更新MAC-Port缓存。如果能通过这样的办法把以前正常的MAC和Port对应表更换。那么交换机就会进行洪泛发送给每一个接口,让交换机基本变成一个 Hub,向所有的接口发送数据包。ARP攻击将造成交换机 MAC-Port缓存的崩溃,所以说没有进行安全管理的交换机和Hub一样,都是“低能儿”。
拜金ARP攻击
ARP欺骗攻击根据其攻击位置的不同,可以分为以下几种:
仿冒网关
攻击者发送伪造的网关ARP报文,欺骗同网段内的其他主机。主机访问网关的流量,被重定向到一个错误的MAC地址,导致用户无法访问网络。
欺骗网关
攻击者伪造虚假的ARP报文,欺骗网关。网关发给该用户的所有数据全部重定向到一个错误的MAC地址,导致用户无法访问网络。
欺骗终端用户
攻击者伪造虚假的ARP报文,欺骗相同网段内的其他主机。网段内的其他主机发给该用户的所有数据都被重定向到错误的MAC地址,同网段内的用户间无法正常互访。
ARP洪泛攻击
攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致用户无法访问网络。
笔者研究了很多ARP攻击后对外部网络的联系方式,发现他们总是和制造者的邮箱有着千丝万缕的联系,如今的ARP病毒攻击与制造者的经济利益密不可分。比如局域网内某台主机感染ARP木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网,现在却要通过病毒主机过滤数据,切换的时候用户会断一次线。切换到病毒主机过滤后,如果用户已经登录了某些游戏或者网上银行服务器,那么病毒主机就会经常伪造断线的假象,用户就得重新登录服务器,此过程就是病毒主机盗取用户账户和密码的过程。
切断ARP攻击源
VLAN的划分对于ARP病毒定位非常有帮助,如图1中的局域网有多个VLAN,每个VLAN约50个节点,经常会出现一种情况:在某一个VLAN开始有一两个用户不能上网,一段时间过后整个VLAN不能上网,但其他的VLAN可以正常上网,广播抑制的功能发挥了功效。
此问题出现时,一般的解决方案是全网杀毒。将所有机器的病毒清除之后使所有VLAN正常工作。但这种解决办法过于简单,且占用时间长,影响办公效率。通过抓包分析,此现象应该是某台主机感染ARP病毒造成的,我们可以采用下面的办法快速切断毒源。
查看攻击源地址
在不能上网的机器上运行cmd→arp -a,查看数据列表是否有可疑地址(见清单1),注意网关为10.88.56.254的MAC地址。
运行arp -d,清除ARP列表,重新运行arp -a,看数据列表的可疑IP地址是否仍然存在。如果不存在,说明此IP地址正常。如果仍然存在,说明10.88.56.226大量发送ARP请求包,这台机器可能就是ARP病毒源。
查找与关闭对应接口
当发现上述情况时,首先记录下那台主机的MAC地址,然后登录到该VLAN网段的交换机上查找对应接口。在交换机上输入命令:
Switch(config)#show mac-address-table address MAC 001a.4274.da4a //可以找到对应的端口
Switch(config)#interface f1/24//进入对应的端口
Switch(config-if)#shutdown //关闭端口,切断毒源
如果显示的结果是交换机的某一个接入客户端的以太网端口,则说明此接口与该IP地址相连,进入该接口将其关闭。
杀毒后启用接口
在感染ARP病毒的用户机器上单独杀毒并确认病毒被完全根除后,再使用“no shutdown”将其对应的网络接口激活,此时可验证客户端是否可以访问网络。再次运行cmd→arp -a 看ARP列表是否正常。
最佳实践总结
根据多年的网络管理经验,最佳的办法是将IP地址与MAC地址同时绑定到ACL。
为什么要绑定MAC与IP 地址?我们知道,在TCP/IP网络中,计算机往往需要设置IP地址后才能通信。然而,实际上计算机之间的通信并不是通过IP地址,而是借助于网卡的MAC地址。IP地址的修改非常容易,为了防止内部人员进行非法IP盗用(例如,盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败。
交换机上做IP、MAC双捆绑的访问控制方式兼具低投入、高安全性和坚固性等特点。不但可以有效地防范IP地址盗用行为的发生,对于ARP病毒的防范也会起到事半功倍的效果。下面我们将介绍此方案的配置步骤:
第1步:定义一个MAC地址访问控制列表并命名为“droparp”。
Switch(config)#mac access-list extended droparp
第2步:定义MAC地址为001b.7728.0f4b的主机可以访问任何主机。
Switch(config-ext-mac1)#permit host 001b.7728.0f4b any
第3步:定义任何主机可以访问MAC为001b.7728.0f4b的主机
Switch(config-ext-mac1)#permit any host 001b.7728.0f4b
第4步:定义一个IP地址访问控制列表并且命名为“ipforward”。
Switch(config-ext-mac1)#ip access-list extended ipforward
第5步:定义IP地址为192.168.1.1的主机可以访问任何主机。
Switch(config-ext-nac1)#permit 192.168.1.1 0.0.0.0 any
第6步:定义任何主机都可以访问IP地址为192.168.1.1的主机。
Switch(config-ext-nac1)#permit any 192.168.1.1 0.0.0.0
第7步:进入接口配置模式。
Switch(config)#interface fastethernet0/1
第8步:在该接口上应用名为MAC1的访问列表。
Switch(config-if) #MAC access-group droparp in
第9步:在该接口上应用名为IP1的访问列表。
Switch(config-if)#ip access-group ipforward in
以上功能在思科2950、3550、4500、6500系列交换机上可以实现,但是需要注意的是2950、3550需要交换机运行增强的软件镜像(Enhanced Image)。对于没有爆发过ARP病毒的网络,管理员可以进行Internet访问控制,防止ARP攻击程序从Internet下载到用户终端,另外安装ARP服务器、ARP防护软件、U盘免疫程序等都能极大地减少此种攻击的发生。
清单1
C:\Documents and Settings\sam>arp -a
Interface:10.88.56.200 --- 0x2
Internet Address Physical AddressType
10.88.56.25400-1b-5f-aa-7d-11dynamic
10.88.56.22600-1a-42-74-da-4a dynamic
最近,公司的局域网老是遭到ARP攻击,一上班同事就纷纷抱怨自己电脑上网速度很慢,还时不时提示遭受ARP攻击。忙活了大半天才让整个网络恢复正常。本文整理了遭遇ARP后的一些处理办法,以期能对同行有所帮助。按照常理来说,应对ARP攻击预防应该是第一位的,但根据很多网络故障的实际情况来看,往往又是一个个亡羊补牢的故事。
“低能”交换机
每个客户端主机都用一个ARP高速缓存存放最近IP地址与MAC硬件地址之间的映射记录。只要网络上有ARP响应包发送到本机,即会更新ARP高速缓存中的IP-MAC条目。攻击者只要持续不断地发出伪造的ARP响应包,就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。
有一种说法是交换机上可以防止ARP攻击,但是如果交换机没有进行过安全设置,一样避免不了ARP病毒爆发后的混乱局面。要知道交换机上同样维护着一个动态的MAC缓存,对应的列表保存了交换机的接口(Port)对应MAC地址。这个表开始是空的,交换机从来往数据帧中学习。
由于MAC-Port缓存表是动态更新的,那么让整个交换机的接口表都改变的方法是对交换机进行MAC地址欺骗的洪泛攻击,不断发送大量假MAC地址的数据包让交换机更新MAC-Port缓存。如果能通过这样的办法把以前正常的MAC和Port对应表更换。那么交换机就会进行洪泛发送给每一个接口,让交换机基本变成一个 Hub,向所有的接口发送数据包。ARP攻击将造成交换机 MAC-Port缓存的崩溃,所以说没有进行安全管理的交换机和Hub一样,都是“低能儿”。
拜金ARP攻击
ARP欺骗攻击根据其攻击位置的不同,可以分为以下几种:
仿冒网关
攻击者发送伪造的网关ARP报文,欺骗同网段内的其他主机。主机访问网关的流量,被重定向到一个错误的MAC地址,导致用户无法访问网络。
欺骗网关
攻击者伪造虚假的ARP报文,欺骗网关。网关发给该用户的所有数据全部重定向到一个错误的MAC地址,导致用户无法访问网络。
欺骗终端用户
攻击者伪造虚假的ARP报文,欺骗相同网段内的其他主机。网段内的其他主机发给该用户的所有数据都被重定向到错误的MAC地址,同网段内的用户间无法正常互访。
ARP洪泛攻击
攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致用户无法访问网络。
笔者研究了很多ARP攻击后对外部网络的联系方式,发现他们总是和制造者的邮箱有着千丝万缕的联系,如今的ARP病毒攻击与制造者的经济利益密不可分。比如局域网内某台主机感染ARP木马程序时,会欺骗局域网内所有主机和路由器,让所有上网的流量必须经过病毒主机。其他用户原来直接通过路由器上网,现在却要通过病毒主机过滤数据,切换的时候用户会断一次线。切换到病毒主机过滤后,如果用户已经登录了某些游戏或者网上银行服务器,那么病毒主机就会经常伪造断线的假象,用户就得重新登录服务器,此过程就是病毒主机盗取用户账户和密码的过程。
切断ARP攻击源
VLAN的划分对于ARP病毒定位非常有帮助,如图1中的局域网有多个VLAN,每个VLAN约50个节点,经常会出现一种情况:在某一个VLAN开始有一两个用户不能上网,一段时间过后整个VLAN不能上网,但其他的VLAN可以正常上网,广播抑制的功能发挥了功效。
此问题出现时,一般的解决方案是全网杀毒。将所有机器的病毒清除之后使所有VLAN正常工作。但这种解决办法过于简单,且占用时间长,影响办公效率。通过抓包分析,此现象应该是某台主机感染ARP病毒造成的,我们可以采用下面的办法快速切断毒源。
查看攻击源地址
在不能上网的机器上运行cmd→arp -a,查看数据列表是否有可疑地址(见清单1),注意网关为10.88.56.254的MAC地址。
运行arp -d,清除ARP列表,重新运行arp -a,看数据列表的可疑IP地址是否仍然存在。如果不存在,说明此IP地址正常。如果仍然存在,说明10.88.56.226大量发送ARP请求包,这台机器可能就是ARP病毒源。
查找与关闭对应接口
当发现上述情况时,首先记录下那台主机的MAC地址,然后登录到该VLAN网段的交换机上查找对应接口。在交换机上输入命令:
Switch(config)#show mac-address-table address MAC 001a.4274.da4a //可以找到对应的端口
Switch(config)#interface f1/24//进入对应的端口
Switch(config-if)#shutdown //关闭端口,切断毒源
如果显示的结果是交换机的某一个接入客户端的以太网端口,则说明此接口与该IP地址相连,进入该接口将其关闭。
杀毒后启用接口
在感染ARP病毒的用户机器上单独杀毒并确认病毒被完全根除后,再使用“no shutdown”将其对应的网络接口激活,此时可验证客户端是否可以访问网络。再次运行cmd→arp -a 看ARP列表是否正常。
最佳实践总结
根据多年的网络管理经验,最佳的办法是将IP地址与MAC地址同时绑定到ACL。
为什么要绑定MAC与IP 地址?我们知道,在TCP/IP网络中,计算机往往需要设置IP地址后才能通信。然而,实际上计算机之间的通信并不是通过IP地址,而是借助于网卡的MAC地址。IP地址的修改非常容易,为了防止内部人员进行非法IP盗用(例如,盗用权限更高人员的IP地址,以获得权限外的信息),可以将内部网络的IP地址与MAC地址绑定,盗用者即使修改了IP地址,也因MAC地址不匹配而盗用失败。
交换机上做IP、MAC双捆绑的访问控制方式兼具低投入、高安全性和坚固性等特点。不但可以有效地防范IP地址盗用行为的发生,对于ARP病毒的防范也会起到事半功倍的效果。下面我们将介绍此方案的配置步骤:
第1步:定义一个MAC地址访问控制列表并命名为“droparp”。
Switch(config)#mac access-list extended droparp
第2步:定义MAC地址为001b.7728.0f4b的主机可以访问任何主机。
Switch(config-ext-mac1)#permit host 001b.7728.0f4b any
第3步:定义任何主机可以访问MAC为001b.7728.0f4b的主机
Switch(config-ext-mac1)#permit any host 001b.7728.0f4b
第4步:定义一个IP地址访问控制列表并且命名为“ipforward”。
Switch(config-ext-mac1)#ip access-list extended ipforward
第5步:定义IP地址为192.168.1.1的主机可以访问任何主机。
Switch(config-ext-nac1)#permit 192.168.1.1 0.0.0.0 any
第6步:定义任何主机都可以访问IP地址为192.168.1.1的主机。
Switch(config-ext-nac1)#permit any 192.168.1.1 0.0.0.0
第7步:进入接口配置模式。
Switch(config)#interface fastethernet0/1
第8步:在该接口上应用名为MAC1的访问列表。
Switch(config-if) #MAC access-group droparp in
第9步:在该接口上应用名为IP1的访问列表。
Switch(config-if)#ip access-group ipforward in
以上功能在思科2950、3550、4500、6500系列交换机上可以实现,但是需要注意的是2950、3550需要交换机运行增强的软件镜像(Enhanced Image)。对于没有爆发过ARP病毒的网络,管理员可以进行Internet访问控制,防止ARP攻击程序从Internet下载到用户终端,另外安装ARP服务器、ARP防护软件、U盘免疫程序等都能极大地减少此种攻击的发生。
清单1
C:\Documents and Settings\sam>arp -a
Interface:10.88.56.200 --- 0x2
Internet Address Physical AddressType
10.88.56.25400-1b-5f-aa-7d-11dynamic
10.88.56.22600-1a-42-74-da-4a dynamic