28.12.20

SolarWinds hack - zbog čega se moramo zabrinuti (nastavak)?

U prethodnom tekstu sam se opisao kontekst pojave SolarWinds hacka (SUNBURST prema FireEye ili Solarigate prema Microsoft) i njegov utjecaj na informacijsku sigurnost, a kako sam najavio, u ovom se tekstu bavim tehničkim detaljima.

Odmah za početak, ova analiza ne uključuje detalje o inicijalnom proboju u tvrtku SolarWinds, s obzirom da za sada nisu objavljeni konačni zaključci analize niti načini kompromitacije aplikacije Orion, no svakako možemo zaključiti da je napadač imao dobru poziciju u procesu razvoja i upravljanja promjenama ove aplikacije.

Moja analiza je bazirana na izvješćima koja su objavila tvrtke Microsoft, FireEye, PaloAlto Networks te agencija Cybersecurity and Infrastructure Security Agency (CISA) američke vlade.

Dakle, krećemo od točke kada je tvrtka korisnik sustava SolarWinds Orion (i buduća žrtva kompromitacije ovog softvera) preuzela nadogradnju objavljenu krajem ožujka ove godine. Nadogradnja, ekstenzije msp, bila je uredno potpisana certifikatom tvrtke SolarWinds i među  komprimiranim modulima je uključivala i modul SolarWinds.Orion.Core.BusinessLayer.dll.

Nakon instalacije nadogradnje, novi moduli, uključujući i prije spomenuti su bili pokrenuti u produkcijskom radu. 

Modul SolarWinds.Orion.Core.BusinessLayer.dll je .NET program koji je standardni dio aplikacije Orion, sa svojim redovitim funkcijama. No, unutar ove funkcije je lukavo smješten poziv za izvođenje backdoor modula: predviđeno je paralelno izvođenje s glavnim programskim modulom, ničim narušavajući očekivane funkcije, a za izvođenje je odabrana metoda koja se redovito pokreće, čime je osigurana persistencija, tj. kontinuirani rad nakon svakog pokretanja aplikacije.

Backdoor kod je u potpunosti sadržan u klasi OrionImprovementBusinessLayer. Tijekom inicijalizacije, maliciozni program provjerava je li istekao rok od 12 do 14 dana od inicijalnog pokretanja (provjerava vrijeme zadnjeg upisa) – dakle predviđene je dvotjedni period mirovanja od inicijalne kontaminacije te provjerava postoje li neki drugi unaprijed predviđeni uvjeti uslijed kojih planirano obustavlja rad (npr. malware prekida izvođenje ako se nalazi u domeni koja uključuje stringove „solarwinds“ odnosno „test“ ili se na sustavu izvode neki procesi karakteristični za sigurnosne programe).

Ukoliko je „zrak čist“, „backdoor“ započinje stvarni život. Namjera mu je povezati se kontrolnim (C2) serverom, prijaviti svoju dostupnost, preuzeti instrukcije sa C2 servera, izvesti ih na mreži žrtve i vratiti rezultate nazad na C2. Dakle, radi se o uobičajenom slijedu akcija kakve izvode „backdoor“ programi. No, vrag je u detaljima. 

Inicijalni C2 server je smješten unutar domene avsvmcloud[.]com, pri čemu je stvarni URL nadopunjen s pseudo-random i random nazivima generiranim iz jedinstvenih parametara vezanih za samu žrtvu. Također, prije povezivanja s C2 serverom, generira se i URI lokacija izborom unaprijed pre-definiranih vrijednosti na način koji neće izazvati sumnju ako bi netko pratio metapodatke o povezivanjima. 

Na koncu, generira se i šalje JSON dokument s parametrima relevantnim za ostvarivanje komunikacijskog kanala.

(Važno je napomenuti: Ova adresa je iskorištena i kao slabost SUNBURST malwarea, odnosno kao „kill-switch“ poluga. Nakon ovog otkrića, Microsoft je blokirao domenu avsvmcloud[.]com, no, ipak, 8 mjeseci prekasno)

Kada je komunikacijski kanal između „backdoor“ programa i C2 servera potvrđen, započinje kontinuirana komunikacija kroz koju operateri koji rade na C2 serveru dostavljaju „backdoor“ programu niz naloga za izvođenje karakterističnih aktivnosti – od prikupljanja osnovnih informacija o operativnom sustavu, mreži datotekama, registry podacima pa do izvođenja specifičnih naredbi.

No, treba naglasiti da je operacija bila sve samo ne rutinska i predvidljiva. U analiziranim slučajevima su otkrivene i mnoge specifičnosti – od dodatnih C2 servera putem kojih su dolazili nalozi za akcije, do iskorištavanja specifičnih ranjivosti ili pokretanja novih malicioznih programa prikladnijih za lateralno kretanje. Opisat će neke od ovih specifičnosti u nastavku. 

Novi C2 serveri: Kada SUNBURST/Solarigate backdoor program pokrene aktivnosti lateralnog kretanja i druge aktivnosti u naprednoj fazi napada, onda se otvara komunikacijski kanal prema alternativnim C2 serverima. Često puta, radi se o domenama koje su registrirane nekoliko godina ranije, u međuvremenu su istekle ali nisu brisane. Na taj način napadač želi ostaviti dojam komunikacije sa domenom pouzdane dugogodišnje reputacije. I korak dalje: zabilježeno je da su napadači komunicirali sa žrtvom preko lokalnog VPS servera, smještenog u istoj zemlji gdje je i žrtva, čime napadač dodatno nastoji pojačati reputaciju. 

TEARDROP dropper: Kako sam spomenuo, u drugoj fazi napada (koja se obično naziva „post-compromise“ aktivnost) su korišteni dodatni „payload“ moduli. SUNBURST uobičajeno koristi PowerShell skripte, no tvrtka FireEye je izdvojila i specifično kreirani „payload“ modul kojeg je nazvala TEARDROP. Radi se o inventivno importiranom programskom kodu (preko lažne  jpg datoteke nad kojom je primijenjena tehnika steganografije) koji su pokreće u radnoj memoriji kao „file-less malware“ a u suštini izvodi backdoor modul komercijalnog programa za penetracijska testiranja Cobalt Strike, naravno opremljenog tehnikama za osiguranje persistencije, prikupljana autentikacijskih podataka i lateralnog kretanja, ali i prilagođenog novom gazdi.

Privilegirane ovlasti: Polazeći od činjenice da sustav Orion ima nadzorne zadaće nad ključnim komponentama informatičke infrastrukture, napadači su zauzeli nekoliko uporišta za dohvat podataka o korisničkim računima, uključujući i mogućnost lateralnog kretanja s privilegiranim ovlastima i prijave na ključne resurse (npr. AD server) s visoko privilegiranim ovlastima. Takve privilegije su omogućile i praktičnu implementaciju tehnike napada poznatu pod imenom „Golden SAML“. Ova tehnika je poznata od 2017. godine ali je ovo prvi zabilježeni slučaj u stvarnom incidentu. U SUNBURST scenarijima, napadači su time ostvarili mogućnost pristupa resursima koji prihvaćaju SAML autentikaciju (tipično „cloud“ resursi), a koji se može naknadno iskorištavati i izvan  konteksta SUNBURST napada.

Svaka tema obuhvaćena ovim tekstom otvara nova područja, a osnovna tema - slučaj SUNBURST/Solarigate – daleko je od toga da je možemo smatrati apsolviranom, ni na tehničkoj niti na političkoj razini.

Nema komentara:

Objavi komentar