Attaccu di a porta posteriore XZ

XZ Backdoor: "Era vicinu à mè"

Backdooring SSH

Un mantenitore nefastu o cumprumessu hà inseritu un cumpurtamentu maliziosu in una biblioteca chjamata liblzma, parte di l'arnesi è di e biblioteche di cumpressione xz, chì hà risultatu in una backdoor in SSH. Questu hè un attaccu avanzatu di a catena di furnimentu di software postu chì a biblioteca hè stata mudificata intenzionalmente per a backdoor, cù tecniche di offuscazione è stealth per ammuccià u payload di l'attaccu da i revisori.

Hè statu scupertu è divulgatu pocu fà (u 29 di marzu passatu), è a gestione di l'attaccu hè in corsu. Tuttavia, hè statu prestu cuntenutu postu chì pare affettà solu e versioni pre-release di un inseme limitatu di ambienti (pacchetti DEB è RPM, per l'architettura x86_64, è custruiti cù GCC). In ogni casu, u CVE hè statu datu un Puntu di basa CVSS di 10, chì hè riservatu per e vulnerabilità di cibersigurtà più critiche. S'ellu entre in distribuzioni stabili, l'impattu seria schiacciante. 

L'analisi tecnica di l'attaccu, cumprese a xz backdoor spiegatu in prufundità, hè statu analizatu in altrò. Stu post si cuncentrerà nantu à a cronologia di l'attaccu, cumu puderia esse rilevatu, cumu l'incidentu hè statu trattatu finu à oghje, è quali lezioni ponu esse estratte da l'attaccu.

A longa coda di a backdoor hà cuntinuatu bè dopu à u patch iniziale. In Aostu 2025, più di un annu dopu à a divulgazione di CVE-2024-3094, i circadori di sicurezza di Binarly anu trovu a backdoor sempre presente in una decina d'imagine Debian Docker publicate nantu à Docker Hub, cù a squadra di Debian chì hà rifiutatu di rimuoverle, trattendule cum'è artefatti di sviluppu storicu piuttostu chè cum'è risicu attivu. Separatamente, OpenSSF è OpenJS hà emessu un avvertimentu cumunu pocu dopu à l'incidentu di XZ chì tentativi simili di presa di cuntrollu di l'ingegneria suciale avianu digià miratu i prughjetti JavaScript, ciò chì suggerisce chì u mudellu d'attaccu di fiducia di u mantenitore utilizatu quì hè riutilizatu in altrò.

Cumu hè stata iniettata a porta posteriore XZ

Nota: U repositoriu git hè in git.tukaani.org. Tuttavia, ci era ancu un Repositoriu ospitatu da GitHub (attualmente bluccatu) induve u contu GitHub publicava i cambiamenti chì sò stati dopu integrati in u repositoriu Git.

Una parte di a backdoor pare esse solu in i tarball distribuiti per e versioni 5.6.0 è 5.6.1, micca in i repositori git è si basa nantu à un una sola linea in u schedariu build-to-host.m4 schedariu macro utilizatu da autoconf. L'altra parte era in dui supposti schedari di test bad-3-corrupt_lzma2.xz e bon-grande_compressu.lzma

chì eranu commitspluttatu da u contu GitHub "Jia Tan" (JiaT75) in u repositoriu xz u 23 di ferraghju. Era un cambiamentu innocu aghjunghjendu i schedari di test (supuestamente blocchi cumpressi .lzma è .xz). Curiosamente, i schedari di test ùn sò micca stati aduprati da i testi! A linea in u schedariu .m4 inietta un script offuscatu (inclusu in u tarball) da eseguisce à a fine di a cunfigurazione se alcune cundizioni currispondenu. Mudifica u Makefile per u liblzma biblioteca per cuntene u codice chì estrae dati da u schedariu .xz, chì dopu a fine di a deoffuscazione in questu script, hè invucatu à a fine di a cunfigurazione. Decide s'ellu deve mudificà u prucessu di custruzzione per injectà u codice: solu sottu GCC è u linker GCC, sottu Debian o rpm, è solu per x86_64 Linux. Quandu currisponde, u codice injectatu intercetta l'esecuzione rimpiazzendu dui ifunc risolutori cusì certe chjame sò rimpiazzate. Questu face chì e tavule di simboli sianu analizate in memoria (questu richiede tempu, ciò chì hà purtatu à a rilevazione, cum'è spiegatu dopu).

Dopu e cose diventanu interessanti: a backdoor installa un hook di audit in u linker dinamicu, aspittendu chì u simbulu di funzione RSA_public_decrypt ghjunghje, chì hè ridirettu versu un puntu in u codice di a backdoor, chì à u so tornu richiama. libcrypto, presumibilmente per fà l'autentificazione nurmale. È u payload s'attiva se u prugramma in esecuzione hà u nome di u prucessu /usr/sbin/sshdEra chjaru chì i servitori SSH eranu u bersagliu. Tradizionalmente, ssh i servitori cum'è OpenSSH ùn eranu micca culligati cù liblzma, ma sshd hè spessu rattoppatu per supportà systemd-notify affinchì altri servizii possinu avviassi quandu sshd hè in esecuzione. È dopu liblzma hè caricatu indirettamente da systemd, chjudendu u circulu.

A porta di daretu ùn hè ancu cumpletamente analizata, ma pare esse permette l'esecuzione di cumandamenti à distanza (RCE) cù i privilegi di u daemon sshd, in esecuzione in un cuntestu di pre-autentificazione. L'infurmazioni da u certificatu remotu, quandu currispondenu à a backdoor, sò decifrate cù ChaCha20, è quandu si decifra cù successu sò passate à u sistema()Cusì questu hè essenzialmente un RCE gated, assai peghju chè un semplice bypass di chjave publica. 

Una versione tar 5.6.1 più recente hà mostratu sforzi supplementari per ammuccià e tracce, aghjunghjendu ulteriore offuscazione per i nomi di i simboli, è pruvendu à curregge l'errori osservati. mecanismu di estensione induve sò stati cercati fugliali di prova supplementari per certe firme da aghjunghje à a backdoor hè stata ancu messa in opera.

Questu attaccu abbastanza sofisticatu puderia passà inosservatu finu à chì si ghjunghjenu à distribuzioni Linux stabili. Per furtuna, à certe persone li piace à verificà perchè succedenu cose anormali.  

A scuperta di l'attaccu di a porta posteriore XZ

Parechje volte u cumpurtamentu maliziosu iniettatu hè scupertu per casu o accidente. Un bon esempiu era un avvisu di deprecazione ("À quale si primura di l'avvertimenti?") chì hà purtatu à a scuperta di u attaccu di flussu d'eventi in uttrovi 2018. Un altru hè l'utilizatore chì hà avvistatu Codecov in aprile 2021 chì u so script di caricamentu bash ùn hà micca passatu a somma di cuntrollu ("Quale verifica l'integrità di l'artefatti cù e somme di cuntrollu"?) Anomalie è sintomi strani cù ssh logins (logins pigliendu assai CPU è aumentendu u tempu trascorsu, errori valgrind) hà suscitatu a curiosità di Andrés Freund, un sviluppatore PostgreSQL vigilante ma micca un analista di sicurezza (cum'ellu hà dichjaratu). Dopu qualchì investigazione cù OpenSSH nant'à Debian Sid, hà cunclusu chì un prublema di tempu di risposta si basava nant'à una biblioteca, liblzma, parte di u xz-utils biblioteca di cumpressione. A ragione: "U repositoriu xz upstream è i tarball xz sò stati backdoored". Stu diagnosticu era cusì precisu!   U 29 di marzu di u 2024, Andres hà publicatu in Openwall a prima analisi: "backdoor in upstream xz/liblzma chì porta à compromissione di u servitore ssh". U fattu: i tarball di XZ Utils 5.6.0 è 5.6.1 cuntenenu una backdoor. Quessi tarball sò stati creati è firmati da u contu Jia Tan sopracitatu.  He publicatu in Mastodon più tardi quellu ghjornu, ricunnoscendu chì a scuperta era accidentale è hà necessitatu assai cuincidenze. I cummenti di l'altri utilizatori valenu a pena di leghje. Utilizatore di GitHub u listessu (cunnisciutu ancu cum'è Sam James) hà publicatu un bellu Gist FAQ nantu à a backdoor xz-utils induve l'attaccu hè statu riassuntu, cullegendu à più analisi approfondite di a carica utile di l'attaccu. Queste analisi eranu tecnicamente succose, è ci anu aiutatu à capisce megliu l'iniezione, chì era assai elaborata: Questu bellu affissu di Thomas Roccia  mostra una parte di l'attività di JiaT75 nant'à u repositoriu GitHub, è cumu u script d'iniezione inserisce a backdoor binaria, illustrendu ancu di più u Spiegazione di a porta posteriore xz.

Cumu hè statu trattatu l'incidentu

A divulgazione da Andreas Freund era prudente perchè, in e so parolle:

"Data l'apparente implicazione upstream, ùn aghju micca signalatu un bug upstream. Siccomu inizialmente pensava chì era un prublema specificu di Debian, aghju mandatu un rapportu più preliminariu à security@...ian.org. In seguitu, aghju signalatu u prublema à distros@." CISA hè statu avvisatu da una distribuzione.

Red Hat hà assignatu stu prublema CVE-2024-3094. Dopu, a parolla hà circulatu cum'è un focu di furesta. Lasse Collin, l'altru mantenitore di l'XZ, hà aghjustatu un novu commit u sabbatu 30 di marzu intitulatu "CMake: Fix saboted Landlock saboted safety safety check". Unu di i metudi di sandboxing di a biblioteca hè statu sabotatu, almenu durante a custruzzione cù CMake. Hà subitu divulgatu u prublema in u Porta posteriore di XZ Utils. Red Hat hà assignatu stu prublema CVE-2024-3094 (vede ancu in CVE, NDV, Ubuntu). Li hè statu assignatu un enorme Puntu di basa CVSS di 10Tali punteggi piglianu sempre l'Internet per surpresa. CISU listessu 29 di marzu hà publicatu un svegliu, forse troppu simplisticu per via di l'urgenza, ricumandendu à l'utilizatori di passà à a versione stabile 5.4.6. I repositori GitHub sottu à l'urganizazione Tukaani sò stati disattivati ​​(questu hè bonu o male ? Pensu chì hè bonu: Parechje distribuzioni è urganisazioni ligavanu sempre à e versioni GitHub per truvà i tarball infettati per a compilazione. Disattivà u repositoriu impedisce questu. Ci hè in ogni modu una copia di i repositori à git.tukaani.org). I conti GitHub JiaTan75 è Lasse Collins (Larhzu) sò stati ancu suspesi. Questu face parte di u contenimentu, ancu quandu pò affettà persone innocenti. JiaT75 attività in repositori micca disabili ùn si pò ancu vede. L'industria hà reagitu subitu. Parechji venditori anu publicatu regule per rilevà i sistemi vulnerabili, cum'è Yara regula, o supportu in strumenti cummerciali da Sysdig, PAN, è altri. Specialisti di sicurezza cum'è Ghjacumu Berthoty publicatu nantu à a rivisione di cumu avvicinemu u software open source.  Avà simu in a fase di Eradicazione è Ripresa di l'incidentu. L'altri prughjetti mantenuti da JiaTan75 sò sott'à attenta revisione, in particulare u libarchivu/libarchivu (induve JiaTan75 era un cuntributore regulare) è u fuzzer oss-fuzz (induve questu commit fattu da JiaTan75 hà pruvatu à evità l'oss-fuzz, chì in fattu ùn hè statu capace di rilevà a porta posteriore). Questi tentativi di dissimulazione aghjunghjenu altre prove. 

Quale hè sott'attaccu ?

O u contu GitHub JiaT75 hè statu cumprumessu (ricurdatevi chì GitHub hà mandatu 2FA pocu fà) o l'utilizatore fisicu chì pussede u contu hè andatu à u latu scuru. Ma ci sò ragioni convincenti per pensà à una minaccia persistente avanzata (APT), forse sustenuta da u statu, per via di a sofisticazione tecnica di l'attaccu. Ulteriori investigazioni da parte di l'agenzie di cibersigurtà è di l'autorità incaricate di l'applicazione di a legge ci diceranu... Questa entrata in YCombinator Hacker News nantu à Jia Tan Ghjetta qualchì luce nantu à u "quale" è a so attività. Raccomandatu! Dà assai infurmazioni nantu à cumu i cattivi cercanu d'ingannà altri utilizatori, aduprendu l'ingegneria suciale.

"Assai fastidiosu - l'autore apparente di a backdoor era in cumunicazione cun mè (rwmj) per parechje settimane pruvendu à aghjunghje xz 5.6.x à Fedora 40 è 41 per via di e so "nove funzionalità eccezziunali". Avemu ancu travagliatu cun ellu per risolve u prublema di valgrind (chì avà si scopre chì era causatu da a backdoor ch'ellu avia aghjuntu). Avemu avutu à corre eri sera per risolve u prublema dopu una rottura involuntaria di l'embargo. Hà fattu parte di u prughjettu xz per 2 anni, aghjunghjendu ogni tipu di fugliali di prova binari, è per esse onestu cù questu livellu di sofisticazione suspetteraghju ancu e versioni più vechje di xz finu à prova contraria."

Jia Tan hà pigliatu misure per impedisce d'esse tracciatu: Pare ch'ellu abbia utilizatu una VPN (vpn.singapore.witopia.net) per cunnette si - ciò chì hè bè in sè. È parechji cambiamenti parenu esse sustinuti da email tempurali, à usu unicu (da ProtonMail in questu casu) chì incitanu à fusionà i cambiamenti.

L'attore puderia avè l'intenzione d'andà ancu più in fondu, finu à u kernel Linux, cum'è cuntributore à u xy-incrustatu prughjettu. Una prima analisi ùn hà trovu nisuna prova di abortu spontaneu, à oghje.

Nota: un altru cuntributore XZ di bassu prufilu "Hans Jansen" (L'utilizatore GitHub "hansjans162") hè sottu scrutinyU so contu in Debian hè avà bluccatuHà fattu parechji aghjurnamenti à Debian Games per ammuccià quellu ch'ellu vulia nant'à debian/xz-utils, un aghjurnamentu à upstream 5.6.1 per accelerà a distribuzione di a backdoor à debian/unstabile

Tuttu ciò chì pudemu dì, per avà, hè chì questu hè un APT (ancu micca identificatu) chì usa conti diversi, chì travaglia da almenu dui anni nantu à sta campagna, è chì travaglia pazientemente per impiantà un RCE in SSH.

À u mumentu di a scrittura di questu articulu, l'identità daretu à "Jia Tan" ferma senza cunferma. Nisuna attribuzione credibile à un individuu, una urganizazione o un attore statale specificu hè stata verificata publicamente, ciò chì rinforza l'efficacia di a disciplina operativa di a persona.

L'attaccu di backdoor XZ era prevenibile?

Piuttostu difficiule. 

Prima, una parte di a backdoor iniettata hè ghjunta in i fugliali di prova cumpressi chì ùn sò micca stati aduprati da i testi. Retrospettivamente, questu puderia suscità qualchì allarme (rumurosu), ma à quale importa di verificà chì tutti i fugliali di prova sò aduprati da i testi attuali in u mondu reale? Siconda, una parte di a backdoor iniettata hè ghjunta in fugliali macro in i tarball di liberazione, è hè difficiule di verificà manualmente e differenze cù i tarball previsti. L'automatizazione hè ancu cumplessa, postu chì u risultatu previstu da a compilazione stessa (per qualchissia chì sà cumu funziona automake/autoconf) hè difficiule da mudellà per analizà se u tarball reale currisponde à l'aspettative. Certi l'anu pusatu as "L'incompatibilità di i tarball da l'arburu git hè una funzionalità, micca un bug"A pruvenienza di i tarball binarii da u so codice surghjente hè un prublema senza risposta.

Reputazione di l'utilizatore ? Ebbè, u contu GitHub JiaTan75 ùn facia micca cose malvagie secondu u passatu. commits. Hè statu suspesu solu dopu chì l'evidenza s'hè accumulata, ma finu à u 29 di marzu era un utilizatore regulare chì facia affari nurmali. Beh, micca cusì nurmale. Più tardi commits (issu, issu, issu, e issu chì hà aghjustatu u codice di l'exploit) hà pruvatu à riparà l'errori è i crash di valgrind in certe cunfigurazioni, per via di differenze cù u layout di u stack previstu da a backdoor. Commit E recensioni puderanu rilevà questu, ma quale hà a pazienza di analizà i cambiamenti in un schedariu di prova binariu o a vera motivazione per un cambiamentu in l'attributi GCC in u codice surghjente C?

Si deve fà sunà l'allarmi quandu si usa un SSH login ci vole 800 ms invece di 300 ms ? Probabilmente solu e persone iperprudenti ne piglieranu nota. Cicerone hà dettu, "A temerità appartene à a ghjuventù; a prudenza à a vechjaia."  

L'infrastruttura ifunc hè stata aghjunta in ghjugnu 2023 da "Hans Jansen" è "Jia Tan". Questa hè a prima commit aghjunghjendu u supportu ifunc à crc64_fast.c (dopu adupratu per injectà a backdoor). Mesi prima di injectà i binari di a backdoor in i fugliali di prova!

Nota: Autore è commitDifferisce quì, ma questu hè nurmale: Lasse Collin hè u mantenitore di u prugettu, è hà fusionatu i cambiamenti. Ringrazia ancu "Hans Jansen" ...

Nimu ùn hà manifestatu preoccupazioni prima di u post d'Andres Freund è di u CVE creatu da RedHat. Sè vo vede una cascata di strumenti chì catturerebbenu questu, detectanu avà u cumpunente affettatu, ex post facto

Probabilmente a megliu prevenzione hè venuta da a natura di e distribuzioni Linux, è da cumu e versioni instabili è all'avanguardia passanu solu à e distribuzioni stabili à valle dopu un prucessu ritmatu.

Lezioni amparate da l'attaccu XZ bBackdoor

Avemu nutatu quantu hè difficiule di rilevà intenzioni backdoors. E backdoors devenu esse cunsiderate una minaccia interna, postu chì sò piantate da u persunale internu o per via di conti interni compromessi. È quelli tippi sò per u più fidati. È quandu a backdoor hè impiantata in l'artefattu distribuitu, rende più difficiule a rilevazione.

Certi autori cum'è Kevin Beaumont puntatu à sistema, chì apre una grande superficia d'attaccu di servizii di terze parti à backdoor. Questu hè ciò chì u cattivu attore hà abusatu quì. Systemd hà assai ochji, ma XZ hè una biblioteca oscura in cima à a catena. "Quandu u monte hè contaminatu, tutti bevenu acqua avvelenata à valle".

Una dumanda di cambiamentu senza rapportu in u sistema per caricamentu dinamicu di e biblioteche di cumpressione, chì eliminerebbe a backdoor, era digià statu integratu in u sistema ma ùn era ancu statu consegnatu. E dipendenze supplementari introdutte da libsystemd puderanu esse a fonte di vulnerabilità, è eri sta dumanda hè stata aperta

A u cumentu in "xz: Disattivà ifunc per risolve u prublema" commit hà datu una visione precisa di induve mette l'accentu se vulemu impedisce una tale attività (l'enfasi hè meia):

"A lezziò chì duvemu amparà cum'è cumunità hè più da assicurà" software supply chain security olisticamente, verificendu i sistemi di custruzzione oltre u codice surghjente. Cum'è a violazione di SolarWinds induve l'attaccanti anu mudificatu l'aghjurnamenti di u software per l'offerta di software di monitoraghju à fonte chjusa SolarWinds.

A scuperta precoce è a reazione rapida anu limitatu tantu l'impattu. Sè vi ricordate di u scena finale da Men in Black III: «Era guasi tuttu». Ancu una volta, K ùn hà micca scurdatu di lascià a infurmazione. È nisun boglodite hè entratu in e distribuzioni stabili di Linux.
1. «Ùn sò *micca* un ricercatore di sicurezza, nè un ingegnere inversu.» 2. Jia hè un nome di battesimu cinese cumunu. Tan hè ancu un nome di famiglia cumunu chì significa "magnificu". Parechje persone senza legami spartenu questu nome, per piacè ùn cundannate nimu per questu nome!

FAQ

A backdoor XZ hè sempre un risicu oghje?

Per a maiò parte cuntenutu, ma micca cumpletamente sparitu. In Aostu 2025, i circadori anu trovu a backdoor sempre presente in parechje imagine di Debian Docker Hub, trattate da Debian cum'è artefatti storichi inattivi. E squadre devenu verificà chì ùn stanu micca custruendu nantu à imagine di basa obsolete è senza patch invece di suppone chì u patch di u 2024 hà chjusu cumpletamente a porta.

sca-tools-software-strumenti-d'analisi-di-cumpusizione
Priorizà, rimedià è assicurà i vostri risichi di software
Uttene u vostru contu gratuitu.
Nisuna carta di creditu necessaria.

Assicurà u vostru sviluppu è a consegna di software

cù a Suite di Prodotti Xygeni