一種路由器及其防arp攻擊的方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,尤指一種路由器及其防ARP攻擊的方法?!?br>背景技術(shù):
】[0002]隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,網(wǎng)絡(luò)安全已經(jīng)變得越來越重要,有很多敏感信息,難免會吸引某些人的攻擊,像網(wǎng)吧這種場所,總有一些不法分子常常竊取正常上網(wǎng)用戶的個(gè)人信息,如網(wǎng)上銀行密碼、論壇賬號密碼等。局域網(wǎng)ARP攻擊就是常見的一種方式,為了保證用戶的合法利益,需要首先從局域網(wǎng)就阻止這些非法操作。[0003]ARP攻擊就是局域網(wǎng)攻擊者通過偽造IP地址和MAC地址(物理地址)實(shí)現(xiàn)ARP欺騙,攻擊主機(jī)只要持續(xù)不斷的發(fā)出偽造的ARP響應(yīng)包就能使目標(biāo)主機(jī)更改自己ARP緩存中的MAC-1P條目,造成目標(biāo)主機(jī)誤認(rèn)為攻擊者的MAC地址和IP地址就是信任的網(wǎng)絡(luò)地址,從而將數(shù)據(jù)發(fā)往攻擊者偽造的地址,這樣攻擊主機(jī)就能竊取目標(biāo)主機(jī)的機(jī)密信息(通過第三方工具解析)。ARP攻擊通常發(fā)生在大型局域網(wǎng)內(nèi),比如校園網(wǎng)、網(wǎng)吧等場所。[0004]當(dāng)前預(yù)防ARP攻擊的方案主要是在路由模式下進(jìn)行的。一種方式是利用路由器在路由模式下DHCPserver分配給接入路由器的終端設(shè)備IP地址,另一種方式是路由器管理人員靜態(tài)配置MAC地址和IP地址,這種方式需要終端用戶在計(jì)算機(jī)上靜態(tài)配置IP地址及其網(wǎng)關(guān)等信息,然后利用linux自帶的arp命令或是arptables命令實(shí)施終端設(shè)備的MAC地址和IP地址綁定。但是,arp命令、arptables命令及其附屬命令只能在linux用戶空間使用。尤其是當(dāng)路由器工作在橋模式下的時(shí)候,路由器本身沒有設(shè)置DHCPserver來分配IP地址,而是需要從上一級路由器或是第三方DHCPserver分配IP地址,不能由路由器直接獲得IP地址,進(jìn)而也就無法通過路由器有效防止ARP的攻擊?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明的目的是提供一種路由器及其防ARP攻擊的方法,能夠有效防止ARP的攻擊。[0006]本發(fā)明提供的技術(shù)方案如下:[0007]本發(fā)明提供了一種路由器防ARP攻擊的方法,其包括步驟:[0008]接收ARP報(bào)文;[0009]解析接收的所述ARP報(bào)文中的MAC地址和IP地址;[0010]將所述解析得到的MAC地址和IP地址同預(yù)先存儲的名單鏈表比對,并判斷所述解析得到的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則丟棄所述ARP報(bào)文;如果不是攻擊地址,則放行所述ARP報(bào)文。[0011]優(yōu)選地,所述預(yù)先存儲的名單鏈表為白名單鏈表;[0012]所述判斷所述解析得到的MAC地址和IP地址是否為攻擊地址進(jìn)一步包括:[0013]判斷所述解析得到的MAC地址和IP地址是否與所述白名單鏈表中的一對MAC地址和IP地址一致,當(dāng)一致時(shí),判斷所述解析得到的MAC地址和IP地址不是攻擊地址,并放行所述ARP報(bào)文;當(dāng)不一致時(shí),判斷所述解析得到的MAC地址和IP地址是攻擊地址,并丟棄所述ARP報(bào)文。[0014]優(yōu)選地,所述預(yù)先存儲的名單鏈表為黑名單鏈表;[0015]所述判斷所述解析得到的MAC地址和IP地址是否為攻擊地址進(jìn)一步包括:[0016]判斷所述解析得到的MAC地址和IP地址是否與所述黑名單鏈表中的一對MAC地址和IP地址一致,當(dāng)一致時(shí),判斷所述解析得到的MAC地址和IP地址是攻擊地址,并丟棄所述ARP報(bào)文;當(dāng)不一致時(shí),判斷所述解析得到的MAC地址和IP地址不是攻擊地址,并放行所述ARP報(bào)文。[0017]優(yōu)選地,當(dāng)監(jiān)測到任一終端在預(yù)設(shè)時(shí)間內(nèi)并未作出響應(yīng)后,從所述預(yù)先存儲的名單鏈表中刪除該終端所對應(yīng)的MAC地址和IP地址。[0018]優(yōu)選地,在所述接收ARP報(bào)文的步驟之前,還包括步驟:[0019]創(chuàng)建并存儲所述名單鏈表。[0020]優(yōu)選地,在所述創(chuàng)建并存儲所述名單鏈表的步驟之后,還包括步驟:[0021]接收DHCP報(bào)文;[0022]解析所述DHCP報(bào)文中的MAC地址和IP地址;[0023]將所述解析得到的DHCP報(bào)文中的MAC地址和IP地址同預(yù)先存儲的所述名單鏈表比對,并判斷所述解析得到的DHCP報(bào)文中的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則丟棄所述DHCP報(bào)文;如果不是攻擊地址,則放行所述DHCP報(bào)文。[0024]優(yōu)選地,在所述創(chuàng)建并存儲所述名單鏈表的步驟之后,還包括步驟:[0025]接收DHCP報(bào)文;[0026]人工配置DHCP報(bào)文中的MAC地址和IP地址;[0027]將所述DHCP報(bào)文中的MAC地址和IP地址同預(yù)先存儲的所述名單鏈表比對,并判斷所述DHCP報(bào)文中的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則丟棄所述DHCP報(bào)文;如果不是攻擊地址,則放行所述DHCP報(bào)文。[0028]進(jìn)一步優(yōu)選地,創(chuàng)建的所述名單鏈表為白名單鏈表;[0029]所述判斷所述DHCP報(bào)文中的MAC地址和IP地址是否為攻擊地址進(jìn)一步包括:[0030]判斷所述DHCP報(bào)文中的MAC地址和IP地址是否與所述白名單鏈表中的一對MAC地址和IP地址一致,當(dāng)一致時(shí),判斷所述DHCP報(bào)文中的MAC地址和IP地址是攻擊地址,并丟棄所述DHCP報(bào)文;當(dāng)不一致時(shí),判斷所述DHCP報(bào)文中的MAC地址和IP地址不是攻擊地址,將該MAC地址和IP地址存入所述白名單鏈表中,并放行所述DHCP報(bào)文。[0031]進(jìn)一步優(yōu)選地,所述路由器防ARP攻擊的方法應(yīng)用于路由器橋模式下的內(nèi)核netfilter。[0032]進(jìn)一步優(yōu)選地,在所述創(chuàng)建并存儲所述名單鏈表步驟之前,還包括步驟:[0033]注冊內(nèi)核鉤子函數(shù)。[0034]本發(fā)明還提供了一種路由器,其應(yīng)用如前述的路由器防ARP攻擊的方法,所述路由器包括:[0035]第一獲取模塊,其用于接收ARP報(bào)文;[0036]第一解析模塊,其用于解析ARP報(bào)文中的MAC地址和IP地址;[0037]存儲模塊,其用于預(yù)先存儲名單鏈表;[0038]第一比對模塊,其用于將所述解析得到的MAC地址和IP地址同預(yù)先存儲的所述名單鏈表比對;[0039]控制模塊,其用于判斷所述解析得到的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則控制丟棄所述ARP報(bào)文;如果不是攻擊地址,則控制放行所述ARP報(bào)文。[0040]優(yōu)選地,所述的路由器還包括:[0041]創(chuàng)建模塊,其用于創(chuàng)建所述名單鏈表。[0042]進(jìn)一步優(yōu)選地,所述的路由器還包括:[0043]第二獲取模塊,其用于接收DHCP報(bào)文;[0044]第二解析模塊,其用于解析DHCP報(bào)文中的MAC地址和IP地址;[0045]第二比對模塊,其用于將所述解析得到的DHCP報(bào)文中的MAC地址和IP地址同預(yù)先存儲的所述名單鏈表比對;[0046]所述控制模塊進(jìn)一步用于判斷所述解析得到的DHCP報(bào)文中的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則控制丟棄所述DHCP報(bào)文;如果不是攻擊地址,則控制放行所述DHCP報(bào)文。[0047]進(jìn)一步優(yōu)選地,所述的路由器還包括:[0048]第三獲取模塊,其用于接收DHCP報(bào)文;[0049]第三比對模塊,其用于將人工配置的DHCP報(bào)文中的MAC地址和IP地址同預(yù)先存儲的所述名單鏈表比對;[0050]所述控制模塊進(jìn)一步用于判斷所述人工配置的DHCP報(bào)文中的MAC地址和IP地址是否為攻擊地址;如果為攻擊地址,則控制丟棄所述DHCP報(bào)文;如果不是攻擊地址,則控制放行所述DHCP報(bào)文。[0051]進(jìn)一步優(yōu)選地,所述的路由器還包括:[0052]注冊模塊,其用于注冊內(nèi)核鉤子函數(shù)。[0053]通過本發(fā)明提供的路由器及其防ARP攻擊的方法,能夠帶來以下至少一種有益效果:[0054]1、本發(fā)明能夠?qū)邮盏腁RP報(bào)文解析其所包含的MAC地址和IP地址,并同預(yù)先存儲的名單鏈表(地址名單鏈表)比對,以判斷所述的MAC地址和IP地址是否為攻擊地址。當(dāng)為攻擊地址時(shí),丟棄所述ARP報(bào)文;如果不是攻擊地址,則放行所述ARP報(bào)文。這樣,就通過對地址的判斷實(shí)現(xiàn)對ARP報(bào)文是否為欺騙報(bào)文的判斷。[0055]2、前述的預(yù)先存儲的名單鏈表是通過對DHCP報(bào)文的不斷處理所創(chuàng)建的名單鏈表??梢栽谂袛郉HCP報(bào)文中的MAC地址和IP地址為新地址時(shí),將該地址添加至所述的名單鏈表。隨著對更多DHCP報(bào)文的處理,名單鏈表中的地址也在不斷的更新。通過這樣的方法,可以持續(xù)且動態(tài)的創(chuàng)建名單鏈表,進(jìn)而也能夠?qū)RP報(bào)文中的MAC地址和IP地址做出更實(shí)時(shí)和準(zhǔn)確的判斷。[0056]3、本發(fā)明可以主要應(yīng)用于無法通過路由器直接分配IP地址的路由器橋模式。在路由器橋模式下,通過在內(nèi)核netfiIter下注冊內(nèi)核鉤子函數(shù),以實(shí)現(xiàn)對DHCP報(bào)文的抓取,并解析和判斷DHCP報(bào)文中的MAC地址和IP地址。將安全的DHCP報(bào)文中的MAC地址和IP地址持續(xù)的添加至一名單鏈表,并將該名單鏈表作為判斷ARP報(bào)文是否為欺騙報(bào)文的依據(jù)。通過這種方法,有效解決了在路由器橋模式下防止ARP攻擊的問題。當(dāng)前第1頁1 2 3 4 5