Address
304 North Cardinal St.
Dorchester Center, MA 02124

Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM

Nakon Okta i SolarWinds-a, još jedan napad tipa “supply chain”

Uvod

Ovo je tip napada koji spada u kategoriju “supply chain” napada. Supply chain napadi predstavljaju vrstu sajber napada u kojem se napadači infiltriraju u sisteme i mreže kroz slabosti u nekoj od eksternih aplikacija ili biblioteka koje su na neki način integrisane u sistem. Cilj ovakvih napada je da se neovlašćeno pristupi informacijama, resursima ili infrastrukturi organizacije tako što se kompromituju neki od njenih dobavljača, partnera ili drugih povezanih entiteta. Napadi su izuzetno ozbiljni zato što je taj deo softvera ili aplikacije uglavnom označen kao siguran i kompanija ima dodatno poverenje u takav sistem/softver.

Da se vratimo na ovaj tip incidenta. Šta je 3CX PBX softver? Softver je virtualni VoIP telefon koji se može instalirati na desktop OS (Windows, Linux, MacOS) kao i na mobilni telefon (Android, iOS) i simulira fizički VoIP telefon. Softver je jedan od najpopularnijih aplikacija u datom domenu.

Dana 29.03.2023, kompanija CrowdStrike, koristeći svoj sistem Falcon OverWatch, detektovala je neuobičajene aktivnosti kod korisnika koji koriste 3CX DesktopApp softver. Ponašanje je ukazivalo da se aplikacija pokušava uspostaviti komunikaciju sa više servera na mreži, za koje se sumnja da su pod kontrolom malicioznog aktera. Aktivnosti su podrazumevale slanje poruka da je agent aktivan, a komanda koju je server slao je da agent, odnosno aplikacija, preuzme dodatni kod sa datih servera koji u sebi sadrži dodatni zlonamerni sadržaj koji bi omogućio napadaču kompletnu kontrolu nad inficiranim hostom.

CrowdStrike EDR softver je nakon identifikovanja pretnje blokirao datu aplikaciju. Nakon analize fajlova sa inficiranih sistema, ustanovljeno je da je aplikacija 3CX DesktopApp kompromitovana kod proizvođača aplikacije i da je zlonamerni kod ubačen u aplikaciju ranije.

Tehnički detalji

CrowdStrike je objavio 29.03.2023. da su detektovali da je 3CX DesktopApp zaražen malverom. Detekovano je da navedeni softver igra ulogu “beacon” agenta i da pokušava uspostaviti vezu sa više C2 servera na internetu. Domeni gde se nalaze C2 serveri nisu navedeni u tekstu.

Aplikacija je imala za cilj da preuzme drugi deo malvera sa datih sajtova. Drugi deo malvera se nalazio u ICO fajlu. URL do fajla je:

hxxps[://]raw[.]githubusercontent[.]com/IconStorages/images/main/icon9[.]ico

Do sada je utvrđeno dosta toga i skoro kompletna analiza svih fajlova inficiranih malverom je urađena.

Koraci kako je malver inficirao host:

  1. Update.exe, deo 3CX Desktop aplikacije, je slao zahtev za inficirani MSI paket koji se nalazio na 3CX veb sajtu:
c:\Users\<USER>\AppData\Local\Programs\3CXDesktopApp\app\Update.exe --update *3cx.us/electron/update/win32/18.12.*.*

  1. MSI fajlovi zaraženi malverom:
3CXDesktopApp-18.12.416.msi
3CXDesktopApp-18.12.407.msi

  1. Navedeni MSI fajlovi sadrže dva fajla koji su zaraženi malverom:
  • ffmpeg.dll
  • d3dcompiler.dll
  1. Deo malvera koji se nalazi u ffmpeg.dll ima za cilj da učita ostatak shellcode-a iz d3dcompiler.dll fajla, da ga dekompajlira i pokrene dalje izvršavanje malvera. Interesantna stvar je da je d3dcompiler.dll fajl potpisan od strane Microsoft-a i da je nakon inficiranja fajla taj sertifikat ostao validan. Ali na ovo ćemo se vratiti kasnije.

  2. Dalje izvršavanje malvera je zahtevalo slanje, posle određenog vremena neaktivnosti, zahteva ka GitHub fajlu gde se hostovao ICO fajl. ICO fajl sadrži listu C2 servera odakle malver dalje preuzima Base64 enkodovan payload koji služi za prikupljanje informacija o hostu i krađu podataka sa zaraženog hosta.

Potpisan fajl sa malwarom?!#

Zanimljiv deo u ovom malveru je da je navedeni d3dcompiler.dll fajl, koji u sebi ima DLL sa shellcode-om, validno potpisan od strane Microsoft-a. Kako je ovo moguće?

Za ovo postoje dva načina:

  1. Napadač dobije pristup sertifikatu i potpiše fajl.
  2. Napadač modifikuje dati fajl na taj način da, i pored modifikacije, potpis fajla je i dalje validan.

U ovom slučaju, napadač je modifikovao fajl na način da validiranje fajla pokaže da je fajl i dalje validno potpisan. Verovatno se pitate kako je to uopšte moguće? Ovo je relativno stari propust u načinu kako se validira sertifikat za dati PE (Portable Executable) fajl. Naime, kada je fajl potpisan, u okviru PE fajla postoje sekcije gde se nalazi sam sertifikat. Napadač koristi deo PE fajla gde se nalazi sertifikat da upiše svoj kod, pošto dati segment PE fajla ne učestvuje u funkciji koja validira sertifikat. Ovaj propust je poznat bezbednosnoj zajednici već duže vreme.

Softver koji automatizuje ovaj proces može se naći na GitHub-u, a projekat je postavljen pre 2 godine, dok se za samu ranjivost zna dosta duže od toga. Ovo ukazuje na potrebu za poboljšanjem mehanizama zaštite i validacije sertifikata, kao i za unapređenje sistema za proveru integriteta fajlova u cilju sprečavanja sličnih napada u budućnosti.

https://github.com/med0x2e/SigFlip

Ukoliko imate bilo kakvih nedoumica u vezi sa navedenim incidentom ili osećate potrebu da poboljšate svoju IT bezbednost, slobodno nas kontaktirajte.

Vaš Pulsarpoint DFIR tim