摘要:在詳細論述惡意軟件的工作原理、運行機制的基礎上,對各類惡意軟件進行系統的分類,闡述各類惡意軟件間的關系,歸納惡意軟件的發展趨勢并給出阻斷惡意軟件的方法。
關鍵詞:信息安全;惡意軟件;防火墻;入侵檢測系統;混合型攻擊
中圖法分類號:TP39303文獻標識碼:A
文章編號:1001-3695(2006)09-0004-04
隨著網絡的廣泛普及和應用,網絡環境下多樣化的傳播途徑和復雜的應用環境給惡意軟件(Malware)的傳播帶來巨大便利,從而對網絡系統及網絡上主機的安全構成巨大威脅。
惡意軟件是非用戶期望運行的、懷有惡意目的或完成惡意功能的軟件的統稱[1,2]。惡意代碼(Malicious Code)含義與惡意軟件相近,區別在于所描述的粒度不同。惡意代碼用于描述完成特定惡意功能的代碼片段,而惡意軟件則指完成惡意功能的完整的程序集合。
1 惡意軟件的分類、原理
惡意軟件的種類較多,如Virus(病毒),Worm(蠕蟲),Bot,Trojan Horse(特洛伊木馬),Exploit(漏洞利用程序),Backdoor(后門),Rootkit,Spyware(間諜軟件),Spamware(垃圾信息發送軟件),Adware(垃圾廣告軟件)等[1,3]。在對惡意軟件的名稱引用上存在一些混用、指代不明的情況,如將所有導致計算機工作不正常的惡意軟件都稱為病毒,將未授權隱藏在計算機內運行的惡意軟件都稱為(特洛伊)木馬等。本文對惡意軟件進行系統的分類,以明確、規范各類惡意軟件的概念,區分其間的差異。
入侵目標系統并達到特定目的的完整過程包含三個階段:①獲取對目標系統的遠程控制權;②維持對目標系統的遠程控制權;③通過遠程控制在目標系統上完成特定業務邏輯。這里所說的目標系統可以是目標主機系統,也可以是目標網絡設備。
根據不同惡意軟件所完成的功能在完整的入侵過程中所處階段的不同,我們將惡意軟件分為三種類型。
1.1獲取目標系統遠程控制權類
獲取目標系統遠程控制權類惡意軟件的基本特征是在未授權的條件下,利用各種手段獲取對目標系統的遠程控制權的功能,即具有完整入侵過程中第一階段的功能。
(1)Exploit(漏洞利用程序)。它
是第一類惡意軟件的基本形式。Exploit利用操作系統或應用程序中存在的缺陷(Bug),可達到以非授權的方式遠程控制目標系統或提升本地用戶權限的目的[4,5]。具體過程為:構造特定的輸入數據并提交給存在缺陷的操作系統程序或應用程序,使這些有缺陷的程序在所構造的輸入數據下,正常的程序流程發生改變,從而導致未授權用戶可以遠程控制目標系統,或使本地用戶獲得更高的權限。
使用Exploit獲取目標系統的遠程控制權后,入侵過程中后續的維持控制權、完成特定業務邏輯的工作均與Exploit無關。
典型的Exploit類惡意軟件有Buffer Overflow Exploit(緩沖區溢出漏洞利用工具),SQL Injection Exploit(SQL注入工具)等。
當操作系統或應用程序的源代碼行數達到一定規模后,程序中存在缺陷是不可避免的,所以各種漏洞層出不窮,Exploit類惡意軟件也日益增多。因此可以為操作系統或應用程序打上相應缺陷的Patch(補丁),惡意軟件則無法利用Exploit對目標系統進行遠程控制。
(2)Trojan Horse(特洛伊木馬),簡稱為Trojan(木馬)。它是偽裝成合法程序以欺騙用戶執行的一類惡意軟件[1,6,7]。使用Trojan入侵目標系統的具體過程為:Trojan首先通過網絡或各種存儲介質傳播到用戶處,因其具有偽裝、欺騙性,常被經驗不足或防范意識較差的用戶執行后,釋放出其攜帶的Backdoor(后門,概念見第1.2節(1))以實現對目標主機的遠程控制[9],在必要時還可釋放出其攜帶的Exploit以提升用戶權限。
從使用Trojan實施入侵的過程可以看出,與Exploit僅包含獲取遠程控制權的功能不同,除包含用于欺騙用戶在目標系統上執行的Trojan Header(木馬頭部)之外,Trojan還包含Backdoor,Exploit等 Payload (載荷),這些Payload在Trojan執行后被釋放出來,以維持對目標系統的遠程控制并完成特定業務邏輯[7]。
除通過可執行文件復制、執行來傳播的Trojan外,更具欺騙性的Trojan類型有郵件附件Trojan、網頁惡意代碼Trojan、宏病毒Trojan,這幾種Trojan往往在用戶毫不知情的情況下就被執行了,危害非常大。
(3)Worm(蠕蟲)。它具有自我繁殖能力,無需用戶干預便可自動在網絡環境中傳播的一類惡意軟件[1,6]。Worm利用目標系統的Weak Password(弱口令)或目標系統中存在的缺陷獲得對目標系統的遠程控制權,并搜集目標系統內的相關信息從而將Worm自身傳染至與目標系統有網絡聯系的其他系統。Worm自身的存在有兩種形式,即可執行文件的形式和內存中進程/線程的形式。當以進程/線程的形式存在時,傳播過程中Worm在目標系統內不涉及文件操作,具有更強的隱蔽性。
與Trojan類似,Worm也包含Payload部分,以便在成功入侵目標系統后完成特定的業務邏輯[8],如CodeRed Worm,其Payload部分的功能是對白宮Web服務器進行DoS(Denial of Service,拒絕服務)攻擊。
(4)Bot。
Bot的概念與Worm相近。若某Worm的Payload部分包含一個Backdoor,則稱該Worm為Bot,或者說可遠程控制的Worm即為Bot[9,10]。
Bot比Worm更進一步,Worm雖然具有自主繁殖、傳播的能力,但其傳播出去之后就不再受控,不能根據Worm發布者的意圖調整行為方式;而Bot在傳播出去之后依然可以對其進行控制和調整。由此可見,Bot的危害性比Worm更大,制作精巧的Bot甚至可以根據發布者的意圖對其Payload部分進行升級以適應新的環境或完成新的功能。
被Bot成功入侵后的受控主機即為Zombie(傀儡主機),一組Zombie則稱為Botnet[10]。當前Internet上的主要安全威脅之一的DDoS(Distributed Denial of Service,分布式拒絕服務)攻擊就是通過向Botnet發出針對特定目標的DoS攻擊命令來完成的。
(5)Virus(病毒)。它是依附于宿主文件,在宿主文件被執行的條件下跟隨宿主文件四處傳播并完成特定業務功能的一類惡意軟件[1,6]。
Virus的結構與Worm相似,除包含用于傳播自身的Virus Header(病毒頭部)外,還包含用于完成特定業務邏輯的Payload部分。
Virus和Worm是容易混淆的兩個概念。兩者主要區別在于:①Worm的傳播無需宿主文件,可通過網絡直接將Worm自身傳播到目標系統;而病毒傳播需要宿主文件,病毒只能寄生在宿主文件中。②Worm的繁殖、傳播無需人工干預,由Worm自主、自動完成;病毒的傳播需要人工干預。首先,病毒的傳播依賴于宿主文件的位置改變,宿主文件到哪里,病毒才可能傳播到哪里。其次,若宿主文件未被執行,則寄生其中的病毒便不會感染目標系統[11]。
(6)第一類惡意軟件對比如表1所示。
表1第一類惡意軟件對比
注:被動感染目標系統模式,即需要目標系統用戶執行外來程序才能獲取對目標系統的遠程控制權;
主動感染目標系統模式,即獲取對目標系統的遠程控制權,無需目標系統用戶的任何動作。
1.2維持遠程控制權類
獲取對目標系統的遠程控制權后,在目標系統中運行此類惡意軟件以維持對目標系統的遠程控制權。此類惡意軟件用于完整入侵過程中的第二階段。
(1)Backdoor(后門)。它
是一類運行在目標系統中,用以提供對目標系統未經授權的遠程控制服務[1,7]的惡意軟件。
需要注意的是,Backdoor與第一類惡意軟件不同,Backdoor的作用是通過其運行以提供對目標系統未經授權的遠程控制的服務;而第一類惡意軟件需要利用各種手段來達到此目的,即Backdoor必須在目標系統上運行才能提供相應的服務,因此必須先使用第一類惡意軟件以獲得在目標系統上執行程序的權限。第一類惡意軟件是Backdoor發揮作用的前提和基礎, Backdoor運行后,后續對目標系統的遠程控制均通過Backdoor提供的服務來完成。
(2)Rootkit。其
概念起源于UNIX/Linux操作系統,最初是指UNIX/Linux系統中一組用于獲取并維持Root權限的工具集。發展至今日,被廣為接受的Rootkit概念是指用于幫助入侵者在獲取目標主機管理員權限后,盡可能長久地維持這種管理員權限的工具[4]。在當前的Rootkit概念中,獲取管理員權限的過程不由Rootkit來完成,即Rootkit的使用基于已經獲得了管理員權限的假設。
由Backdoor的概念可知,Backdoor僅提供了一條非授權訪問、控制目標系統的“通道”,但并不涉及對這條通道的保護,因此這條通道很容易被目標系統上的管理員或網絡安全設備察覺或檢測到。Rootkit的作用是要盡可能長久地維持對目標系統的遠程控制,故其基本任務就是要隱藏Backdoor所提供的通道,盡可能使得目標系統上的管理員或安全設備不能察覺、檢測到該通道的存在。
當前主流操作系統平臺下的Rootkit已經比較成熟,內核級的Rootkit能做到對操作系統中的進程、線程、網絡連接、網絡數據、網絡通信目的地的深度隱藏[4],以保護目標系統中運行的惡意軟件不被檢測到。
在實際應用中,Rootkit通常直接包含了Backdoor的功能。因此,可將Rootkit理解為帶隱藏功能的Backdoor。
(3)第二類惡意軟件對比如表2所示。
表2第二類惡意軟件對比
1.3完成特定業務邏輯類
第三類惡意軟件用于完成入侵目標系統最終所要進行的操作,如竊取情報、破壞系統、發動攻擊、中轉數據等。第一類和第二類惡意軟件的作用在于為第三類惡意軟件提供一個安全、便捷的運行平臺。
(1)Spyware(間諜軟件)
[1,3]。它是典型的第三類惡意軟件,用于從目標系統中收集各種情報、信息,如商業、軍事情報,用戶信用卡號、個人隱私信息/文檔,各種網站/郵箱用戶名、口令等信息。
收集到這些信息后,Spyware通過網絡將其發送給入侵者。在Rootkit的保護下,Spyware本身以及Spyware所產生的網絡通信都被隱藏,使得Spyware可在目標系統中安全地存活下來。
Spyware在目標系統中的運行途徑主要有三種:①將Spyware放在Worm/Bot/Virus/Trojan的Payload中,在Worm/Bot/Virus/Trojan執行時被釋放出來并執行;②利用Exploit獲取對目標系統遠程控制權后,將Spyware通過網絡傳輸到目標主機并執行;③在目標系統上安裝并運行Rootkit/Backdoor后,通過其提供的遠程控制服務將Spyware傳輸到目標主機并執行。
(2)Spamware(垃圾信息發送軟件)。
為了避免被追查,Spam(非期望的垃圾信息,如垃圾郵件)的發送者通常不會直接使用自己的主機發送垃圾信息。為了加大垃圾信息的發送范圍,僅僅用一臺主機發送垃圾信息是不夠的。Spamware(垃圾信息發送軟件)[1,3]就是運行在大量被入侵主機中用于發送垃圾信息的惡意軟件,Spamware在目標系統中的運行途徑與Spyware類似。
(3)Adware(垃圾廣告軟件)[1,3]。它運行在被入侵主機中,用于以各種方式顯示垃圾廣告的惡意軟件。
Adware在目標系統中的運行途徑與Spyware類似。
(4)其他第三類惡意軟件。其
種類很多,根據具體應用需求不同而不同,如對目標系統進行攻擊/破壞的惡意軟件有多種不同的類型,但目前尚無統一規范的命名。
2 各類惡意軟件間的關系與運行機制
第一類惡意軟件和第二類惡意軟件是第三類惡意軟件發揮作用的前提,它們為第三類惡意軟件提供并維持對目標系統的未授權遠程控制權,入侵最終要實現的功能由第三類惡意軟件完成。
第一類惡意軟件中,除Exploit外,Trojan,Worm,Bot,Virus均可包含Payload部分。故除實現獲取對目標系統的遠程控制權的功能外,Trojan,Worm,Bot,Virus還可將第二類惡意軟件及第三類惡意軟件包含在Payload中,在執行后釋放出來。
一個Payload部分包含Rootkit和DoS工具的典型Bot的靜態結構以及入侵目標系統后在內存中的結構,如圖1所示。圖中Bot的靜態結構表示Bot在執行前的結構組成。由圖1(a)可見,靜態時Bot由Bot Header和Payload組成,其中Payload由Rootkit和DoS Tool組成。Bot成功入侵目標系統后,入侵者通過Rootkit內包含的Backdoor來遠程控制目標系統,Bot Header繼續在目標系統內運行以便將Bot傳播到其他系統中;Rootkit內包含的Hiding Module(隱藏模塊)將Rootkit自身及Bot Header,DoS Tool都隱藏起來以躲避檢測,DoS Tool在入侵者的遠程控制下實施對特定目標的攻擊。圖1(b)中深色背景部分表示目標系統中被Rootkit隱藏起來,從而檢測不到的內容。Payload部分包含Rootkit和Spyware的一個典型Trojan的靜態結構及入侵目標系統后在內存中的結構,如圖2所示。由圖可知,Trojan欺騙用戶執行從而入侵目標系統后,其Payload部分被釋放出來并運行于目標系統中。因Trojan對目標系統的感染采用的是被動模式,故Trojan Header在欺騙用戶執行后即已完成其任務,并不存在于目標系統內存中。常被混用的兩個概念是木馬(Trojan)和Rootkit。根據前文分析可知,Trojan的主要特征在于其偽裝性、欺騙性,通過Trojan Header欺騙用戶執行;而Rootkit的主要特征在于隱藏。
當前威脅非常大的一類被稱為Blended Attck(混合型攻擊)[12]的攻擊方式,它綜合運用了各類惡意軟件的相關技術,使得攻擊效能最大化。①在獲取目標系統遠程控制權階段,將Trojan,Worm,Bot,Virus的入侵手段結合到一個執行程序中,實現主動入侵和被動入侵的結合,從而顯著增強其對目標系統的入侵能力。②在維持對目標系統的遠程控制權階段,充分運用各項成熟的Rootkit相關技術,使得Rootkit及其保護下的其他惡意軟件能可靠、長久地存活于目標系統中。③在完成特定業務邏輯階段,集多種第三類惡意軟件的功能于一身,這樣既可以搜集情報,又可以實施破壞,或將目標系統作為防止反向網絡追蹤的數據中轉站。
本文提出的對惡意軟件的分類方法是惡意軟件的基本組成單元,在具體應用中,各類惡意軟件的合理、綜合運用,使得當前惡意軟件呈現出形式多樣、功能日益強大的狀況。
3 惡意軟件發展趨勢
隨著各類惡意軟件相關技術的日益成熟,當前惡意軟件的發展出現了一些值得關注的新趨勢,了解和把握這些趨勢將有利于有針對性地制定相應的防護措施。
3.1由任意傳播轉向定量傳播
在2004年之前的數年間,Worm和Bot在傳播時采用的主要是任意傳播策略,對于其搜索到的任何可利用、入侵的目標系統都進行感染,將自身傳播到目標系統中[13~16]。根據多家安全服務公司及防病毒軟/硬件廠商的監控數據[16,17],自2004年5月至今,已極少監測到類似前幾年的CodeRed Worm,Slammer Worm等大規模傳播的Worm/Bot,而惡意軟件的發展勢頭在近幾年特別是近一年中更加迅猛,因惡意軟件導致的各種安全問題發生頻率越來越高。綜合防病毒軟/硬件廠商對相關數據的分析結果表明,當前的Worm/Bot
傳播策略發生了明顯的調整,已由任意傳播策略轉向定量傳播策略,即Worm和Bot在傳播過程中,僅感染滿足特定條件的目標系統,且當成功感染目標系統的數量達到一定值后,則不再繼續傳播。根據Kaspersky Labs的統計分析,這一臨界數量在5 000~10 000[17]之間。
任意傳播策略的特征是傳播速度快、被感染的目標系統數量大。這兩個特征導致了以任意傳播策略傳播的Worm/Bot很容易就被防病毒軟/硬件廠商采集到Worm/Bot的樣本,進而提取其Signature(特征碼)并更新其病毒庫,從而使得普通用戶能及時、有效地清除這些Worm/Bot并阻止其在網絡上的繼續傳播。
定量傳播策略的特征是傳播速度快,但被感染的目標系統數量相對而言非常少。因此,基于此策略傳播的Worm/Bot很難被防病毒軟/硬件廠商采集到樣本,安裝了防病毒軟/硬件系統的普通用戶即使及時更新病毒庫,也無法查出系統中已經存在的Worm/Bot,無法過濾進入系統中的Worm/Bot。
3.2存活能力顯著提高
(1)在傳播過程中,通過使用Polymophism(變形)[18,19]技術,經處理后的惡意軟件不再具有固定的Signature,因此可有效對抗當前防病毒軟/硬件的過濾和查殺。精心編寫的惡意軟件甚至可以將Polymophism引擎包含在其自身內部,使得其每次傳播都具有不同的Signature。
(2)利用Rootkit實現對進程、線程、通信連接、通信數據、通信目的地的隱藏,同時結合Firewall/IDS Bypass(防火墻旁路)、Firewall/IDS Disable(禁用防火墻/入侵檢測系統)、降低系統安全等級設置等技術,可有效防止在被入侵的目標系統內運行著的惡意軟件被檢測到。
綜合運用以上措施后,當前惡意軟件能有效躲避當前廣泛應用的、傳統的、基于Border Firewall+DMZ IDS+Personal Firewall,Antivirus Software結構的Defense in Depth(深度防御)體系[20]的檢測,存活能力顯著提高。
3.3應對基于系統缺陷的攻擊響應時間迅速縮短
ZeroDay Exploit[21]是指缺陷被發現后立即出現的漏洞利用程序。ZeroDay Exploit(0Day Exploit)的不斷涌現[5]標志著發現系統缺陷到漏洞利用程序出現的間隔時間比以往大大縮短,從而導致應對基于系統缺陷的攻擊的響應時間迅速縮短。當出現ZeroDay Exploit時,軟件廠商往往尚未發布相應補丁,即使有補丁發布,多數用戶也無法保障在補丁出現時立即給系統打上補丁,從而導致大量有缺陷的系統暴露于ZeroDay Exploit的威脅之下。
3.4傳播途徑多樣化
眾多P2P(PeertoPeer,點到點)模式以及IM(Instant Messaging,即時通信)類網絡應用程序的迅猛發展,為惡意軟件提供了更便捷、更快速的傳播途徑。
3.5更易用、功能更強大
當前惡意軟件的發展使得入侵者只需很少的專業知識即可掌握其用法。同時,綜合運用各種惡意軟件相關技術的混合型惡意軟件的功能越來越強大,一旦入侵成功,即可實現對目標系統的完全控制。
4 結論與展望
應對當前惡意軟件的快速發展與傳播對傳統的Defense in Depth防御體系帶來的巨大挑戰,本文認為在保留傳統的主要基于Signature掃描方式的防御體系的前提下,迫切需要采取以下兩方面的措施:①從阻斷Exploit,Worm,Bot這些主動入侵型惡意軟件的角度入手,大力加強IPS(Intrusion Prevention System,入侵阻止系統)的研發,將惡意軟件阻擋于系統之外;②從阻斷Trojan,Virus這些被動入侵型惡意軟件的角度入手,堵住惡意軟件得到執行權限的源頭[22],如安裝Application Firewall(應用程序防火墻)[23],嚴格控制不明可執行文件的執行動作。綜合以上措施,則能有效阻止惡意軟件從外、從內進入目標系統。
參考文獻:
[1]Ed Skoudis, Lenny Zeltser. Malware: Fighting Malicious Code[M]. US: Prentice Hall PTR, 2003.1618.
[2]Gary McGraw, Greg Morrisett. Attacking Malicious Code: A Report to the Infosec Research Council[J].IEEE Software, 2000,17(5):12.
[3]Spyware,Adware,and Malware[EB/OL].http://www.cs.umn.edu/help/security/spyware.php,200506.
[4]Greg Hoglund,Gary McGraw.Exploiting Software: How to Break Code[M].US:Addison Wesley,2004.6081.
[5]Jon Erickson.Hacking:The Art of Exploitation[M].US:No Starch Press,2003.4854.
[6]Harold Thimbleby.A Framework for Modelling Trojans and Computer Virus Infection[J].Computer Journal,1998,41(7): 444458.
[7]Lenny Zeltser. Reverse Engineering Malware[EB/OL].http://www.zeltser.com/reversemalwarepaper/,200506.
[8]Tom Chen. Trends in Viruses and Worms[J]. Internet Protocol Journal,2003,6(3):812.
[9]Laurianne McLaughlin. Bot Software Spreads, Causes New Worries[J].IEEE Distributed Systems Online,2004,5(6):35.
[10]Bill Mccarty. Botnets: Big and Bigger[J]. IEEE Security and Privacy,2003,1(4):8780.
[11]What is the Difference between Viruses, Worms, and Trojans?[EB/OL].http://service1.symantec.com/SUPPORT/nav.nsf/docid/1999041209131106,200506.
[12]Eric Chien, Péter Szr.Blended Attacks Exploits,Vulnerabilities and BufferOverflow Techniques in Computer Viruses[C].Virus Bulletin Conference,2002.215.
[13]Michele Garetto, Weibo Gong, Don Towsley. Modeling Malware Spreading Dynamics[C]. IEEE INFOCOM,2003.18691871.
[14]Lawrence A Gordon, Martin P Loeb. 2004 CSI/FBI Computer Crime and Security Survey[EB/OL]. http://www.gocsi.com/, 200506.
[15]Nikolai Joukov.Internet Worms as InternetWide Threat[EB/OL].http://www.ecsl.cs.sunysb.edu/tech_reports.html,200506.
[16]Ferdinand Gomes. Internet Security Threat Report:Malicious Code Trends[EB/OL].http://enterprisesecurity.symantec.com/con-tent.cfm?articleid=1539,200506.
[17]Munir Kotadia.Stealth Virus Warning Sounded Again[EB/OL]. http://news.zdnet.co.uk/internet/0,39020369,39199961,00.htm,200506.
[18]Daniel Wolff. BOTs and Packers:The New Polymorphism[C]. APWG North American Spring Meeting,2005.615.
[19]David M Chess, Steve R White. An Undetectable Computer Virus[C]. Proceedings of Virus Bulletin Conference,2000.25.
[20]Stephen Northcutt. Inside Network Perimeter Security[M]. US: New Riders Publishing, 2003.531548.
[21]Abhay Joshi.How to Protect Your Company From “Zeroday” Exploits[EB/OL].http://www.computerworld.com/printthis/2004/0,4814,90447,00.html,200506.
[22]John V Harrison.Enhancing Network Security by Preventing UserInitiated Malware Execution[C].Proc. of the International Conference on Information Technology: Coding and Computing,2005.36.
[23]Ryan Permeh. The Use of Application Specific Security Measures in a Modern Computing Environment[EB/OL].http://www.eeye.com/html/Research/Papers/DS20010322.html,200506.
作者簡介:
盧浩(1973),男,湖北黃陂人,講師,碩士研究生,主要研究方向為計算機網絡、信息安全;
胡華平(1967),男,教授,博導,主要研究方向為信息安全、密碼學;
劉波(1973),男,助研,博士研究生,主要研究方向為計算機網絡、信息安全。