ARP(Address Resolution Protocol,地址解析協議)用于将網絡層的IP地址解析為(wèi)數(shù)據鏈路層地址。IP地址隻是主機在網絡層中的地址,如果要将網絡層中數(shù)據包傳送給目的主機,必須知道(dào)目的主機的數(shù)據鏈路層地址(比如以太網絡MAC地址)。因此必須将IP地址解析為(wèi)數(shù)據鏈路層地址。
ARP協議用于将IP地址解析為(wèi)MAC地址,并在主機內(nèi)部維護一張ARP表,記錄最近與本主機通(tōng)信的其它主機的MAC地址與IP地址的對應關系。當主機需要與陌生(shēng)主機通(tōng)信時(shí),首先進行(xíng)ARP地址解析,ARP地址解析過程如圖所示:
1) A在自己的ARP表中查詢是否存在主機B的IP地址和(hé)MAC地址的對應條目。若存在,直接向主機B發送數(shù)據。若不存在,則A向整個(gè)局域網中廣播一份稱為(wèi)“ARP請(qǐng)求”的數(shù)據鏈路幀,這個(gè)請(qǐng)求包含發送端(即主機A)的IP地址和(hé)MAC地址以及接收端(即主機B)的IP地址。
2) 局域網的每個(gè)主機接收到主機A廣播的ARP請(qǐng)求後,目的主機B識别出這是發送端在詢問它的IP地址,于是給主機A發出一個(gè)ARP應答(dá)。這個(gè)應答(dá)包含了主機B的MAC地址。
3) 主機A接收到主機B發出的ARP應答(dá)後,就将主機B的IP地址與MAC地址的對應條目添加自己的ARP表中,以便後續報文的轉發。
掃描綁定功能即通(tōng)過交換機向局域網或VLAN發送指定IP段的ARP請(qǐng)求報文,當收到相應的ARP應答(dá)報文時(shí),将分析ARP應答(dá)報文來(lái)獲得(de)四元信息。由此可(kě)見,通(tōng)過掃描綁定功能可(kě)以很(hěn)方便的将局域網用戶的四元信息進行(xíng)綁定。
DHCP偵聽(tīng)
随着網絡規模的不斷擴大(dà)和(hé)網絡複雜度的提高(gāo),經常出現計(jì)算(suàn)機的數(shù)量超過可(kě)供分配的IP地址的情況。同時(shí)随着便攜機及無線網絡的廣泛使用,計(jì)算(suàn)機的位置也經常變化,相應的IP地址也必須經常更新,從而導緻網絡配置越來(lái)越複雜。DHCP(Dynamic Host Configuration Protocol,動态主機配置協議)是在BOOTP協議基礎上(shàng)進行(xíng)了優化和(hé)擴展而産生(shēng)的一種網絡配置協議,并有(yǒu)效解決了上(shàng)面這些(xiē)問題。
DHCP工作(zuò)原理(lǐ)
DHCP采用“客戶端/服務器(qì)”通(tōng)信模式,由客戶端向服務器(qì)提出配置申請(qǐng),服務器(qì)返回為(wèi)客戶端分配的IP地址等配置信息,以實現網絡資源的動态配置。通(tōng)常一台服務器(qì)可(kě)以為(wèi)多(duō)台客戶端分配IP,如圖所示:
針對DHCP客戶端的需求不同,DHCP服務器(qì)提供三種IP地址分配策略:
1) 手工分配地址:由管理(lǐ)員為(wèi)少(shǎo)數(shù)特定客戶端(如WWW服務器(qì)等)靜态綁定IP地址。通(tōng)過DHCP将固定IP地址分配給客戶端。
2) 自動分配地址:DHCP服務器(qì)為(wèi)客戶端分配租期為(wèi)無限長的IP地址。
3) 動态分配地址:DHCP服務器(qì)為(wèi)客戶端分配具有(yǒu)一定有(yǒu)效期限的IP地址,當使用期限到期後,客戶端需要重新申請(qǐng)地址。
絕大(dà)多(duō)數(shù)客戶端均通(tōng)過動态分配地址的方式獲取IP地址,其獲取IP地址的過程如下圖所示:
1) 發現階段,客戶端以廣播方式發送DHCP-DISCOVER報文尋找DHCP服務器(qì)。
2) 提供階段,DHCP服務器(qì)接收到客戶端發送的DHCP-DISCOVER報文後,根據IP地址分配的優先次序從地址池中選出一個(gè)IP地址,與其它參數(shù)一起通(tōng)過DHCP-OFFER報文發送給客戶端(發送方式根據客戶端發送的DHCP-DISCOVER報文中的flag字段決定,具體(tǐ)請(qǐng)見DHCP報文格式的介紹)。
3) 選擇階段,如果有(yǒu)多(duō)台DHCP服務器(qì)向該客戶端發來(lái)DHCP-OFFER報文,客戶端隻接受第一個(gè)收到的DHCP-OFFER報文,然後以廣播方式發送DHCP-REQUEST報文,該報文中包含DHCP服務器(qì)在DHCP-OFFER報文中分配的IP地址。
4) 确認階段,DHCP服務器(qì)收到DHCP客戶端發來(lái)的DHCP-REQUEST報文後,隻有(yǒu)DHCP客戶端選擇的服務器(qì)會(huì)進行(xíng)如下操作(zuò):如果确認地址分配給該客戶端,則返回DHCP-ACK報文;否則将返回DHCP-NAK報文,表明(míng)地址不能分配給該客戶端。
Option 82
DHCP報文格式基于BOOTP的報文格式,共有(yǒu)8種類型的報文,每種報文的格式相同。DHCP和(hé)BOOTP消息的不同主要體(tǐ)現在選項(Option)字段,并利用Option字段來(lái)實現功能擴展。例如DHCP可(kě)以利用Option字段傳遞控制(zhì)信息和(hé)網絡配置參數(shù),實現地址的動态分配,為(wèi)客戶端提供更加豐富的網絡配置信息。更多(duō)DHCP Option選項的介紹,請(qǐng)參見RFC 2132。
Option 82選項記錄了DHCP客戶端的位置信息,交換機接收到DHCP客戶端發送給DHCP服務器(qì)的請(qǐng)求報文後,在該報文中添加Option 82,并轉發給DHCP服務器(qì)。管理(lǐ)員可(kě)以從Option 82中獲得(de)DHCP客戶端的位置信息,以便定位DHCP客戶端,實現對客戶端的安全和(hé)計(jì)費等控制(zhì)。支持Option 82的服務器(qì)還(hái)可(kě)以根據該選項的信息制(zhì)訂IP地址和(hé)其它參數(shù)的分配策略,提供更加靈活的地址分配方案。
Option 82最多(duō)可(kě)以包含255個(gè)子選項。若定義了Option 82,則至少(shǎo)要定義一個(gè)子選項。目前本交換機支持兩個(gè)子選項:Circuit ID(電(diàn)路ID子選項)和(hé)Remote ID(遠程ID子選項)。由于Option 82的內(nèi)容沒有(yǒu)統一規定,不同廠商通(tōng)常根據需要進行(xíng)填充。目前本交換機對子選項的填充內(nèi)容如下,電(diàn)路ID子選項的填充內(nèi)容是接收到DHCP客戶端請(qǐng)求報文的端口所屬VLAN的編号以及端口号,遠程ID子選項的填充內(nèi)容是接收到DHCP客戶端請(qǐng)求報文的DHCP Snooping設備的MAC地址。
DHCP服務欺騙攻擊
在DHCP工作(zuò)過程中,通(tōng)常服務器(qì)和(hé)客戶端沒有(yǒu)認證機制(zhì),如果網絡上(shàng)存在多(duō)台DHCP服務器(qì),不僅會(huì)給網絡造成混亂,也對網絡安全造成很(hěn)大(dà)威脅。這種網絡中出現非法的DHCP服務器(qì),通(tōng)常分為(wèi)兩種情況:
1) 用戶不小(xiǎo)心配置的DHCP服務器(qì),由此引起的網絡混亂非常常見。
2) 黑(hēi)客将正常的DHCP服務器(qì)中的IP地址耗盡,然後冒充合法的DHCP服務器(qì),為(wèi)客戶端分配IP地址等配置參數(shù)。例如黑(hēi)客利用冒充的DHCP服務器(qì),為(wèi)用戶分配一個(gè)經過修改的DNS服務器(qì)地址,在用戶毫無察覺的情況下被引導至預先配置好的假的金融網站(zhàn)或電(diàn)子商務網站(zhàn),騙取用戶的帳戶和(hé)密碼,如圖所示。
DHCP偵聽(tīng)是運行(xíng)在交換機上(shàng)的一種DHCP安全特性。通(tōng)過設置DHCP服務器(qì)的連接端口為(wèi)授信端口,隻處理(lǐ)授信端口發來(lái)的DHCP響應報文;通(tōng)過監聽(tīng)DHCP報文,記錄用戶從DHCP服務器(qì)獲取局域網用戶的四元信息,進行(xíng)綁定後與ARP攻擊防護、IP源防護等安全功能配合使用;同時(shí)也可(kě)以過濾不可(kě)信任的DHCP信息,防止局域網中發生(shēng)DHCP服務欺騙攻擊,提高(gāo)網絡的安全性。
ARP防護
根據所述的ARP地址解析過程可(kě)知,利用ARP協議,可(kě)以實現相同網段內(nèi)的主機之間(jiān)正常通(tōng)信或者通(tōng)過網關與外網進行(xíng)通(tōng)信。但(dàn)由于ARP協議是基于網絡中的所有(yǒu)主機或者網關都為(wèi)可(kě)信任的前提制(zhì)定的,因此在實際複雜的網絡中,此過程存在大(dà)量的安全隐患,從而導緻針對ARP協議的欺騙攻擊非常常見。網關仿冒、欺騙網關、欺騙終端用戶和(hé)ARP泛洪攻擊均是在學校(xiào)等大(dà)型網絡中常見的ARP攻擊,以下簡單介紹這幾種常見攻擊:
網關仿冒
攻擊者發送錯誤的網關MAC給受害者,而網絡中的受害者收到這些(xiē)ARP響應報文時(shí),自動更新ARP表,導緻不能正常訪問網絡。如圖所示。
如圖,攻擊者發送僞造的網關ARP報文給局域網中的正常用戶,相應的局域網用戶收到此報文後更新自己的ARP表項。當局域網中正常用戶要與網關進行(xíng)通(tōng)信時(shí),将數(shù)據包封裝上(shàng)錯誤的目的MAC地址,導緻通(tōng)信中斷。
欺騙網關
攻擊者發送錯誤的終端用戶的IP/MAC的對應關系給網關,導緻網關無法和(hé)合法終端用戶正常通(tōng)信。如圖所示。
如圖,攻擊者發送僞造的用戶A的ARP報文給網關,網關收到此報文後更新自己的ARP表項,當網關與局域網中用戶A進行(xíng)通(tōng)信時(shí),将數(shù)據包封裝上(shàng)錯誤的目的MAC地址,導緻通(tōng)信中斷。
欺騙終端用戶
攻擊者發送錯誤的終端用戶/服務器(qì)的IP/MAC的對應關系給受害的終端用戶,導緻同網段內(nèi)兩個(gè)終端用戶之間(jiān)無法正常通(tōng)信。如圖所示。
如圖,攻擊者發送僞造的用戶A的ARP報文給用戶B,用戶B收到此報文後更新自己的ARP表項,當用戶B與用戶A進行(xíng)通(tōng)信時(shí),将數(shù)據包封裝上(shàng)錯誤的目的MAC地址,導緻通(tōng)信中斷。
中間(jiān)人(rén)攻擊
攻擊者不斷向局域網中計(jì)算(suàn)機發送錯誤的ARP報文,使受害主機一直維護錯誤的ARP表項。當局域網主機互相通(tōng)信時(shí),将數(shù)據包發給攻擊者,再由攻擊者将數(shù)據包進行(xíng)處理(lǐ)後轉發。在這個(gè)過程中,攻擊者竊聽(tīng)了通(tōng)信雙方的數(shù)據,而通(tōng)信雙方對此并不知情。這就是中間(jiān)人(rén)攻擊。如圖所示。
假設同一個(gè)局域網內(nèi),有(yǒu)3台主機通(tōng)過交換機相連:
A主機:IP地址為(wèi)192.168.0.101,MAC地址為(wèi)00-00-00-11-11-11;
B主機:IP地址為(wèi)192.168.0.102,MAC地址為(wèi)00-00-00-22-22-22;
攻擊者:IP地址為(wèi)192.168.0.103,MAC地址為(wèi)00-00-00-33-33-33。
1. 首先,攻擊者向主機A和(hé)主機B發送僞造的ARP應答(dá)報文。
2. A主機和(hé)B主機收到此ARP應答(dá)後,更新各自的ARP表。
3. A主機和(hé)B主機通(tōng)信時(shí),将數(shù)據包發送給錯誤的MAC地址,即攻擊者。
4. 攻擊者竊聽(tīng)了通(tōng)信數(shù)據後,将數(shù)據包處理(lǐ)後再轉發到正确的MAC地址,使A主機和(hé)B主機保持正常的通(tōng)信。
5. 攻擊者連續不斷地向A主機和(hé)B主機發送僞造的ARP響應報文,使二者的始終維護錯誤的ARP表。
在A主機和(hé)B主機看來(lái),彼此發送的數(shù)據包都是直接到達對方的,但(dàn)在攻擊者看來(lái),其擔當的就是“第三者”的角色。這種嗅探方法,也被稱作(zuò)“中間(jiān)人(rén)”的方法。
ARP泛洪攻擊
攻擊者僞造大(dà)量不同ARP報文在同網段內(nèi)進行(xíng)廣播,消耗網絡帶寬資源,造成網絡速度急劇(jù)降低(dī);同時(shí),網關學習此類ARP報文,并更新ARP表,導緻ARP表項被占滿,無法學習合法用戶的ARP表,導緻合法用戶無法訪問外網。
在本交換機中,通(tōng)過四元綁定功能在用戶接入交換機時(shí)即對用戶的四元信息進行(xíng)綁定;而在ARP防護功能中則利用在交換機中綁定的四元信息對ARP報文進行(xíng)檢查,過濾非法ARP報文。通(tōng)過上(shàng)述兩步可(kě)以很(hěn)好的對局域網中ARP攻擊進行(xíng)防禦。