A RustDoor macOS malware Visual Studio frissítésként terjed

A Bitdefender kutatói egy új, MacOS felhasználókat célzó backdoort fedeztek fel. Ez a korábban nem dokumentált malware Rust nyelven íródott, és számos érdekes funkciót tartalmaz. A kutatók RustDoor néven követik nyomon.

A backdoor egy Visual Studio frissítésnek adja ki magát, és az összes azonosított fájl közvetlenül FAT bináris fájlként terjed Mach-O fájlokkal, mind az x86_64 Intel, mind az ARM architektúrákhoz. Egyik fájlnak sincs más szülője (alkalmazáscsomagok, lemezképek). Az azonosított minták a következő neveken terjednek:

  • zshrc2
  • Previewers
  • VisualStudioUpdater
  • VisualStudioUpdater_Patch
  • VisualStudioUpdating
  • visualstudioupdate
  • DO_NOT_RUN_ChromeUpdates

Az első mintákat 2023 november elejére tudták visszavezetni, míg a legfrissebb mintát 2024. február 2-án észlelték, ami azt jelzi, hogy a kártevő legalább három hónapja észrevétlenül működik és fejlődik. Bár a legtöbb minta ugyanazokat az alapvető funkciókat használja (kisebb eltérésekkel), három különböző változatot észleltek.

A Rust szintaxisa és szemantikája eltér az olyan elterjedtebb nyelvekétől, mint a C vagy a Python, ami megnehezíti a biztonsági kutatók számára a rosszindulatú kód elemzését és felderítését.

Az összes elemzett minta tartalmazza a backdoor funkciót, a támogatott parancsok alábbi listájával:

  • ps: Futtatott folyamatok listája, hasznos a rendszertevékenység megfigyeléséhez.
  • shell: Tetszőleges shell parancsokat hajt végre, közvetlen irányítást biztosítva a támadóknak.
  • cd: Megváltoztatja az aktuális könyvtárat, lehetővé téve a navigációt a fájlrendszerben.
  • mkdir: Új könyvtárat hoz létre, amely lopott adatok vagy rosszindulatú szoftverkomponensek rendszerezéséhez hasznos.
  • rm: Fájlok eltávolítása, fontos fájlok törléséhez vagy a rosszindulatú szoftver nyomainak eltüntetéséhez.
  • rmdir: Könyvtárak eltávolítása, hasonló az rm-hez.
  • sleep: A végrehajtás szüneteltetése egy meghatározott időre, esetleg a felderítés elkerülése vagy a műveletek szinkronizálása érdekében.
  • upload: Fájlok küldése egy távoli kiszolgálóra, lopott adatok kiszivárogtatásához használatos.
  • botkill: Más rosszindulatú programok folyamatainak megszüntetése, esetleg a konkurencia kiküszöbölése vagy a rendszer erőforrásainak felszabadítása.
  • dialog: Üzeneteket vagy felszólításokat jelenít meg a felhasználónak, adathalászat vagy parancsok végrehajtása céljából.
  • taskkill: Meghatározott folyamatok leállítása, hasznos a biztonsági szoftverek vagy más, a rosszindulatú szoftvereket zavaró folyamatok leállításához.
  • download: Fájlok letöltése egy távoli kiszolgálóról, további rosszindulatú szoftverkomponensek vagy frissítések bevitele a fertőzött rendszerbe.

Ezek a parancsok lehetővé teszik, hogy a rosszindulatú program fájlokat gyűjtsön és töltsön fel, valamint információkat gyűjtsön a gépről, amint azt a sysctl paranccsal együtt használt alábbi argumentumok kiemelik:

  • cpu.vendor
  • cpu.brand_string
  • osproductversion
  • cpufrequency

A sysctl paranccsal kinyert információkat, valamint két másik parancs (pwd és hostname) kimenetét a C2 kiszolgáló Register végpontjának küldi el, hogy megkapja az áldozat azonosítóját. Ezt az azonosítót használják a C2 és a backdoor közötti kommunikáció további részében.

A C2 kiszolgálókkal való kommunikáció a következő végpontok segítségével történik:

  • POST /gateway/register: a fájl végrehajtásakor hívódik, a célja egy azonosító fogadása a C2-től. A kiszolgálónak küldött payload három mezőt tartalmaz: hostname, os_version (a macOS verziója) és pwd (az aktuális könyvtár)
  • POST /gateway/report: rendszeresen, rövid időközönként hívják, és a kiszolgálónak küldött payload csak egy mezőt tartalmaz, az id-t, a /gateway/register hívás válaszaként kapott értékkel
  • /gateway/task: a veszélyeztetett gépen végrehajtott feladatokra vonatkozó információk cseréje
  • /tasks/upload_file: fájlok kiszivárogtatására szolgál

Az első változatot először 2023. november 22-én észlelték, úgy tűnik, hogy egy teszt verzió volt. A beágyazott plist fájl egy nyilvános írásból volt kimásolva, amely a macOS-re vonatkozó perzisztencia mechanizmusokat és sandbox kikerülési technikákat írja le. Egy másik lehetséges nyom a plist fájl neve (test.plist)

Bár ez a beágyazott plist a LaunchAgents használatával történő perzisztenciát hivatott biztosítani, a konfiguráció nem tartalmaz mezőt erre a perzisztencia módszerre (csak a cronjobs használatával történő perzisztenciára vagy az alkalmazás Dock sávba való beillesztésére.

A második változathoz tartozó fájlok először 2023. november 30-án jelentek meg, és valamivel nagyobbak, mint az első változatban található társaik, körülbelül 4-5 MB méretűek. Úgy tűnik, hogy ez a variáns a kártevő frissített változata, amely most már tartalmaz egy összetett JSON konfigurációt, valamint egy beágyazott Apple scriptet, amelyet az exfiltrációhoz használnak.

A script a Dokumentumok és az Asztal mappákból, meghatározott kiterjesztésű és méretű dokumentumok, valamint a felhasználó jegyzetei exfiltrálására szolgál, amelyeket SQLITE formátumban tárolnak a következő helyen: /Users/<felhasználó>/Library/Group Containers/group.com.apple.notes/NoteStore.sqlite

A bináris állományokon belül több, a célzott kiterjesztéseket tartalmazó karakterláncot is azonosítottak: txt, rtf, doc, xls, xlsx, png, pdf, pem, asc, ppk, rdp, zip, sql, ovpn, kdbx , conf, key, json.

Miután az összes fájl átmásolódott a rejtett célmappába, egy ZIP-archívumba tömörítik őket (amelynek a neve <felhasználónév>_home.zip), és elküldik a C2 kiszolgálóra.

A konfigurációs beállítások tartalmazzák a megszemélyesítendő alkalmazások listáját, azzal a céllal, hogy a rendszergazdai jelszót egy párbeszédpanel segítségével meghamisítsák. Egyes konfigurációk konkrét utasításokat is tartalmaznak arra vonatkozóan, hogy milyen adatokat kell gyűjteni, például a fájlok maximális méretét és maximális számát, valamint a célzott kiterjesztések és könyvtárak listáját, illetve a kizárandó könyvtárakat.

A Zero változat tűnik a legkorábbinak, és először 2023.11.02-án látták. Tekintettel arra, hogy feltehetően ez az eredeti, kevésbé bonyolult, mint a többi. Bár rendelkezik a backdoor funkcióval, az Apple script és a beágyazott konfiguráció hiányzik.

Az első két változat beágyazott JSON konfigurációkat tartalmaznak, amelyek rávilágítanak az e család által alkalmazott többféle perzisztencia mechanizmusra, olyan mezőkön keresztül, mint a lock_in_cron, lock_in_launch, lock_in_dock vagy lock_in_rc. Ha az első két módszer meglehetősen gyakori a legújabb kártevőcsaládokban, az utolsó kettő nem annyira.

  • lock_in_cron – Perzisztencia a cronjobs segítségével
  • lock_in_launch – Perzisztencia a LaunchAgents használatával, ami a bináris program végrehajtását eredményezi minden egyes alkalommal, amikor a felhasználó bejelentkezik.
  • lock_in_rc – A perzisztencia a ~/.zshrc fájl módosításával érhető el, amely a bináris program végrehajtásához használatos minden egyes alkalommal, amikor új ZSH munkamenetet nyitunk.
  • lock_in_dock – A bináris állomány dokkolóhoz való hozzáadásával érhető el a perzisztencia. Ez a defaults write com.apple.dock persistent-apps -array-add. paranccsal történik, amely módosítja a com.apple.dock fájlt. A fájl módosítása után a killall Dock parancsot kell végrehajtani a Dock újraindításához és a módosítások alkalmazásához.

A malware elemzése során a kutatók felfedezték, hogy négy C2 szerverrel kommunikált. Ezek közül hármat a BlackBasta és az ALPHV/BlackCat által elkövetett zsarolóvírus támadásokban korábban már használtak. A kutatók azonban kiemelik, hogy ez nem elegendő bizonyíték ahhoz, hogy a RustDoor használatát magabiztosan egy adott szereplőhöz kapcsolják.

Mivel a kiberbűnözőknek kevesebb szabadságuk van az infrastruktúrájuk kiválasztásában, választásuk általában olyan tárhelyszolgáltatásokra korlátozódik, amelyek anonimitást biztosítanak és elnézik az illegális tevékenységet. Emiatt gyakori, hogy több csoport ugyanazokat a szervereket használja.

A kutatók kiadták az ismert RustDoor indikátorok listáját, amely tartalmazza a bináris fájlokat, a letöltési tartományokat és a négy felfedezett C2 szerver URL-jét. Ezek listája az alábbi linken érhető el: (bitdefender.com)