DHCP服務(wù)已是網(wǎng)絡(luò)中必不可少的服務(wù)之一。隨著DHCP服務(wù)的部署,一些安全問(wèn)題也逐漸暴露出一些問(wèn)題:
- DHCP報(bào)文泛紅攻擊
- 仿冒DHCP報(bào)文攻擊
- DHCP仿冒者攻擊
- DHCP server拒絕服務(wù)攻擊
- 仿冒DHCP服務(wù)器攻擊
DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一種安全特性,用于保證DHCP客戶端從合法的DHCP服務(wù)器獲取IP地址,并記錄DHCP客戶端IP地址與MAC地址等參數(shù)的對(duì)應(yīng)關(guān)系,防止網(wǎng)絡(luò)上針對(duì)DHCP攻擊。
這里要注意的是:DHCP snooping 只是會(huì)動(dòng)態(tài)的生成綁定表,需要結(jié)合其它功能和特性來(lái)實(shí)現(xiàn)安全防護(hù)。
1.DHCP報(bào)文泛紅攻擊:
在DHCP網(wǎng)絡(luò)環(huán)境中,若存在DHCP用戶短時(shí)間內(nèi)向設(shè)備發(fā)送大量的DHCP報(bào)文,將會(huì)對(duì)設(shè)備的性能造成巨大的沖擊以致可能會(huì)導(dǎo)致設(shè)備無(wú)法正常工作。通過(guò)使能對(duì)DHCP報(bào)文上送DHCP報(bào)文處理單元的速率進(jìn)行檢測(cè)功能將能夠有效防止DHCP報(bào)文泛洪攻擊。
解決辦法:
配置限制DHCP報(bào)文的上送速率,可在系統(tǒng)視圖、VLAN視圖或接口視圖下執(zhí)行。
執(zhí)行命令dhcp snooping check dhcp-rate enable,使能對(duì)DHCP報(bào)文上送DHCP報(bào)文處理單元的速率進(jìn)行檢測(cè)功能。
缺省情況下,未使能對(duì)DHCP報(bào)文上送DHCP報(bào)文處理單元的速率進(jìn)行檢測(cè)功能。
執(zhí)行命令dhcp snooping check dhcp-rate rate,配置DHCP報(bào)文上送DHCP報(bào)文處理單元的最大允許速率。
缺省情況下,全局DHCP報(bào)文上送DHCP報(bào)文處理單元的最大允許速率為100pps,接口下DHCP報(bào)文上送DHCP報(bào)文處理單元的最大允許速率為在系統(tǒng)視圖下配置的值。
2.仿冒DHCP報(bào)文攻擊:
在DHCP網(wǎng)絡(luò)環(huán)境中,若攻擊者仿冒合法用戶的DHCP Request報(bào)文發(fā)往DHCP Server,將會(huì)導(dǎo)致用戶的IP地址租約到期之后不能夠及時(shí)釋放,以致合法用戶無(wú)法使用該IP地址;若攻擊者仿冒合法用戶的DHCP Release報(bào)文發(fā)往DHCP Server,將會(huì)導(dǎo)致用戶異常下線。
在生成DHCP Snooping綁定表后,設(shè)備可根據(jù)綁定表項(xiàng),對(duì)DHCP Request報(bào)文或DHCP Release報(bào)文進(jìn)行匹配檢查,只有匹配成功的報(bào)文設(shè)備才將其轉(zhuǎn)發(fā),否則將丟棄。這將能有效的防止非法用戶通過(guò)發(fā)送偽造DHCP Request或DHCP Release報(bào)文冒充合法用戶續(xù)租或釋放IP地址。
解決辦法:
使能對(duì)DHCP報(bào)文進(jìn)行綁定表匹配檢查的功能,可在系統(tǒng)視圖、VLAN視圖或接口視圖下進(jìn)行配置。
執(zhí)行命令dhcp snooping check dhcp-request enable vlan { vlan-id1 [ to vlan-id2 ] }&<1-10>,使能對(duì)從指定VLAN內(nèi)上送的DHCP報(bào)文進(jìn)行綁定表匹配檢查的功能。
缺省情況下,未使能對(duì)DHCP報(bào)文進(jìn)行綁定表匹配檢查的功能。
在VLAN或者接口視圖下:
執(zhí)行命令dhcp snooping check dhcp-request enable,使能對(duì)DHCP報(bào)文進(jìn)行綁定表匹配檢查的功能。
缺省情況下,未使能對(duì)DHCP報(bào)文進(jìn)行綁定表匹配檢查的功能。
3. DHCP仿冒者攻擊:
此功能需要結(jié)合IPSG來(lái)實(shí)現(xiàn):
隨著網(wǎng)絡(luò)規(guī)模越來(lái)越大,通過(guò)偽造源IP地址實(shí)施的網(wǎng)絡(luò)攻擊(簡(jiǎn)稱(chēng)IP地址欺騙攻擊)也逐漸增多。一些攻擊者通過(guò)偽造合法用戶的IP地址獲取網(wǎng)絡(luò)訪問(wèn)權(quán)限,非法訪問(wèn)網(wǎng)絡(luò),甚至造成合法用戶無(wú)法訪問(wèn)網(wǎng)絡(luò),或者信息泄露。IPSG針對(duì)IP地址欺騙攻擊提供了一種防御機(jī)制,可以有效阻止此類(lèi)網(wǎng)絡(luò)攻擊行為。
一個(gè)典型的利用IPSG防攻擊的示例如圖1所示,非法主機(jī)偽造合法主機(jī)的IP地址獲取上網(wǎng)權(quán)限。此時(shí),通過(guò)在Switch的接入用戶側(cè)的接口或VLAN上部署IPSG功能,Switch可以對(duì)進(jìn)入接口的IP報(bào)文進(jìn)行檢查,丟棄非法主機(jī)的報(bào)文,從而阻止此類(lèi)攻擊。

IPSG利用綁定表(源IP地址、源MAC地址、所屬VLAN、入接口的綁定關(guān)系)去匹配檢查二層接口上收到的IP報(bào)文,只有匹配綁定表的報(bào)文才允許通過(guò),其他報(bào)文將被丟棄。

綁定表生成后,IPSG基于綁定表向指定的接口或者指定的VLAN下發(fā)ACL,由該ACL來(lái)匹配檢查所有IP報(bào)文。主機(jī)發(fā)送的報(bào)文,只有匹配綁定表才會(huì)允許通過(guò),不匹配綁定表的報(bào)文都將被丟棄。當(dāng)綁定表信息變化時(shí),設(shè)備會(huì)重新下發(fā)ACL。缺省情況下,如果在沒(méi)有綁定表的情況下使能了IPSG,設(shè)備會(huì)允許IP協(xié)議報(bào)文通過(guò),但是會(huì)拒絕所有的數(shù)據(jù)報(bào)文。
IPSG只匹配檢查主機(jī)發(fā)送的IP報(bào)文,對(duì)于ARP、PPPoE等非IP報(bào)文,IPSG不做匹配檢查。
IPSG實(shí)現(xiàn)原理圖

4.DHCP server拒絕服務(wù)攻擊
若在網(wǎng)絡(luò)中存在DHCP用戶惡意申請(qǐng)IP地址,將會(huì)導(dǎo)致IP地址池中的IP地址快速耗盡以致DHCP Server無(wú)法為其他合法用戶分配IP地址。另一方面,DHCP Server通常僅根據(jù)CHADDR(client hardware address)字段來(lái)確認(rèn)客戶端的MAC地址。如果攻擊者通過(guò)不斷改變DHCP Request報(bào)文中的CHADDR字段向DHCP Server申請(qǐng)IP地址,將會(huì)導(dǎo)致DHCP Server上的地址池被耗盡,從而無(wú)法為其他正常用戶提供IP地址。
為了防止某些端口的DHCP用戶惡意申請(qǐng)IP地址,可配置接口允許學(xué)習(xí)的DHCP Snooping綁定表項(xiàng)的最大個(gè)數(shù)來(lái)控制上線用戶的個(gè)數(shù),當(dāng)用戶數(shù)達(dá)到該值時(shí),則任何用戶將無(wú)法通過(guò)此接口成功申請(qǐng)到IP地址。為了防止攻擊者不斷改變DHCP Request報(bào)文中的CHADDR字段進(jìn)行攻擊,可使能檢測(cè)DHCP Request報(bào)文幀頭MAC地址與DHCP數(shù)據(jù)區(qū)中CHADDR字段是否相同的功能,相同則轉(zhuǎn)發(fā)報(bào)文,否則丟棄。
解決辦法:
配置接口允許學(xué)習(xí)的DHCP Snooping綁定表項(xiàng)的最大個(gè)數(shù),可在系統(tǒng)視圖、VLAN視圖或接口視圖下配置。
執(zhí)行命令dhcp snooping max-user-number max-number vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>,配置設(shè)備允許學(xué)習(xí)的DHCP Snooping綁定表項(xiàng)的最大個(gè)數(shù)。
執(zhí)行該命令后,設(shè)備所有的接口允許學(xué)習(xí)的DHCP Snooping綁定表項(xiàng)之和為該命令所配置的值。
在VLAN或者接口視圖下:
執(zhí)行命令dhcp snooping max-user-number max-number,配置接口允許學(xué)習(xí)的DHCP Snooping綁定表項(xiàng)的最大個(gè)數(shù)。
若在VLAN視圖下執(zhí)行該命令,則VLAN內(nèi)所有的接口接入的用戶最大數(shù)為該命令所配置的值。
5.仿冒DHCP服務(wù)器攻擊
此功能需要配置DHCP 信任功能來(lái)實(shí)現(xiàn):
配置接口信任狀態(tài)
背景信息
如圖所示場(chǎng)景中,為使DHCP客戶端能通過(guò)合法的DHCP服務(wù)器獲取IP地址,需將與管理員信任的DHCP服務(wù)器直接或間接連接的設(shè)備接口設(shè)置為信任接口(如圖中的if0),其他接口設(shè)置為非信任接口(如圖中的if2)。從而保證DHCP客戶端只能從合法的DHCP服務(wù)器獲取IP地址,私自架設(shè)的DHCP Server仿冒者無(wú)法為DHCP客戶端分配IP地址。
在連接用戶的接口或VLAN下使能DHCP Snooping功能之后,需將連接DHCP服務(wù)器的接口配置為“信任”模式,兩者同時(shí)生效設(shè)備即能夠生成DHCP Snooping動(dòng)態(tài)綁定表。

解決辦法:
請(qǐng)?jiān)诙泳W(wǎng)絡(luò)中的接入設(shè)備上執(zhí)行以下步驟。
配置接口為“信任”狀態(tài),可在接口視圖或VLAN視圖下執(zhí)行。
接口視圖下:
執(zhí)行命令interface interface-type interface-number,進(jìn)入接口視圖。
執(zhí)行命令dhcp snooping trusted,配置接口為“信任”接口。
缺省情況下,接口的狀態(tài)為“非信任”狀態(tài)。
VLAN視圖下:
執(zhí)行命令vlan vlan-id,進(jìn)入VLAN視圖。
執(zhí)行命令dhcp snooping trusted interface interface-type interface-number ,配置接口為“信任”接口。
缺省情況下,接口的狀態(tài)為“非信任”狀態(tài)。
在VLAN視圖下執(zhí)行此命令,則命令功能僅對(duì)加入該VLAN的接口收到的屬于此VLAN的DHCP報(bào)文生效;在接口下執(zhí)行該命令,則命令功能對(duì)該接口接收到的所有DHCP報(bào)文生效。