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