HomeCloud & MobilityUn timeline si explicatii legate de atacul cibernetic XZ backdoor, detectat (CVE-2024-3094)...

Un timeline si explicatii legate de atacul cibernetic XZ backdoor, detectat (CVE-2024-3094) in ultimul moment!

Subiectul principal al acestui weekend a fost detectarea (in ultimul moment zic eu) atacului XZ si de asta am zis că merită să fac un sumar și să explic ce este și care a fost timeline-ul procesului.
Subiectul principal al acestui weekend a fost detectarea (in ultimul moment zic eu) atacului XZ si de asta am zis că merită să fac un sumar și să explic ce este și care a fost timeline-ul procesului.

Dacă vă interesează domeniul tech dincolo de prețul unui iPhone sau al unui Samsung, atunci cu siguranță ar trebui să știți că în acest weekend a fost descoperit un atac (denumit XZ) care dacă ar fi reușit, ar fi lăsat vulnerabile toate distribuțiile Linux.

Povestea începe așa: există un pachet de utilitare XZ (open source) care sunt folosite pentru a comprima cât mai bine fișierele – cred că ați auzit de LZMA2. În urmă cu câțiva ani un individ (JiaT75 – Jia Tan) a început să contribuie și el la dezvoltarea XZ, în primă fază cu niște schimbări inofensive, dar nu direct în XZ.

Pe 29 aprilie, un tip pe nume Andres Freund (principal software engineer la Microsoft) a trimis comunității oss-security un email legat de descoperirea unui backdoor în pachetul xz/lblzma 5.6.0 și 5.6.1.

Și de aici a pornit distracția și detecția vulnerabilității CVE-2024-3094 în care folosirea compresiei/decompresiei cu librării liblzma ducea la instalarea unui backdoor, extras din … fișierele de test ale pachetului XZ și modificate pentru a activa funcții specifice. Finalitatea era că se putea instala un backdoor în SSH, în special pentru distribuțiile care foloseau systemd.

La prima vedere nu pare nimic aiurea, nu? Și ce dacă ar zice unii…

Problema e că un backdoor în SSH deschide posibilitatea atacatorilor să se conecteze la aproape orice server Linux care avea instalată o versiune SSH adusă după instalarea locală a pachetelor xz/lblzma 5.6.0 și 5.6.1 și mai rău, pe termen lung problema putea ajunge direct în kernel-ul Linux.

Sunt două lucruri extrem de interesante în discuția legată de atacul XZ: cum a fost descoperit și cum a fost implementat. Amândouă trebuie spuse.

Timeline-ul descoperirii

Încep cu timeline-ul descoperirii (detaliile complete sunt aici), pe scurt. Andres Freund folosea o platformă proprie de testare, al cărei scop era să ˝curețe˝ un sistem, pentru a putea măsura mai bine performanța unor procese. Datorită acestui lucru și a faptului că pentru testarea era folosită o versiune de Linux beta, Andres a descoperit că procesul sshd folosea intermitent foarte mult CPU, pentru ca apoi procesul să crape. De aici a putut observa că problema venea de la libzlzma, fără nicio explicație clară. Săpând mai mult a descoperit problema …

Cum a ajuns să fie posibil atacul XZ?

Adică faptul că în pachetul XZ Utils există niște funcții capabile să extragă un cod … greșit la prima vedere, din fișierele de testare, să îl modifice să nu mai fie greșit și în felul acesta să obțină cod funcțional pentru a putea manipula fișierele compresate/decompresate cu libzlzma, inserând opțiuni de backdoor și în același timp având funcționalitate de a se șterge dacă primea o anumită comandă.

Și pentru a se putea ajunge aici, procesul de inserare a codului rău voitor a durat câțiva ani. Via @frogger, avem acest grafic cu timeline-ul.

Totul începe în 2021, când jiatan își face cont pe Github – pare a fi careva din Singapore, după adresa IP.

[libera] -!- jiatan [~jiatan@185.128.24.163]
[libera] -!-  was      : Jia Tan
[libera] -!-  hostname : 185.128.24.163
[libera] -!-  account  : jiatan
[libera] -!-  server   : tungsten.libera.chat [Fri Mar 29 14:47:40 2024]
[libera] -!- End of WHOWAS

După asta face câteva commit-uri nesemnificative pentru ca în iunie 2023 să introducă o funcție ifunc, relativ inofensivă, pe care o lună mai târziu o dezactivează. În februarie 2024 adaugă în .gitignore un fișier periculos, pentru ca în martie să aducă niște fișiere ˝de test˝ cu erori vizibile, dar care pot să fie corectate prin funcțiile precedente, iar rezultatul să fie codul periculos, gata de a fi implantat în fișierele despachetate. Și de aici a ajuns în versiunile libzlma 5.6.0 și 5.6.1, preluate deja în câteva versiuni de Linux:

  • Alpine (5.6.0-5.6.1-r1)
  • Debian (dev/test versions) 5.5.1alpha-01-5.6.1-1
  • Fedora Rawhide (dev/test)
  • Kali Linux
  • openSUSE Tumbleweed and MicroOS

Partea bună este că avem deja reguli în Yara, care pot detecta problema în caz că scapă pachetul pe altundeva.

Așa că dacă aveți (din întâmplare) vreuna din versiunile de Linux afectate sau ați descărcat deja pachetul XZ infectat, apucați-vă și faceți curat prin sistem că s-ar putea să iasă cu pagube.

Ionuţ Bălan
Ionuţ Bălanhttps://www.mobzine.ro
Gadget enthusiast. Ruby Developer. Security addict. IT industry analyst. Reviewer & speaker.

LASA UN COMENTARIU

Scrie comantariul
Introdu numele

*

MobileDirect.ro

Comentarii recente

Recomandare

Bigstep