影響計算機操作的惡意軟件不會總在計算機中被發現,最近我們在自己的家庭網絡中的多臺計算機上發現了一個常規的操作問題,運行不同操作系統的不同計算機上的各種瀏覽器都會進行間歇性地重定向網頁,它們會將網絡重定向到一個陌生的商戶網站。
特定惡意軟件的特征、用戶的緩存歷史、特定計算機上的設置,以及異常瀏覽器的表現等的影響都會阻礙故障排除工作。網頁重定向的問題可能要歸因于虛假的域名服務(DNS)服務器。
DNS服務器功能
DNS服務器被復制在整個互聯網中,并且是基于互聯網用戶友好型。這些服務器讓用戶能夠通過用戶友好型URL地址(如Google.com)來瀏覽網頁,而不是使用IP地址(74.125.239.37)來定位包含所需內容的服務器。
這個惡意軟件事件的轉折是:使用不同操作系統(例如Windows 8、iOS7、OS X)的多臺電腦都會受到影響,而且并不是所有網站都會被重定向,有些網站能在一臺計算機上進行DNS解析,而在另一臺計算機上則不能。這讓解決本地惡意軟件的故障排除工作變得更加復雜。為什么這個問題是間歇性,并且網絡中的所有計算機都不一致呢?為什么使用不同操作系統的多臺計算機都會受到影響?為什么我們的反惡意軟件不能發現或刪除它?
隔離問題
一定的故障排除工作可以讓我們發現每臺計算機正在使用的DNS服務器、它是否合法以及它如何分配給計算機。當我們重組裝這些組件時,我們發現路由器是唯一的共同組件。我們從來沒有親眼見過或者遇到路由器惡意軟件,這既有趣又有點嚇人。遭到惡意攻擊時,可能我們第一時間會想攻擊者獲取了哪些個人信息?
接下來我沒想到的是,他們如何能夠滲透我們的路由器?我們如何能夠發現惡意軟件對路由器進行的實際修改?我們如何能夠恢復路由器到原來的功能?我們能否對路由器配置作出修改來防止未來會發生類似的事件?所有的問題都會讓人覺得恐慌,因此無論發生什么樣的損害都必須立即阻止。
在這一點上,我們并沒有對于發生的攻擊想太多,比如他們如何進入網絡、如何清理惡意軟件的足跡,我們只是想我們多快可以恢復路由器、更新固件,然后更好地保護它。
更改DNS設置的惡意軟件通常會有一個計劃:大多數惡意軟件會通過商家網站的點擊率賺錢。這通常是編寫和散步惡意軟件的攻擊者的動力。互聯網充滿了這種類型的欺詐行為,網站已經簽訂合約,需要為點擊或查看其網站來付費,而不是為制造網絡流量的目錄列表支付大筆費用。
路由器的作用
大多數路由器都是遠程配置和管理,因此可以使用密碼來保護遠程登錄。顯然,這是一個漏洞,如果路由器可以被重新配置,那么,這可能造成路由器故障。大多數路由器提供的服務被稱為DHCP(動態主機配置協議),DHCP為互聯網上主機提供地址和配置參數。DHCP是基于Client/Server工作模式,DHCP服務器為需要為主機分配IP地址和提供主機配置參數。這通常由路由器來執行以讓計算機網絡的大量用戶之間共享有限的IP地址。這類似于電話網絡在大量員工之間共享有限數量的電話號碼。更像是高管辦公室內安裝的私人電話線,這種IP地址分配可以在單臺計算機上完成,而不需要DHCP的幫助。
此外,DHCP可以配置為提供主級和次級DNS表位置(計算機將會試圖轉譯google.com為74.125.239.37)到路由器服務的計算機。故障排除工作人員可能開始不會知道DHCP是否被用在對象網絡中的特定計算機,這可能讓問題變得更加復雜。由于我們確定了連接到路由器的多臺計算機都受到影響,我們將工作重點放在了路由器內的DHCP的配置參數。
無論計算機運行的是什么操作系統,使用DHCP來獲取其IP地址或DNS表位置的所有計算機都會同樣受到影響。這種重定向看似不可預測的性質可能是因為,DNS解析被暫時存儲在用戶機器的緩存中。某些解析可能在這種漏洞利用之前就被放置在緩存中,因此這些網站將會得到妥善解決。
事后諸葛亮
在過去,我們解決網絡問題時,沒有完全了解問題的真正原因、癥狀的詳細內容以及到底做了什么來解決問題。我們采取的步驟包括,恢復備份、升級應用程序或操作系統或重啟,這可以環節問題,但無法確保避免問題的再次發生。
在這種情況下,我們能夠通過這些惡意軟件的癥狀來確定問題的來源。某些組件可以從這些癥狀的共同性質來消除,現在看起來很明顯的是,DHCP分配的DNS服務器可能是導致這些癥狀的原因。我們希望當我們第一次遇到這個問題時這個很明顯。