Fileless malware(無檔案惡意程式)是一種不需要將惡意程式碼寫入硬碟的攻擊手法,傳統的惡意程式會以檔案的形式儲存在硬碟裡面,Fileless Malware攻擊則主要是透過記憶體來執行惡意指令,這種攻擊通常會透過系統中的合法工具(例如: PowerShell、Registry等)來達到攻擊目的,由於這種攻擊不會在系統內儲存檔案因此傳統的防毒軟體很難偵測與攔截。
1、常見的攻擊方式有以下幾種:
● PowerShell攻擊
PowerShell是Fileless最常拿來利用的工具,攻擊者透過Powershell直接執行指令或是下載其他惡意腳本來進行攻擊。
● Registry Injection(登錄機碼注入)
攻擊者直接把惡意指令儲存在Registry之中,藉由某些自動執行的機制讓系統觸發指令並執行。例如:
● 記憶體注入(Memory Injection)
攻擊者將惡意的程式碼或指令塞到合法Process的記憶體空間中執行。或是修改現有的執行緒,將他上下文的記憶體位置指向惡意程式碼。
● Macro(巨集)攻擊
攻擊者在Word或是Excel中寫入VBA程式碼,當使用者執行Word或Excel之後便會自動執行攻擊者所寫的惡意程式碼,這種手法通常都會配合社交工程來讓使用者信任攻擊者傳送的檔案。例如:
2、簡易的攻擊流程:
I. 釣魚信件/社交工程:攻擊者利用寄出含有惡意連結或附件的電子郵件給使用者,引導使用者點及或下載附件(以下以Word為範例)。
II. 惡意程式注入與執行:當使用者開啟了附件並啟用了VBA巨集之後便會執行預先寫入的指令,例如: 開啟powershell並連線到遠端伺服器下載其他payload並執行。
III. 持續性維持:攻擊者會在登錄機碼中寫入觸發點,或設定WMI定時任務、Scheduled Tasks等方法,讓攻擊可以在重新開機後繼續。
IV.提權與資料竊取:利用被感染主機的網路芳鄰或RDP嘗試滲透內部其他主機,並將內部資料傳送至外部伺服器。
3、實際攻擊範例 - Powelikes
Poweliks是一個在2014年被發現在Windows上的惡意程式,他是第一批
”真正Fileless” 的惡意軟體之一。以下是Poweliks的攻擊流程。
I. 初始感染:攻擊者透過釣魚郵件傳遞惡意的Office文件。
II. 建立Registry後門:利用Office文件中的VBA巨集把惡意payload寫入到隨機名稱的Registry中,方便後續執行並保證持久性。
III. 記憶體注入並執行:執行Registry中的Powershell指令,利用反射(Reflection)技術載入並執行.NET程式碼,以此來避免觸發傳統防毒軟體的警報。
IV. 指令控制與後續行為:最後payload會與遠器遠端的伺服器建立通訊,從遠端的伺服器下載更多payload(如鍵盤側錄、勒索軟體…等),讓攻擊者可以自由控制被駭的系統。
4、偵測與預防
偵測方式:
I. Powershell行為與日誌分析:PowerShell是最常被利用的工具,所以需要監控PowerShell的log,看有沒有執行奇怪的指令(Invoke-Expression、FromBase64String、DownloadString …等)
II. Registry行為監控:駭客常利用登錄機碼來實現開機自動執行指令,要注意有沒有非常駐應用程式新增的啟動項目、登錄值包含不正常的指令…等情況發生。
III. 網路監控:由於Fileless Malware在初步入侵之後常常會與遠端伺服器通訊來進行後續的提權或是資料竊取的動作。因此要監控是否有連接到可疑的遠端伺服器的行為。
預防措施:
I. 限制系統工具使用:限制PowerShell、WMI、rundll.exe等工具的使用權限,防止沒有授權或未知來源的程式濫用這些工具。也應該限制登錄機碼的寫入權限,避免駭客藉由修改Registry實現攻擊持久化。
II. 權限最小化原則:避免使用者擁有系統管理員的權限,降低攻擊成功後橫向移動的風險。
III. 部屬防護平台:導入EDR或是XDR可以針對記憶體注入、系統工具濫用、網路連線異常等行為進行偵測以及阻攔。
IV. 教育訓練:定期對員工進行資安相關的教育訓練,提升員工的資安意識,從根本解決駭客侵入的手段。
5、結論
Fileless Malware攻擊的優勢在於隱蔽性與靈活性,由於它不依靠檔案的形式來進行攻擊,導致傳統的防毒軟體難以偵測到它的存在。為了有效防禦,企業應該要對高風險工具進行控管、部屬行為偵測系統,並且搭配適當的資安教育訓練來達到多層次的防禦系統,以此來降低無檔案攻擊帶來的風險。
想了解更多產品資訊,請連至官網https://www.neithnet.com/zh/,或直接與NEITHNET資安專家聯繫:info@neithnet.com