Teredo是否會為企業帶來安全風險
嘉賓:Ed Skoudis,Interguardians公司的創始人和高級安全咨詢師。該公司位于美國華盛頓特區,主要提供信息安全咨詢服務。ED擅長于黑客攻擊與防御、信息安全以及計算機隱私問題。他已經為財富500強諸多公司進行過無數的安全評估,設計信息安全治理和運行團隊。同時,還為金融業、高科技企業、醫療行業以及其他行業的客戶。
問:Teredo的漏洞是否會導致其在使用中出現安全隱患?
答:當Teredo應用在企業環境時,這使我感到害怕——僅僅是因為它所具備的功能。對不熟悉技術的人來說,由微軟倡導的Teredo是在IPv4的端口上使用UDP數據報建立IPv6通信隧道的技術,正如RFC4380中所定義的那樣。
Teredo允許內部網絡過渡到IPv6, 通過它們的NAT設備互相連接并跨越IPv4的因特網。聽起來很簡單,不是嗎?那么,在這里我將討論一些企業需要重點關注的安全問題。
在Teredo之前,許多組織在因特網上實驗過網絡到網絡的IPv6連接,而且是使用IPv6-to-IPv4網關來實現的。下面是常見的情景:
比方說,兩個組織在他們的內部網絡上部署了IPv6。 毫無疑問,在同一內網中,某一子網上的IPv6設備能夠與其它IPv6設備通信。然而,在Teredo出現之前,通信會穿越龐大、通信狀況糟糕的IPv4因特網,需要每個組織部署一個IPv6-to-IPv4網關,該網關將會對協議進行轉換。在一個內部網絡中,一臺機器將會構造發往內網中另一系統的IPv6數據包,而網關會為IPv4數據包中的IPv6數據包建立隧道,并把它們發送到因特網上。 一旦被其它子網接收到,這些數據包將會被另一個網關解封,該網關從IPv4中提取IPv6數據包,并將其發送到IPv6的目的地。
在一個端主機(end-host)系統中,Teredo不需要IPv4-to-IPv6網關就能實現封裝,IPv6數據包會被放入UDP數據包中,再通過IPv4發送到目的系統。Teredo被用于NAT間的通信,只要IPv4上的UDP數據包能夠在兩個需要進行IPv6通信的系統間發送就行。
這對企業來說意味著什么?如果沒有Teredo,網絡管理者將不得不安裝和配置IPv6-to-IPv4 網關,這或許會增強他們對攻擊的抵抗能力,但所有的隧道功能這時都交給了端系統,使得對于網絡安全的保護變得更加困難。在內部網絡中,任何具有Teredo功能的系統只要能夠接收UDP數據包,就能成為IPv6隧道中的一個端點,此時任何綁定到系統IPv6地址上的應用程序便會暴露出來。
在你的網絡內部,一個裝有Teredo的系統甚至可以成為IPv6中的VPN端點,而這有可能會允許攻擊者發送隨機的IPv6數據包到目標機上,而且可以從該機器為路由到內部網絡中的其它地方。賽門鐵克的安全專家James Hoagland描述了這些攻擊,并在近期的一篇文章中做了更詳盡的描述。
如果Teredo默認是關閉的,那么它也不會帶來什么問題。然而,Windows Vista綁定的IPv6和Teredo都是自動開啟的,就我看來這明顯是個無賴的行為。而Windows Server 2008支持IPv6, 但它的Teredo是關閉的。
為了避免遭受基于Teredo隧道或者其他相關的攻擊,你首先需要在網絡防火墻上阻止隨機的UDP數據包,尤其是Teredo默認端口UDP 3544上的輸入輸出通信數據。請注意,只有Teredo服務會監聽該端口。客戶端發送通信數據到目的地使用的都是任意高編號的UDP端口, 所以你真正要考慮的是去封鎖所有到達或來自UDP3544的通信,并阻止Teredo客戶端和服務器使用它。當然,各種黑客也可以使通信流量從其他端口進來。接下來,你應該做的是確保Windows主機上的個人防火墻支持IPv6過濾并且已被開啟。雖然自帶的Windows個人防火墻提供了這種支持,但是其它許多產品則沒有。最后,你可以在端系統中運行帶有恰當選項的’netsh’命令來關閉Teredo,或者在Windows注冊表進行設置,這兩種方法在一篇微軟的文章中都有介紹。不過,我建議你在不使用Teredo時還是關閉它為好。
【編輯推薦】




















