偵測/對抗勒索病毒入侵並加密電腦以及橫向移動
目標-三段防禦:
- 入侵初期:釣魚、惡意附件、盜帳密、漏洞利用、RDP/SSH/VPN/瀏覽器 session 被濫用
- 主機加密前:下載 payload、提權、關閉防護、刪除備份、批次改檔、副檔名異常變更
- 橫向移動:掃描內網、盜憑證、Pass-the-Hash / token 濫用、遠端執行、共享資料夾批次加密
所以方法要同時涵蓋:
- 預防
- 早期偵測
- 阻斷
- 復原
一、核心防線:先讓「進不來、跑不起來、傳不開」
1. 最小權限與權限分離
這是最重要的基本盤。
做法
- 使用者平常不得有本機管理員權限
- 管理員帳號與日常帳號分離
- 伺服器管理、網域管理、備份管理帳號分開
- 不允許一般使用者寫入系統敏感路徑、啟動目錄、排程、服務設定
- 限制誰可以存取共享資料夾與 NAS,採 need-to-know
- 將高權限帳號限制在指定跳板機/管理網段使用
對勒索病毒的效果
- 降低 payload 安裝、關閉防護、刪 shadow copy、停服務、改 GPO 的能力
- 降低橫向移動成功率
- 限縮單一帳號被盜後的 blast radius
2. 應用程式白名單 / 執行控制
勒索病毒最後一定要「執行」;不讓未知程式、腳本、巨集、暫存目錄 payload 跑起來,是很有效的。
做法
-
只允許:
- 受信任路徑
- 受信任簽章
- 核准 hash / publisher
-
阻擋從以下位置直接執行:
- Downloads
- Temp
- AppData / user writable directories
- 可寫入的共享磁碟
-
限制腳本執行:
- PowerShell / shell script / JScript / VBScript / AppleScript / Python / bash
-
停用或嚴格限制 Office 巨集、自動執行、外掛載入
-
對 LOLBins / 系統原生工具做行為限制,而不是完全信任
各系統重點
Windows
- 阻擋使用者可寫路徑執行 EXE/DLL/script
- 限制 PowerShell、WMI、rundll、regsvr32、mshta、schtasks、psexec 類遠端或代理執行模式
- 限制巨集、COM script、未簽章腳本
macOS
- 僅允許已核准 app / developer
- 限制 shell script、LaunchAgents、LaunchDaemons、Login Items 的建立
- 限制 AppleScript / osascript 自動化濫用
- 對 Downloads / user writable 目錄的 binary 執行做額外審核
Linux
- 限制
/tmp,/var/tmp,/dev/shm的執行權限與 mount option - 避免一般使用者任意寫入 systemd service/unit、cron、profile scripts
- 限制 interpreter 執行來源與 SUID/SGID 濫用
- 收斂 sudo 規則,避免 NOPASSWD 過寬
3. 巨集、腳本、解譯器與遠端管理面縮限
勒索攻擊常不是直接丟 EXE,而是先用腳本落地、拉 payload、橫移。
做法
-
關閉不必要的 scripting engine
-
將 PowerShell / bash / zsh / python / perl / osascript 使用納入白名單或稽核
-
關閉不必要的遠端管理:
- RDP
- WinRM
- SSH
- SMB admin share
- Remote registry
- Apple Remote Events
-
必要時只允許從管理跳板機來源存取
-
對遠端管理要求 MFA、來源 IP 限制、時間限制、一次性授權
對橫向移動的效果
直接打斷:
- 遠端 shell
- 批次散播
- 遠端下指令
- 透過系統管理協定部署勒索程式
4. 補丁管理與攻擊面縮減
勒索集團很常利用:
- 已知 VPN / gateway 漏洞
- RDP / SMB / 檔案服務漏洞
- 瀏覽器 / 插件漏洞
- kernel / driver 提權漏洞
做法
- OS、瀏覽器、Office、VPN、檔案同步工具、hypervisor、NAS 韌體定期更新
- 移除不需要的服務、通訊埠、舊協定
- 關閉 SMBv1、舊 TLS、匿名存取、guest account
- 對公開服務做外部 attack surface inventory
- 高風險服務加快 patch SLA
二、如何「偵測」勒索病毒入侵與加密前兆
關鍵不是只找 known IOC,而是找 行為模式。
5. 偵測「大量改檔 / 高熵加密 / 副檔名異常」行為
勒索加密幾乎一定有檔案層面的異常。
可偵測訊號
-
短時間大量:
- rename
- write
- delete
- extension change
-
檔案內容熵值突然升高
-
同一程序快速開啟大量文件副檔名:
- docx, xlsx, pdf, jpg, dwg, pst, db, sql, zip
-
大量檔案尾碼被統一改名
-
出現 ransom note 檔案名稱模式
-
使用者目錄、共享資料夾、NAS 掛載點被批次存取
對策
-
建立每台主機與每個使用者的「正常檔案操作 baseline」
-
對 burst write / rename 設定閾值
-
發現異常即:
- 暫停程序
- 隔離主機網路
- 切斷共享磁碟存取 token
- 封鎖帳號
6. 偵測「備份刪除 / 復原機制破壞」
勒索病毒在加密前,常先刪復原點與備份。
Windows 典型訊號
- 刪除 shadow copies
- 關閉備份服務
- 修改 recovery / boot 設定
- 清除 event log
- 停用安全服務
macOS / Linux 典型訊號
- 刪除快照
- 停止備份 daemon / sync process
- 卸載備份掛載點
- 刪除 rsync 目的端歷史版本
- 改寫保留策略或清空 repository
做法
監控:
- snapshot delete
- backup config modify
- backup target unmount
- service stop / disable
- log tampering
- recovery tool invocation
這種事件權重應該非常高,因為對一般使用者不是日常行為。
7. 偵測提權與防護停用
勒索程式常先升權,然後關閉保護與 logging。
監控重點
- 新增本機管理員
- sudoers / admin group / wheel group / administrators group 變更
- 關閉或卸載安全代理
- 停用 log service / audit service / EDR sensor 類代理
- 修改 kernel / security policy / firewall 規則
- 關閉 tamper protection 類保護
- 建立開機自啟項、排程、服務、launch agent、systemd unit
判斷邏輯
若以下串在一起,風險極高:
- 下載未知 payload
- 啟動腳本/解譯器
- 提權
- 關閉保護
- 批次檔案改寫或橫向連線
這種應直接自動隔離。
8. 偵測憑證竊取與橫向移動前兆
真正危險的是「一台中,整域爆」。
要看的行為
- 對 LSASS / credential store / browser secrets / keychain / SSH keys 的存取
- 異常 token impersonation / Kerberos ticket 操作 / cached credentials 存取
- 大量登入失敗後成功
- 同帳號在短時間內從多台主機登入
- 同帳號登入從未管理過的伺服器
- 一台端點短時間連很多 SMB / RDP / SSH / RPC / WinRM / WMI 目標
- 掃描 445/3389/22/5985/5986 等管理協定
方法
- 對身份驗證事件做關聯分析
- 建立 east-west 連線基線
- 偵測管理協定的異常 fan-out
- 偵測 service account 橫向使用異常
- 對「單一端點同時連多個檔案伺服器」提高告警
9. 偵測 Command-and-Control 與異常外連
不是每個勒索樣本都需要長期 C2,但很多入侵階段會有。
看什麼
- DNS 查詢異常高 entropy 網域
- 新註冊網域、低聲譽網域
- 端點對罕見外部 IP 持續 beacon
- 使用常見埠上的異常協定型態
- 突然大量外傳檔案或壓縮後上傳
- 雲端儲存 / paste / webhook 類濫用
注意
現在很多攻擊會偽裝成 HTTPS 正常流量,所以要看:
- 主機行為 + 流量時間型態 + 程序關聯 而不是只看 IP/domain 黑名單。
三、如何阻止「橫向移動」
這一段是重點。很多環境不是死於第一台,而是死於共享權限與平面網路。
10. 網路分段與管理面隔離
做法
把網路切成至少這幾層:
- 一般使用者端點區
- 伺服器區
- 備份區
- 管理區
- 高敏感資料區
- OT / IoT / 印表機等特殊區
規則原則
-
預設 deny east-west
-
只開必要 port / 必要方向
-
RDP/SSH/WinRM/SMB 僅允許:
- 指定來源
- 指定身分
- 指定時段
-
備份區不可被一般端點直接寫入
-
AD / IdP / 檔案伺服器不得讓一般工作站任意橫向連線
效果
即使單機被打,也不容易擴散到:
- 網域控制面
- 備份
- 機密資料區
- 其他使用者端點
11. 管理平面獨立、跳板化
做法
- 所有管理流量走 jump host / bastion
- 管理帳號不可在一般工作站登入
- 管理站不可瀏覽外網、收信、裝日常軟體
- 管理操作全程留痕,必要時錄影/錄命令
- 管理權限採 JIT / 限時授權
對抗效果
- 減少高權限憑證落在使用者端點
- 阻止 attacker 從一台員工 PC 直接碰核心伺服器
12. 共享資料夾與 NAS 權限縮限
勒索常沿著 SMB/NFS/同步資料夾加密。
做法
- 共享權限最小化,不給 Everyone / Domain Users 廣泛寫入
- 把唯讀與讀寫分開
- 高價值資料夾改成流程式寫入,不是所有人直接 mount RW
- 重要共享目錄啟用版本化 / 快照
- 對單一用戶的異常大量檔案修改設節流或自動鎖定
- 對 service account 禁止互動式登入與橫向用法
13. 身分層的橫向移動抑制
做法
-
不共享本機管理員密碼
-
本機管理員密碼每台不同、定期輪替
-
Service account 最小權限、不可廣泛登入
-
禁止高權限帳號在低信任主機登入
-
對高權限帳號啟用:
- MFA
- 條件式存取
- 裝置健康檢查
- 地理 / 來源風險限制
目的
讓 attacker 即便拿下一台,也拿不到「通行整個網域」的金鑰。
四、各 OS 的重點差異
A. Windows
Windows 在企業裡最容易成為勒索主戰場,因為:
- AD / SMB / Office / PowerShell / RDP 生態完整
- 憑證、腳本、橫移工具鏈成熟
Windows 防守重點
- 關閉或限制 Office 巨集
- 限制 PowerShell / WMI / WinRM / 遠端排程
- 阻擋 user-writable 路徑執行
- 強化 LSASS / credential 保護思路
- 限制 SMB 橫向與 admin share
- 監控 shadow copy、backup、event log 操作
- 監控新服務、排程、registry autorun、startup folder
- 管理員帳號分離,勿重複本機 admin 密碼
- GPO/AD 變更高度審計
- 對檔案伺服器做異常改檔告警
Windows 特別要抓的事件類型
- 大量檔案改寫
- 建立/刪除服務
- 排程任務建立
- 防毒/防護停用
- 可疑 PowerShell commandline
- SMB fan-out
- 共享檔案異常 rename
- 憑證 dump 行為
- vss / wbadmin / bcdedit / event log 清理類行為
B. macOS
macOS 企業環境相對少,但不是安全。近年也常見:
- 偽裝更新安裝包
- 瀏覽器憑證竊取
- 開發者機器上的 SSH/Git/雲端憑證被拿走
- LaunchAgents 持久化
- 壓縮、偷檔、再加密
macOS 防守重點
- 限制未知 app 與未核准開發者執行
- 監控 LaunchAgents / LaunchDaemons / Login Items
- 監控 TCC 權限濫用(文件、桌面、下載、全磁碟存取)
- 強化 Keychain、SSH keys、browser tokens 保護
- 限制 AppleScript / osascript / shell script 自動化
- 對使用者目錄大量檔案操作設監測
- Time Machine / snapshot / 版本化備份隔離
- 開發機與一般辦公機分級管理
macOS 特別要抓的事件類型
- 未知 binary 從 Downloads 啟動
- LaunchAgent 新增
- shell 解譯器呼叫網路下載再執行
- 文件目錄大量 rename/write
- SSH key / browser session / token 異常讀取
- 備份快照刪除
C. Linux
Linux 比較常見於:
- 伺服器
- container host
- CI/CD runner
- NAS / 儲存 / DB / VM host
勒索在 Linux 常見目標不是桌面,而是:
- VM datastore
- DB / mounted volumes
- 備份儲存
- ESXi / hypervisor / container volumes
- CI/CD 供應鏈節點
Linux 防守重點
- 收斂 SSH:禁密碼、禁 root 直登、限制來源、加 MFA
/tmp,/var/tmp,/dev/shm掛 noexec/nodev/nosuid 思路- sudo 最小化,避免寬鬆 sudoers
- 監控 systemd service、cron、authorized_keys、profile scripts
- 監控大量檔案改寫與 archive/compress 後外傳
- 對 NFS/SMB mount、備份儲存做嚴格 ACL
- 強化容器與主機隔離,避免 container escape 後加密 host volumes
- 對 CI runner、artifact repo、部署金鑰做隔離管理
- 關鍵資料與備份存放不可被一般應用主機直接刪改
Linux 特別要抓的事件類型
- ssh 爆破後成功登入
- sudo 提權
- 新增 systemd/cron/persistence
- 大量 inode 變動 / rename
- 刪除快照 / 備份
- 對多台內網主機同時 SSH / SMB / NFS 連線
- 可疑壓縮與 exfil
- 修改
authorized_keys
五、備份與復原:真正的最後防線
沒有這段,再好的偵測也可能來不及。
14. 備份要能扛勒索,不只是「有備份」
正確做法
-
3-2-1 思路:
- 至少 3 份資料
- 2 種不同媒介/儲存型態
- 1 份離線或不可直接修改
-
備份與正式網域、正式帳號、正式網段隔離
-
備份帳號不能被一般 AD 帳號直接濫用
-
備份資料要有:
- immutable / append-only / object lock 類保護思路
- 版本化
- 快照
-
定期做 restore drill
-
針對 AD / DB / NAS / VM / Git / CI secrets 做獨立復原計畫
常見錯誤
- 備份掛載在同一台主機可寫路徑
- 備份帳號與網域管理共用
- 從未實際還原測試
- 備份也被同一組憑證刪掉
六、實戰上該怎麼設偵測規則
不要只靠 IOC。建議用「高風險連續事件」思路。
15. 高價值關聯規則範例
規則 A:疑似勒索前置
- 未知程式從 Downloads/Temp 啟動
- 隨後呼叫腳本解譯器
- 再出現提權或停用保護
- 5 分鐘內大量 rename/write
=> 直接隔離主機
規則 B:疑似橫向移動
- 單一端點在 10 分鐘內嘗試連線多台 445/3389/22/WinRM
- 同帳號跨多台主機登入
- 緊接著共享磁碟異常改檔
=> 鎖帳號 + 隔離來源端點 + 封鎖 east-west
規則 C:疑似備份破壞
- snapshot delete / backup service stop
- event log 清理
- 隨後大量檔案操作
=> 立刻高優先級事件處置
七、入侵後的即時處置方法
16. 一旦發現疑似加密,先做什麼
順序通常是:
先隔離
- 切斷主機網路
- 暫停共享磁碟掛載
- 封鎖帳號/權杖
- 阻止該主機對其他主機的管理協定連線
再保全證據
- 保留記憶體、程序、網路連線、事件紀錄
- 不要急著重灌到失去調查線索
- 確認是否有資料外洩,不只是加密
再做範圍界定
- 哪些帳號被用過
- 哪些檔案伺服器受影響
- 是否碰到 AD / 備份 / hypervisor / NAS
- 是否已有持久化點
最後才是復原
- 先封堵 root cause
- 旋轉密碼、金鑰、token
- 用乾淨映像重建
- 從乾淨時間點還原
八、最實用的落地清單
17. 最少應做到的 12 件事
- 一般使用者沒有本機 admin
- 高權限帳號與日常帳號分離
- RDP/SSH/WinRM/SMB 僅限管理來源
- 巨集與未知腳本預設阻擋
- user-writable 路徑不可直接執行
- 監控大量 rename/write/delete
- 監控 snapshot/backup/log 清除
- 監控新服務/排程/自啟項
- 監控橫向掃描與管理協定 fan-out
- 網路分段,預設阻擋 east-west
- 備份隔離且不可直接刪改
- 定期做 restore drill 與桌面演練
結論
抓來源、封鎖來源、保留紀錄,當然值得做。 但對勒索病毒來說,它的價值主要在這三件事:
- 加快發現與圍堵
- 幫你做範圍界定與根因分析
- 幫你補規則,避免下次再中
它不能取代:
- 最小權限
- 應用執行控制
- 橫向移動阻斷
- 備份隔離
- 異常加密行為偵測
什麼叫「來源」
這裡其實有好幾種來源,不只是一個 IP。
可追的來源層次
- 檔案來源:哪個檔案、hash、簽章、下載 URL、父程序
- 程序來源:誰啟動它、command line 是什麼、從哪個路徑跑
- 網路來源:來源 IP、domain、URL、user-agent、TLS 指紋、DNS 查詢
- 身分來源:哪個帳號、哪個 token、哪台裝置、哪個 session
- 橫向來源:從哪台主機跳過來,用什麼協定,對哪些目標連
- 初始入侵來源:釣魚郵件、惡意附件、弱密碼登入、漏洞利用、共享磁碟落地
真正有用的是把這些串起來,不是只記一個「惡意 IP」。
有幫助的地方
1. 幫你更快 block 擴散
如果你能在早期抓到:
- 哪個 URL 下載了 payload
- 哪個 domain 在 C2 beacon
- 哪台主機開始掃 SMB / SSH / RDP
- 哪個帳號開始跨機器登入
你就可以立刻做:
- block domain / IP / URL pattern
- 封鎖該主機 east-west 流量
- 停用該帳號或 token
- 阻擋該 hash / path / signer
- 封鎖特定通訊協定或來源網段
這對阻止第二台、第三台被打到很有價值。
2. 幫你找到真正入口
很多人只看到「檔案被加密」,但不知道:
- 是釣魚附件打進來
- 還是公開服務被 exploit
- 還是帳密外洩後從 VPN / RDP 進來
- 還是內部某台先被木馬,再橫移出去
如果你有完整來源紀錄,就能回答:
- 第一台中的是誰
- 第一個惡意程序是什麼
- 第一個外聯是什麼
- 哪個帳號先被濫用
- 哪條橫向路徑最先成功
這直接影響你後續補洞,不然你只是在「擦地板」。
3. 幫你做 blast radius 分析
有來源紀錄,才知道影響範圍:
- 哪些主機接觸過同一 C2
- 哪些共享資料夾被同一帳號改過
- 哪些機器收到同樣 payload
- 哪些主機彼此有 lateral connection
- 哪些憑證可能已外洩
沒有這些,你很難判斷:
- 是單機事件
- 還是整段網路已被種下持久化
4. 幫你做事後規則優化
例如你調查後發現:
- payload 都從 user writable path 啟動
- 橫向都走 SMB admin share
- 會先刪 snapshot 再加密
- 會用某種腳本下載器當第一階段
- 會用特定 parent-child process chain
那你下次就能把防守從「黑名單」提升成「行為規則」。
但為什麼它不是主防線
因為很多「來源封鎖」本身很脆弱。
1. IP / domain 很容易換
攻擊者可以:
- 換 VPS
- 換 domain
- 用短命 C2
- 用被入侵合法站台
- 用 CDN / cloud fronting 類手法
- 直接走合法 SaaS / webhook / object storage
所以只封 IP/domain,常常只能擋到一小段。
2. 有些勒索根本不太依賴外聯
尤其內網落地後,可能直接:
- 本地執行
- 用內部分享散播
- 直接掃 SMB / SSH / NFS
- 用偷到的帳密登入橫移
這時候「抓外部來源」幫助有限,因為真正危險的是內網橫移來源。
3. 初始來源未必等於真正擴散來源
例如:
- 初始來源:釣魚郵件附件
- 第二階段來源:瀏覽器下載器
- 第三階段來源:內網橫向工具
- 真正造成大規模災害來源:被盜的管理員帳號 + 檔案伺服器共享權限
所以你不能只看最一開始的外部 URL。
最有價值的做法:不是單純 block,而是「來源關聯」
你真正要做的是這種鏈條:
關聯鏈
帳號 → 主機 → 程序 → 檔案 → 網路連線 → 遠端目標 → 檔案改寫行為
例如:
- user A 在 host 17 開了一個未知 binary
- binary 由 shell script 從某 URL 下載
- 該 binary 30 秒後連了數個外部 domain
- 隨後嘗試連 20 台 SMB 主機
- 接著大量 rename 共享資料夾檔案
- 同時刪除本地 snapshot
這種關聯資料,遠比一個 blocklist 有價值。
什麼情況下「抓來源並 block」特別有用
很有用
- 釣魚附件 / 下載型木馬
- 明顯 C2 beacon
- 同一批 IOC 正在多台主機出現
- 外部掃描 / 爆破 / exploit 嘗試
- 某台端點開始對內大量 SMB / SSH / RDP 掃描
- 已知某帳號/token 被濫用
幫助有限
- 攻擊已在內網高權限帳號下擴散
- 檔案伺服器已被拿下
- 備份已被刪
- 攻擊者只用合法內部工具與管理協定
- 只剩最後加密階段才被看見
實務上應該記什麼
最少要留這些欄位
程序面
- process name
- full path
- hash
- signer
- parent process
- command line
- execution user
- first seen / last seen
檔案面
- create / write / rename / delete
- target path
- extension before/after
- write burst count
- entropy change
- ransom note pattern
網路面
- src host
- dst IP/domain/URL
- port/protocol
- DNS query
- bytes in/out
- connection frequency
- TLS/HTTP metadata
身分面
- user
- source host
- target host
- auth type
- success/failure
- privilege level
- token/session id
橫移面
- SMB/RDP/SSH/WinRM/WMI fan-out
- remote service creation
- remote command execution
- shared folder mass access
block 應該 block 什麼
不是只有防火牆 block IP。
應同時考慮
- block 惡意 IP/domain/URL
- block hash / signer / file path
- block 特定 parent-child process chain
- block 某帳號登入
- block 某台主機 east-west 流量
- block 某協定從非管理區使用
- block 對共享目錄的大量異常寫入
- block 來自 user writable 目錄的執行
這樣才是「來源導向 + 行為導向」的實作。
你要避免的誤區
1. 只做 IOC 黑名單
這很快就過期。
2. 只記錄外部來源,不記錄內部跳點
真正造成災害的常常是橫向那段。
3. 沒有把來源資料和加密事件關聯
有 log 但不能用,價值很低。
4. 只記錄,不自動處置
勒索很快,很多時候你沒有幾小時慢慢看。
實務建議
最好的答案是:
要抓來源、要 block、也要留證,但要把它設計成「行為關聯與快速隔離」的一部分。
優先順序
- 記錄來源與關聯鏈
- 偵測高風險行為
- 自動隔離主機/帳號/共享存取
- 再補外部 IOC block