網路犯罪分子越來越常利用系統內建工具或服務來散播惡意軟體,原因是方便、有效和隱蔽。舉例來說,利用這些合法工具可以讓威脅活動混在正常的網路流量或IT/系統管理工作內,也讓這些惡意威脅能夠留下較少的痕跡,使得偵測更加困難。無檔案病毒就是其中一個例子。
無檔案病毒意味著沒有檔案被寫入或下載至受感染機器的本地磁碟執行。相對地,它們會在系統的記憶體內執行,或駐留在系統註冊表內以取得持久性。在典型的無檔案病毒感染中,有效載荷可以被注入現有應用程式/軟體的記憶體內,或透過白名單內的應用程式(如PowerShell)來執行腳本。
即便它們不是基於檔案(或可執行檔)的威脅,我們知道它們確實在外活動著,因為此類技術已經常地被使用在針對性攻擊/鎖定目標攻擊(Targeted attack )中。無檔案病毒最可被察覺的是網路蹤跡,像是命令與控制(C&C)連線,和其他留在中毒系統內的惡意程式碼。不幸的是無檔案病毒也可以在公開的專案計畫中取到,甚至在網路地下市場作為產品(或服務)提供。無檔案病毒也是如Angler等漏洞攻擊的主要功能之一。舉例來說,網路犯罪集團Lurk利用自己所開發的漏洞攻擊套件來透過無檔案病毒從金融機構竊取超過4,500萬美元。
[延伸閱讀:無檔案勒索病毒技術全貌 – UIWIX]
惡意PowerShell腳本是許多無檔案病毒的關鍵要素。Windows PowerShell是內建基於.NET框架的命令列Shell,提供使用者存取作業系統(OS)服務的介面,也是能夠建立腳本的程式語言。PowerShell主要用來自動化系統管理工作,像是檢視系統內所有的USB設備、磁碟和服務,排程工作並在背景執行,或是終止程序(就像是工作管理員)。PowerShell也可以讓管理員無縫管理系統和伺服器及軟體或服務所運行環境的設定。
但就跟所有有用的工具一樣,PowerShell的能力也引起網路犯罪分子的注意。我們已經看到PowerShell如何地被濫用 – 從2014年出現的Poweliks木馬下載程式,資料竊取程式FAREIT和銀行惡意軟體VAWTRAK到勒索病毒家族如PowerWare和CERBER第6版。許多無檔案病毒會內嵌惡意PowerShell腳本,通常用來下載和啟動或執行有效載荷。
[延伸閱讀:洗劫金融機構超過4500萬美元,第一批運用無檔案感染技術的網路犯罪集團:Lurk]
為什麼攻擊者要使用PowerShell?
PowerShell被惡意使用也突顯了系統暴露在許多的風險上,如勒索病毒、無檔案病毒和惡意程式碼記憶體注入。因為以下因素而變得更加嚴重:
- 規模和範圍。PowerShell是Windows作業系統內建的功能,存在於Windows XP及後續版本內。去年它還成為了開放原始碼、跨平台的框架,可以在Linux上運行。
- 合法工具。PowerShell並非是惡意軟體,事實上這是一個合法工具。它被惡意使用可能會模糊惡意駭客入侵或系統感染與一般IT/系統管理工作間的界線。
- 易用性。PowerShell腳本對許多IT/系統管理員、資安專家、滲透測試人員和黑帽駭客來說比較容易編寫和執行(與學習)。
- 便利性。PowerShell腳本不只是撰寫容易;PowerShell的靈活性加上可供使用的第三方模組讓它相對容易加以混淆處理。
- 能力。PowerShell可以存取相當多的應用程式介面(API)來執行重要功能,如VirtualAlloc、VirtualProtect和CreateThread,這些都可以被攻擊者作為惡意用途。
PowerShell在預設情況下會受到限制,以減少被濫用的機會。比方說可以執行具體PowerShell指令卻無法執行腳本檔案。但看似乎無法阻止駭客。我們已經看到許多PowerShell腳本惡意軟體會利用一些技術來繞過PowerShell的預設執行政策,像是將惡意程式碼作為指令參數執行。
https://documents.trendmicro.com/images/TEx/articles/fileless-malware-powershell-1.png
無檔案病毒攻擊的典型感染鏈
[延伸閱讀:目前的趨勢:使用捷徑(LNK)檔案來執行惡意PowerShell腳本]
濫用PowerShell的無檔案病毒正在增加
無檔案病毒、PowerShell腳本惡意軟體變得有多常見?從2017年1月到2月,趨勢科技發現超過78,600起惡意垃圾郵件或透過垃圾郵件散播的惡意軟體(偵測為W2KM_POWMET和POWLOAD)。這兩者都是巨集惡意下載程式,利用惡意PowerShell腳本將有效載荷送入中毒系統。在2017年第一季,趨勢科技在超過12,000台不同機器上監視到PowerShell的相關攻擊。
在2016年11月,採用無檔案病毒的攻擊據報成長了13%。在2016年最後一季,無檔案病毒相關攻擊跟第一季相比大幅上升了33%。
因為PowerShell在IT/系統管理員間的普及以及其內建在微軟作業系統內,無檔案病毒和PowerShell在今年被惡意使用的狀況只會更加嚴重,因為網路犯罪分子也在精進自己的策略和技術,以更好地躲避傳統安全解決方案。
[延伸閱讀:進階沙箱技術如何阻止會躲避偵測的威脅,如無檔案病毒]
企業需要更加積極的安全措施
對抗無檔案病毒沒有特效藥,組織應該實作縱深防禦,建置多層次防護來減少暴露面和損害。但除了培養具備安全意識的員工外,組織還可以做些什麼加以防禦?
以下是一些有助於解決無檔案病毒威脅的做法:
更新修補程式和保持系統更新。無檔案病毒會攻擊白名單內應用程式(意味著已經被允許在系統內執行)的漏洞。這讓攻擊者能夠嵌入惡意腳本或程式碼並借助該應用程式權限執行。建議實施可以兼顧企業生產力和安全性的有效修補程式管理政策。也可以佈署虛擬修補和漏洞防護機制來防護系統和網路對抗未知漏洞,即便還沒有修補程式推出。
採用最佳實作來安全的使用PowerShell。PowerShell有自己的日誌記錄功能,可用來進一步地審查在系統內是否有可疑或惡意行為。微軟也有在作業或雲端環境使用PowerShell的最佳實作,或透過PowerShell指令強化系統(即執行政策或設置PowerShell使用ConstrainedLanguageMode)。
IT/系統管理員和資安專家也可以設定偵測條件,可以依據已知會被用於惡意PowerShell腳本的指令。比方說惡意分子經常在使用PowerShell時會用“^”符號來混淆指令參數。
其他可用來掃描PowerShell腳本的偵測條件為:
- 敏感PowerShell指令參數,如:ExecutionPolicy Bypass、-Exec Bypass、-ep bypass、-EncodedCommand、-enc
- 可用於更加積極偵測的PowerShell指令參數,如:-NonInteractive、-NonI、-NoLogo、-NoProfile、-NoP、-WindowStyle Hidden、-w Hidden
- PowerShell的父程序如:wscript、微軟Office軟體
- Powershell指令參數特徵如Entrophy和長度
- https://documents.trendmicro.com/images/TEx/articles/fileless-malware-powershell-2.png
用“^”來混淆指令的巨集惡意軟體程式碼截圖
部署最小權限原則。透過只給予使用者足以完成工作或應用程式能夠執行的權限,這能夠進一步降低威脅暴露面。這可以限制漏洞攻擊或未經授權使用所導致的風險甚至實際損害。
部署行為監控機制。無檔案病毒會利用工具(如PowerShell)來繞過系統限制。既然無檔案病毒不會寫入磁碟,就能夠繞過依賴檔案來偵測威脅的傳統安全解決方案。應用控制這類防止應用程式執行的機制在這方面的幫助很有限。此外,PowerShell是IT/系統管理員和資安專家所經常使用的合法工具,因此無法被應用程式控制軟體輕易地封鎖。解決方法是部署行為監控機制在端點上,透過監視和封鎖惡意行為和惡意軟體相關動作及對作業系統或軟體/應用程式(包括PowerShell)做出異常變動,這能夠防止和限制資料外洩和惡意病毒感染。好的行為監控系統不僅會檢視應用程式行為,還包括異常的程序鏈,如Explorer如何啟動命令列來執行惡意PowerShell腳本。
啟用客製化沙箱。無檔案病毒木馬下載程式和巨集惡意軟體經常會利用PowerShell腳本和shellcode來散播其有效載荷。IT/系統管理員可以將它們困在在沙箱中,這是將可疑檔案隔離接受進一步分析的受控制虛擬環境。沙箱必須被配置成跟實際系統一樣的設定,可以更加有效識別可疑檔案會如何影響系統。能夠分析各種惡意軟體程序和行為的沙箱有助於識別這些威脅所使用的混淆或躲避策略。
防護可能的進入點。已知的無檔案病毒攻擊載體是垃圾郵件、惡意網站/網址(特別是漏洞攻擊套件),以及有漏洞的第三方元件(如瀏覽器外掛程式)。防護這些進入點可以有效地降低系統對這些威脅的暴露面,甚至在惡意軟體進入該系統的第一時間加以封鎖。建議要防護電子郵件閘道,並採用最佳實作來減輕電子郵件威脅。能夠過濾和分類惡意網址的安全機制可以為對抗網頁類型無檔案病毒加多一層保護。
停用不必要的元件。無檔案病毒也可能透過漏洞攻擊的形式進入,針對有漏洞的第三方元件(如瀏覽器外掛程式),甚至是工具(如PowerShell本身)。停用不必要或過時元件可以限制攻擊者入侵系統或網路的方式。這也同樣適用於工具(如PowerShell),通常只有IT/系統管理員需要用到這工具。
主動監控系統和網路。無檔案病毒、資料竊取惡意軟體等都含有惡意程式碼會進行對攻擊者伺服器的命令與控制通訊。部署防火牆及入侵偵測和預防系統有助於阻止入侵或資料外洩事件。還可以加上主動監控進出網路流量來發掘可疑行為的安全機制加以補強。
雖然無檔案攻擊並不像傳統惡意軟體那樣容易看見,但仍會留下入侵指標,像留下程式碼在某些地方。IT/系統管理員必須定期紀錄系統活動,無論是應用程式、註冊表或是系統和網路事件,並確保它們不會被修改。不僅是因為它們有助於事件回應和消弭;這些日誌還可以協助安全研究人員更好地了解威脅。
@原文出處:Security 101: The Rise of Fileless Threats that Abuse PowerShell 作者:Marvin Cruz(趨勢科技威脅研究員)