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