狡猾的macOS惡意軟件是如何隱藏在資源派生中的?
回顧2020年,我們看到了macOS攻擊者策略發(fā)生了許多改變。這些措施包括轉(zhuǎn)換為Shell腳本,使用Rust和Go等替代編程語言,在Electron應(yīng)用程序中打包惡意軟件,以及通過隱寫術(shù)擊敗Apple的公證安全檢查。這些技術(shù)中的許多已經(jīng)利用了新的或最近的變化或發(fā)展,但是我們卻在macOS 10.15及更高版本上觀察到的一種卻采取了相反的技術(shù)策略,并利用了Mac OS 9以來一直存在的舊技術(shù),以隱藏用戶和文件掃描工具上的惡意軟件載荷。
在本文中,我們將研究一個看起來像Bundlore廣告軟件的新變體如何將其有效載荷隱藏在一個命名資源派生中。蘋果機(jī)系統(tǒng)使用一種叫做資源派生”(Resource Fork)的技術(shù)記錄文件的相關(guān)信息,比如文件圖標(biāo)等。
惡意軟件傳播
可以在提供流行軟件“免費(fèi)”版本的站點(diǎn)上隨意可見該惡意軟件,在本文的示例中,我們發(fā)現(xiàn)該惡意軟件由名為“mysoftwarefree”的網(wǎng)站傳播,它會向用戶保證免費(fèi)提供Office 365副本。

指示用戶刪除任何當(dāng)前安裝的Office,從Microsoft下載合法的免費(fèi)試用版,然后從惡意網(wǎng)站上的按鈕下載“所需文件”,以獲取“完整版Office 365 ProPlus,而無需限制”。

一旦用戶上鉤,一個名為“dmg”的文件就會下載到用戶的設(shè)備上。
命名資源派生的擴(kuò)展屬性
在安裝的磁盤映像中,事情遠(yuǎn)非惡意軟件站點(diǎn)承諾的那樣。沒有MS Office的副本,但看起來很像典型的“ Bundlore / Shlayer”滴管。

與這些磁盤圖像一樣,圖形化的說明可以幫助用戶繞過Gatekeeper和Notarization提供的內(nèi)置macOS安全檢查。在macOS Catalina上,此繞過操作不會阻止XProtect在執(zhí)行時掃描代碼,但是XProtect目前不知道此特定代碼。
如果我們?nèi)ソK端查看一下磁盤映像上的內(nèi)容,令人驚訝的是看起來好像不多。
但是請注意,權(quán)限列表上的@是微小的203字節(jié)Install.command文件的權(quán)限。這表示該文件具有一些擴(kuò)展屬性,這就是使事情變得有趣的地方。
我們可以使用xattr -l列出擴(kuò)展屬性,似乎有一個com.apple.ResourceFork屬性,至少在開始時看起來像一個圖標(biāo)文件,這并不罕見,像這樣的資源派生在歷史上曾經(jīng)被用來存儲諸如縮略圖之類的東西。

但是,此資源派生很大。如果我們向下滾動到底部,我們將看到大約141744字節(jié)的添加數(shù)據(jù)。

更具說服力的是,如果我們檢查Install.command文件本身,我們將看到它是一個簡單的shell腳本,它暴露了資源派生中真正包含的內(nèi)容。

從偏移量9092開始,腳本通過密碼為“oZwb”的funzip實(shí)用程序?qū)ε缮械臄?shù)據(jù)進(jìn)行管道傳輸,以解密數(shù)據(jù),并將其放入帶有前綴為“Installer”的隨機(jī)名稱的Darwin用戶TMPDIR中。
該文件原來是具有43b9157a4ad42da1692cfb5b571598fcde775c7d1f9c7d56e6d6c13da5b35537的SHA256的Mach-O。
快速查看VirusTotal可以發(fā)現(xiàn)SentinelOne的靜態(tài)AI (DFI)引擎將其識別為惡意文件,并被某些供應(yīng)商標(biāo)記為Bundlore變體。

那么什么是資源派生,攻擊者為什么要使用它呢?
資源派生是一種命名派生,一種用于存儲結(jié)構(gòu)化數(shù)據(jù)(如圖像縮略圖,窗口數(shù)據(jù)甚至代碼)的舊文件系統(tǒng)技術(shù)。資源派生不是將信息存儲在特定偏移量的一系列字節(jié)中,而是將數(shù)據(jù)保留在結(jié)構(gòu)化記錄中,類似于數(shù)據(jù)庫。有趣的是,資源派生的大小限制沒有超出文件系統(tǒng)本身的大小,正如我們在本文所看到的,派生不可見直接在Finder或終端,除非我們列表文件的擴(kuò)展屬性通過ls -l@或xattr - l。

使用資源派生來隱藏惡意軟件是我們以前從未見過的一種非常新奇的技術(shù),但對它的研究還不是很深入,即參與者使用這種技術(shù)的目的是什么。盡管通過這種方式壓縮二進(jìn)制文件對查找器和終端都是隱藏的,但正如我們所看到的,只要閱讀Install.command shell腳本,任何人都可以很容易地找到它。
然而,許多傳統(tǒng)的文件掃描器不會采用這種技術(shù)。其他Bundlore變體在磁盤映像容器和應(yīng)用程序包中使用了加密文本文件,但掃描器可以很快學(xué)會找到這些文件。使此類文件泄漏的原因之一是混淆或加密的代碼(通常為base64)的長度過長,這對于合法軟件而言是異常的。
通過將加密和壓縮的文件隱藏在命名的資源派生中,攻擊者很顯然是希望避開某些類型的掃描引擎。盡管此示例沒有經(jīng)過代碼簽名,因此也沒有經(jīng)過Apple的公證檢查,但鑒于最近Bundlore變體使用的隱匿術(shù)竅門確實(shí)繞過了Apple的自動檢查,這仍然是一個公開漏洞。
總結(jié)
將惡意軟件隱藏在文件的資源派生中只是macOS惡意軟件開發(fā)者用來嘗試逃避防御工具的最新技巧。盡管它不是特別復(fù)雜且易于手動發(fā)現(xiàn),但它是逃避動態(tài)和靜態(tài)AI檢測引擎不支持的某些工具,也確實(shí)是一個很隱蔽的方法。


樣本哈希
本文翻譯自:https://labs.sentinelone.com/resourceful-macos-malware-hides-in-named-fork/