作者:Danbo 2015-9-28
常见的交换式数据攻击有一下几类:
1.VLAN跳跃攻击(VLAN Hopping Attack)
2.CAM泛洪攻击(CAM Flooding Attack)
3.MAC地址欺骗(MAC Address Spoofing)
4.STP欺骗攻击(STP Spoofing Attack)
5.DHCP耗竭攻击(DHCP Starvation Attack)
6.DHCP服务器欺骗(DHCP Server Spoofing)
7.ARP欺骗(ARP Spoofing)
8.IP欺骗(IP Spoofing)
在二层安全概念中,如果流量不经路由(即不采用三层设备)就从一个VLAN被转发到另一个VLAN,则数据存在被链接的风险。
VLAN跳跃攻击可以分为两种:
1.交换机欺骗(Switch Spoofing):攻击者向目标交换机发送DTP协商消息,诱使目标交换机端口成为中继端口。进入中继模式之后,攻击者就能够获取所有VLAN的流量。
2.双层标记(double tagging):利用802.1Q双层标记。攻击者向第一台交换机发送一个带有双层标记的帧,其中外部标记指向本征VLAN,内部标记指向目标VLAN。第一台交换机在收到该帧之后将外层标记剥离,并将其从Trunk端口发出去,然后第二台交换机收到后剥离内层标记转发给目标VLAN。
交换机的CAM表存储了MAC地址、交换机端口、相关联的VLAN参数等信息,其容量是固定的。当交换机收到一个未知单播帧的时候,会把该帧从除源端口之外的所有端口转发出去。由于CAM表的容量有限,因此处于非活动状态的地址条目将在一段时间后消失。在现有的地址条目失效前,如果大量地址被填充到CAM表中,则CAM表将无法继续学习心得条目,交换机将把之后收到的流量从除源端口之外的所有端口转发出去,这种现象称为CAM表溢出(CAM Table Overflow)或CAM泛洪(CAM Flooding)。
广播域泛洪的区别:广播向包括源端口在内的所有端口发送流量,而泛洪向除源端口之外的所有端口发送流量;广播发送的是真正的广播流量,而泛洪发送的是普通的数据流量。
攻击者将自己的MAC地址伪装成合法主机的MAC地址,则可以实施MAC地址欺骗,诱使交换机将本应传输给合法主机的流量转发给攻击者。
攻击者为控制的交换机设置一个比现有根桥更低的优先级,并向网路中广播配置BPDU,强迫所有交换机重新选举根桥。而后攻击者将获得所有通过根桥转发的流量。
在DHCP耗竭攻击中,攻击者通过大量伪造的MAC地址广播DHCP请求。由于DHCP服务器无法判断MAC地址的真实性,它将把IP地址分配给这些虚假的MAC地址。这会造成可用的IP地址耗竭,导致合法用户无法获得IP地址并访问网络资源。
在合法的DHCP服务器瘫痪之后,攻击者可以伪造一台DHCP服务器来响应网络中其他主机的DHCP请求。为了增强攻击效果,DHCP服务器欺骗经常与DHCP耗竭攻击配合使用,非法DHCP服务器将所有流量发送给一个伪造的网关,以便攻击者拦截与分析。
ARP是一种将局域网内的IP地址解析为MAC地址的协议,攻击者也可以利用ARP实施MAC地址欺骗。如果源主机希望获得另一个主机的MAC地址,它将在本地网络中广播ARP请求。收到ARP请求的目标主机向源主机返回一个包含自己MAC地址的ARP响应,源主机根据该ARP相应更新其ARP缓存。但是,攻击者可以伪装成源主机,诱使受害者将原本发给源主机的流量发给自己。
无故ARP用于向本地网络通报某个IP地址关联的MAC地址,以避免IP地址冲突。主机在本网络中广播一个目标IP地址为自己IP地址的GARP请求,如果有设备相应该请求,则说明网络中存在IP地址冲突。另一方面,攻击者也可以利用GARP改变IP地址与MAC地址之间的映射,从而发动中间人攻击。
在IP欺骗中,攻击者冒用可信主机或已知网络的IP地址收发流量,进而访问只对该地址开放的网络资源。
中继端口的本征VLAN用于承载非标记流量。也就是说,在链路中传输的本征VLAN流量是没有标签的。如果到达交换机的流量需要从中继链路转发,且该流量的VLAN标记指向本征VLAN,则交换机首先将该流量的标记剥离,然后再从中继链路转发出去。攻击者可以利用这一点发动双层标记VLAN跳跃攻击。
采取以下措施能组织这种攻击:
1.将本征VLAN设置一个不使用的VLAN;
2.在中继链路中对本征VLAN进行修剪;
3.强制交换机为所有本征VLAN流量打上标记;
我们通常采用一下做法:
switchport trunk native vlan 555
switchport trunk allow vlan remove 555
switchport trunk vlan native tag
注意:如果本征VLAN为VLAN1,则无法被修剪;如果本征VLAN改为其他VLAN,则可以被修剪,也不会影响CDP、DTP、PAgP等协议的传输。
管理员在配置交换机时应准遵循以下原则:
1.禁用所有不使用的端口,并将他们划分到一个不适用的VLAN中;
2.将所有用户端口配置为访问模式并禁用DTP协商;
3.将交换机之间的链路配置为中继模式并禁用DTP协商;
4.不要使用VLAN1作为交换机的管理VLAN1。
采用端口安全机制可以有助于降低CAM防洪攻击、MAC地址欺骗以及DHCP消耗攻击造成的危害。
1.静态(static)安全MAC地址:为交换机端口手动配置的MAC地址,储存在CAM表与运行配置中;
2.动态(dynamic)安全MAC地址:交换机端口动态学习到的MAC地址,仅存储在CAM表中。交换机在重启后必须重新学习;
3.粘滞(sticky)安全MAC地址:交换机端口动态学习到的MAC地址,存储在CAM表与运行配置中。交换机在重启后不会被移除,无需重新学习;(注意与Dynamic的区别)
当端口安全违规后,端口可以采取以下三种行为之一:
1.保护(protect):当端口配置的安全MAC地址熟练达到上限之后,除非移除部分现有地址或增加端口允许学习地址的上限数量,否则源端口将丢弃收到的任何源MAC地址未知的帧。交换机不会向管理员发送违规通知;
2.限制(restrict):------,端口将丢弃之后收到的任何源MAC地址未知的帧。交换机向管理员发送SNMP自陷消息、将违规事件计入系统日志并递增违规计时器;
3.关闭(shutdown):违规事件发生后,端口将进入错误禁用(err-disabled)状态并熄灭端口指示灯。交换机向管理员发送SNMP自陷消息、将违规事件记入系统日志并递增违规计时器。这种行为是端口的默认行为。
端口安全配置命令:
1.switchport port-security
2.switchport port-security maximum * #指定MAC地址上限
3.switchport port-security violation protect | restrict | shutdown
4.switchport port-security mac-address #设置安全MAC地址,如果未达到安全上限,则可以通过动态学习。
5.switchport port-security mac-address sticky #通过粘滞学习MAC地址。
6.show port-security