iThome

從Craig Heffner宣稱可能遭受DNS重新綁定(DNS rebinding)的路由器數量來看,我們不難想見這項攻擊所造成的嚴重性。

雖然它很容易解決,但如果是透過其他人架設的路由器連接網路,同時它的密碼又是預設值的情況下,你依然可能會受害,而這只是試圖透過路由器,錯置網路連線的其中一種方式而己,這裡我們將會介紹除了修改密碼之外的其他幾種可行做法,來降低使用者遭受類似DNS攻擊的可能性。

做法1:禁止個人端電腦瀏覽器執行不明的程式碼

透過在瀏覽器執行JavaScript的方式,使得Dan Kaminsky、Craig Heffner可以成功攻擊路由器,進而完整取得控制權,及修改DNS伺服器的設定。

IE的使用者,一般來說可以透過瀏覽器,將各個網站分類到不同的區域,例如網際網路、近端網路,及信任的網站……等,以便套用對應的安全等級設定,以便限制,或者允許特定的網頁內容在瀏覽器上執行。

如果想要修改,最簡單的方式,就是直接拖拉設定選項中的安全性等級滑軌,進階一點的做法,則是根據你想啟用或限制的內容個別選取。

NoScript是Firefox的外掛程式,可以禁止未受信任的網頁程式碼在瀏覽器上執行。而除了JavaScript之外,這個套件還能限制可能造成惡意程式植入的iFrame標籤、XSS攻擊碼,及Flash、Silverlight的動畫內容在瀏覽器執行,強化使用者瀏覽網頁的安全。

為了避免造成使用者瀏覽網頁時的不便,NoScript已事先將一些知名的網站,例如Google、MSN等,加入白名單,同時,裡面所有允許存取的網頁物件都是被信任的,因此可以直接在瀏覽器上執行。

對於不在白名單內的網站,我們可以透過滑鼠的右鍵選單,將其加入到白名單,或者僅給予暫時信任的權限。

做法2:在個人端電腦手動設定DNS伺服器

要避免這一類的DNS攻擊,我們可以手動設定每臺個人端電腦上的DNS伺服器IP位址,以臺灣來說,最常使用的是中華電信的DNS伺服器,另外,網路上也有一些第3方廠商架設的DNS伺服器可供使用,一般來說,這些服務號稱可以提供回應更快的解析服務,不僅如此,透過網址過濾等機制,這些服務還能避免使用者瀏覽到釣魚網站等惡意網頁。

而當環境當中有大量電腦需要設定時,我們可以透過Windows AD的Logon Script,將修改DNS設定所需的Netsh指令,先行編輯成批次檔,在使用者下一次登入網域時,就自動設定DNS伺服器指向的IP位址。

OpenDNS

最知名的第3方DNS伺服器服務,是成立於2006年的OpenDNS。在解析網址的同時,OpenDNS可以利用本身釣魚網站資料庫檢查使用者瀏覽的網站是否安全,並能適時封鎖。

OpenDNS提供了網址自動修復的功能,當你不小心在瀏覽器輸入錯誤的網址時,例如「www.hinet.nte」,它會試著轉址到正確的目標,是一項很方便的特殊功能。

對於已註冊網域名稱、架設網站的人來說,當更動過DNS的設定後,一般需要等待一段時間,待資料也更新到其他的DNS伺服器之後,才能讓所有的使用者正確連結到新的IP位址,為了加快更新的速度,OpenDNS提供了CacheCheck的功能,供使用者以手動方式,更新在OpenDNS主機所留存的資料。

Google Public DNS

根據Google本身的說法,提供該服務的DNS伺服器,經過安全上的強化,能避免利用DNS伺服器漏洞所進行的資料竄改攻擊,及DoS(Denial-of-service)的洪水攻擊。

Google Public DNS也具備了獨特的Prefetch機制,在快取資料到期更新之前,即先預抓一份儲存在伺服器,可以縮短DNS伺服器的更新時間。

很特別的是,Google Public DNS提供了「namebench」的效能測試工具,執行之後,它會透過你的網路,測試與Google及其他DNS伺服器之間的連線狀態,最後根據結果,提供使用者建議的DNS伺服器設定。

Norton DNS Public Beta

最後一項同類型的服務,是賽門鐵克今年推出的Norton DNS,目前它還在測試中,不過已經開放試用。

除了手動修改網卡介面的DNS伺服器設定之外,從該公司官方網站也有應用程式,供Windows,及Mac OS的使用者下載,安裝完畢後,DNS伺服器就會自動指向Norton DNS的伺服器,不過目前Windows版本的軟體僅能安裝在英文版本平臺,對於其他語系環境使用者來說,就只能採手動設定的方式套用。

Norton DNS也整合了網址過濾的功能,當使用者不小心連結到被賽門鐵克認定為網路釣魚等具有惡意性質的網站時,將會禁止瀏覽,並在瀏覽器出現警告訊息,提示使用者注意。

做法3:更新韌體,並且關閉不必要的服務

在Craig Heffner提出攻擊手法的同時,他也呼籲使用者應該馬上更新路由器的韌體,做為避免攻擊的解決方式之一。

除了透過新版韌體的推出,防堵邏輯漏洞之外,有些廠牌的路由器也提供了其他的機制來防範DNS攻擊,像是D-Link等廠牌的產品,便額外提供了隨機產生的圖片密碼,利用惡意程式無法事先猜測的特性,使得設備得以避免攻擊。

不僅如此,有愈來愈多的設備也開始支援Domain Name System Security Extensions(DNSSEC)的新功能,用來防止DNS快取中毒(DNS cache poisoning)的攻擊,它主要是在原有DNS服務的基礎之上,加入數位簽章的驗證機制,以確保網路設備能夠和上層的DNS伺服器之間,可以正確地傳送DNS解析的資料。

很多使用者會開啟路由器的遠端管理功能,以便可以從內部網路以外的地方從事設定,為了降低其他人試圖連接到網頁介面的機率,你可以將網頁介面的連接埠,從預設的TCP 80埠,變更為不容易猜到的特殊埠號,或者改用SSL。而在不需透過指令管理設備的情況下,就應該將Telnet等功能關閉,使它不致成為入侵設備的門戶——將網路設備變身成一臺供駭客任意操控的工作站,而造成內部網路的電腦受到其他不同形式的惡意攻擊。

 

namebench是Google Public DNS開發的效能測試工具,能根據目前所在的環境,提供建議的DNS伺服器設定。

 

對於未受信任的網站內容,NoScript會禁止在瀏覽器執行程式碼,避免電腦受到攻擊。

 

第3方DNS伺服器一覽表

 


相關報導請參考「百萬臺路由器陷入危機:缺乏管理的路由器,將成DNS攻擊幫兇!」

熱門新聞

Advertisement