目前這類攻擊和欺騙工具已經非常成熟和易用,而目前企業在部署這方面的防範還存在很多不足,有很多工作要做。這類攻擊已有較為成熟的解決方案,主要基於下面的幾個關鍵的技術:
• Port Security feature
• DHCP Snooping
• Dynamic ARP Inspection (DAI)
• IP Source Guard
下面部分主要針對目前非常典型的二層攻擊和欺騙說明如何組合運用和部署上述技術,從而實現防止在計算網路環境中實施「中間人」攻擊、 MAC/CAM 攻擊、 DHCP 攻擊、地址欺騙等,更具意義的是通過上面技術的部署可以簡化地址管理,直接跟蹤用戶 IP 和對應的交換機通訊埠;防止 IP 地址衝突。同時對於大多數對二層網路造成很大危害的具有地址掃描、欺騙等特徵的病毒可以有效的報警和隔離。
1 MAC/CAM攻擊的防範
1.1 MAC/CAM攻擊的原理和危害
交換機主動學習客戶端的 MAC 地址,並建立和維護通訊埠和 MAC 地址的對應表以此建立交換路徑,這個表就是通常我們所說的 CAM 表。 CAM 表的大小是固定的,不同的交換機的 CAM 表大小不同。 MAC/CAM 攻擊是指利用工具產生欺騙 MAC ,快速填滿 CAM 表,交換機 CAM 表被填滿後,交換機以廣播方式處理通過交換機的資料封包,這時攻擊者可以利用各種嗅探攻擊獲取網路信息。 CAM 表滿了後,流量以洪泛方式發送到所有通訊埠,也就代表 TRUNK 接口上的流量也會發給所有接口和鄰接交換機,會造成交換機負載過大,網路緩慢和丟失封包甚至導致癱瘓。
1.2 典型的病毒利用MAC/CAM攻擊案例
曾經對網路照成非常大威脅的 SQL 蠕蟲病毒就利用組播目標地址,構造假目標 MAC 來填滿交換機 CAM 表。其特徵如下圖所示:
screen.width * 0.7) { this.resized = true; this.width = screen.width * 0.7; this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out"; } } " src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image002.jpg" onclick=" function onclick(event) { if (!this.resized) { return true; } else { window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image002.jpg"); } } " onmouseover=" function onmouseover(event) { if (this.resized) { this.style.cursor = "hand"; } } " onmousewheel="return imgzoom(this);" style="width: 533px; height: 472px;" />
1.3使用 Port Security feature 防範MAC/CAM攻擊
Port Security feature 可以防止 MAC 和 MAC/CAM 攻擊。通過配置 Port Security 可以控制:
• 通訊埠上最大可以通過的 MAC 地址數量
• 通訊埠上學習或通過哪些 MAC 地址
• 對於超過規定數量的 MAC 處理進行違背處理
通訊埠上學習或通過哪些 MAC 地址,可以通過靜態手動設定,也可以在交換機自動學習。交換機動態學習通訊埠 MAC ,直到指定的 MAC 地址數量,交換機關機後重新學習。目前較新的技術是 Sticky Port Security ,交換機將學到的 mac 地址寫到通訊埠設定檔案中,交換機重新啟動後設定仍然存在。
對於超過規定數量的 MAC 處理進行處理一般有三種方式(針對交換機型號會有所不同):
• Shutdown 。這種方式保護能力最強,但是對於一些情況可能會為管理帶來麻煩,如某台設備中了病毒,病毒間斷性偽造源 MAC 在網絡中發送報文。
• Protect 。丟棄非法流量,不發出警示。
• Restrict 。丟棄非法流量,發出警示,對此情況, 交換機 CPU 利用率會上升, 但是不影響交換機的正常使用。推薦使用這種方式。
1.4 設定
Switch(config-if)# switchport port-security ?
aging Port-security aging commands
mac-address Secure mac address
maximum Max secure addresses
violation Security violation mode
Cat4507 (config-if)#switchport port-security
Cat4507 (config-if)#switchport port-security maximum 2
Cat4507 (config-if)#switchport port-security violation shutdown
Cat4507 (config)#errdisable recovery cause psecure-violation
Cat4507 (config)#errdisable recovery interval 30
通過配置 sticky port-security學得的MAC
interface FastEthernet3/29
switchport mode access
switchport port-security
switchport port-security maximum 5
switchport port-security mac-address sticky
switchport port-security mac-address sticky 000b.db1d.6ccd
switchport port-security mac-address sticky 000b.db1d.6cce
switchport port-security mac-address sticky 000d.6078.2d95
switchport port-security mac-address sticky 000e.848e.ea01
1.5 使用 其它技術 防範MAC/http://192.168.1.1/CAM攻擊
除了 Port Security 採用 DAI 技術也可以防範 MAC 地址欺騙。
2 DHCP攻擊的防範
2.1 採用DHCP管理的常見問題:
採用 DHCP server 可以自動為用戶設置網路 IP 地址、掩碼、Gateway、 DNS 、 WINS 等網路參數,簡化了用戶網路設定,提高了管理效率。但在 DHCP 管理使用上也存在著一些另網管人員比較問題,常見的有:
• DHCP server 的冒充。
• DHCP server 的 Dos 攻擊。
• 有些用戶隨便指定地址,造成網路地址衝突。
由於 DHCP 的運作機制,通常服務器和客戶端沒有認證機制,如果網絡上存在多台 DHCP 服務器將會給網絡照成混亂。由於用戶不小心配置了
DHCP 服務器引起的網絡混亂非常常見,足可見故意人為破壞的簡單性。通常黑客攻擊是首先將正常的 DHCP 服務器所能分配的 IP
地址耗盡,然後冒充合法的 DHCP 服務器。最為隱蔽和危險的方法是黑客利用冒充的 DHCP 服務器,為用戶分配一個經過修改的 DNS
server ,在用戶毫無察覺的情況下被引導在預先配置好的假金融網站或電子商務網站,騙取用戶帳戶和密碼,這種攻擊是非常惡劣的。
對
於 DHCP server 的 Dos 攻擊可以利用前面將的 Port Security 和後面提到的 DAI
技術,對於有些用戶隨便指定地址,造成網絡地址沖突也可以利用後面提到的 DAI 和 IP Source Guard 技術。這部分著重介紹
DHCP 冒用的方法技術。
2.2 DHCP Snooping技術概況
DHCP
Snooping技術是DHCP安全特性,通過建立和維護DHCP
Snooping 繫結表過濾不可信任的DHCP訊息,這些訊息是指來自不信任區域的DHCP訊息。DHCP
Snooping 繫結表(Binding Table)包含不信任區域的用戶MAC地址、IP地址、租用期、VLAN-ID 通訊埠等訊息,如下表所示:
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------- ---- --------------------
00:0D:60:2D:45:0D 10.149.3.13 600735 dhcp-snooping 100 GigabitEthernet1/0/7
這張表不僅解決了 DHCP用戶的IP和通訊埠跟蹤定位問題,為用戶管理提供方便,而且還供給動態ARP檢測DA和 IP Source Guard使用。
2.3 基本防範
首先定義交換機上的信任通訊埠和不信任通訊埠,對於不信任通訊埠的 DHCP 資料封包進行截獲和嗅探, DROP 掉來自這些通訊埠的非正常 DHCP 資料封包,如下圖所示:
screen.width * 0.7) {
this.resized = true;
this.width = screen.width * 0.7;
this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out";
}
}
" src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image004.jpg" onclick="
function onclick(event) {
if (!this.resized) {
return true;
} else {
window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image004.jpg");
}
}
" onmouseover="
function onmouseover(event) {
if (this.resized) {
this.style.cursor = "hand";
}
}
" onmousewheel="return imgzoom(this);" style="width: 532px; height: 181px;" />
基本配置範例如下表:
ip dhcp snooping vlan 100,200 /* 定義哪些 VLAN 啟用 DHCP 嗅探
ip dhcp snooping
通訊埠命令
ip dhcp snooping trust
no ip dhcp snooping trust (Default)
ip dhcp snooping limit rate 10 (pps) /* 一定程度上防止 DHCP 拒絕服務攻擊 * /
手動添加 DHCP 繫結表
ip dhcp snooping binding 1.1.1 vlan 1 1.1.1.1 interface gi1/1 expiry 1000
導出 DHCP 綁定表到 TFTP 服務器
ip dhcp snooping database tftp:// 10.1.1 .1/directory/file
需要注意的是 DHCP 繫結表要存在本地儲存器 (Bootfalsh 、 slot0 、 ftp 、 tftp) 或導出到指定 TFTP
服務器上,否則交換機重啟後 DHCP 繫結表丟失,對於已經申請到 IP 地址的設備在租用期內,不會再次發起 DHCP
請求,如果此時交換機己經配置了下面所講到的 DAI 和 IP Source Guard 技術,這些用戶將不能存取網絡。
2.3 高級防範
通過交換機的通訊埠安全性設定, 每個 DHCP 請求會指定通訊埠上使用唯一的 MAC 地址,通常 DHCP 服務器通過 DHCP 請求的資料封包中的
CHADDR 來判斷客戶端 MAC 地址,通常這個地址和客戶端的 IP 是相同的,但是如果攻擊者不修改客戶端的 MAC, 而是修改 DHCP 資料封包中 CHADDR 字節,實施 Dos 攻擊, Port Security 就不起作用了, DHCP 嗅探技術可以檢查 DHCP 請求資料封包中的
CHADDR 字節,判斷該字段是否和 DHCP
嗅探表相匹配。這項功能在有些交換機是預設配置的,有些交換機需要配置,具體需要參考相關交換機的設定檔案。
3.1 MITM(Man-In-The-Middle) 攻擊原理
按照 ARP 協議的設計,為了減少網絡上過多的 ARP 資料通信,一個主機,即使收到的 ARP
回應並非自己請求得到的,它也會將其安插到自己的 ARP 緩存表中,這樣,就造成了「 ARP
欺騙」的可能。如果黑客想探聽同一網絡中兩台主機之間的通信(即使是通過交換機相連),他會分別給這兩台主機發送一個 ARP
回應封包,讓兩台主機都「誤」認為對方的 MAC
地址是第三方的黑客所在的主機,這樣,雙方看似「直接」的通信連接,實際上都是通過黑客所在的主機間接進行的。黑客一方面得到了想要的通信內容,另一方
面,只需要更改資封料據包中的一些訊息,成功地做好轉發工作即可。
在這種嗅探方式中,黑客所在主機是不需要設置網卡的混雜模式的,因為通信雙方的數據包在物理
上都是發送給黑客所在的中轉主機的。
這裡舉個例子,假定同一個區域網路內,有 3 台主機通過交換機相連:
A 主機: IP 地址為 192.168.0.1 , MAC 地址為 01:01:01:01:01:01 ;
B 主機: IP 地址為 192.168.0.2 , MAC 地址為 02:02:02:02:02:02 ;
C 主機: IP 地址為 192.168.0.3 , MAC 地址為 03:03:03:03:03:03 。
B 主機對 A 和 C 進行欺騙的前奏就是發送假的 ARP 回應封包,如圖 所示
screen.width * 0.7) {
this.resized = true;
this.width = screen.width * 0.7;
this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out";
}
}
" src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image005.jpg" onclick="
function onclick(event) {
if (!this.resized) {
return true;
} else {
window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image005.jpg");
}
}
" onmouseover="
function onmouseover(event) {
if (this.resized) {
this.style.cursor = "hand";
}
}
" onmousewheel="return imgzoom(this);" />
在收到 B主機發來的ARP回應後,A主機應知道:
到 192.168.0.3 的資料封包應該發到 MAC 地址為
020202020202 的主機; C 主機也知道:到 192.168.0.1 的資料封包應該發到 MAC 地址為 020202020202
的主機。這樣, A 和 C 都認為對方的 MAC 地址是 020202020202,實際上這就是 B 主機所需得到的結果。當然,因為 ARP
緩存表項是動態更新的,其中動態生成的映射有個生命期,一般是兩分鐘,如果再沒有新的訊息更新, ARP 映射項會自動去除。所以, B
還有一個「任務」,那就是一直連續不斷地向 A 和 C 發送這種虛假的 ARP 回應封包,讓其 ARP緩存中一直保持被毒害了的映射表項目。
現在,如果 A 和 C 要進行通信,實際上彼此發送的資料封包都會先到達 B 主機,這時,如果 B 不做進一步處理, A 和 C
之間的通信就無法正常建立, B 也就達不到「嗅探」通信內容的目的,因此, B
要對「錯誤」收到的資料封包進行一番修改,然後轉發到正確的目的地,而修改的內容,無非是將目的 MAC 和來源 MAC 地址進行替換。如此一來,在 A
和 C 看來,彼此發送的資料封包都是直接到達對方的,但在 B 來看,自己擔當的就是「第三者」的角色。這種嗅探方法,也被稱作「
Man-In-The-Middle 」的方法。如圖 所示。
screen.width * 0.7) {
this.resized = true;
this.width = screen.width * 0.7;
this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out";
}
}
" src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image007.jpg" onclick="
function onclick(event) {
if (!this.resized) {
return true;
} else {
window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image007.jpg");
}
}
" onmouseover="
function onmouseover(event) {
if (this.resized) {
this.style.cursor = "hand";
}
}
" onmousewheel="return imgzoom(this);" />
3.2 攻擊實例
目前利用
ARP原理編制的工具十分簡單易用,這些工具可以直接嗅探和分析FTP、POP3、SMB、SMTP、HTTP/HTTPS、SSH、MSN等超過30種
應用的密碼和傳輸內容。 下面是測試時利用工具捕獲的 TELNET 過程,捕獲內容包含了 TELNET 密碼和全部所傳的內容 :
screen.width * 0.7) {
this.resized = true;
this.width = screen.width * 0.7;
this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out";
}
}
" src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image009.jpg" onclick="
function onclick(event) {
if (!this.resized) {
return true;
} else {
window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image009.jpg");
}
}
" onmouseover="
function onmouseover(event) {
if (this.resized) {
this.style.cursor = "hand";
}
}
" onmousewheel="return imgzoom(this);" />
不僅僅是以上特定應用的資料,利用中間人攻擊者可將監控到資料直接發給 SNIFFER等嗅探器,這樣就可以監控所有被欺騙用戶的資料。
還有些人利用 ARP原理 開發出網管工具,隨時切斷指定用戶的連接。這些工具流傳到搗亂者手裡極易使網絡變得不穩定,通常這些故障很難排查。
Dynamic ARP
Inspection (DAI)在交換機上提供IP地址和MAC地址的繫結, 並動態建立繫結關係。DAI 以 DHCP
Snooping 繫結表為基礎,對於沒有使用DHCP的服務器個別機器可以採用靜態添加ARP
access-list實現。DAI配置針對VLAN,對於同一VLAN內的通訊埠可以開啟DAI也可以關閉。通過DAI可以控制某個通訊埠的ARP請求資料封包
數量。通過這些技術可以防範「中間人」攻擊。
ip dhcp snooping vlan 100,200
no ip dhcp snooping information option
ip dhcp snooping
ip arp inspection vlan 100,200 /* 定義對哪些 VLAN 進行 ARP 報文檢測
ip arp inspection log-buffer entries 1024
ip arp inspection log-buffer logs 1024 interval 10
IOS 通訊埠命令:
ip dhcp snooping trust
ip arp inspection trust /* 定義哪些接口是信任接口,通常是網絡設備接口, TRUNK 接口等 */
ip arp inspection limit rate 15 (pps) /* 定義接口每秒 ARP 資料報數量
對於沒有使用 DHCP 設備可以採用下面辦法: */
arp access-list static-arp
permit ip host 10.66.227.5 mac host 0009.6b88.d387
ip arp inspection filter static-arp vlan 201
配置DAI後的效果:
• 由於 DAI檢查 DHCP snooping 繫結表中的IP和MAC對應關係,無法實施中間人攻擊,攻擊工具失效。下表為實施中間人攻擊是交換機的警告:
3w0d: %PM-4-ERR_DISABLE: arp-inspection error detected on Fa5/30, putting Fa5/ 30 in err-disable state ******切斷通訊埠
I49-4500-1#.....sh int f.5/30
FastEthernet5/30 is down, line protocol is down (err-disabled)
Hardware is Fast Ethernet Port , address is 0002.b90e .3f 4d (bia 0002.b90e .3f 4d)
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
I49-4500-1#......
4 IP/MAC欺騙的防範
4.1 常見的欺騙攻擊的種類和目的
常見的欺騙種類有
MAC欺騙、IP欺騙、IP/MAC欺騙,其目的一般為偽造身份或者獲取針對IP/MAC的特權。當目前較多的是攻擊行為:如Ping Of
Death、syn flood、ICMP unreacheable Storm,另外病毒和木馬的攻擊也具有典型性,下面是木馬攻擊的一個例子。
4.2 攻擊實例
下圖攻擊為偽造源地址攻擊,其目標地址為公眾網路上的 DNS服務器,直接目的是希望通使DNS服務器對偽造來源地址的回應和等待,造成DDOS攻擊,並以此擴大攻擊效果。該攻擊每秒鐘上萬個資料封包,交換機2分鐘就癱瘓,照成的間接後果非常大。
screen.width * 0.7) { this.resized = true; this.width = screen.width * 0.7; this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out"; } } " src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image011.jpg" onclick=" function onclick(event) { if (!this.resized) { return true; } else { window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image011.jpg"); } } " onmouseover=" function onmouseover(event) { if (this.resized) { this.style.cursor = "hand"; } } " onmousewheel="return imgzoom(this);" />
4.3 IP/MAC欺騙的防範
IP Source Guard 技術配置在交換機上僅支援在 2 層通訊埠上的配置,通過下面機制可以防範 IP/MAC 欺騙:
• 配置在交換機通訊埠上,並對該通訊埠生效。
• 運作機制類似 DAI,但是 IP Source Guard不僅僅檢查ARP報文,所有經過定義IP Source Guard檢查的通訊埠的資料封包都要檢測。
• IP Source Guard檢查接口所通過的流量的IP地址和MAC地址是否在DHCP sooping 繫結表,如果不在繫結表中則阻塞這些流量。注意如果需要檢查MAC需要DHCP服務器支援Option 82,同時使路由器支援Option 82訊息。
通過在交換機上配置 IP Source Guard:
• 解決 IP地址衝突問題。
• 提供了動態的建立 IP+MAC+PORT的對應表和綁定關係,對於不使用DHCP的服務器和一些特殊情況機器可以採用利用全局命令靜態手工添加對應關係到繫結表中。
• 配置 IP Source Guard的接口初始阻塞所有非DHCP流量。
• 不能防止「中間人攻擊」。
對於 IP欺騙, 在路由器上也可以使用urpf技術。
4.4 配置範例:
檢測接口上的 IP+MAC
ip dhcp snooping vlan 12,200
ip dhcp snooping information option
ip dhcp snooping
接口配置命令:
ip verify source vlan dhcp-snooping port-security
switchport mode access
switchport port-security
switchport port-security limit rate invalid-source-mac N
/* 控制端口上所能學習源 MAC 的速率,僅當 IP+MAC 同時檢測時有意義。 */
ip dhcp snooping vlan 12,200
no ip dhcp snooping information option
ip dhcp snooping
接口配置命令:
ip verify source vlan dhcp-snooping
不使用 DHCP 的靜態配置
ip dhcp snooping vlan 12,200
ip dhcp snooping information option
ip dhcp snooping
ip source binding 0009.6b88.d387 vlan 212 10.66.227.5 interface Gi4/5
5 IP地址管理和病毒防範的新思路
5.1 IP地址管理
綜上所述通過設定交換機的上述特徵,不僅解決了一些典型攻擊和病毒的防範問題,也為傳統 IP地址管理提供了新的思路。
通過上面的幾項技術解決了傳統的利用DHCP服務器管理客戶端IP地址的問題:
• 配置 DHCP server
• 使用靜態指定 IP遇到的問題
• 不使用分配的 IP地址和服務器或其他地址沖突
• 不容易定位 IP地址和具體交換機通訊埠對應表
使用靜態地址的重要服務器和計算機,可以進行靜態繫結 IP+MAC、IP+MAC+PORT,手動設定DAI和 IP Source Guard 繫結表項目, 來保護這些設備,同時也防止來自這些設備的攻擊。
目前對於網絡病毒的不斷爆發,越來越多的用戶開始重視對
PC的管理,用戶關注誰能存取網路、存取以後能做什麼、做了哪些事情、這就是我們常說的AAA認證,除了這些用戶希望能夠很快定位到用戶在哪台交換機、哪
個通訊埠、以哪個 IP 和 MAC 登錄,這樣有有了「AAA+A」( Authenticate, Authorize, Account , Address
)的概念。
通過上面的設定我們在網路層面已經可以定位用戶了,加上 802.1X認證我們可以在網路層面根據用戶的身份為用戶授權,從而實現「AAA+A」。
screen.width * 0.7) {
this.resized = true;
this.width = screen.width * 0.7;
this.alt = "Click here to open new window\nCTRL+Mouse wheel to zoom in/out";
}
}
" src="http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image013.jpg" onclick="
function onclick(event) {
if (!this.resized) {
return true;
} else {
window.open("http://www.net130.com/CMS/Files/Uploadimages/sa050427001_clip_image013.jpg");
}
}
" onmouseover="
function onmouseover(event) {
if (this.resized) {
this.style.cursor = "hand";
}
}
" onmousewheel="return imgzoom(this);" />
更進一步要審視用戶所使用電腦具備的條件,如系統更新、所裝防毒軟體及病毒碼更新、等條件。
5.2 使用DHCP Snooping 、DAI、IP Source Guard技術能解決的有關病毒問題 。
由於大多數對區域網路危害較大的網路病毒都具有典型的欺騙和掃描,快速發大量封包,大量 ARP 請求等特徵,採用上述技術, 一定程度上可以自動切斷病毒來源,及時警示,準確定位病毒來源。
留言列表