💡 先搞懂問題:同樣是「中毒」,處理方式差很多
一般人說「電腦中毒了」,其實把很多不同的東西混在一起。有的惡意程式(Malware,泛指任何刻意設計來造成危害的軟體)要有人打開檔案才會散播,有的會自己在網路上一台接一台感染;有的目的是把檔案加密勒索,有的只是安靜地躲著偷資料。認錯類型,處理就會出錯:以為把一台電腦重灌就沒事,卻沒發現它早已擴散到整個網段;或者拚命修補系統漏洞,真正的入口卻是員工親手安裝的「免費工具」。
所以替惡意程式分類,不必背一長串名字,只要依序問三個問題:
這一頁用「社區防疫」當比喻貫穿到底:一台電腦是社區裡的一戶人家,公司網路就是整個社區。防疫時大家最先關心的,是病原怎麼進門、又怎麼傳到下一戶。下圖畫出最常被拿來比較的三種進門方式,點選看看差別。
社區防疫也不是只靠關好門窗。公告欄上貼著已知帶原者的通緝照片、巡邏員會留意鬼鬼祟祟的舉動、來路不明的訪客先請到隔離觀察室待一陣子,這三件事分別對應後面會比較的特徵碼比對、行為偵測與沙箱。
🎮 互動實驗室 1:三個問題的分類決策樹
想一支惡意程式的特性,依序回答三個問題。旁邊的樹狀圖會亮出你走過的路,走到底會告訴你它屬於哪一類、怎麼防。
🎮 互動實驗室 2:病毒和蠕蟲,誰擴散得快?
同一個九台電腦的辦公室網路,PC1 已經被感染。切換病毒或蠕蟲,再調整「漏洞有沒有修補」和「員工會不會亂開檔案」,看兩種惡意程式分別被哪一種防禦擋住。
模擬中「員工打開檔案」的機率是示意數字(常亂開 35%、受過訓練 5%),用來比較趨勢,不代表真實統計。
🎮 互動實驗室 3:五種偵測方法,各抓得到什麼?
社區的防線有好幾種:拿通緝照片比對長相(特徵碼)、看行李裡有沒有可疑物品(啟發式)、觀察一個人實際在做什麼(行為監控)、先請到隔離觀察室待一陣子(沙箱),以及整個社區的監視系統加值班人員(EDR)。選一個情境、再選一種方法,看它能不能察覺、代價是什麼。
表中是觀念上的典型結果,實際產品常同時混用多種技術,效果也因設定而異。
🎮 互動實驗室 4:發現感染了,先做哪一步?
值班人員發現一台主機疑似被勒索軟體感染,同網段的檔案伺服器也開始出現異常。下面的卡片裡有六個正確步驟和一張不該出現的陷阱卡。依序點選卡片排進流程,點流程裡的卡片可以放回去,排好後按「檢查順序」。
🎮 互動實驗室 5:看症狀,判斷類型
每張卡描述一個事件現場,從下方選出最符合的類型。答完會用三個問題解釋為什麼。全部 11 張,每一類各出現一次。
📘 原理補完:把比喻接回技術
1. 十一種惡意程式,用三個問題排成一張表
回到資安,三個問題其實是三個不同的觀察角度。「宿主」問的是它以什麼形態存在:附在別的檔案裡、自己是一支程式,還是連檔案都不落地;「自我複製」問的是它怎麼擴散;「目的」問的是它進來之後要做什麼。有些名字描述的是其中一個角度,例如「木馬」講的是偽裝的進門方式、「無檔案型」講的是存在形態,所以同一支惡意程式可以同時符合兩個名字,例如一支夾帶後門的木馬。點下圖的格子,表格會標出同一格裡的類型。
| 類型 | 宿主 | 自我複製 | 主要目的 |
|---|---|---|---|
| 病毒 | 需要 | 會,靠人執行 | 不一定 |
| 蠕蟲 | 不需要 | 會,自動擴散 | 不一定 |
| 木馬 | 不需要(偽裝) | 不會 | 竊取或控制居多 |
| 勒索軟體 | 不需要 | 通常不會 | 勒索 |
| Rootkit | 不需要 | 不會 | 控制(隱藏) |
| 後門 | 不需要 | 不會 | 控制(再進來) |
| 間諜軟體/鍵盤側錄 | 不需要 | 不會 | 竊取 |
| 廣告軟體 | 不需要 | 不會 | 推廣告牟利 |
| 殭屍網路 | 不需要 | 部分會 | 控制(成群) |
| 邏輯炸彈 | 藏在正常程式 | 不會 | 破壞 |
| 無檔案型 | 不落地 | 不一定 | 不一定 |
表格裡有幾個常被拿來出題的細節。Rootkit 的特徵是隱藏、很難被一般防毒發現,藏在開機流程的 Bootkit 更難處理;邏輯炸彈要等特定時間或條件才觸發;殭屍網路的每一台電腦都聽命於攻擊者的 C&C 伺服器;勒索軟體近年常先竊取資料再加密(雙重勒索),而以破壞為目的、直接抹除資料的 Wiper 則連贖金都不談。另外,外觀每次散播都不一樣的多型(Polymorphic)病毒,會讓只認外觀的特徵碼比對失效,這正好引出下一段的偵測技術。
2. 偵測技術:每一種站在不同的時間點
實驗室 3 看的是「哪種方法抓得到什麼」,這裡換個角度看「它們在什麼時候出手」。一個檔案從寄進公司到被執行,會依序經過好幾道關卡,每一道用的技術不同,漏掉的東西也不同。選一個情境,按「下一步」讓樣本往下走。
特徵碼比對(Signature)把檔案和病毒碼資料庫裡已知惡意程式的特徵比對,就像拿通緝照片對長相。比對成功幾乎不會錯,但只認得已經收錄的樣本,新變種或全新的惡意程式要等廠商更新病毒碼後才抓得到,所以病毒碼必須定期更新。
啟發式分析(Heuristic,也譯作探索式)不執行檔案,而是檢查程式內容裡有沒有可疑的邏輯或功能組合,像檢查行李裡有沒有可疑物品。它的最大優點是有機會抓到從沒見過的新病毒,代價是比特徵碼更容易誤判。
行為監控(Behavior Monitoring)觀察程式實際做了什麼,例如短時間內大量加密檔案、竄改系統設定、連往陌生位址,像巡邏員注意一個人的舉動而不是長相。不管外觀怎麼變都能抓,也能發現無檔案攻擊;缺點是要等它開始動作才看得到,正常軟體做類似的事時也會誤判。
沙箱(Sandbox)是與正式環境隔開的執行空間,通常用虛擬機器建立,常放在郵件閘道或網路出入口,把可疑檔案先丟進去跑一段時間再決定放不放行,像隔離觀察室。它能看到真實行為,但需要時間,而且要有檔案可送。惡意程式會想辦法躲避分析,所以沙箱沒發現異常不代表一定安全。
另外兩個常一起考的做法:檔案完整性檢查預先算好正常系統檔案的校驗和(Checksum),之後定期比對是否被改動;偵測到拿不準的可疑檔案時,防毒會先把它移進隔離區(Quarantine),讓它無法執行,而不是直接刪除,避免誤刪重要檔案。惡意程式也不只出現在 Windows,Linux、macOS 與手機同樣需要防護。
3. 傳統防毒和 EDR:守門員與監視系統
傳統防毒(Antivirus,AV)的工作集中在「檔案進來的那一刻」:掃描、比對、決定攔或放。EDR(端點偵測與回應,Endpoint Detection and Response)在每台電腦上裝一個代理程式,持續記錄哪個程式被誰啟動、改了哪些檔案與設定、連到哪裡,依行為規則發出告警,並讓管理者從主控台遠端隔離主機。社區比喻裡,防毒是門口對照通緝照片的警衛,EDR 是整個社區的監視系統加值班人員。點下圖的方塊看每個環節做什麼。
| 比較 | 傳統防毒 | EDR |
|---|---|---|
| 主要看什麼 | 檔案的特徵 | 程序的行為與連線 |
| 擅長 | 已知威脅,準確 | 新變種、無檔案攻擊、合法工具被濫用 |
| 事後調查 | 幾乎沒有紀錄 | 保留完整時間軸 |
| 回應方式 | 刪除或隔離檔案 | 終止程序、遠端隔離主機 |
| 限制 | 新威脅會漏抓 | 需要人判讀告警;要能安裝代理程式 |
兩者不是互相取代的關係。現在許多 EDR 產品本身就內含防毒引擎,而 EDR 看的是主機內部;看網路流量的是 NDR(網路偵測與回應),兩者互補。把端點、網路、郵件、雲端與身分等來源放在一起關聯分析的稱為 XDR,由外部團隊代為監看與回應的託管服務則是 MDR。回到比喻:監視系統再多,沒有值班人員看畫面也沒用,EDR 同樣不是裝了就自動安全。
4. 抓到可疑檔案之後:靜態分析、動態分析與 IoC
偵測只告訴你「這個檔案可疑」,要封鎖與清除,還得知道它會做什麼、連到哪裡、影響範圍多大。直接在正式電腦上執行等於親手引爆,所以分析分成兩種。靜態分析(Static Analysis)不執行檔案,只從外部檢查:看檔案真正的格式(要看檔頭而不是副檔名,因為副檔名可以隨意更改,不能代表檔案真正的類型)、看裡面含有哪些文字與可能用到的功能,並計算雜湊值(Hash,檔案的數位指紋)拿去公開的多引擎情資服務比對,例如 VirusTotal。它快又安全,但看不到程式實際執行後的行為。動態分析(Dynamic Analysis)則把檔案放進沙箱或隔離的虛擬機器實際執行,觀察它產生了哪些程序、改了哪些系統設定、連到哪些位址;分析人員也會用除錯器設定中斷點、逐步執行,觀察程式的執行過程。它看得到真實行為,但比較花時間,而且同樣要記得:惡意程式會想辦法躲避分析,所以沙箱沒發現異常不代表一定安全,實務上兩種分析會互相搭配。
| 比較 | 靜態分析 | 動態分析 |
|---|---|---|
| 要不要執行 | 不執行 | 在沙箱中執行 |
| 速度與風險 | 快、安全 | 較慢,需隔離環境 |
| 看得到 | 格式、文字、指紋 | 真實的程序、設定與連線 |
| 盲點 | 看不到執行後的行為 | 沒發現異常不代表安全 |
IoC 的價值在於「分享與比對」。一台主機分析出來的惡意網域、IP 與檔案雜湊值,交給防火牆封鎖、交給 EDR 掃描其他端點、交給 SIEM 比對過去的日誌,才能從一台擴大到整個組織的防禦。要注意 IoC 描述的是已經留下的痕跡,主要對同一波攻擊有效,時效有限;另一個常一起出現的名詞 IoA(攻擊指標,Indicator of Attack)則著重在攻擊者正在進行的行為與意圖。想進一步知道攻擊者在每個階段想達成什麼,可以接著看 MITRE ATT&CK 戰術實驗室。
5. 感染後的處置,以及勒索軟體靠什麼翻身
實驗室 4 排出的順序,對應事件應變中「控制(Containment)、根除(Eradication)、復原(Recovery)」三個階段。最常被考的是第一步:發現惡意程式正在內網擴散時,先切斷受感染設備的網路,而且用拔網路線或 EDR 網路隔離,不要直接關機,因為記憶體裡的證據一關機就沒了。清除時如果懷疑是 Rootkit 這類深入系統底層的類型,通常選擇整台重建而不是只刪檔案。
勒索軟體最有效的事前對策是備份,但不是隨便一份備份都有用。攻擊者拿到管理員權限後,常會先找出並刪除或加密備份,再對正式資料動手。按下按鈕,看三種備份放法在勒索軟體發作時的下場。
所以勒索軟體的備份對策有三個重點。第一是至少一份離線(平時與網路斷開)或不可變(Immutable,寫入後在保留期間內任何人都改不了、刪不掉,連管理員帳號也一樣)的備份;常聽到的 3-2-1 原則是至少三份資料、兩種不同的儲存媒體、其中一份放在異地。第二是定期還原測試,從來沒還原過的備份,出事時不一定救得回來。第三是確認備份時間點早於感染,否則會把惡意程式一起還原回來。付贖金不能保證拿回資料,也不是控制措施;至於以抹除資料為目的的 Wiper,更是只有乾淨的備份和演練過的災難復原計畫能應對。備份頻率與可容忍的資料遺失量怎麼決定,可以看 RTO、RPO 與備份還原。
6. 易混淆整理
- 病毒 vs 蠕蟲:病毒需要宿主並靠人執行才擴散;蠕蟲不需要宿主、會自己透過網路擴散。修補漏洞對蠕蟲特別有效。
- 木馬 vs 後門:木馬是偽裝誘騙的載具,後門是它常留下的秘密進出通道。
- Rootkit:特徵是隱藏、難以偵測,選項寫「容易被防毒發現」一定是錯的。
- 勒索軟體 vs Wiper:前者加密後索取贖金,後者直接抹除資料,沒有贖金可談。
- 特徵碼 vs 啟發式:特徵碼準確但只認得已知的;啟發式能抓新的但較容易誤判。
- 防毒 vs EDR:防毒比對檔案特徵;EDR 持續記錄行為、能調查與遠端隔離。EDR 看主機,NDR 看網路。
- 靜態 vs 動態分析:靜態不執行、快且安全但看不到行為;動態實際執行、看得到行為但沒發現異常不代表安全。
- 釣魚郵件:釣魚郵件的連結本身是社交工程的攻擊手法,不是安裝在作業系統上的惡意程式;它常是把惡意程式送進來的途徑。
✅ 自我檢測
六題情境題,選了就會立刻顯示對錯與解析。
🎯 重點整理
- 分類先問三件事:需不需要宿主、會不會自我複製、主要目的是什麼。附著宿主又靠人執行才擴散的是病毒;不需宿主、自己透過網路漏洞擴散的是蠕蟲。
- 木馬靠偽裝讓人自己安裝、不自我複製,常留下後門;Rootkit 的特徵是隱藏、難偵測;殭屍網路聽 C&C 伺服器指揮;邏輯炸彈等條件成立才觸發;無檔案型主要在記憶體中借用系統工具運作。
- 特徵碼準確但只認得已知樣本,病毒碼要定期更新;啟發式與行為監控能抓新變種與無檔案攻擊,代價是可能誤判。
- 沙箱讓可疑檔案在隔離環境執行觀察,但惡意程式會想辦法躲避分析,所以沙箱沒發現異常不代表一定安全。
- 防毒看檔案特徵,EDR 持續記錄端點行為、支援調查並能遠端隔離主機;EDR 需要有人判讀,也要裝得上代理程式。
- 靜態分析不執行、看格式與雜湊值;動態分析在沙箱中實際執行、看程序與連線。兩者產出的 IoC(雜湊值、惡意網域與 IP)交給防火牆、EDR、SIEM 封鎖與比對。
- 感染處置順序:確認並啟動應變、隔離斷網(保持開機)、保全證據、用 IoC 界定範圍、清除並修補、從乾淨備份復原。勒索軟體最有效的事前對策是離線或不可變備份加上還原測試。