專家如何看第二層交換機安全問題
第二層交換機還是比較常用的,于是我研究了一下第二層交換機安全問題,在這里拿出來和大家分享一下,希望對大家有用。最初的網絡設計者在設計時更多地考慮如何保證網絡的聯(lián)通性,而很少考慮網絡的安全性。同樣,很多專家開發(fā)了能夠自動發(fā)現拓撲結構、自動維系網絡設備關系的協(xié)議,如路由協(xié)議,這些協(xié)議能夠減少網管員的工作量,提高網絡的可用性,但是很多協(xié)議存在潛在漏洞,使網絡面臨被攻擊的風險。
MAC攻擊
MAC地址是第二層交換機工作的基礎,網絡依賴MAC地址保證數據的正常轉發(fā)。動態(tài)的二層地址表在一定時間以后(AGE TIME)會發(fā)生更新。如果某端口一直沒有收到源地址為某一MAC地址的數據包,那么該MAC地址和該端口的映射關系就會失效。這時,第二層交換機收到目的地址為該MAC地址的數據包就會進行泛洪處理,對交換機的整體性能造成影響。假如攻擊者生成大量數據包,數據包的源MAC地址都不相同,就會充滿交換機的MAC地址表空間,導致真正的數據流到達交換機時被泛洪出去,不能被轉發(fā)到目的地,同時導致第二層交換機的查表速度下降。
在一般情況下,只有與第二層交換機連接的端口才會出現大量MAC地址。而與PC連接的端口很難出現大量MAC地址。很多第二層交換機不能識別與之相連的設備是交換機還是PC機。交換機特別是接入交換機提供端口的MAC地址學習控制功能,就顯得非常必要。在測試3Com 4226/4228交換機時,我發(fā)現百兆端口的地址表深度僅僅幾十個,而千兆端口的地址表深度基本上占據了交換機地址空間的絕大部分。提醒用戶限制交換機端口的地址學習功能,一旦地址表滿,必須丟棄收到的地址。用戶在使用時應該合理打開這些功能。另外提醒用戶需要合理設置廣播域,劃分VLAN,避免廣播域太大,導致交換機的MAC地址表空間過大。
生成樹攻擊
還有生成樹問題。假如在網絡中用一臺PC機模擬生成樹協(xié)議,不斷發(fā)布BPDU包,就會導致一定范圍內的生成樹拓撲結構定期地發(fā)生變化。雖然沒有流量,但是由于生成樹不穩(wěn)定,仍會導致整個網絡不斷發(fā)生動蕩,使網絡不可用。
路由協(xié)議攻擊
另一個類似的攻擊就是使用路由協(xié)議發(fā)起的攻擊,這一點更容易實現,因為在Linux平臺中找到相關的軟件協(xié)議棧非常容易。雖然一些路由協(xié)議使用了加密和認證算法,來傳遞路由的更新信息,但是用戶很少真正啟用這些功能。假如網絡設置不到位,路由器配置不好,很容易讓用戶在一個原本應該是STUB的網段里,向整個網絡發(fā)送路由信息,對整個網絡的動態(tài)路由造成影響,導致路由震蕩,有可能把一些通往重要方向的數據包指向錯誤的方向。對于前者,第二層交換機可以關閉端口的STP功能進行防范。對于后者,第二層交換機應該開啟路由更新認證功能,另外就是做好訪問控制和路由規(guī)劃。
假如攻擊發(fā)動時,發(fā)送數據包的源MAC地址為廣播地址,就會導致主機回應的Response包不是單播包而是廣播包,導致二層網絡出現大量廣播,一旦網絡中有環(huán)路沒有被屏蔽掉,情況不可設想。我曾經做過實驗,將兩臺交換機對聯(lián)形成環(huán)路,在每一側連接一臺PC機,互相ping。由于第二層交換機之間的生成樹協(xié)議存在漏洞,不能很好地進行收斂,形成環(huán)路,PC機的CPU占用率一下達到峰值,網絡的可利用率下降到了極點。ping 操作結束后,通過抓包分析,我發(fā)現交換機仍舊瘋狂轉發(fā)ARP包。
盡管以上談到的攻擊手段需要使用專門的工具來進行,實現起來有一定難度,但是關鍵部門(如軍隊、政府)仍需提防上述攻擊,因為這些關鍵部門面對的不是業(yè)余黑客,而是具有專業(yè)水平的攻擊者,攻擊者隨時有可能使用戶的網絡癱瘓。