上一期文章介紹了DHCP協定的歷史與運作機制等等,相信各位讀者對於DHCP協定已經有一個很扎實的認知。本期接著介紹更深入的DHCP議題,也就是與DHCP協定的安全性以及可靠性相關的技術。
整體來說,DHCP協定的安全漏洞可以分為以下三種類型:
- 1. 沒有經過批准的DHCP伺服器提供錯誤的資訊給DHCP用戶端
- 2. 沒有經過批准的DHCP用戶端任意取得DHCP伺服器的資訊
- 3. 大量發送惡意的DHCP用戶端需求以便癱瘓網路資源
其實,其他種類的安全性攻擊還有很多,不是只有上述這幾種。以上這三種,主要差異就是:第一種是從伺服器下手,第二種從用戶端下手,第三種則是DoS(Denial of Service)攻擊。
由於對於DHCP用戶端而言,也不知道哪些DHCP伺服器才是經過批准的,因此可以從假扮DHCP伺服器來下手,提供錯誤的資訊給DHCP用戶端,或是從用戶端與伺服器端的中間通訊下手(Man-in-the-middle),讓用戶端無法連上網路,或是連上其他的伺服器。
換言之,DHCP伺服器用途就是用來給予IP位址以及IP層相關的資訊給用戶端,好讓用戶端連上網路,這樣的資訊包含DNS伺服器位址。因此,可以假扮DHCP伺服器並給予事先已經準備好的DNS伺服器,讓用戶端的網路全部導向DNS伺服器。這樣一來,就可以取得用戶端往外網路的所有資訊,包含未經加密的帳號密碼等資訊,甚至於把網路連線導到其他事先準備好的網站。
舉例來說,可以事先弄一個假的Yahoo網站,然後跟用戶端說想連的Yahoo網站位址在哪裡,把這個新的位址告訴用戶端,這樣就可以取得帳戶與密碼。
而因為DHCP伺服器端也沒有什麼認證機制來辨識DHCP用戶端,所以惡意的DHCP用戶端可以從DHCP伺服器取得其他DHCP用戶端的一些基本資訊,甚至於瘋狂地跟DHCP伺服器要求取得大量IP位址,直到所有可用的IP位址都用盡,導致其他DHCP用戶端沒有IP位址可用。
DHCP協定安全性的解決方案
也不是說DHCP協定真的完全沒有辦法來防止所有安全性問題,只是一般而言,預設上可能是沒有套用這些解決方案,其中包括Relay Agent Information Option延伸協定(RFC 3046)。這個用法是在DHCP伺服器所發送的資料中額外增加一段資料(tag),用以對DHCP用戶端做認證的工作。
另外一個安全性解決方案是RFC 3118,當中定義了對DHCP協定資料做認證的方法。這是在2001年就被推出,但卻因為大量DHCP用戶端的認證資料維護不易,讓這個方法沒有被廣泛採用。
最後,再介紹DHCP Snooping。這個解決方案主要是在網路交換機上設定,等於是透過交換機對於網路用戶端的認識來提升安全性。也就是說,只有固定的IP位址或是MAC位址的用戶端才能夠存取網路。
套用在交換機是非常合理的,因為交換機運用於網路第二層,此時還沒有碰到第三層的IP協定。有些思科(Cisco)的網路交換機已經預設套用了DHCP Snooping,而戴爾(Dell)的PowerConnect 5系列也有這個機制。
結語
最近這一系列的文章介紹了DHCP協定的運作過程、IP位址相關基本知識、DHCP Relay Agent、DHCP伺服器分配IP位址的方式,以及用戶端與伺服器端之間詳細的來回步驟解釋,最後還提到了DHCP協定的可靠性與安全性,讓讀者除了明瞭DHCP協定的運作方式外,還可以更深入地與其他網路知識做整合性的了解,進而明白如何在企業網路中管理DHCP網路。
編按:
關於DHCP協定的基本介紹及運作原理,敬請讀者參考本文作者於網管人95期發表之《管理IP位址起手式 DHCP協定細說從頭》,有非常詳盡的介紹,受限於篇幅本文將不再重複。
<本文作者:胡凱智,目前在美商Mozilla擔任資深全球專案經理,曾於趨勢科技任職七年多,有兩年美國矽谷工作經驗,在美國專利局擁有軟體專利。讀者可在其部落格獲取更多網路知識及交流建議:http://tw.myblog.yahoo.com/kaichih-hu>