為什麼蠕蟲病毒再次橫行? 2003年1月25日,就在用戶正為過去一年中沒有大規模爆發計算機病毒而暗自慶幸的時候,一種名為SQL Slammer(又稱為強風、SQL監獄、SQL殺手)的病毒橫掃全球,造成多個國家和地區的骨干網絡陷入癱瘓狀態。該蠕蟲病毒是一種新的Internet蠕蟲,該病毒利用了微軟MSSQL2000的緩沖區溢出漏洞,主要攻擊各種版本的Windows操作系統中運行的SQL Server 2000 服務器和Microsoft Desktop Engine 2000。 SQL的UDP的1434端口主要用於客戶端查詢可用的連接方式,但由於程序上的漏洞,當客戶端發送超長數據包時,將導致緩沖區溢出,惡意黑客便利用此漏洞在遠程機器上執行自己准備好的惡意代碼,將病毒放逐到Internet上。感染病毒的機器將不斷向外發送這種UDP數據包造成網絡堵塞。 看到這種蠕蟲的原理後,我們發現SQL與分別在2001年7月和9月爆發的紅色代碼II、尼姆達病毒有著驚人的相似之處: 同樣利用已知的操作系統或應用系統的安全漏洞進行感染; 同樣利用感染後的計算機進行風暴式的再傳播; 同樣造成網絡或主機的拒絕服務攻擊; 同樣可能留下以後攻擊用的安全後門。 微軟公司早在2002年7月24日就在微軟的安全公告MS02-039中頒布了SQL Slammer利用的這個漏洞,並且在同年7月25日,明確了MSDE2000同樣存在此漏洞。這又同紅色代碼和尼姆達病毒一樣,病毒傳播利用的安全漏洞是數月之前就已經被明確發布的。也就是說,如果事先注意到這種安全漏洞的存在,並且及時打上補丁、做出其它相應的預防措施的話,這些病毒就不會對需要保護的計算機和網絡造成危害。 蠕蟲病毒爆發後,我們應該如何應對? SQL Slammer蠕蟲病毒爆發後,各防病毒軟件廠商、安全廠商都進行了快速的反應,廣大媒體也給予了高度的重視和報道。這說明了信息安全防護的概念正在深入人心,是一種好的現象。但是透過現象看本質,我們應該不僅僅針對這一種病毒談論如何清除和防護,而應該進一步去考慮,如何應對這種攻擊形式的威脅? 實際上就SQL Slammer蠕蟲病毒而言,清除和防范是相對比較簡單的,因為此病毒不會像其他病毒那樣感染文件、安裝後門程序以及向外發送電子郵件,它只是通過含有漏洞的系統,進入內存運行,所以僅僅重新啟動計算機就可以將內存中的病毒清除;安裝微軟公司提供的SQL的補丁程序(?ReleaseID=40602)或者Microsoft SQL Server 2000 SP3 ( )就可以避免被同樣的病毒感染。 那麼,如何應對其他類似攻擊形式的威脅呢?我們需要首先分析一下,用戶屢屢受蠕蟲病毒困擾的原因。 為什麼用戶再次成為蠕蟲病毒的受害者? 2001年的紅色代碼II與尼姆達病毒大規模的爆發的影響力不可謂不大,給用戶造成的危害損失也絕不是小數目。可為什麼在經歷過如此慘痛的教訓後,,我們的用戶還會再次成為蠕蟲病毒的受害者? 冷靜回顧一下最近爆發的幾種危害較大的蠕蟲病毒的處理過程,我們就可以發現這樣一個循環: 簡單分析一下這個10步之多的循環過程,我們不難發現,病毒能夠傳播的重要環節在於第3步,即用戶沒有及時安裝補丁程序,而目前我們對此種病毒的關鍵防范環節在於第9步,即用戶安裝補丁程序。這兩個步驟的主體都是用戶,而客體都是補丁程序。 但是,顯然目前按照這種方式的結果不是令人滿意的。因為已經有相當多的服務器遭受感染,無數的網絡被攻擊。其原因在於,作為企業級的用戶,信息安全的負責人員往往是網絡管理人員兼任,或者是非常少的幾個專職人員,往往需要同時維護大量、復雜的系統和網絡。由於精力和專業知識所限,極少有可能緊跟所有網絡和系統廠商發布的各種各樣的漏洞公告和補丁發布消息。 而且,進一步說,如果僅僅依賴於補丁程序來抵御這種攻擊的話,也同樣存在相當大的風險,就是從安全漏洞被發現到廠商發布補丁程序中間這段時間可能被惡意攻擊者所利用。 所以,目前用戶所采用的蠕蟲病毒的防御方式是極其被動的,受到很多種外在因素的制約,很難起到有效的預防作用,往往是事故發生後再去彌補。