LoJax: Primul rootkit UEFI găsit in the wild, datorită grupului Sednit


Rootkit-urile UEFI sunt adesea văzute ca instrumente extrem de periculoase în desfășurarea atacurilor cibernetice, deoarece sunt greu de detectat și capabile să supraviețuiască unor măsuri de securitate, cum ar fi reinstalarea sistemului de operare și chiar înlocuirea hard disk-ului. Unele rootkit-uri UEFI au fost prezentate ca dovadă a conceptului; iar despre unele se știe că sunt la dispoziția unor agenții guvernamentale. Cu toate acestea, niciun rootkit UEFI nu a fost detectat vreodată în in the wild - până când am descoperit o campanie a grupului APT Sednit, care a implementat cu succes un modul malware UEFI pe sistemul unei victime.

Descoperirea primului rootkit UEFI in-the-wild este notabilă din două motive.

În primul rând, arată că rootkiturile UEFI reprezintă o reală amenințare și nu doar un subiect atractiv la conferințe.

Și în al doilea rând, servește ca un avertisment, mai ales pentru toți cei care ar putea fi în vizorul grupului Sednit. Acest grup APT, cunoscut și sub denumirile APT28, STRONTIUM, Sofacy și Fancy Bear, poate fi chiar mai periculos decât se credea anterior.

Analiza noastră asupra campaniei Sednit, care se folosește de rootkit-ul UEFI, a fost prezentată pe 27 septembrie la conferința Microsoft BlueHat 2018 și este descrisă în detaliu în raportul "LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group". În această postare de blog, rezumăm principalele noastre constatări.

Grupul Sednit funcționează încă din anul 2004 (cel puțin) și a făcut prima pagină a ziarelor destul de des în ultimii ani: se crede că se află în spatele unor atacuri majore, de profil înalt. De exemplu, Departamentul de Justiție al Statelor Unite a numit grupul ca fiind responsabil pentru hack-ul asupra Comitetului Național Democrat (DNC), care a avut loc chiar înainte de alegerile din 2016 din SUA. Se presupune, de asemenea, că grupul se află în spatele hacking-ului rețelei internaționale de televiziune TV5Monde, scurgerii de date a Agenției Mondiale Anti-Doping (WADA) și a altor cazuri similare. Acest grup are în arsenalul său un set de instrumente malware, câteva dintre ele fiind descrise în lucrarea noastră despre Sednit din 2016.

Investigația noastră arată că această operațiune s-a dovedit de succes cel puțin o dată, reușind să integreze un modul UEFI rău intenționat în memoria flash a unui sistem SPI. Acest modul este capabil să infiltreze și să execute malware pe disc în timpul procesului de boot. Această metodă este deosebit de invazivă, deoarece, astfel, malware-ul nu numai că va supraviețui unei reinstalări a sistemului de operare, dar și înlocuirii hard disk-ului. În plus, curățarea firmware-ului unui sistem UEFI înseamnă reflashing-ul acestuia, o operațiune care nu se face în mod frecvent și, cu siguranță, nu de către un utilizator obișnuit al computerului.

Cercetările noastre au arătat că operatorii Sednit au folosit diferite componente ale malware-ului LoJax pentru a direcționa atacuri asupra câtorva organizații guvernamentale din Balcani, precum și din Europa Centrală și de Est.

LoJack devine LoJax

În mai 2018, o postare de blog a Arbor Networks a descris câteva eșantioane infestate cu un virus troian ale agentului LoJack, rpcnetp.exe, al Absolute Software. Aceste eșantioane de malware comunicau cu un server  de comandă și control (C&C) malițios, în locul serverului legitim Absolute Software, deoarece setările lor de configurare hardcoded fuseseră alterate. Unele dintre domeniile găsite în eșantioanele LoJax au mai fost văzute înainte: au fost folosite la sfârșitul anului 2017 ca domenii C&C pentru bine cunoscutul backdoor first-stage al Sednit - SedUploader. Din cauza utilizării malițioase a agentului LoJack în această campanie, vom denumi acest malware drept LoJax.

LoJack este un software anti-furt. Versiunile precedente ale acestui agent erau cunoscute sub numele de Computrace. După cum sugerează și numele, odată ce serviciul era activat, computerul apela la serverul C&C, iar proprietarul său era anunțat cu privire la locația dispozitivului, în caz că acesta era pierdut sau furat. Computrace a atras atenția comunității de securitate, mai ales datorită metodei sale persistente neobișnuite. De vreme ce intenția acestui software este de a proteja un sistem în fața furtului, este important să reziste la reinstalarea sistemului de operare sau înlocuirea hard disk-ului. Astfel, este implementat ca un modul UEFI/BIOS, capabil să supraviețuiască unor astfel de evenimente. Această soluție vine pre-instalată în firmware-ul unui număr mare de laptop-uri fabricate de diverși producători de echipamente originale, așteptând să fie activat de proprietarii lor.

În timp ce cercetam cazul LoJax, am descoperit câteva indicii interesante care ne-au determinat să credem că acești factori de amenințare ar fi încercat să imite metoda persistentă a lui Computrace.

Patching-ul memoriei flash SPI cu programe malware

Pe sistemele targetate de campania LoJax, am găsit diferite instrumente care pot accesa și face patch-uri setărilor UEFI/BIOS. Toate instrumentele au folosit un driver kernel, RwDrv.sys, pentru a accesa setările UEFI/BIOS. Acest driver kernel este asociat cu RWEverything, o funcție utilă, disponibilă pe web, ce poate fi folosită pentru a citi informații despre aproape toate setările low level ale computerului, inclusiv PCI Express, Memorie, PCI Option ROMs etc. Deoarece acest driver kernel aparține unui software legitim, acesta este semnat cu un certificat digital valid.

Au fost găsite trei tipuri diferite de unelte, pe lângă agenții userland LoJax. Primul este un instrument care stochează informatii despre setările de sistem low level într-un fișier text. De vreme ce să treci de protecția platformei împotriva actualizărilor neautorizate de firmware depinde mult de platformă, colectarea de informații detaliate despre platforma unui sistem vizat este crucială. Scopul celui de-al doilea instrument este de a salva o imagine a firmware-ului sistemului într-un fișier, prin citirea conținutului memoriei flash SPI unde este localizat UEFI-ul/BIOS-ul. Scopul celui de-al treilea instrument este de a adăuga un modul malițios UEFI la imaginea firmware-ului și de a o restoca înapoi în memoria flash SPI, instalând eficient rootkit-ul UEFI pe sistem. Acest instrument de patching utilizează tehnici diferite, fie pentru a compromite platforme greșit configurate sau pentru a trece dincolo de protecția de suprascriere a memoriei flash SPI a platformei. După cum se arată în figura următoare, dacă platforma permite operații de scriere pe memoriei flash SPI, aceasta va merge mai departe și va permite astfel de operații. În caz contrar, se va implementa o exploatare împotriva unei vulnerabilități cunoscute.

Rootkit-ul UEFI adăugat la imaginea firmware-ului are un singur rol: să plaseze malware-ul userland pe partiția sistemului de operare Windows și să se asigurare că acesta este executat la pornire.

Cum să vă protejați?

Rootkit-ul UEFI al Sednit nu este semnat corespunzător, astfel încât primul mecanism de securitate care ar fi putut bloca un astfel de atac este Secure Boot. Când se activează Secure Boot, fiecare componentă firmware încărcată de acesta trebuie să fie semnată corespunzător, asigurând, astfel, integritatea firmware-ului. Vă sugerăm cu tărie să îl activați. Aceasta este protecția esențială împotriva atacurilor direcționate spre firmware-ul UEFI și poate fi activată la momentul secvenței de boot în setările UEFI ale sistemului dvs.

Actualizarea firmware-ului unui sistem protejat nu este ceva ce ar trebui să fie la îndemâna unui atacator. Există diferite tipuri de protecție oferite de diverse platforme software, pentru a împiedica operațiile de scriere neautorizate pe memoriile flash SPI ale sistemului. Instrumentul descris mai sus este capabil să actualizeze firmware-ul sistemului numai dacă măsurile de protecție asupra memoriei flash SPI sunt vulnerabile sau greșit configurate. Așadar, trebuie să vă asigurați că utilizați cele mai recente versiuni UEFI/BIOS disponibile pentru placa de bază. De asemenea, deoarece vulnerabilitatea exploatată afectează numai chipset-urile mai vechi, asigurați-vă că sistemele critice au chipset-uri moderne,  cu ajutorul Platform Controller Hub (introdus odată cu chipset-urile Intel Series 5 în 2008).

Din păcate, pentru un utilizator final ambițios, actualizarea firmware-ului unui sistem nu este o sarcină trivială. Astfel, securitatea firmware-ului depinde în cea mai mare parte de furnizorii UEFI BIOS. Mecanismele de securitate furnizate de platformă trebuie să fie configurate corespunzător de către firmware-ul sistemului pentru a o proteja eficient. Firmware-ul trebuie să fie construit și din prisma securității. Din fericire, tot mai mulți cercetători din domeniul securității abordează securitatea firmware-ului, contribuind astfel la îmbunătățirea acestui domeniu și la creșterea gradului de conștientizare în rândul furnizorilor UEFI/BIOS.

Remedierea unuei compromiteri direcționate spre firmware-ul UEFI este o problemă dificilă. Nu există modalități ușoare de a elimina automat o astfel de amenințare de pe un sistem. În cazul descris mai sus: pentru a elimina rootkit-ul, este necesar reflash-ul memoriei flash SPI cu o imagine firmware curată, specifică plăcii de bază. Acest proces este unul delicat, ce trebuie efectuat manual. Cu siguranță, nu este o procedură cu care este familiarizat un utilizator obișnuit. Singura alternativă la reflash-ul unui UEFI/BIOS este înlocuirea plăcii de bază a sistemului compromis.

Pentru mai multe informații despre cum să vă protejați, puteți să vizitați site-ul nostru și să aflați mai multe despre ESET UEFI Scanner.

Legăturile cu grupul Sednit APT

Așa cum am menționat mai sus, unele servere C&C de agent de tip LoJax au fost folosite în trecut de SedUploader, un backdoor folosit în mod obișnuit de operatorii lui Sednit. De asemenea, în cazurile unor secvențe compromise aparținând LoJax, urme ale altor instrumente Sednit nu au fost niciodată identificate departe. De fapt, sistemele vizate de LoJax au arătat, de obicei, prezența suplimentară a acestor trei exemple de malware Sednit:

  • SedUploader, un backdoor experimental
  • XAgent, backdoor central al Sednit
  • Xtunnel, un instrument de proxy de rețea care poate transmite orice tip de trafic de rețea între un server C & C de pe Internet și un computer endpoint din interiorul unei rețele locale

Aceste fapte ne permit să asociem cu mare încredere LoJax grupului Sednit.

În concluzie

De-a lungul anilor, am urmărit grupul Sednit, am lansat numeroase rapoarte privind activitățile lor, de la exploatări zero-day până la malware-ul personalizat pe care l-a dezvoltat, cum ar fi Zebrocy. Cu toate acestea, componenta de rootkit UEFI descrisă mai sus se află într-o ligă proprie.

Campania LoJax arată că țintele de mare valoare sunt primii candidați pentru implementarea unor amenințări rare sau chiar unice și că astfel de ținte ar trebui mereu verificate în căutarea unor semne de compromis. De asemenea, un alt lucru esențial învățat în urma acestei cercetări este rolul unei analize aprofundate a problemei.

O listă completă a indicatorilor de compromis (IOC) și a eșantioanelor poate fi găsită pe GitHub .

Pentru o analiză detaliată a backdoor-ului, consultați lucrarea noastră LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group.

Lasa un comentariu