1991 年,電腦防毒研究組織(Computer Antivirus Research Organization,CARO)提出了「CARO 惡意軟體命名慣例」(CARO Malware Naming Convention),試圖統一惡意軟體的命名方式。然而,隨著威脅情勢不斷變化,這套命名方式很快便顯得過時。防毒與資安產業因應各自需求修改了 CARO 的命名慣例,而命名的目的也逐漸由「辨識惡意軟體」轉變為「標示偵測結果」。
因此,各家資安廠商會採用自己的命名慣例,標示不同類型的勒索軟體或惡意軟體偵測結果,導致使用者有時難以判斷實際偵測到的內容,以及威脅或感染的性質。惡意軟體名稱可能用於下列類型:
- 已被釋出並在真實環境中感染電腦的「實際流傳惡意軟體」(in-the-wild malware)。
- 由實驗室或防毒軟體廠商建立,用於測試新威脅偵測能力的非實際流傳惡意軟體,例如「動物園病毒與蠕蟲」(Zoo viruses and worms)。
- 由道德駭客或研究團體建立的概念驗證病毒(proof-of-concept viruses)。
- 通用型惡意軟體(generic malware)。
- 零時差惡意軟體(zero-day malware)。
上述名稱都可能隨時被重新命名。部分廠商還會在名稱後方加入修飾詞或補充資訊,進一步描述惡意軟體的類型。由於目前並不存在通用的命名標準,因此容易讓一般使用者,以及試圖提供協助的人員產生混淆。
「惡意軟體」(malicious software, malware)本身已成為一個廣義的統稱,涵蓋許多不同類型的惡意軟體。由於不存在通用的命名標準,因此對於惡意軟體的定義,可能會出現各式各樣的答案。
名稱中帶有「Generic」或「Patched(加殼、加花)」的偵測結果,也屬於非常廣泛的分類。例如,「通用型偵測」(Generic detection)是防毒與反惡意軟體軟體採用的一種偵測方式,用於辨識具有惡意特徵的檔案。這代表該檔案的特徵或行為,可能與已知惡意軟體或潛在的新型惡意軟體相似。因此,通用型偵測結果並不一定表示該檔案必然具有惡意。
此外,各家資安廠商使用的掃描引擎與偵測方式也不相同,例如:
- 啟發式分析(Heuristic Analysis)
- 行為式分析(Behavior-based Analysis)
- 沙箱分析(Sandboxing)
- 特徵碼檔案偵測(Signature file detection),其內容包含已知病毒特徵碼的二進位模式
以上差異都可能造成各家掃描結果不一致,以方程式組織的惡意軟體 c68f420b5a5e085a508a2529ac001284a255090920a0236df1b5656d010966e8 為例,CrowdStrike 的結果為 Win/malicious_confidence_100% (W),會有這種報法是因為 CrowdStrike 以機器學習判斷未知威脅是惡意的信心程度,意思是 Windows 平台/惡意程式信心度有100%,括號內共有 (W)、(D)、(X) 三種狀態,分別為:
- (W):On-Write:檔案寫入/下載時攔截。
- (D):On-Demand:隨選/排程掃描靜態檔案時發現。
- (X):On-Execution:使用者或程序嘗試點擊或啟動執行時攔截。
如果遇到一個 confidence_60% 的未知威脅,就需要寄送樣本給 CrowdStrike 分析,避免誤判;卡巴斯基的命名方式則較好判斷,為 HEUR:Trojan.Win32.EquationDrug.gen,其方法為「[前綴:]行為.平台.名稱[.變種]」([Prefix:]Behaviour.Platform.Name[.Variant])。
惡意軟體相關名詞表
常見名詞
以下是我們可能會遇到的惡意軟體。
-
惡意軟體(Malware):泛指任何蓄意設計來破壞系統、竊取資料或未經授權存取電腦的軟體,是下列各類威脅的統稱。
-
間諜軟體(Spyware):在使用者不知情下暗中蒐集資訊(如瀏覽紀錄、帳號密碼、鍵盤輸入),再回傳給攻擊者。
-
廣告軟體(Adware):強制顯示彈出視窗、橫幅廣告或綁架瀏覽器首頁,部分版本會同時追蹤使用者行為。
-
病毒(Virus):需依附在合法檔案或程式上,透過使用者執行受感染的檔案而散播,並會自我複製、感染其他檔案。
-
感染型病毒(File-infecting Virus):將惡意碼植入可執行檔(如 .exe、.dll),使用者一執行該檔便會觸發並持續感染更多檔案。
-
開機磁區病毒(Boot Sector Virus):感染磁碟的開機磁區或主開機記錄(MBR),在作業系統載入前就取得系統控制權。
-
多型態病毒(Polymorphic Virus):每次感染時透過加密與變異改變自身程式碼,藉此規避特徵碼比對式的防毒偵測。
-
指令碼病毒或巨集病毒(Script/Macro Virus):以巨集語言(如 VBA)或指令碼撰寫,常藏於 Office 文件中,開啟檔案並啟用巨集時執行。
-
蠕蟲(Worm):能自我複製並透過網路自動散播,不需依附宿主檔案或使用者操作,常利用系統漏洞快速擴散。
-
木馬程式(Trojan Horse):偽裝成正常或有用的程式誘騙使用者安裝,實際暗藏惡意功能,本身不會自我複製。
-
後門木馬程式(Backdoor Trojan):在系統中開啟隱藏通道,讓攻擊者得以繞過正常驗證、遠端持續存取受害主機。
-
遠端存取木馬程式(Remote Access Trojan,RAT):讓攻擊者遠端完整控制受害電腦,可監看螢幕、側錄鍵盤、開啟攝影機或竊取檔案。
-
銀行木馬程式(Banking Trojan):專門竊取網路銀行與金融帳號憑證,常以網頁注入、表單擷取等手法攔截交易資訊。
-
隱匿程式(Rootkit):取得系統最高權限並隱藏自身與其他惡意程式的存在,使偵測與清除變得困難。
-
勒索軟體(Ransomware):加密受害者檔案或鎖定整台系統,要求支付贖金(多為加密貨幣)以換取解密金鑰。
-
流氓軟體(Rogue Software):偽裝成正版防毒或系統工具,謊報不存在的威脅,誘騙使用者付費或安裝更多惡意程式。
-
潛在不受歡迎程式(Potentially Unwanted Program,PUP)或潛在不受歡迎應用程式(Potentially Unwanted Application,PUA):未必是純粹惡意,但常隨其他軟體夾帶安裝、附帶廣告或蒐集資料,造成使用者未預期的行為。
-
路過式下載(Drive-by Download):使用者僅造訪受入侵或惡意網頁,便在不知情下自動下載並執行惡意程式,通常利用瀏覽器或外掛的漏洞。
-
漏洞利用工具包(Exploit Kit):打包多種漏洞攻擊的自動化工具,會偵測受害者環境並挑選合適漏洞植入惡意程式,常用於路過式下載。
-
間諜撥號程式(Spyware Dialer):早期針對撥接數據機的惡意程式,暗中撥打高付費電話號碼,使受害者產生高額電話費用。
-
殭屍網路(Botnet):由大量被控制的受感染主機(殭屍電腦)組成的網路,供攻擊者集中操控,用於發動 DDoS、發送垃圾郵件等。
-
IRC 殭屍程式(IRCBot):透過 IRC 聊天室頻道接收攻擊者指令的殭屍程式,是早期殭屍網路常見的命令與控制(C&C)方式。
-
點擊殭屍程式(Clickbot):自動產生虛假的廣告點擊或流量,用於點擊詐欺(Click Fraud)以牟取廣告分潤。
誰在撰寫惡意軟體?原因是什麼?
駭客與惡意軟體作者來自不同年齡層、背景、國家,並具備不同程度的教育與技術能力,其動機與意圖也各不相同。現今大多數惡意軟體作者與網路犯罪者,會將惡意軟體視為一項可獲取金錢利益的商業活動;而所謂的「腳本小子」(script kiddies)通常是為了追求刺激,或希望在同儕之間建立駭客名聲而從事相關行為。
在追蹤三角測量行動(Operation Triangulation)中,卡巴斯基分析師 Boris Larin 為了研究 iOS 漏洞,需要用駭客技巧研究作業系統;Cobalt Strike 的 Beacon 是 Cobalt Strike 的惡意程式,而這個工具是增進企業安全的方法。
因此,水能載舟,亦能覆舟,端看你把工具用在哪裡。我們應該「知其白,守其黑。」
