什麼是惡意軟件 本指南將術語"惡意軟件"用作一個集合名詞,來指代故意在計算機系統上執行惡意任務的病毒、蠕蟲和特洛伊木馬。 那麼,計算機病毒或蠕蟲的確切含義是什麼?它們和特洛伊木馬之間有哪些不同之處?防病毒應用程序是僅對蠕蟲和特洛伊木馬有效,還是僅對病毒有效? 所有這些問題都起源於令人迷惑且通常被曲解的惡意代碼世界。現有惡意代碼的數目和種類繁多,因此很難為每個惡意代碼類別提供一個准確的定義。 對於籠統的防病毒討論,可使用以下簡單的惡意軟件類別定義: 特洛伊木馬。該程序看上去有用或無害,但卻包含了旨在利用或損壞運行該程序的系統的隱藏代碼。特洛伊木馬程序通常通過沒有正確說明此程序的用途和功能的電子郵件傳遞給用戶。它也稱為特洛伊代碼。特洛伊木馬通過在其運行時傳遞惡意負載或任務達到此目的。 蠕蟲。蠕蟲使用自行傳播的惡意代碼,它可以通過網絡連接自動將其自身從一台計算機分發到另一台計算機上。蠕蟲會執行有害操作,例如,消耗網絡或本地系統資源,這樣可能會導致拒絕服務攻擊。某些蠕蟲無須用戶干預即可執行和傳播,而其他蠕蟲則需用戶直接執行蠕蟲代碼才能傳播。除了復制,蠕蟲也可能傳遞負載。 病毒病毒代碼的明確意圖就是自行復制。病毒嘗試將其自身附加到宿主程序,以便在計算機之間進行傳播。它可能會損害硬件、軟件或數據。宿主程序執行時,病毒代碼也隨之運行,並會感染新的宿主,有時還會傳遞額外負載。 對於本指南的用途而言,負載是一個集合術語,表示惡意軟件攻擊在已感染計算機上執行的操作。各種惡意軟件類別的上述定義使得可以通過一個簡單的流程圖來說明這些類別之間的不同之處。下圖說明了可用來確定程序或腳本是否屬於這些類別的元素: 圖 2.1 惡意代碼決策樹 通過此圖,可以區分對於本指南用途而言的每種常見惡意代碼類別。但是,了解單個攻擊所引入的代碼可能適合一個或多個類別是非常重要的。這些類型的攻擊(稱作混合威脅,包含使用多種攻擊方法的多個惡意軟件類型)會以極快的速度傳播。攻擊方法是惡意軟件可用於發起攻擊的例程。由於這些原因,混合威脅特別難以應對。 以下部分對每種惡意軟件類別進行了更為詳細的解釋,以幫助說明每種類別的一些主要元素。 特洛伊木馬 特洛伊木馬不被認為是計算機病毒或蠕蟲,因為它不自行傳播。但是,病毒或蠕蟲可用於將特洛伊木馬作為攻擊負載的一部分復制到目標系統上,此過程稱為"發送"。特洛伊木馬的通常意圖是中斷用戶的工作或系統的正常運行。例如,特洛伊木馬可能在系統中提供後門,使黑客可以竊取數據或更改配置設置。 在提及特洛伊木馬或特洛伊類型活動時,還有兩個經常使用的術語,其識別方法和解釋如下: 遠程訪問特洛伊。某些特洛伊木馬程序使黑客或數據竊取者可以遠程地控制系統。此類程序稱為"遠程訪問特洛伊"(RAT) 或後門。RAT 的示例包括 Back Orifice、Cafeene 和 SubSeven。 有關此類特洛伊木馬的詳細說明,請參閱 Microsoft TechNet 網站上的文章"Danger:Remote Access Trojans",網址為 (英文)。 Rootkit。Rootkit 是軟件程序集,黑客可用來獲取計算機的未經授權的遠程訪問權限,並發動其他攻擊。這些程序可能使用許多不同的 技術,包括監視擊鍵、更改系統日志文件或現有的系統應用程序、在系統中創建後門,以及對網絡上的其他計算機發起攻擊。Rootkit 通常被 組織到一組工具中,這些工具被細化為專門針對特定的操作系統。第一批 Rootkit 是在 20 世紀 90 年代被識別出來的,當時 Sun 和 Linux 操作系統是它們的主要攻擊對象。目前,Rootkit 可用於許多操作系統,其中包括 Microsoft Windows 平台。 注意:請注意,RAT 和某些包含 Rootkit 的工具具有合法的遠程控制和監視使用。但是,,這些工具引入的安全性和保密性問題給使用它們的環境帶來了整體風險。 蠕蟲 如果惡意代碼進行復制,則它不是特洛伊木馬,因此為了更精確地定義惡意軟件而要涉及到的下一個問題是:"代碼是否可在沒有攜帶者的情況下進行復制?"即,它是否可以在無須感染可執行文件的情況下進行復制?如果此問題的答案為"是",則此代碼被認為是某種類型的蠕蟲。 大多數蠕蟲試圖將其自身復制到宿主計算機上,然後使用此計算機的通信通道來進行復制。例如,Sasser 蠕蟲依賴服務的安全漏洞最初感染一個系統,然後使用已感染系統的網絡連接來試圖進行復制。如果已安裝最新的安全更新(來停止感染),或已在環境中啟用防火牆來阻止蠕蟲所用的網絡端口(來停止復制),則攻擊將會失敗。 病毒 如果惡意代碼將其自身的副本添加到文件、文檔或磁盤驅動器的啟動扇區來進行復制,則認為它是病毒。此副本可以是原始病毒的直接副本,也可以是原始病毒的修改版本。有關詳細信息,請參閱本章後面的"防護機制"部分。正如前面所提及的,病毒通常會將其包含的負載(例如,特洛伊木馬)放置在一個本地計算機上,然後執行一個或多個惡意操作(例如,刪除用戶數據)。但是,僅進行復制且不具有負載的病毒仍是惡意軟件問題,因為該病毒自身在其復制時可能會損壞數據、消耗系統資源並占用網絡帶寬。 惡意軟件的特征 每類惡意軟件可以表現出來的各種特征通常非常類似。例如,病毒和蠕蟲可能都會使用網絡作為傳輸機制。然而,病毒會尋找文件以進行感染,而蠕蟲僅嘗試復制其自身。以下部分說明了惡意軟件的典型特征。 目標環境 惡意軟件試圖攻擊宿主系統時,可能需要許多特定的組件,攻擊才能成功。下面是一個典型示例,說明惡意軟件在攻擊宿主系統時所需的
組件: 設備。某些惡意軟件將一種設備類型作為專門的攻擊目標,例如,個人計算機、Apple Macintosh 計算機甚至個人數字助理 (PDA),但是請注意,PDA 惡意軟件目前非常少見。 操作系統。惡意軟件可能需要特殊的操作系統才會有效。例如,20 世紀 90 年代後期出現的 CIH 或 Chernobyl 病毒僅攻擊運行Microsoft Windows 95 或 Windows 98 的計算機。 應用程序。惡意軟件可能需要在目標計算機上安裝特定的應用程序,才能傳遞負載或進行復制。例如,2002 出現的 LFM.926 病毒僅在 Shockwave Flash (.swf) 文件可在本地計算機上執行時才能進行攻擊。 攜帶者對象 如果惡意軟件是病毒,它會試圖將攜帶者對象作為攻擊對象(也稱為宿主)並感染它。目標攜帶者對象的數量和類型隨惡意軟件的不同而大不相同,以下列表提供了最常用的目標攜帶者的示例: 可執行文件。這是通過將其自身附加到宿主程序進行復制的"典型"病毒類型的目標對象。除了使用 .exe 擴展名的典型可執行文件之外,具有以下擴展名的文件也可用作此用途:.com、.sys、.dll、.ovl、.ocx 和 .prg。 腳本。將腳本用作攜帶者目標文件的攻擊,這些文件使用諸如 Microsoft Visual Basic Script、JavaScript、AppleScript 或 Perl Script 之類的腳本語言。此類文件的擴展名包括:.vbs、.js、.wsh 和 .prl。 宏。這些攜帶者是支持特定應用程序(例如,字處理器、電子表格或數據庫應用程序)的宏腳本語言的文件。例如,病毒可以在Microsoft Word 和 Lotus Ami Pro 中使用宏語言來生成許多效果,從惡作劇效果(在文檔四處改變單詞或更改顏色)到惡意效果(格式化計算機的硬盤驅動器)。 啟動扇區。計算機磁盤(硬盤和可啟動的可移動媒體)上的特定區域(例如,主啟動記錄 (MBR) 或 DOS 啟動記錄)也可被認為是攜帶者,因為它們可以執行惡意代碼。當某個磁盤被感染時,如果使用該磁盤來啟動其他計算機系統,將會復制病毒。 注意:如果病毒同時將文件和啟動扇區作為感染目標,可稱其為"多部分"病毒。 惡意軟件的傳輸機制 攻擊可以使用一個或多個不同方法,在計算機系統之間嘗試並復制;本部分提供了與惡意軟件使用的幾個比較常見的傳輸機制有關的信息。 可移動媒體。計算機病毒和其他惡意軟件最初的、並且可能也是最多產的傳送器(至少到當前為止)是文件傳輸。此機制開始於軟盤,然後移動到網絡,目前正在尋找新的媒體,例如,通用串行總線 (USB) 設備和火線。感染速度並不像基於網絡的惡意軟件那樣快,但安全威脅卻始終存在,而且難以完全消除,因為系統之間需要交換數據。 網絡共享一旦為計算機提供了通過網絡彼此直接連接的機制,就會為惡意軟件編寫者提供另一個傳輸機制,而此機制所具有的潛力可能會超出可移動媒體的能力,從而可以傳播惡意代碼。由於在網絡共享上實現的安全性級別很低,因此會產生這樣一種環境,其中惡意軟件可以復制到大量與網絡連接的計算機上。這在很大程度上替代了使用可移動媒體的手動方法。 網絡掃描。惡意軟件的編寫者使用此機制來掃描網絡,以查找容易入侵的計算機,或隨意攻擊 IP 地址。例如,此機制可以使用特定的網絡端口將利用數據包發送到許多 IP 地址,以查找容易入侵的計算機進行攻擊。 對等 (P2P) 網絡。要實現 P2P 文件傳輸,用戶必須先安裝 P2P 應用程序的客戶端組件,該應用程序將使用一個可以通過組織防火牆的網絡端口,例如,端口 80。應用程序使用此端