【提防惡毒纏身】認識無檔案惡意程式

    無檔案惡意程式日益嚴重,多少因為現今的防毒工具偵測能力越來越強,相對而言無檔案惡意程式較難被偵測,而且可長期匿藏兼無限復活,非常難纏。根據報導,針對企業的攻擊得逞案例當中,有 77% 是無檔案惡意程式攻擊,大家要認識這種攻擊方法,加倍提防。

    甚麼是無檔案惡意程式

    無檔案惡意程式(Fileless Malware)是一種利用既有軟件、被認可的應用程式如 Microsoft Word、Flash、Adobe PDF Reader、JavaScript 甚或系統工具如 Microsoft Windows Management Instrumentation (WMI) 、PowerShell 之類去執行惡意行動的網絡攻擊。它不似傳統的惡意程式那樣帶有明顯特徵,亦不以電腦硬盤為目標,尤其針對記憶體進行攻擊,其隱蔽性極高、匿藏期長,一般 whitelisting、signature detection、hardware verification、pattern-analysis、time-stamping 等防禦策略都難以招架。

    特別鍾情 PowerShell

    經常發現無檔案惡意程式都會利用微軟 PowerShell,PowerShell 是不少 Windows OS 的內建功能,能呼召 API 以執行重要的系統與應用程式以及 OS object。PowerShell 本身並無磁碟上的執行檔,又有支援多重平台的開放原始碼版本 (PowerShell Core),特點是 flexibility 及 accessibility,但亦成為滋生無檔案惡意程式的土壤。當然,無檔案惡意程式並非只針對 PowerShell,下列為無檔案惡意程式的一些特點:

    1. 利用文件漏洞

    此方法是透過傳統的 JavaScript 或 VisualBasic (VBA) 的巨集程式碼 (macro code) 內嵌於 Office 文件、PDF 檔案、壓縮檔或任何看似無害的檔案內。一旦執行,就會啟動 PowerShell 之類的正常工具,下載、解密或執行更多 payloads、程式碼或惡意檔案,或者直接執行記憶體中的程式碼,後者嚴格來說仍不算完全的「無檔案」攻擊,因為仍需要先透過檔案挾帶巨集來入侵系統。

    2.直接從記憶體執行

    典型的無檔案惡意程式就是直接從記憶體執行,不似傳統惡意程式寫入磁碟,令防毒軟件難偵測無檔案惡意程式。它可利用不同方式執行,常見的方式是將惡意程式碼注入正常的執行程序,以此避過偵測。另外,亦會利用正常的系統管理工具及 API 如 PowerShell、PsExec 與 Windows Management Instrumentation(WMI)來入侵正常執行程序的記憶體及權限。常用的技術包括Reflective DLL injection(將 dynamic-link library 載入執行程序)、EternalBlue (利用記憶體漏洞)、Process Hollowing(利用 PsExec 注入或替換既有程式碼)。

    3. 用腳本安裝惡意程式

    為求避免於磁碟上產生檔案而被偵測,無檔案惡意程式亦會將程式碼加密、混淆或嵌入腳本(Script-based)。此方法變化多端,既可以檔案形成執行,又可以直接套用於 command line(以 PowerShell、WScript、JavaScript、VBScript、mshta 等),如將腳本拆開好幾段,分散於不同程序當中執行。除了 PowerShell,黑客亦會針對應用程式如 Microsoft Office 的漏洞,如遙距執行記憶體內的腳本以躲避 Endpoint 防護偵測。

    4. 利用 IT 和系統管理工具

    黑客亦會就地取材,利用現成的系統內建功能和管理工具當成跳板,更可藉此下載或啟動更多惡意程式、長期潛伏、盜取及傳送資料、甚至在內部網路橫向移動。難纏之處是黑客利用既有的正常系統工具如 PowerShell、Command Prompt、regsvr32、rundll32、WMIC、Bitsadmin、CertUtil、msiexec 等 command line 介面,還有遠端桌面以及 Cobalt Strike、Mimikatz 等第三方滲透測試工具,一般都難以被偵測。

    5.長期匿藏兼無限復活

    無檔案惡意程式難纏之處運用各種特殊方式長期匿藏,甚至無限復活。例如惡意程式碼或檔案儲存在系統登錄(Registry)中,每次重新開機就會自動還原並執行其程式碼,此外亦有無檔案惡意程式依附於某些捷徑,典型例子就是 KOVTER。另一種賴死的方法是利用 Windows 工作排程器(Task Scheduler),令程式於預定時間啟動,此方法很多時用來避開沙盒偵測。最近,黑客亦利用 Windows 的 WMI 管理介面來常駐系統,利用 WMI 存放庫 (Repository) 來儲存,再利用 WMI 本身的功能呼喚,此方法可讓無檔案惡意程式橫向移動以及長期匿藏,某些挖礦惡意程式亦會用上此方法。

    防範無檔案惡意程式的確比較困難,基本動作當然是小心任可疑電郵、連結、檔案,就算是正常檔案或程式都不能掉以輕心。

    參考資料:https://bit.ly/2NtDcXN、https://bit.ly/2GHKRRF、https://bit.ly/2H1wNli

    #FilelessMalware #無檔案惡意程式

    相關文章