IPv6 neighbor欺騙解決方法
我們知道NDP中NA、NS技術(shù)主要負(fù)責(zé)將局域網(wǎng)中的IPv6地址跟48位物理地址對應(yīng)起來形成IPv6 neighbor表項,類似于IPv4中的ARP。 按照 NA、NS的設(shè)計,為了減少網(wǎng)絡(luò)上過多的NA、NS數(shù)據(jù)通信,一臺主機,即使收到的NA應(yīng)答并非自己請求得到的,它也會將其插入到自己的緩存表中,這樣,就造成了IPv6 neighbor欺騙的可能。
如下圖所示,假如攻擊者想探聽同一網(wǎng)絡(luò)中兩臺主機之間的通信(即使是通過交換機相連),它會分別給這兩臺主機發(fā)送NA、NS報文,讓兩臺主機都“誤”認(rèn)為對方的 MAC 地址是第三方即攻擊者所在的主機,這樣,雙方看似“直接”的通信,實際上都是發(fā)給第三方攻擊者了。攻擊者一方面得到了想要的通信內(nèi)容,另一方面,只需要更改數(shù)據(jù)包中的一些信息,這樣造成了數(shù)據(jù)的冒充欺騙。
由上述中所知在NA、NS報文轉(zhuǎn)發(fā)中的嗅探、監(jiān)聽及攻擊行為首先是通過偽造合法IPv6地址進(jìn)入正常的網(wǎng)絡(luò)環(huán)境,向交換機發(fā)送大量的偽造的NA、NS報文,交換機在學(xué)習(xí)到這些報文后,可能會覆蓋原來學(xué)習(xí)到的正確的IPv6 neighbor表項(IPv6地址和MAC地址的映射關(guān)系表項),將一些正確的IPv6 neighbor表項修改成攻擊報文設(shè)置的對應(yīng)關(guān)系,導(dǎo)致交換機在轉(zhuǎn)發(fā)報文時出錯,從而影響整個網(wǎng)絡(luò)的運行?;蛘呓粨Q機被惡意攻擊者利用,利用錯誤的IPv6 neighbor表項,截獲交換機轉(zhuǎn)發(fā)的報文或者對其它服務(wù)器、主機或者網(wǎng)絡(luò)設(shè)備進(jìn)行攻擊。在網(wǎng)絡(luò)中防止基于NA、NS的欺騙攻擊,方法有兩種:
一、關(guān)閉交換機的neighbor自動更新功能
關(guān)閉交換機的自動更新功能以后,當(dāng)交換機收到NA、NS報文時,如果是新的NA、NS報文(交換機的IPv6 neighbor表中不存在該IPv6地址的表項),則正常學(xué)習(xí),這樣新的用戶可以正常轉(zhuǎn)發(fā)報文;但是如果該NA、NS報文對應(yīng)的IPv6 neighbor表項中已經(jīng)存在,則判斷該報文中的MAC址、收到NA、NS報文的端口和交換機IPv6 neighbor表中記錄的是否相同,不相同則認(rèn)為是欺騙報予以丟棄,相同則正常接收,相應(yīng)的IPv6 neighbor表項老化定時器被重置。通過該機制可以防止合法的IPv6 neighbor表項被欺騙報文篡改,從而可以避免交換機遭受IPv6 neighbor欺騙。
二、關(guān)閉交換機的neighbor自動學(xué)習(xí)功能
關(guān)閉交換機的自動學(xué)習(xí)功能以后,交換機不再接收NA、NS報文,適合靜態(tài)配置IPv6 neighbor表的場合。一方面可以配置成靜態(tài)IPv6 neighbor表項,另一方面可以將當(dāng)前學(xué)習(xí)到的動態(tài)IPv6 neighbor表項換為靜態(tài)表項(可以減輕一一配置IPv6 neighbor靜態(tài)表項所帶來的繁重工作量。關(guān)閉交換機的自學(xué)習(xí)功能時,如果動態(tài)表項不轉(zhuǎn)換為靜態(tài)表項,會正常老化掉)。在IPv6 neighbor表項均為靜態(tài)置的情況下,可以有效地避免IPv6 neighbor欺騙。