無檔案惡意程式早已不是什麼新聞,但目前卻有 日益增加的趨勢。事實上,根據報導,在針對企業的攻擊得逞案例當中,有 77% 都是使用無檔案惡意程式。這類惡意程式不像傳統惡意程式那樣容易被發現,而且會利用各種技巧來長期躲藏在系統內部,因此隨時可能對企業流程或營運基礎架構造成危害。
以下詳細說明無檔案式威脅的幾種運作方式以及如何加以防範。
一.經由文件漏洞攻擊來啟動惡意程式
無檔案式威脅也有可能經由傳統方式進入系統,例如經由 JavaScript 或 VisualBasic (VBA) 惡意巨集腳本並內嵌在 Office 文件、PDF 檔案、壓縮檔或看似無害的檔案內部。這些巨集一旦執行,就會運用一些正常的工具 (如 PowerShell) 來進一步啟動、下載和執行更多程式碼、腳本或惡意檔案。這些巨集腳本通常也是經由 PowerShell 之類的工具來執行,並且會經過加密編碼,讓資安軟體無法輕易偵測觸發其執行的關鍵字。
這些腳本可利用 PowerShell 來讀取並執行本機系統上的執行檔,或者直接執行已經在記憶體中的程式碼。但即使是後者也不算完全的無檔案式攻擊,因為歹徒還是需要先透過檔案挾帶巨集來入侵系統。
無檔案式威脅透過文件漏洞發動攻擊的過程。
一般使用者可藉由培養一些良好的資安習慣並提升職場的資安意識,來盡可能避免遭受這類攻擊的威脅,例如:針對一些不請自來的郵件或檔案應提高警覺,尤其是在開啟時會要求使用者啟用巨集或腳本功能的檔案。
至於企業,則可採用一些端點防護產品來防範這類經由垃圾郵件散播的無檔案式攻擊,例如:趨勢科技Smart Protection Suites及 Worry-Free Business Security 這兩套解決方案都能妥善保護企業和使用者,偵測相關的惡意檔案和垃圾郵件,攔截所有相關的惡意連結。此外,還有趨勢科技Deep Discovery進階網路安全防護 可提供 電子郵件檢查來偵測惡意的附件檔案和網址以確保企業安全。趨勢科技Deep Discovery進階網路安全防護 可偵測從遠端執行的腳本,即使它並未下載到端點裝置上。
趨勢科技的Hosted Email Security 是一套不需您維護的雲端方案,提供持續更新的防護,幫您攔截垃圾郵件、惡意程式以及進階針對性攻擊,不讓威脅到達您的網路。此外,趨勢科技的垃圾郵件防護引擎不需病毒碼就能偵測並攔截惡意檔案。Hosted Email Security 能保護 Microsoft Exchange、 Cloud App Security for Microsoft Office 365、Google Apps 以及其他代管式或企業內電子郵件產品。趨勢科技電子郵件信譽評等服務可在收到電子郵件時偵測這類威脅所使用的垃圾郵件。
二.從記憶體內直接將惡意程式植入系統
無檔案式威脅的名稱由來,就是因為它們通常是直接從記憶體內載入執行。它們不像其他惡意程式會有寫入硬碟的動作,因而讓防毒軟體很難加以偵測。無檔案惡意程式會運用多種技巧從記憶體內執行。最常見的是直接將惡意程式碼注入某個正常的執行程序以躲避偵測。此外,也會利用一些正常的系統管理工具和應用程式開發介面 (API),如:PowerShell、PsExec 與 Windows Management Instrumentation (WMI) 來入侵正常執行程序的記憶體並取得其權限。
像這樣經由記憶體漏洞的攻擊技巧,最常見的就是所謂的「Reflective DLL 注入」。這是一種將動態連結程式庫 (DLL) 載入某個執行程序當中的技巧,如此就不用將 DLL 寫到磁碟上。
EternalBlue 就是一種採用記憶體漏洞的攻擊手法。EternalBlue 利用的是一個 Server Message Block 1 (SMB 1) 通訊協定的漏洞,該漏洞可讓駭客讀取應用程式、存取系統服務,以及在系統上寫入檔案。接著,駭客就能將自己的程式碼注入本機系統的「lsass.exe」(安全認證服務) 執行程序當中,這是 Windows 系統上負責管理使用者的憑證、登入與存取金鑰的重要系統執行程序。駭客可利用它當跳板來發動其他攻擊,例如執行 Mimikatz 這類的滲透測試工具,進而從記憶體內擷取使用者的登入憑證。
幾種不同的記憶體漏洞攻擊技巧。
除此之外,無檔案式威脅也會利用一種稱為「執行程序掏空」(process hollowing) 的技巧,SOREBRECT 勒索病毒 正是使用這項技巧。該病毒跟 Petya/NotPetya 一樣會利用 PsExec 工具來注射其程式碼,或者,更精確一點說,會將原本正常執行程序的程式碼 (例如 Windows 用來執行系統服務的 svchost.exe) 掏空並換成自己的程式碼之後再讓它繼續執行。另外,也一些無檔案式威脅是從原本已經有資料或程式碼的系統記憶體內使用或載入其惡意程式。雖然,惡意程式這樣的作法可躲避傳統防毒軟體的偵測,但一旦系統重新開機,惡意程式就會消失。
目前並無百分之百偵測及防範這類記憶體式攻擊的方法。因此,採用縱深防禦 (也就是多層式) 的防護就顯得相當重要。此外也應隨時保持系統和應用程式更新、妥善保護系統管理工具,並部署一些額外的防護技術,如行為監控、沙盒模擬分析、防火牆、入侵防護等等。
更重要的是主動監控端點裝置和網路的活動。無檔案式威脅或許不像其他惡意程式那樣容易偵測,但它們仍可能會留下一些 IT 及資安人員可特別留意的蛛絲馬跡,例如可疑的網路流量 (包括 C&C 通訊和資料外傳流量)。為此, 趨勢科技Deep Discovery 進階網路安全防護 ™ 的客製化沙盒模擬分析技術可藉由與 Deep Discovery Analyzer、趨勢科技Deep Security™ 和趨勢科技OfficeScan™ 整合來攔截 API 呼叫並檢查是否有執行惡意程式躲避技巧或惡意行為的字串。
三.採用腳本來安裝惡意程式
無檔案式威脅還可將其程式碼加密編碼、組譯或內嵌在腳本當中,不必在磁碟上產生檔案。如此歹徒就能攻擊目標作業系統或應用程式而不被傳統防毒軟體偵測。不僅如此,採用腳本的攻擊方式也非常靈活,因為這些腳本在執行時可經由檔案的形式或直接包含在指令列參數內。這樣的彈性可衍生出更不易被偵測的攻擊手法。比方說,將腳本的啟動流程拆成好幾個階段並分散在不同的程序當中執行。
腳本式攻擊會使用像 PowerShell 這類工具的腳本語言來執行各種程式碼。還有一些惡意的腳本會攻擊應用程式 (如 Microsoft Office) 的漏洞或設計缺陷。譬如,駭客可從遠端執行記憶體內的腳本來躲避端點防護產品的偵測。許多無檔案惡意程式就是採用這樣的手法,如:KOVTER、POWMET 和 FAREIT。
採用 PowerShell 工具的腳本式攻擊感染過程。
無檔案式威脅之所以特別鍾情於 PowerShell,就在於它既彈性又容易取得。這是一個許多 Windows 版本都內建的功能,更何況它還有一個支援多重平台的開放原始碼版本 (PowerShell Core)。此外,PowerShell 更具備呼叫 API 的能力,因此不但可執行一些重要的系統與應用程式功能,還可以執行作業系統物件。而且因為它本身並無磁碟上的執行檔,因此歹徒可透過無檔案的方式讀取或派送惡意程式,或執行其它惡意指令。
要防範腳本式攻擊,一般使用者及企業可強制實施最低授權原則,盡可能降低遭受腳本式攻擊的危險。同時應妥善管制、加強管理並 保護系統管理工具。而 PowerShell 本身也內建安全機制來協助使用者進一步分析異常行為,此外,也可設定它偵測一些惡意程式常用的參數或指令。盡可能停用或刪除過時且可能被駭客用來入侵系統的第三方外掛程式和元件。
建置一套行為監控機制,也有助於監控及攔截惡意程式相關的異常行為和活動,例如監控被挾持的執行程序呼叫「命令提示字元」視窗來執行 PowerShell 腳本。趨勢科技的端點防護產品,包括:PC-cillin 2019 雲端版、趨勢科技OfficeScan及 Worry-Free Business Security 全都內建行為監控能力來偵測腳本式無檔案惡意程式。不僅能協助企業發掘惡意行為,還能加以攔截,不讓惡意程式得逞。OfficeScan 更內含裝置控管 功能,可避免歹徒使用可卸除式媒體 (如 USB 隨身碟和光碟機),避免這些裝置成為無檔案惡意程式的入侵 管道 。
四.利用 IT 和系統管理工具來安裝惡意程式
無檔案式威脅還可能「就地取材」或者利用系統內建的功能和管理工具。最近發生的一個真實案例就是駭客結合 Windows Management Interface Command (WMIC) 和 CertUtil 兩個正常的系統工具來安裝資訊竊取程式。
除此之外,還有一些以獲利或從事間諜活動為主的攻擊會利用 Microsoft Register Server (regsvr32) 這類指令列工具來載入並執行惡意程式庫 (DLL),或使用經過變造的滲透測試工具 (如 Cobalt Strike) 來滲透系統。
Petya/NotPetya 勒索病毒的感染過程使用了多項工具來將受害系統的檔案加密並覆蓋磁碟上的資料。
這些工具為無檔案式威脅提供了一個現成的跳板,不須仰賴經過組譯的執行檔。而且還可利用這些工具來取得惡意檔案、下載或啟動其他惡意程式、竊取資料並將資料外傳、長期潛伏在系統內部,或者在內部網路橫向移動。不僅如此,由於這些威脅利用的都是一些正常的系統工具,所有更難加以偵測。 歹徒最常利用的工具包括:指令列介面 (PowerShell、命令提示字元、regsvr32、rundll32、WMIC、Bitsadmin、CertUtil 及 msiexec)、遠端桌面,以及第三方滲透測試工具 (如 Cobalt Strike 和 Mimikatz)。
許多應用程式都有一些內建的指令列工具來協助它們更新程式,這些工具的開發人員應該在設計階段即將安全納入考量。強制實施存取控管政策,並且在必要時才啟用這些工具。妥善保護遠端管理工具的使用,企業可利用應用程式控管這類機制來管制系統只能執行白名單上的應用程式或工具。至於那些利用正常工具的威脅,則可藉由行為監控來達到遏止惡意程式相關活動的效果。
五.利用無檔案式技巧長期躲藏
惡意程式一旦能夠駭入端點、網路或伺服器,通常都會盡可能長期躲藏在系統內部,就連系統重新開機也不會消失。無檔案式威脅會運用各種特殊技巧來常駐系統內部,最主要的作法就是建立一套還原機制讓惡意程式可以重新啟動。這類技巧同樣也會利用 Windows 內建的工具程式來達成目的。
一種常見的常駐機制就是將惡意程式碼或檔案儲存在系統登錄當中。Windows 的系統登錄 (Registry) 原本是用來儲存組態設定以及應用程式檔案關聯資料。藉由將程式碼儲存在系統登錄當中,惡意程式就能在系統重新開機時自動還原並執行其程式碼,或者在某些檔案 (如捷徑) 被點選時執行其程式碼。一個實際的例子就是無檔案版本的點閱詐騙惡意程式: KOVTER。它利用系統登錄來儲存惡意程式碼,然後再利用 PowerShell 來將這些程式碼解開並注入某個執行中的正常執行程序。
使用 PowerShell 和 WMI 的無檔案式虛擬加密貨幣挖礦惡意程式感染過程。
另一項長期躲藏技巧是透過 Windows 工作排程器,此工具可讓程式和腳本在預定的時間啟動。對無檔案惡意程式攻擊來說,它們會建立排程工作來執行其程式。其他類型的惡意程式也會運用這項技巧,例如某些資訊竊盜木馬程式與銷售櫃台系統 (POS) 惡意程式 ,目的是為了躲避傳統沙盒模擬分析的偵測。除此之外,駭客還能設定一些重複執行的工作並搭配一些系統登錄機碼來自動重複感染系統。
最近,駭客也開始利用 Windows 的 WMI 管理介面來常駐系統。WMI 原本是設計用來管理連網的裝置和系統。但到了網路犯罪集團手中,就變成了駭客橫向移動、執行程式與長期躲藏的工具。通常,無檔案式威脅會使用 WMI 存放庫 (Repository) 來儲存惡意腳本,接著再利用 WMI 本身的一些功能來呼叫這些腳本,例如:WmiPrvSE (WMI Provider Host/Service) 可提供管理資訊;Scrcons (WMI Standard Event Consumer) 工具程式可執行 WMI 腳本;Wmic (WMI Command Line) 指令列工具可允許物件呼叫 WMI。還有某些 虛擬加密貨幣挖礦惡意程式的變種也會透過 WMI 來長期躲藏於系統內。
主動監控端點及其連接的網路可有助於減少進一步的攻擊或重複感染。例如,系統管理員或 IT 及資安團隊可利用 Microsoft 的「Autoruns」工具來檢查系統登錄當中是否有惡意的機碼。此外也可利用 WMI 本身的功能 (尤其是 WMI 事件查詢功能) 來偵測它是否遭到利用並加以阻止。PowerShell 本身也有類似的 功能可以強化系統安全或偵測惡意程式的相關活動。
趨勢科技的 趨勢科技 Smart Protection Suites也可提供高準度機器學習、網站信譽評等、行為監控、應用程式控管等功能,來有效降低這類持續性無檔案式攻擊的威脅。例如,趨勢科技 Endpoint Sensor 可監控 WMI 的相關事件,有助於迅速查看哪些執行程序或事件正在觸發惡意活動。
原文出處:Security 101: Defending Against Fileless Malware 作者:Simon Floreza、Donald Castillo 及 Mark Manahan (威脅分析師)
⊚延伸閱讀
無檔案式挖礦惡意程式出現新技巧,並已發現變種
虛擬貨幣全球淘金潮, 2017年挖礦惡意程式, 台灣排全球第三
目標式勒索:勒索病毒採 APT 攻擊手法再進化 , 某企業超過一百台伺服器被 SOREBRECT 加密
【資安 】AutoIt 蠕蟲透過可移除磁碟,散播無檔案後門程式BLADABINDI/njRAT
Locky 勒索病毒等惡意程式,如何反制傳統的沙盒模擬分析?