专家如何看第二层交换机安全问题
第二层交换机还是比较常用的,于是我研究了一下第二层交换机安全问题,在这里拿出来和大家分享一下,希望对大家有用。最初的网络设计者在设计时更多地考虑如何保证网络的联通性,而很少考虑网络的安全性。同样,很多专家开发了能够自动发现拓扑结构、自动维系网络设备关系的协议,如路由协议,这些协议能够减少网管员的工作量,提高网络的可用性,但是很多协议存在潜在漏洞,使网络面临被攻击的风险。
MAC攻击
MAC地址是第二层交换机工作的基础,网络依赖MAC地址保证数据的正常转发。动态的二层地址表在一定时间以后(AGE TIME)会发生更新。如果某端口一直没有收到源地址为某一MAC地址的数据包,那么该MAC地址和该端口的映射关系就会失效。这时,第二层交换机收到目的地址为该MAC地址的数据包就会进行泛洪处理,对交换机的整体性能造成影响。假如攻击者生成大量数据包,数据包的源MAC地址都不相同,就会充满交换机的MAC地址表空间,导致真正的数据流到达交换机时被泛洪出去,不能被转发到目的地,同时导致第二层交换机的查表速度下降。
在一般情况下,只有与第二层交换机连接的端口才会出现大量MAC地址。而与PC连接的端口很难出现大量MAC地址。很多第二层交换机不能识别与之相连的设备是交换机还是PC机。交换机特别是接入交换机提供端口的MAC地址学习控制功能,就显得非常必要。在测试3Com 4226/4228交换机时,我发现百兆端口的地址表深度仅仅几十个,而千兆端口的地址表深度基本上占据了交换机地址空间的绝大部分。提醒用户限制交换机端口的地址学习功能,一旦地址表满,必须丢弃收到的地址。用户在使用时应该合理打开这些功能。另外提醒用户需要合理设置广播域,划分VLAN,避免广播域太大,导致交换机的MAC地址表空间过大。
生成树攻击
还有生成树问题。假如在网络中用一台PC机模拟生成树协议,不断发布BPDU包,就会导致一定范围内的生成树拓扑结构定期地发生变化。虽然没有流量,但是由于生成树不稳定,仍会导致整个网络不断发生动荡,使网络不可用。
路由协议攻击
另一个类似的攻击就是使用路由协议发起的攻击,这一点更容易实现,因为在Linux平台中找到相关的软件协议栈非常容易。虽然一些路由协议使用了加密和认证算法,来传递路由的更新信息,但是用户很少真正启用这些功能。假如网络设置不到位,路由器配置不好,很容易让用户在一个原本应该是STUB的网段里,向整个网络发送路由信息,对整个网络的动态路由造成影响,导致路由震荡,有可能把一些通往重要方向的数据包指向错误的方向。对于前者,第二层交换机可以关闭端口的STP功能进行防范。对于后者,第二层交换机应该开启路由更新认证功能,另外就是做好访问控制和路由规划。