亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        IPv6中鄰居發(fā)現(xiàn)協(xié)議剖析及攻防探索

        2021-12-09 00:57:58崔北亮
        關(guān)鍵詞:鏈路層字段網(wǎng)關(guān)

        崔北亮,岳 陽

        (1.南京工業(yè)大學(xué) 圖書館,江蘇 南京 211800;2.南京工業(yè)大學(xué) 現(xiàn)代教育中心,江蘇 南京 211800)

        鄰居發(fā)現(xiàn)協(xié)議(NDP[1])是IPv6的基礎(chǔ)協(xié)議,它實(shí)現(xiàn)了IPv4中地址解析協(xié)議(ARP[2])和控制報(bào)文協(xié)議(ICMP)的功能,包括路由器和前綴發(fā)現(xiàn)、地址解析、下一跳地址確定、重定向、鄰居不可達(dá)檢測(cè)及重復(fù)地址檢測(cè)等功能[3]。

        在IPv4網(wǎng)絡(luò)中,通信雙方需知對(duì)方的IPv4地址和數(shù)據(jù)鏈路層地址(以太網(wǎng)中的體現(xiàn)是MAC地址)。若是不同IP子網(wǎng)間的通信,數(shù)據(jù)幀封裝的目的數(shù)據(jù)鏈路層地址是網(wǎng)關(guān)或下一跳路由器的數(shù)據(jù)鏈路層地址,例如,局域網(wǎng)中的某臺(tái)終端計(jì)算機(jī)要訪問互聯(lián)網(wǎng)中的某臺(tái)服務(wù)器,終端計(jì)算機(jī)封裝的目的數(shù)據(jù)鏈路層地址就是網(wǎng)關(guān)的MAC地址,ARP攻擊方通過偽造網(wǎng)關(guān)對(duì)應(yīng)的MAC地址來達(dá)到攻擊的目的。ARP攻擊[4]的原理是利用ARP的默認(rèn)信任和不驗(yàn)證機(jī)制,這類攻擊從始至終伴隨著IPv4,造成的損失不可估量。

        與IPv4一樣,IPv6報(bào)文在局域網(wǎng)中傳輸時(shí),仍會(huì)被封裝在數(shù)據(jù)幀中。以常見的局域網(wǎng)為例,即需要將IPv6報(bào)文封裝在以太網(wǎng)報(bào)文中。以太網(wǎng)報(bào)頭中有源MAC地址和目的MAC地址,二層交換機(jī)根據(jù)目的MAC地址與端口的對(duì)應(yīng)關(guān)系進(jìn)行轉(zhuǎn)發(fā)。在IPv4網(wǎng)絡(luò)中,目的節(jié)點(diǎn)的MAC地址是通過廣播ARP報(bào)文來獲取的,然后就將IP和MAC地址的對(duì)應(yīng)關(guān)系存入設(shè)備的ARP表中。而在IPv6網(wǎng)絡(luò)中,ARP換成了NDP,ARP表也換成了IPv6鄰居表,鄰居表中記錄著鄰居IPv6地址與MAC地址的對(duì)應(yīng)關(guān)系。當(dāng)需要與鄰居通信時(shí),首先查看鄰居表,若找到記錄,則封裝鄰居的MAC地址;若沒有記錄,則使用NDP來查詢鄰居的MAC地址。

        在IPv6網(wǎng)絡(luò)中,NDP替代了ARP的功能,用于獲取鄰居IPv6地址對(duì)應(yīng)的數(shù)據(jù)鏈路層地址,雖沒有ARP攻擊,但類似ARP攻擊的NDP攻擊[5]同樣存在,除此之外,還有利用NDP的前綴通告攻擊等其他攻擊,所有這些NDP攻擊都將始終伴隨著IPv6,若不能很好地解決這些攻擊問題,勢(shì)必阻礙IPv6的發(fā)展。

        1 NDP工作機(jī)制和報(bào)文格式

        解決NDP攻擊,需要先了解NDP的工作機(jī)制和報(bào)文格式。NDP定義了5類ICMPv6[6]報(bào)文,即,路由器請(qǐng)求(RS)、路由器通告(RA)、鄰居請(qǐng)求(NS)、鄰居通告(NA)和路由重定向[7]。這5種類型的ICMPv6報(bào)文都是消息類型的報(bào)文,用來實(shí)現(xiàn)鄰居鏈路層地址解析、網(wǎng)關(guān)發(fā)現(xiàn)、地址自動(dòng)配置和路由重定向等功能。這里僅介紹容易發(fā)起NDP攻擊的3種報(bào)文,即RA、NS、NA。

        1.1 RA報(bào)文

        路由器會(huì)周期性地發(fā)送RA報(bào)文或收到RS報(bào)文后回應(yīng)RA報(bào)文,向鄰居節(jié)點(diǎn)通告路由前綴等參數(shù)信息。RA報(bào)文的格式如圖1所示。

        圖1 RA報(bào)文格式Fig.1 RA packet format

        通過抓包發(fā)現(xiàn):不論是路由器主動(dòng)周期性發(fā)送的RA報(bào)文,還是收到RS報(bào)文后被動(dòng)回應(yīng)的RA報(bào)文,RA報(bào)文的目的地址都是組播地址FF02::1(代表運(yùn)行IPv6協(xié)議的所有節(jié)點(diǎn))。圖2為使用Wireshark[8]捕獲的數(shù)據(jù)報(bào)文,其中序號(hào)1368是捕獲的RA報(bào)文,“選項(xiàng)”(ICMPv6 Option)部分包含路由器接口的數(shù)據(jù)鏈路層地址、最大傳輸單元(MTU)、地址前綴等。

        圖2 捕獲的RA報(bào)文Fig.2 Captured RA packet

        1.2 NS報(bào)文

        NS報(bào)文用于查詢鄰居節(jié)點(diǎn)的數(shù)據(jù)鏈路層地址。NS報(bào)文格式如圖3所示。

        圖3 NS報(bào)文格式Fig.3 NS packet format

        圖4中序號(hào)1371是捕獲的NS報(bào)文。NS報(bào)文中的“Target Address”(目的地址)是要查詢數(shù)據(jù)鏈路層地址的IPv6單播地址,“ICMPv6 Option”中有發(fā)送者的數(shù)據(jù)鏈路層地址。當(dāng)被請(qǐng)求節(jié)點(diǎn)收到這樣的NS報(bào)文,會(huì)先更新自己的鄰居表(即IPv6地址和MAC地址的對(duì)應(yīng)),然后再發(fā)送NA應(yīng)答報(bào)文。

        圖4 捕獲的NS報(bào)文Fig.4 Captured NS packet

        NS報(bào)文除用于詢問鄰居數(shù)據(jù)鏈路層地址外,也用于鄰居可達(dá)性檢測(cè)。當(dāng)NS報(bào)文用于鄰居可達(dá)性檢測(cè)時(shí),目的地址是單播地址;當(dāng)NS報(bào)文用于詢問鄰居數(shù)據(jù)鏈路層地址時(shí),目的地址是被請(qǐng)求節(jié)點(diǎn)的組播地址FF02::1:FF00:0/104加上目的單播地址的最后24位,構(gòu)成128位的目的IPv6地址。

        1.3 NA報(bào)文

        IPv6節(jié)點(diǎn)使用NA報(bào)文來應(yīng)答NS報(bào)文,回復(fù)數(shù)據(jù)鏈路層的地址,此時(shí)NA報(bào)文的目的地址是單播地址。IPv6節(jié)點(diǎn)也可主動(dòng)發(fā)送NA報(bào)文來通告其存在,目的地址可以是某個(gè)IPv6地址,也可以是組播地址FF02::1,用以通告某個(gè)IPv6節(jié)點(diǎn)或所有IPv6節(jié)點(diǎn)更新自己的數(shù)據(jù)鏈路層地址信息。NA報(bào)文格式如圖5所示。

        圖5 NA報(bào)文格式Fig.5 NA packet format

        NA報(bào)文中有3個(gè)標(biāo)志位:R(Router)、S(Solicited)和O(Override)位。當(dāng)R位為1時(shí),表示此報(bào)文是由路由器發(fā)送的;當(dāng)S位為1時(shí),表示這是NS報(bào)文的回復(fù);當(dāng)O位為1時(shí),表示可以更新原先的鄰居表?xiàng)l目。圖6中序號(hào)1372是捕獲的NA報(bào)文,“ICMPv6 Option”中包含發(fā)送NA報(bào)文的設(shè)備的數(shù)據(jù)鏈路層地址。

        圖6 捕獲的NA報(bào)文Fig.6 Captured NA packet

        2 NDP攻擊類型

        NDP比較常見的幾種攻擊類型有:RA報(bào)文攻擊[9]、NS報(bào)文攻擊和NA報(bào)文攻擊[10]。

        網(wǎng)絡(luò)拓?fù)湟妶D7。圖7中,局域網(wǎng)出口路由器e0/0接口配置了IPv6地址,該接口的IPv6鏈路本地地址是FE80::A8BB:CCFF:FE00:400,主機(jī)1是1臺(tái)安裝了Windows 10操作系統(tǒng)的計(jì)算機(jī),正常情況下,主機(jī)1可以獲得2001:DA8:1011:1::/64前綴,并把FE80::A8BB:CCFF:FE00:400作為默認(rèn)網(wǎng)關(guān)。

        圖7 網(wǎng)絡(luò)拓?fù)銯ig.7 Network topology

        2.1 RA報(bào)文攻擊

        圖7中主機(jī)2是攻擊者,假設(shè)也安裝了Windows10操作系統(tǒng),可以偽造1個(gè)RA報(bào)文發(fā)出,這里借助工具軟件“科來數(shù)據(jù)包生成器”[11]??梢园褕D2中序號(hào)1368的數(shù)據(jù)包導(dǎo)出,再導(dǎo)入到科來數(shù)據(jù)包生成器中,如圖8所示。為了方便表述,對(duì)數(shù)據(jù)包中的4個(gè)字段進(jìn)行了編號(hào):字段1是二層幀的源MAC地址,這里改成30:0D:9E:88:88:88;字段2是三層的源IPv6地址,這里改成FE80::9999:9999:9999:9999;字段3是ICMPv6選項(xiàng)中的鏈路層地址,這里改成30:0D:9E:99:99:99(該字段正常應(yīng)該與字段1二層幀的源MAC地址相同,字段3與字段1的Mac地址設(shè)為不同,是為了增加排除故障的難度);字段4是ICMPv6選項(xiàng)中的前綴,這里改成2001:DA8:1011:9999::。選擇正確的網(wǎng)卡,然后把該RA報(bào)文發(fā)送出去,為了攻擊的效果,發(fā)送時(shí)可以選擇周期性重復(fù)發(fā)送。

        圖8 生成RA報(bào)文Fig.8 Build RA packet

        此時(shí),在主機(jī)1上使用ipconfig命令查看IPv6地址配置情況,如圖9所示。由圖9可知,偽造的IPv6前綴和錯(cuò)誤的網(wǎng)關(guān)都被終端計(jì)算機(jī)接受,這將導(dǎo)致終端計(jì)算機(jī)訪問互聯(lián)網(wǎng)異常。

        圖9 查看IPv6地址配置Fig.9 View IPv6 address configuration

        正常RA報(bào)文中,二層幀的源MAC地址和ICMPv6選項(xiàng)中的鏈路層地址是相同的,但也允許不同,本實(shí)驗(yàn)把圖8中的字段1和字段3設(shè)為2個(gè)不同的MAC地址。使用命令netsh interface ipv6 show neighbors查看主機(jī)1的IPv6鄰居表,如圖10所示。由圖10可以看到,FE80::9999:9999:9999:9999對(duì)應(yīng)的MAC地址是ICMPv6選項(xiàng)中字段3(也就是鏈路層地址30-0d-9e-99-99-99)。由于二層交換機(jī)的MAC地址表中記錄的是字段1,這里又把字段3和字段1設(shè)成不同,導(dǎo)致無法從交換機(jī)的MAC地址表中找出字段3(也就是錯(cuò)誤網(wǎng)關(guān)FE80::9999:9999:9999:9999)所對(duì)應(yīng)的交換機(jī)端口,加大了排除攻擊的難度。

        圖10 查看IPv6鄰居表Fig.10 View IPv6 neighbor table

        將圖8中字段2改成真正網(wǎng)關(guān)對(duì)應(yīng)的鏈路本地地址FE80::A8BB:CCFF:FE00:400,把該RA報(bào)文發(fā)送出去,會(huì)導(dǎo)致本網(wǎng)絡(luò)中所有IPv6終端的鄰居表中FE80::A8BB:CCFF:FE00:400對(duì)應(yīng)的MAC地址變成30-0D-9E-99-99-99,結(jié)果是本網(wǎng)絡(luò)中的所有IPv6終端都不能訪問互聯(lián)網(wǎng)。

        2.2 NS報(bào)文攻擊

        由1.2節(jié)可知NS報(bào)文也可以更新被請(qǐng)求節(jié)點(diǎn)的IPv6鄰居表,這里仍以圖7的拓?fù)錇槔T谡G闆r下,主機(jī)1 ping路由器接口的IPv6地址2001:DA8:1011:1::1,可以ping通,在路由器上執(zhí)行show ipv6 neighbors命令,查看路由器的鄰居表,輸出的結(jié)果顯示如下:

        Router#show ipv6 neighbors

        IPv6 Address Age Link-layer Addr State Interface

        2001:DA8:1011:1:2106:9DD6:3620:D729 218 5000.0001.0000 STALE Et0/0

        2001:DA8:1011:1:D5CC:3C3A:F2FD:28D0 0 5000.0001.0000 DELAY Et0/0

        FE80::5D03:AE85:29E0:6B2B 5 5000.0002.0000 STALE Et0/0

        FE80::89FD:64E4:4830:963E 226 0050.56c0.0008 STALE Et0/0

        FE80::D57C:B6C:CF69:CEC6 0 5000.0001.0000 DELAY Et0/0

        主機(jī)2通過發(fā)送NS報(bào)文阻斷主機(jī)1與網(wǎng)關(guān)路由器的通信:主機(jī)2可以發(fā)送偽造的NS報(bào)文,冒充主機(jī)1去詢問網(wǎng)關(guān)對(duì)應(yīng)的MAC地址,達(dá)到攻擊的目的。在主機(jī)2上運(yùn)行“科來數(shù)據(jù)包生成器”,導(dǎo)入圖4中序號(hào)1371的NS報(bào)文,如圖11所示,修改各個(gè)字段。

        圖11 生成NS報(bào)文Fig.11 Build NS packet

        把這個(gè)NS報(bào)文發(fā)送出去,此時(shí)在主機(jī)1上ping 2001:DA8:1011:1::1,網(wǎng)絡(luò)不通,再次在路由器上執(zhí)行show ipv6 neighbors命令,輸出的結(jié)果顯示如下:

        Router#sho ipv6 neighbors

        IPv6 Address Age Link-layer Addr State Interface

        2001:DA8:1011:1:2106:9DD6:3620:D729 219 5000.0001.0000 STALE Et0/0

        2001:DA8:1011:1:D5CC:3C3A:F2FD:28D0 3417.ebc9.70db DELAY Et0/0

        FE80::5D03:AE85:29E0:6B2B 5 5000.0002.0000 STALE Et0/0

        FE80::89FD:64E4:4830:963E 227 0050.56c0.0008 STALE Et0/0

        FE80::D57C:B6C:CF69:CEC6 0 5000.0001.0000 REACH Et0/0

        注意到主機(jī)1的臨時(shí)IPv6地址2001:DA8:1011:1:D5CC:3C3A:F2FD:28D0對(duì)應(yīng)的MAC地址已經(jīng)從前面的5000.0001.0000被替換成圖11中的ICMPv6選項(xiàng)中的鏈路層地址34:17:EB:C9:70:DB,主機(jī)1網(wǎng)絡(luò)不通,NS報(bào)文攻擊成功。主機(jī)2也可以冒充網(wǎng)關(guān)發(fā)送NS報(bào)文詢問主機(jī)1的MAC地址,同樣能達(dá)到阻止主機(jī)1和網(wǎng)關(guān)正常通信的目的。

        通過NS報(bào)文攻擊的難度在于,首先要找出被攻擊的源和目的IPv6地址,由于IPv6地址的接口ID[12]一般是64位,很難通過IPv6地址掃描來探測(cè)網(wǎng)絡(luò)中有哪些IPv6地址在使用。既然主動(dòng)掃描不可行,可以采用被動(dòng)監(jiān)聽的方式,開啟網(wǎng)卡的混雜模式,然后編寫1個(gè)RS、NS或NA的報(bào)文監(jiān)聽守候程序,記錄下所有報(bào)文中的IPv6地址,經(jīng)過一段時(shí)間的積累,可以獲得本網(wǎng)絡(luò)中在用的幾乎所有IPv6地址。

        2.3 NA報(bào)文攻擊

        NA報(bào)文是NS報(bào)文的應(yīng)答報(bào)文,但并不是一定要接收到NS報(bào)文,才能回復(fù)NA報(bào)文,IPv6接點(diǎn)可以主動(dòng)地發(fā)送NA報(bào)文。在“科來數(shù)據(jù)包生成器”中導(dǎo)入圖6中序號(hào)1372的NA報(bào)文,如圖12所示。字段1為目的MAC地址,要接收該NA報(bào)文的設(shè)備的MAC地址;字段2為發(fā)送NA報(bào)文的設(shè)備的MAC地址,這個(gè)字段可以任意填寫而不會(huì)影響結(jié)果,正常情況下字段2的值與字段6的值相同;字段3為發(fā)送NA報(bào)文的設(shè)備的IPv6地址,這個(gè)字段也可任意填寫而不會(huì)影響結(jié)果,正常情況下字段3的值等于字段5的值;字段4為接受該NA報(bào)文的設(shè)備的IPv6地址;字段5為發(fā)送NA報(bào)文的設(shè)備的IPv6地址;字段6為字段5的IPv6地址對(duì)應(yīng)的MAC地址。當(dāng)IPv6地址是字段4的設(shè)備收到這個(gè)NA報(bào)文后,會(huì)在IPv6鄰居表中添加字段5的條目,對(duì)應(yīng)的MAC地址是字段6。

        圖12 生成NA報(bào)文Fig.12 Build NA packet

        可以利用NA報(bào)文實(shí)現(xiàn)3類攻擊:拒絕服務(wù)攻擊[13]、中間人攻擊[14]和IPv6地址占用攻擊[15]。

        2.3.1 拒絕服務(wù)攻擊

        在圖7中,主機(jī)2運(yùn)行“科來數(shù)據(jù)包生成器”,把圖12中字段1改成主機(jī)1的MAC地址;字段2、字段3任意填寫;字段4填成主機(jī)1的鏈路本地地址;字段5填成網(wǎng)關(guān)對(duì)應(yīng)的鏈路本地地址(即FE80::A8BB:CCFF:FE00:400);字段6任意填寫1個(gè)錯(cuò)誤的MAC地址(非圖10中的aa-bb-cc-00-04-00)。主機(jī)2把該數(shù)據(jù)包從正確的網(wǎng)卡發(fā)送出去,為了攻擊效果,可以選擇周期性重復(fù)發(fā)送。在主機(jī)1上查看鄰居表,可以發(fā)現(xiàn)FE80::A8BB:CCFF:FE00:400對(duì)應(yīng)的MAC地址是字段6中填入的錯(cuò)誤MAC地址,主機(jī)1訪問互聯(lián)網(wǎng)失敗。由此看出,利用NA報(bào)文可以很容易地實(shí)現(xiàn)拒絕服務(wù)攻擊。

        該攻擊的難點(diǎn)是如何獲知主機(jī)1的鏈路本地地址,同樣可以使用2.2節(jié)介紹的方法,在攻擊主機(jī)上運(yùn)行1個(gè)NDP的監(jiān)聽程序,收集網(wǎng)絡(luò)中設(shè)備的IPv6地址和對(duì)應(yīng)的MAC地址。

        2.3.2 中間人攻擊

        該攻擊類似2.3.1節(jié)介紹的攻擊方法,仍以圖7為例,主機(jī)2冒充主機(jī)1給網(wǎng)關(guān)發(fā)送1個(gè)NA報(bào)文,其他都是真實(shí)的,只是把字段6填成主機(jī)2的MAC地址;同樣,主機(jī)2冒充網(wǎng)關(guān)給主機(jī)1發(fā)送一個(gè)NA報(bào)文,其他都是真實(shí)的,仍然是把字段6填成主機(jī)2的MAC地址。在主機(jī)2上持續(xù)不斷地發(fā)送這2個(gè)報(bào)文,結(jié)果是主機(jī)1和網(wǎng)關(guān)之間的通信都將被交換機(jī)根據(jù)MAC地址轉(zhuǎn)發(fā)給主機(jī)2。在主機(jī)2上修改注冊(cè)表,開啟路由功能,轉(zhuǎn)發(fā)主機(jī)1和網(wǎng)關(guān)之間的數(shù)據(jù)包,保證主機(jī)1和網(wǎng)關(guān)可以正常通信。在主機(jī)1和網(wǎng)關(guān)不易察覺的情況下,它們之間的通信都由主機(jī)2中轉(zhuǎn),主機(jī)2可以獲知主機(jī)1訪問了哪些站點(diǎn)以及通信內(nèi)容。

        2.3.3 IPv6地址占用攻擊

        IPv6節(jié)點(diǎn)無論使用哪種方式獲得IPv6地址,在IPv6地址生效前,都會(huì)發(fā)送NS報(bào)文,該NS報(bào)文詢問的目的IPv6地址就是即將要使用的IPv6地址。如果該NS報(bào)文收到NA報(bào)文回應(yīng),并且回應(yīng)的MAC地址與本節(jié)點(diǎn)不同,則認(rèn)為該IPv6地址已經(jīng)被使用,重新產(chǎn)生或分配新的IPv6地址,繼續(xù)發(fā)送NS報(bào)文進(jìn)行地址重復(fù)性檢測(cè)。如果該NS報(bào)文沒有收到NA報(bào)文回應(yīng),或收到NA報(bào)文的回應(yīng),但回答的MAC地址與本節(jié)點(diǎn)相同,則認(rèn)為該IPv6地址沒有被使用,IPv6地址生效。這類NS報(bào)文的特征比較明顯,數(shù)據(jù)包的源IPv6地址為空(即::),捕獲的數(shù)據(jù)報(bào)文如圖13所示。在攻擊的計(jì)算機(jī)上運(yùn)行1個(gè)監(jiān)聽守候程序,當(dāng)收到重復(fù)地址檢測(cè)的NS報(bào)文,就回應(yīng)1個(gè)NA報(bào)文,NA報(bào)文的內(nèi)容參照?qǐng)D12:字段1是33:33:00:00:00:01(IPv6組播MAC地址);字段2任意填寫;字段3是圖13的NS報(bào)文中的Target Address;字段4是ff02::1;字段5仍然是圖13的NS報(bào)文中的Target Address;字段6任意填一個(gè)MAC地址(該MAC地址不同于NS報(bào)文中的源MAC地址)。發(fā)送重復(fù)地址檢測(cè)的IPv6節(jié)點(diǎn),收到這樣的NA報(bào)文后,會(huì)認(rèn)為該IPv6地址已經(jīng)被使用,IPv6地址失效。最終的結(jié)果是本子網(wǎng)中所有IPv6節(jié)點(diǎn)都沒有IPv6地址,攻擊成功。

        圖13 NS檢測(cè)重復(fù)地址Fig.13 Detect for duplicate addresses of NS

        3 NDP攻擊的解決方法

        3.1 RA報(bào)文攻擊的解決方法

        根據(jù)RA攻擊報(bào)文中“二層幀源MAC地址”和“選項(xiàng)中的鏈路層地址”是否相同,把RA攻擊分為簡(jiǎn)單攻擊和復(fù)雜攻擊兩種。對(duì)應(yīng)的RA攻擊解決方法有:簡(jiǎn)單RA攻擊的解決方法、復(fù)雜RA攻擊的解決方法和RA攻擊的徹底解決方法。

        3.1.1 簡(jiǎn)單RA攻擊的解決方法

        對(duì)于簡(jiǎn)單RA攻擊,圖8中的字段1(二層幀源MAC地址)和字段3(選項(xiàng)中的鏈路層地址)相同。在被攻擊的計(jì)算機(jī)上使用ipconfig命令查看到假網(wǎng)關(guān)IPv6的地址,然后使用圖10中的命令查找到該假網(wǎng)關(guān)對(duì)應(yīng)的MAC地址,最后登錄網(wǎng)管交換機(jī),查看該MAC地址對(duì)應(yīng)的交換機(jī)端口,進(jìn)而找出攻擊者。

        3.1.2 復(fù)雜RA攻擊的解決方法

        攻擊者可以把圖8中的字段1和字段3設(shè)成不同,網(wǎng)管交換機(jī)上只記錄了二層幀的MAC地址,并不能記錄選項(xiàng)中的鏈路層地址,這樣3.1.1節(jié)介紹的攻擊解決方法失效。

        改進(jìn)解決方法:可以完善IPv6協(xié)議,對(duì)收到RA報(bào)文的二層幀源MAC地址和選項(xiàng)中的鏈路層地址(MAC地址)進(jìn)行對(duì)比,若不相同,則丟棄該RA報(bào)文。該方法涉及IPv6低層協(xié)議的開發(fā)和標(biāo)準(zhǔn)的制定,實(shí)施難度較大,基本不可行。

        可行的解決辦法:在被攻擊的計(jì)算機(jī)上運(yùn)行類似Wireshark這樣的數(shù)據(jù)包捕獲軟件,找出RA攻擊報(bào)文對(duì)應(yīng)的二層幀的源MAC地址,然后再根據(jù)該MAC地址,在網(wǎng)管交換機(jī)上找出對(duì)應(yīng)的交換機(jī)端口,進(jìn)而找出攻擊者。這種解決方法需要專業(yè)的技術(shù)人員在被攻擊的計(jì)算機(jī)安裝數(shù)據(jù)包捕獲軟件,實(shí)際操作的難度較大且不方便。

        3.1.3 RA攻擊的徹底解決方法

        對(duì)于簡(jiǎn)單的RA攻擊,3.1.1節(jié)介紹的解決方法基本可行;對(duì)于復(fù)雜的RA攻擊,3.1.2節(jié)介紹的解決方法實(shí)施難度較大。這里轉(zhuǎn)換思路,考慮從交換機(jī)層面徹底解決RA攻擊。圖7中,交換機(jī)的eth0/2端口連接路由器。配置網(wǎng)管交換機(jī),只有eth0/2端口才接受RA報(bào)文,其他端口對(duì)收到的RA報(bào)文進(jìn)行丟棄。根據(jù)圖1,交換機(jī)其他端口只要丟棄類型是134的ICMPv6報(bào)文即可,該方法已經(jīng)被多個(gè)交換機(jī)生產(chǎn)廠商所采用,提供了相關(guān)的配置命令。

        3.2 NS報(bào)文攻擊的解決方法

        對(duì)于利用NS報(bào)文攻擊的解決方法可以參照3.1.1節(jié)和3.1.2節(jié),同樣對(duì)于復(fù)雜的NS攻擊,利用3.1.2節(jié)介紹的分析捕獲數(shù)據(jù)包的方法實(shí)施難度較大。因任何IPv6節(jié)點(diǎn)都有可能發(fā)送NS報(bào)文,3.1.3節(jié)徹底解決RA攻擊的方法也不適合NS攻擊。針對(duì)NS報(bào)文的復(fù)雜攻擊,后面再進(jìn)行深入探討。

        3.3 NA報(bào)文攻擊的解決方法

        根據(jù)NA報(bào)文攻擊的類型不同,可以采用不同的解決方法。拒絕服務(wù)攻擊的解決方法:若圖12中的字段2和字段6相同,可以使用3.1.1節(jié)介紹的方法,很容易在交換機(jī)上找出攻擊端口。若圖12中的字段2和字段6不同,對(duì)于這樣復(fù)雜的NA攻擊,3.1.2節(jié)所述的分析捕獲數(shù)據(jù)包的方法難度也較大,后面再進(jìn)行深入的探討。

        中間人攻擊的解決方法:由于中間人攻擊不會(huì)影響正常的網(wǎng)絡(luò)使用,很難被發(fā)現(xiàn),可以通過靜態(tài)綁定IPv6地址和MAC地址的方法來阻止中間人攻擊的發(fā)生,Windows上對(duì)應(yīng)的命令是“netsh interface ipv6 set neighbor ‘接口ID’ 鄰居IPv6地址 鄰居鏈路層MAC地址”,靜態(tài)綁定的工作量較大且要實(shí)現(xiàn)雙向綁定,實(shí)際操作難度也較大,后面再進(jìn)行深入的探討。若是意識(shí)到被中間人攻擊,利用3.1.1節(jié)介紹的方法,可以很容易找出攻擊者。

        IPv6地址占用攻擊的解決方法:利用3.1.2節(jié)所述的方法,在被攻擊的計(jì)算機(jī)上運(yùn)行類似Wireshark這樣的數(shù)據(jù)包捕獲軟件,找出NA攻擊報(bào)文對(duì)應(yīng)的二層幀的源MAC地址,進(jìn)而找出攻擊者。這仍需要專業(yè)的技術(shù)人員到被攻擊者的計(jì)算機(jī)上進(jìn)行操作,同樣實(shí)際操作難度也較大,后面再進(jìn)行深入的探討。

        4 NDP攻擊解決辦法的進(jìn)一步探索

        NDP是IPv6的基礎(chǔ)協(xié)議,若沒有一個(gè)好的解決辦法,NDP攻擊將一直伴隨著IPv6,造成的損失同樣不可估量。前面介紹的方法主要是解決簡(jiǎn)單的NDP攻擊,對(duì)于復(fù)雜的NDP攻擊,除了通過分析捕獲的數(shù)據(jù)包外,幾乎沒有好的辦法。

        由于RA、NS和NA等報(bào)文都經(jīng)由交換機(jī)轉(zhuǎn)發(fā),可以考慮對(duì)交換機(jī)進(jìn)行功能改進(jìn)來判斷和阻止NDP攻擊。3.1.3節(jié)介紹了通過對(duì)網(wǎng)管交換機(jī)進(jìn)行功能改進(jìn),只在連接路由器的交換機(jī)端口上接收RA報(bào)文,該方法徹底解決了RA報(bào)文攻擊。這里進(jìn)一步對(duì)交換機(jī)進(jìn)行功能改進(jìn),使之可以判斷、減少和阻止NS攻擊和NA攻擊。

        4.1 RA、NS和NA報(bào)文的規(guī)范性檢查

        增加1個(gè)對(duì)所有流經(jīng)的RA、NS和NA報(bào)文進(jìn)行規(guī)范性檢查的開關(guān)項(xiàng),若打開此功能,則二層幀中的源MAC地址和三層數(shù)據(jù)包中的鏈路層地址(圖8中的字段1和字段3、圖11中字段2和字段6、圖12中字段2和字段6)要相同,否則丟棄該數(shù)據(jù)包。開啟此功能后,可以阻止復(fù)雜的RA、NS和NA報(bào)文攻擊。

        4.2 構(gòu)建“IPv6地址五維表”

        交換機(jī)的基本功能是學(xué)習(xí)二層幀的MAC地址,構(gòu)造MAC地址表,然后對(duì)轉(zhuǎn)發(fā)的數(shù)據(jù)幀進(jìn)行過濾式轉(zhuǎn)發(fā)。這里對(duì)二層的網(wǎng)管交換機(jī)功能稍做增強(qiáng),使之不僅處理二層幀中的MAC地址,還檢查三層數(shù)據(jù)包中的RA、NS和NA報(bào)文(即ICMP中類型為134、135和136的報(bào)文)。交換機(jī)只是查看NDP報(bào)文的內(nèi)容,并不拆封數(shù)據(jù)包,也不涉及路由轉(zhuǎn)發(fā),二層交換機(jī)只要功能稍做加強(qiáng),即可完成該功能。

        二層交換機(jī)根據(jù)收到的數(shù)據(jù)包,記錄以下這些信息:進(jìn)入的交換機(jī)端口、二層幀的源MAC、IPv6地址(圖8中的字段2、圖11中的字段3和圖12中的字段5)、鏈路層地址(圖8中的字段3、圖11和圖12中的字段6)和類型(Type,動(dòng)態(tài)學(xué)習(xí)的類型是dynamic,靜態(tài)綁定的類型是static)。由這5個(gè)元素組成交換機(jī)的“IPv6地址五維表”,通過相關(guān)的命令進(jìn)行查看,輸出的結(jié)果可以如下所示:

        Switch#show ipv6-address-table

        Ipv6 MAC Address Link-layer address Interface Type

        -------------------- --------- ------------ ----- -----

        FE80::A8BB:CCFF:FE00:400 AABB.CC00.0400 AABB.CC00.0400 Eth 0/2 Dynamic

        2001:DA8:1011:1:5557:1507:3D75:CF8E 5000.0001.0000 5000.0001.0000 Eth 0/0 Dynamic

        該表已經(jīng)記錄了圖7拓?fù)渲兄鳈C(jī)1臨時(shí)IPv6地址和路由器鏈路本地址。假設(shè)此時(shí)主機(jī)2冒充網(wǎng)關(guān)FE80::A8BB:CCFF:FE00:400給主機(jī)1發(fā)送一個(gè)NA報(bào)文,采用了復(fù)雜的NA攻擊,MAC Address(假如設(shè)成AABB.CC11.1111)和Link-layer address(假如設(shè)成AABB.CC22.2222)的值不同。交換機(jī)收到此NA攻擊報(bào)文后,發(fā)現(xiàn)“IPv6地址五維表”中已經(jīng)存在FE80::A8BB:CCFF:FE00:400記錄,彈出1條報(bào)警信息,提示該IPv6地址的MAC Address 、Link-layer address或Interface發(fā)生了改變,并把報(bào)警信息記錄在日志中。交換機(jī)更新IPv6地址五維表,更新后的記錄如下:

        Switch#show ipv6-address-table

        Ipv6 MAC Address Link-layer address Interface Type

        ----------------- -------- ------- ----- -----

        FE80::A8BB:CCFF:FE00:400 AABB.CC11.1111 AABB.CC22.2222 Eth 0/1 Dynamic

        2001:DA8:1011:1:5557:1507:3D75:CF8E 5000.0001.0000 5000.0001.0000 Eth 0/0 Dynamic

        通過該記錄,可以快速地找出攻擊者所在的交換機(jī)端口。

        IPv6地址占用攻擊的解決方法:如果同一個(gè)交換機(jī)端口對(duì)應(yīng)著大量的IPv6地址條目,且網(wǎng)絡(luò)中節(jié)點(diǎn)IPv6地址獲取失敗,此時(shí)可以考慮是IPv6地址占用攻擊,斷開交換機(jī)相應(yīng)端口的連線即可。

        RA、NS和NA報(bào)文的拒絕服務(wù)攻擊和中間人攻擊的解決方法:考慮到IPv6地址空間巨大,幾乎不可能自動(dòng)產(chǎn)生2個(gè)相同的IPv6地址,可以把“IPv6地址五維表”中的記錄鎖定,不需要更新,收到與“IPv6地址五維表”中記錄不一致的報(bào)文,直接丟棄。對(duì)于手工靜態(tài)配置IPv6地址的情況,譬如網(wǎng)關(guān)或服務(wù)器等,若是更換硬件,管理員可以手動(dòng)清除一下“IPv6地址五維表”。通過把“IPv6地址五維表”中的記錄鎖定,可以杜絕RA、NS和NA的報(bào)文攻擊。

        RA、NS和NA報(bào)文的規(guī)范性檢查可以阻止復(fù)雜的NDP攻擊,但方法過于簡(jiǎn)單,缺乏靈活性,不一定能適應(yīng)所有的場(chǎng)合。構(gòu)建“IPv6地址五維表”的功能改進(jìn)靈活多變,適應(yīng)性強(qiáng),可視化度高,推薦優(yōu)先考慮。

        5 結(jié)束語

        隨著IPv6在全球的快速普及,與之相關(guān)的NDP攻擊將普遍長(zhǎng)期存在。介紹了NDP的幾種報(bào)文格式和工作機(jī)制,分析了可能存在的攻擊類型,針對(duì)不同的攻擊方式,給出切實(shí)可行的解決方法??紤]到解決方法的簡(jiǎn)單易行,最后提出了對(duì)交換機(jī)進(jìn)行功能改進(jìn),利用構(gòu)建的“IPv6地址五維表”可快速找出攻擊,甚至是杜絕NDP攻擊。盡快把本研究的成果應(yīng)用于各個(gè)交換機(jī)生產(chǎn)廠家,使交換機(jī)具備NDP攻擊的預(yù)警和判斷功能,有望徹底解決NDP攻擊。

        猜你喜歡
        鏈路層字段網(wǎng)關(guān)
        網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
        基于改進(jìn)RPS技術(shù)的IPSEC VPN網(wǎng)關(guān)設(shè)計(jì)
        LTE Small Cell網(wǎng)關(guān)及虛擬網(wǎng)關(guān)技術(shù)研究
        應(yīng)對(duì)氣候變化需要打通“網(wǎng)關(guān)”
        太陽能(2015年7期)2015-04-12 06:49:50
        數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
        CNMARC304字段和314字段責(zé)任附注方式解析
        無正題名文獻(xiàn)著錄方法評(píng)述
        IEEE 1394事務(wù)層接口的設(shè)計(jì)與實(shí)現(xiàn)
        欧美老肥妇做爰bbww| 国产传媒剧情久久久av| 午夜亚洲精品一区二区| 在线观看日本一区二区三区四区| 免费国产成人肉肉视频大全| 久久中文精品无码中文字幕| 午夜福利视频男同女同| 日本免费精品免费视频| 成人欧美一区二区三区在线| 国产呦系列呦交| 亚洲最大无码AV网站观看| 一区二区亚洲精美视频| 一本色道久久婷婷日韩| 极品av麻豆国产在线观看| 人妻无码视频| 亚洲乱亚洲乱少妇无码99p| 亚洲AV永久天堂在线观看| 99国产综合精品-久久久久| 少妇高潮精品正在线播放| 欧美顶级少妇作爱| 亚洲视频一区| 欧美日韩一区二区三区视频在线观看| 日本一极品久久99精品| 亚洲一区二区三区高清在线观看| 人妻少妇偷人精品无码| 欧美一级色图| 人妻少妇偷人精品久久人妻| 日出白浆视频在线播放| 国产成年无码v片在线| 欧美视频二区欧美影视| 精品一区二区三区人妻久久| 日韩在线精品视频一区| 在线亚洲高清揄拍自拍一品区| 精品国产乱码久久久软件下载| 尤物蜜芽福利国产污在线观看| 中文字幕人妻在线少妇完整版| 中文字幕无码乱人伦| 成av人片一区二区三区久久 | 日本熟妇中文字幕三级| 最新中文字幕日韩精品| 久久久g0g0午夜无码精品|