哈維·穆德學院計算機科學教授傑夫·庫寧提供了這個解釋。
惡意軟體有幾種形式,主要透過它們的傳播方法來區分。最常見的兩種形式是病毒和蠕蟲。病毒會附著在現有程式上,以便在該程式執行時發生糟糕的事情。就像生物病毒一樣,它不能在沒有宿主的情況下生存。相比之下,蠕蟲是一個獨立的程式,它無需宿主程式即可自我複製。根據形式的不同,蠕蟲可能能夠在受害者不知情的情況下傳播。今天的大多數惡意軟體由蠕蟲而不是病毒組成。
由於蠕蟲和病毒的傳播方法不同,它們需要略有不同的保護機制。病毒掃描器透過搜尋已知病毒的簽名來工作。簽名是在每個病毒副本中出現的特徵模式。它可能是一個字串,例如病毒啟用時將在螢幕上顯示的訊息,或者它可能是二進位制計算機程式碼,甚至是嵌入在病毒中的特定資料位。這些模式由專門從事計算機安全的組織的技術人員識別,然後在安全網站上提供。病毒掃描器隨後可以下載這些模式,以更新其內部模式列表。
支援科學新聞
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞事業 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們當今世界的發現和想法的具有影響力的故事的未來。
這個方案有三個複雜之處。第一個是,如果模式選擇不當,可能會合法地出現在未感染的檔案中。例如,僅包含單詞“hello”的模式不會非常有用。技術人員的工作之一是找到病毒獨有的模式。
第二個複雜之處在於,病毒編寫者不希望他們的病毒被檢測到,因此他們進行了一場隱身技術的戰爭。例如,許多病毒以加密形式儲存自身,並在傳播過程中改變加密金鑰,以便加密模式在每臺受害者機器上都不同。病毒掃描器可以透過設定其模式來搜尋解密病毒的程式部分(此程式碼必須是未加密的),或者在進行匹配之前複製解密操作來擊敗這種技術。
第三個複雜之處與效能有關。從理論上講,病毒可以附著在任何可執行程式上。在現代計算機上,可能有數百甚至數千個潛在的宿主程式。每次執行病毒掃描器時都掃描所有這些程式將花費非常長的時間。因此,病毒掃描器通常將自己限制在較小的可能宿主列表範圍內。例如,軟盤和可移動磁碟是常見的病毒載體,因此通常在插入可移動磁碟時對其進行掃描。在Microsoft Windows上,\WINDOWS\SYSTEM資料夾中的程式是流行的病毒目標,因此病毒掃描器通常會檢查這些檔案。掃描器的內部模式列表還可以識別已知是特定病毒目標的其他檔案。
因為蠕蟲是獨立的程式,所以它們比病毒更容易檢測。由於是獨立的,它們必須駐留在某處自己的檔案中,並且該檔案的構造方式必須使計算機自動執行它。這些約束限制了檔案可以出現的位置以及如何命名等特徵。掃描器可以簡單地檢查那些眾所周知的位置,然後應用與病毒相同的模式匹配技術。
現在的掃描器還會查詢已知的蠕蟲傳播途徑。由於大多數蠕蟲透過電子郵件傳播,因此可以將掃描器設定為在傳入電子郵件傳遞給使用者之前檢視傳入電子郵件,並在傳送傳出訊息時掃描傳出訊息。如果檢測到蠕蟲,則可以將其從訊息中刪除。如果蠕蟲在傳出的電子郵件中,則當然也必須將其從受感染的計算機中刪除。
清理蠕蟲或病毒後相對簡單。如果軟體製造商提供了受感染的檔案,則可以用乾淨的副本替換它。私有檔案通常無法替換,但是可以刪除受感染的部分或用無害的東西覆蓋它。除了檢測模式外,掃描器的主模式列表還可以包含有關哪些檔案通常被特定惡意軟體感染以及如何清理它們的說明。與模式一樣,安全技術人員會建立這些說明,通常與模式本身同時建立。