利用第三方軟件漏洞發(fā)起的攻擊如何阻擊
利用漏洞的攻擊是讓網(wǎng)管員非常頭疼的一類攻擊。該如何預(yù)防此類攻擊呢?
提高防范意識
管理員通常比較注意微軟發(fā)布的Windows漏洞,并會及時地為系統(tǒng)安裝補丁程序,但系統(tǒng)上運行第三方的服務(wù)程序卻常被忽略。比如前一段時間Serv-U服務(wù)遠程溢出漏洞就讓很多服務(wù)器成為黑客的“肉雞”。
系統(tǒng)中運行的遠程訪問或數(shù)據(jù)庫服務(wù)等,都在不同程度上存在有漏洞,管理員應(yīng)該同樣關(guān)注這些第三方的服務(wù)程序,注意廠商發(fā)布的漏洞,并及時地安裝補丁或升級服務(wù)程序。此外,還有一類漏洞存在于處理文件的應(yīng)用程序中,如微軟的Word文檔、圖形文件、Adobe的Pdf文檔、Realplay的視頻文件等。當管理員打開這些帶有惡意溢出代碼的文件時,系統(tǒng)就為黑客敞開大門了。
對付這類漏洞,首先需要管理員提高防范意識,同時也要求普通用戶不要輕易打開來歷不明的郵件,并及時安裝相應(yīng)的補丁文件。一個簡單有效的辦法就是嚴格控制服務(wù)器上安裝的程序,保證服務(wù)器的簡潔性,關(guān)閉不需要的系統(tǒng)服務(wù)。
注意異常連接和系統(tǒng)日志
有種錯誤認識,認為系統(tǒng)安裝了防火墻和防病毒程序就能有效地防御針對漏洞的攻擊。但從TCP/IP分層結(jié)構(gòu)來考慮,防火墻是工作在傳輸層的,而漏洞溢出攻擊的代碼往往是針對應(yīng)用層的程序,因此對這類攻擊是無法檢測的。
防火墻的特性是它能夠?qū)λ羞M出的連接加以控制,僅依賴防火墻的默認配置規(guī)則是不夠安全的。管理員需要制定嚴格的訪問規(guī)則,僅打開需要對外提供服務(wù)的端口。這樣即使黑客能夠通過漏洞打開系統(tǒng)的某個端口,但由于該端口受防火墻的阻擋,黑客也無法建立連接。
還有些攻擊程序是端口反彈型的,程序會在溢出后主動連接黑客計算機上的某個端口,這樣黑客就能通過一個反向的連接來控制被攻擊的計算機。一般情況下,防火墻對進站連接的控制較嚴,而對于出站連接的管理較松,因此,黑客常常能成功實施攻擊。所以,當發(fā)現(xiàn)異常的出站連接時,管理員需要認真分析,找出發(fā)起連接的進程,檢查進程的用戶名和連接的目的端口(如使用Process Explorer程序),結(jié)合經(jīng)驗判斷是正常的連接還是非法的反向連接。
當發(fā)生溢出攻擊時,服務(wù)程序會出現(xiàn)意外錯誤,管理員還可以通過檢查應(yīng)用程序的日志記錄,了解錯誤發(fā)生的來源、頻度、時間、類型等詳細內(nèi)容,依此判斷是否遭受攻擊。#p#
合理限制服務(wù)程序的權(quán)限
當黑客利用漏洞成功溢出后,得到一個遠程連接的Cmdshell,這個Cmdshell的權(quán)限往往繼承了被溢出的服務(wù)程序的初始權(quán)限,而大部分服務(wù)都是運行在系統(tǒng)的System賬戶權(quán)限下的,該賬戶的權(quán)限甚至超過系統(tǒng)中的Administrator賬戶。也就是說,如果溢出成功,黑客將成為系統(tǒng)中的管理員。
雖然很大一部分系統(tǒng)內(nèi)置的服務(wù)程序需要以System賬戶權(quán)限啟動,但也有不少服務(wù)程序可以選擇啟動時的用戶賬戶。對于這樣的服務(wù)程序,我們可以在系統(tǒng)中建立一個較小權(quán)限的賬戶,并使用該賬戶啟動服務(wù)程序。這樣即使出現(xiàn)了漏洞,黑客也只能得到一個較小權(quán)限的Cmdshell。
修改應(yīng)用程序的安全屬性
當黑客得到一個較小權(quán)限的Cmdshell,往往不會善罷甘休,可能通過上傳一個本地溢出的攻擊程序進一步擴大其權(quán)限。所以說,即使是較小權(quán)限的Cmdshell也是危險的。那么,我們該如何阻止黑客得到Cmdshell呢?
我們可以從提供Cmdshell環(huán)境的“cmd.exe”文件入手,通過修改Cmd的安全屬性來阻止黑客。
在NTFS文件系統(tǒng)中,可以為不同賬戶設(shè)置不同的應(yīng)用程序的權(quán)限,這里通過添加一個最小權(quán)限的賬戶來限制cmd命令的使用。
(1)添加賬戶
使用命令“Net user hidden$ /add”添加一個屬于“users”組的“hidden”賬戶。同時為“hidden”賬戶設(shè)置足夠強壯的口令。
提示:在賬戶名后加“$”符號可以建立隱藏賬戶,該賬戶在命令“net user”下不顯示。
(2)修改cmd.exe的安全屬性
在Windows的System32目錄下找到“cmd.exe”文件,右鍵單擊文件,在文件的“屬性”中選擇“安全”欄目,刪除如圖1所示的所有用戶具有的權(quán)限。然后添加“hidden”用戶,并分配權(quán)限。
這樣,就只有隱藏的“hidden”用戶才有權(quán)使用“cmd.exe”文件,黑客即使得到了System賬戶的權(quán)限也無法使用“cmd.exe”文件。這樣,黑客就不能通過Cmdshell進行破壞了,但這并不能完全阻止他。
高明的黑客可以在溢出程序的代碼中添加以下指令“net user hack 123 /add ”、“net localgroup administrators hack /add”,當溢出成功后,黑客就為自己在管理員組中添加一個口令為“123”的“hack”賬戶。同樣,黑客通過指令還能啟動Telnet服務(wù)、終止殺毒軟件進程或下載木馬文件。因此,我們還需要用上面的方法修改System32目錄下面的“net.exe”、“net1.exe”、“ftp.exe”、“tftp.exe”這些文件的權(quán)限。
注意:為什么采用這種復(fù)雜的方法而不是直接將這些程序改名或刪除呢?這是因為這些文件是受Windows系統(tǒng)保護的,用戶無法直接刪除,即便刪除后系統(tǒng)也會重新生成。
【編輯推薦】