首頁>科技>

概述

2020年蘋果全球開發者大會(WWDC 2020)是蘋果公司第31屆全球開發者大會。

大會於2020年6月22日召開,並且採用線上釋出的新形式與155個國家和地區的2300多萬名註冊開發者見面。

而就在本次開發者大會之前,Intego的研究人員發表了關於新型macOS惡意軟體的研究報告,他們發現惡意軟體正在利用Google搜尋傳遞給不知情的受害者。

根據研究人員提供的詳細資訊,我們認為這些與此前發現的基於指令碼的惡意軟體極為相似。但是,在這些新的樣本之中帶有一些值得關注的特徵,而Intego沒有在他們的文章中詳細說明,本文我們將重點研究這部分特徵。

我們此次分析的惡意軟體看上去像是VindInstaller.B廣告惡意軟體的Dropper,它採用了一種漸趨常見的技術,使用Shell指令碼來安裝已知惡意軟體,從而逃避傳統的反病毒軟體以及基於簽名的安全解決方案的檢測。

使用特殊威脅指標的惡意Shell指令碼

根據此前的研究表明,這一惡意軟體時通過包含Shell指令碼的DMG磁碟映像實現傳播的,該指令碼中包含壓縮後的應用程式捆綁包。

在檢查磁碟映像後,發現它不包含應用程式捆綁包,取而代之的是使用Adobe Flash圖示的Shell指令碼。

在文字編輯器中開啟flashinstaller檔案,並檢視其中的內容。

在這裡,可以重點關注其中的Shell指令碼命令,就可以了解該安裝程式的工作原理。

正如我們所指出的那樣,mktemp正被廣泛用於基於指令碼的macOS惡意軟體中,以建立隨機命名的路徑,從而幫助惡意軟體逃避簡單的檢測方式。請注意,在這個示例中使用了-t引數,後接字元x。

這樣就為防禦者和檢測演算法提供了一個很好的線索,因為這意味著惡意軟體始終會在Darwin_User_Temp_Dir中建立一個帶有字首x和隨機字串字尾的臨時資料夾。其中,Darwin_User_Temp_Dir資料夾也可以通過$TMPDIR環境變數來訪問。

第5行使用了nohup實用程式,這是另一個對於macOS惡意軟體作者很有幫助的工具,可以用於保證除錯程序不會受到掛起的影響。

但是,在從DMG這樣的不可寫磁碟呼叫nohup時,還會產生一個副作用,即會將日誌檔案保留在使用者的HOME目錄下,檔名為nohup.out。

儘管nohup.out檔案的存在是完全正常的,但是對於防禦者來說,如果發現該檔案突然出現或意外出現,就可以將其作為惡意軟體的一種潛在指標。接下來,就可以進行檢查$TMPDIR/x.

解壓縮嵌入的Installer.app

指令碼的第3行可能是最有趣的。這已經不是我們第一次看到在此類安裝程式指令碼中使用POSIX內建的LINENO變數,但在這裡我們第一次接觸到了funzip實用程式的使用。

LINENO+4的程式碼僅僅是將引用移動到指令碼的第7行(當前行+4),即嵌入式和壓縮ZIP檔案的開頭,並將該嵌入式程式碼通過管道傳遞到funzip實用程式中。

在funzip的官方手冊中還指出,funzip在與輔助壓縮程式(例如tar(1))結合使用時比較有效。

而這也正是惡意軟體使用的方法:

tail +$((LINENO+4)) $0 | funzip -9D956F55-1964-48A9-8DDE-7F7618E1D3D1 | tar -C $TEMP_DIR -p -xf –

生成的解壓縮ZIP檔案會在前面描述過的臨時目錄中生成一個應用程式捆綁包,並將其描述性地命名為“Installer.app”。

解壓縮後的應用程式:InstallVibes捆綁包安裝程式

我們可以看到,這個惡意軟體使用了如此之多的安裝程式,但其作用是什麼呢?此前的研究人員認為,該惡意軟體實際上與Shlayer和Bundlore有關,並分析說其中隱藏的應用程式是Mac惡意軟體或廣告軟體的下載工具。

通過檢視隱藏的應用程式plist,可以發現它實際上是著名的PPI(按安裝次數付費)廠商InstallVibes的安裝程式。

com.installvibes.Installer

InstallVibes在其網站(使用了不安全的HTTP)上聲稱,提供定製化安裝程式服務,以優化下載和按安裝次數付費軟體。

在撰寫本文時,我們可以在VirusTotal上找到兩種Flashinstaller變種:

我們的安全產品客戶端將這些磁碟映像識別為惡意,並會在寫入時阻止或告警(取決於站點管理員設定的策略)。

掃描解壓縮後的InstallVibes Installer.app捆綁包中的Mach-O可執行檔案,我們確認它時一個已知的廣告惡意軟體安裝程式,我們將其標記為VindInstaller.B。

變種1:VindInstaller分析

VindInstaller結合了廣告惡意軟體和按安裝次數付費捆綁這二者的特徵,通常會造成使用者Mac上出現不需要的程式或應用(PUP或PUA)。惡意軟體往往會通過欺騙性的市場營銷手段,誘導使用者接受或安裝PUP或PUA,例如它們可能會偽裝成一些受歡迎或者免費的程式。

但是,在安裝步驟中,將會包含不進行通知或預設加入選項的步驟,這將導致在安裝原本的應用程式時,也同時安裝了其他不需要的應用程式。在某些情況下,甚至不需要使用者的允許或預設,這些不需要的軟體就會在後臺靜默下載。

在這種情況下,有許多安裝程式都屬於木馬程式,它們提供(或假裝提供)Flash Player播放器或更新,但其中包含一些與使用者認為正在下載的應用程式截然不同的內容。

在安裝惡意軟體後,可能會出現影響正常使用的廣告,從而為惡意軟體開發者帶來收入。實際安裝的應用程式有可能是仿冒的劣質軟體,也有可能是精簡後的開源軟體,通常會對使用者的正常使用帶來不良影響,並降低使用者的生產力。

舊瓶裝新酒:Vindinstaller演變史

實際上,VindInstaller並不是新的macOS惡意軟體,它已經存在了幾年之久。但本次我們分析的新版本,引入了一個新的Shell指令碼,該指令碼最初被Shlayer惡意軟體使用,後來被Bundlore使用。

最終,利用Shell指令碼,將提高舊版本惡意軟體成功安裝的概率,並有效逃避一些反病毒軟體和基於簽名的安全解決方案。

從2013年開始,研究人員就陸續發現了至少三個VindInstaller的已知版本。其中的一個版本是針對Chrome、Firefox和Safari瀏覽器的注入/劫持程式,其中還包含一些其他功能,共同形成Genieo捆綁包安裝程式。

在攻擊技術相對薄弱的時代,廣告惡意軟體的開發者還很少會加入例如混淆字串或反分析技術之類的功能。

該惡意軟體是在2013年的OSX 10.8 Mountain Lion作業系統上構建的。

令人驚訝的是,在這個已有7年曆史之久的廣告惡意軟體樣本中,InstallGenieo.dmg的嵌入式URL仍然有效,並且仍在提供兩種Genieo惡意軟體變種(其中一個潛伏在Genieo解除安裝程式中),我們分別將其命名為OSX.Genieo.A和OSX.Genieo.E。

變種2:VindInstaller.B分析

另一方面,由惡意軟體指令碼投放的惡意軟體VindInstaller.B將會收集受害者作業系統版本的詳細資訊,然後訪問以下URL來檢索惡意開發者需要下載並執行的內容(廣告惡意軟體或潛在有害軟體):

hxxp://installer[.]installerapi[.]com/offers

172.67.197.161

目前,已經有多個VT引擎將上述URL標記為惡意。

二進位制檔案中,還包含其他威脅指標,用於惡意軟體的更新和跟蹤:

hxxp://installer[.]yougotupdated[.]com/updates/%@?offer=%@&vid=%@&cid=%@

hxxp://tracking[.]uzasignals[.]com/signals/%@/?element=%@&vid=%@

hxxp://tracker[.]installerapi[.]com/visit/meta?mid=%@

hxxp://tracker[.]installerapi[.]com/visit/meta?response=pipe

hxxp://installer[.]installerapi[.]com/offers/detections?vid=%@&response=json

hxxp://installer[.]installerapi[.]com/offers?response=json&os=Mac%%20OS%%20X&osv=%@&vid=%@%@

hxxp://installer[.]installerapi.com/offers/%@/%@

hxxp://tracker[.]installerapi[.]com/statistics/event?origin=installer&name=%@&attname=%@&attval=%@&vid=%@&mid=%@

儘管VindInstaller的Payload都不會進行混淆,但VindInstaller.B背後的惡意軟體作者傾向於依靠其新的Shell指令碼交付機制來對抗基於簽名的檢測和諸如VirusTotal的沙箱引擎。

變種3:VindInstaller.Gen分析

第三個變種VindInstaller.Gen在VirusTotal會被單獨標記為“mdm.macLauncher”或“osxdl.Downloader”,這個變種會通過使用NSAppleScript類來實現各種功能,所以與變種1和變種2有所不同。惡意軟體作者可以使用NSAppleScript類來獲得AppleScript功能,而無需通過osascript實用程式對其進行呼叫,這樣就可以逃避許多常見的檢測方法。

儘管“mdm.macLauncher”和“osxdl.Downloader”都使用了NSAppleScript,但後者通過DandIThread類實現了更為廣泛的使用。

例如,在在DandIThread類的runProcessAsAdministrator方法中,程式碼呼叫NSAppleScript的executeAndReturnError方法來執行do shell script呼叫,以嘗試提升特權。

總結

諸如Shlayer和Bundlore這樣的基於指令碼的惡意軟體安裝程式已經在成熟的捆綁惡意軟體和廣告惡意軟體發行者之間流行,因為它們易於調整,可以逃避基於簽名的檢測,包括Apple的Yara規則檢測引擎XProtect。但幸運的是,基於行為的引擎在無需更新的情況下就可以識別這些指令碼的惡意行為。實際上,此前研究中發現的所有樣本,都可以被SentinelOne的macOS客戶端立即檢測到。

威脅指標

VindInstaller.A

58490b58afbb533bbcb28cb756e5f91fe0eeb765ca571ac97e9f7104a317562e

VindInstaller.B

flashInstaller.dmg

97ef25ad5ffaf69a74f8678665179b917007c51b5b69d968ffd9edbfdf986ba0

d49ee2850277170d6dc7ef5f218b0697683ffd7cc66bd1a55867c4d4de2ab2fb

嵌入到Installer.app的Mach-O

907c31b2da15aa14d06c6e828eef6ca627bd1af88655314548f747e5ed2f5697

05b9383b6af36e6bf232248bf9ff44e9120afcf76e50ac8aa28f09b3307f4186

VindInstaller.Gen

mdm.macLauncher

4f47a06190cbdaac457d86f77baa22313ce6b1d3939e0ff4fa3cadf5a680b6c9

709f633b12a335911ce213419c72062d05f538abdc412b659cdb10d4db9006ce

3af1c03214cd194b94c6fe0891de6c5201cc8d13d009c04ef383d67e1a750b2b

osxdl.Downloader

ee7db16ca9eac460b748957cd0a33548ef015e12f9f6fadcea30671204c3c4ba

URL/IP

hxxp://installer[.]yougotupdated.com

104.18.51.67

hxxp://tracker[.]installerapi.com

104.31.89.115

hxxp://tracker[.]installerapi.com/statistics/

104.31.88.115

hxxp://tracking[.]uzasignals.com

172.67.186.96

本文翻譯自:https://www.sentinelone.com/blog/how-a-new-macos-malware-dropper-delivers-vindinstaller-adware/如若轉載,請註明原文地址;

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 特斯拉開始賣短褲 馬斯克居然用它嘲諷證監會?