XZ Efterdoaroanfal

XZ Backdoor: "Dat wie in spannende"

SSH efterdoarring

In skealike of kompromittearre ûnderhâlder hat kwea-aardich gedrach ynfoege yn in bibleteek mei de namme liblzma, ûnderdiel fan 'e xz-kompresjetools en bibleteken, wat resulteart yn in efterdoar yn SSH. Dit is in avansearre software-oanfal op 'e supply chain, om't de bibleteek mei opsetsin oanpast is foar de efterdoar, mei obfuskaasje- en stealth-techniken om de oanfalslading te ferbergjen foar resinsinten.

It waard koartlyn ûntdutsen en iepenbiere (op 29 maart), en de oanfal wurdt noch behannele. It waard lykwols fluch ûnder kontrôle brocht, om't it allinich pre-release ferzjes fan in beheinde set omjouwings liket te beynfloedzjen (DEB- en RPM-pakketten, foar de x86_64-arsjitektuer, en boud mei GCC). Hoe dan ek, de CVE waard in CVSS basisskoare fan 10, dat reservearre is foar de meast krityske kwetsberheden yn cyberfeiligens. As it stabile distribúsjes krijt, soe de ynfloed oerweldigjend wêze. 

De technyske analyze fan 'e oanfal, ynklusyf de xz efterdoar yngeand útlein, waard earne oars analysearre. Dizze post sil him rjochtsje op 'e tiidline fan' e oanfal, hoe't it ûntdutsen wurde koe, hoe't it ynsidint oant no ta ôfhannele is, en hokker lessen út 'e oanfal helle wurde kinne.

De lange sturt fan 'e efterdoar is trochgien nei fier nei de earste patch. Yn augustus 2025, mear as in jier nei't CVE-2024-3094 iepenbier makke waard, fûnen feiligensûndersikers by Binarly de efterdoar noch oanwêzich yn in tsiental Debian Docker-ôfbyldings publisearre op Docker Hub, wêrby't it team fan Debian wegere se te ferwiderjen, en se behannele as histoaryske ûntwikkelingsartefakten ynstee fan aktyf risiko. Apart, OpenSSF en OpenJS joech koart nei it XZ-ynsidint in mienskiplike warskôging út dat ferlykbere sosjale-engineering-oernamepogingen al rjochte wiene op JavaScript-projekten, wat suggerearret dat it hjir brûkte ûnderhâlder-trust-oanfalspatroan earne oars opnij brûkt wurdt.

Hoe't de XZ-efterdoar ynjektearre waard

Opmerking: De git-repository is yn git.tukaani.org. Lykwols, der wie ek in GitHub-hoste repository (op it stuit blokkearre) wêr't it GitHub-akkount de feroarings pleatste dy't letter yntegrearre waarden yn 'e Git-repository.

Ien diel fan 'e efterdoar liket allinich yn 'e ferspraat tarballs te wêzen foar de 5.6.0- en 5.6.1-ferzjes, net yn 'e git-repositories en fertrout op in ienige rigel yn 'e build-to-host.m4 makrobestân brûkt troch autoconf. It oare diel siet yn twa fermoede testbestannen min-3-korrupt_lzma2.xx en goede-grutte_komprimearre.lzma

dat wiene committed troch it GitHub-akkount "Jia Tan" (JiaT75) yn de xz-repository op 23 febrewaris. It wie in ûnskuldige feroaring troch it tafoegjen fan testbestannen (nei alle gedachten .lzma en .xz komprimearre blokken). Nijsgjirrich genôch waarden de testbestannen net brûkt troch de testen! De rigel yn it .m4-bestân ynjeksjeart in fertsjustere skript (opnommen yn 'e tarball) om oan 'e ein fan 'e konfiguraasje útfierd te wurden as guon betingsten oerienkomme. It feroaret it Makefile foar de liblzma bibleteek om koade te befetsjen dy't gegevens ekstraheart út it .xz-bestân, dat nei deobfuskaasje einiget yn dit skript, wurdt oan 'e ein fan konfiguraasje oanroppen. It beslút oft it bouproses oanpast wurde moat om koade te ynjeksjearjen: allinich ûnder GCC en de GCC-linker, ûnder Debian of rpm, en allinich foar x86_64 Linux. As it oerienkomt, ûnderskept de ynjeksjeare koade de útfiering troch twa te ferfangen ifunc resolvers sadat bepaalde oprop ferfongen wurde. Dit feroarsaket dat de symboaltabellen yn it ûnthâld parsearre wurde (dit kostet tiid, wat late ta de deteksje, lykas letter útlein wurdt).

Dan wurdt it nijsgjirrich: De efterdoar ynstallearret in audit hook yn 'e dynamyske linker, en wachtet op it RSA_public_decrypt funksjesymboal om oan te kommen, dat trochferwiisd wurdt nei in punt yn 'e efterdoarkoade, dy't op syn beurt weromropt libcrypto, nei alle gedachten om normale autentikaasje út te fieren. En de lading wurdt aktivearre as it rinnende programma de prosesnamme hat /usr/sbin/sshdIt wie dúdlik dat SSH-tsjinners it doelwyt wiene. Tradisjoneel, sshd servers lykas OpenSSH wiene net keppele oan liblzma, mar sshd is faak patched om systemd-notify te stypjen, sadat oare tsjinsten kinne starte as sshd rint. En dan wurdt liblzma yndirekt laden troch systemd, de sirkel slute.

De efterdoar is noch net folslein analysearre, mar it liket derop dat it sa is útfieren fan kommando's op ôfstân tastean (RCE) mei de privileezjes fan 'e sshd-daemon, rint yn in pre-autentikaasjekontekst. Ynformaasje fan it eksterne sertifikaat, as it oerienkomt mei de efterdoar, wurdt ûntsifere mei ChaCha20, en as it mei súkses ûntsifere wurdt, wurdt it trochjûn oan de systeem(). Dat is dus yn essinsje in gated RCE, folle slimmer as in gewoane bypass fan iepenbiere kaaien. 

In lettere 5.6.1 tarball liet ekstra ynspanningen sjen om de spoaren te ferbergjen, fierdere fertsjustering ta te foegjen foar symboalnammen, en besocht de sjoen flaters te reparearjen. In útwreidingsmeganisme wêr't ekstra testbestannen socht waarden nei bepaalde hantekeningen om ta te foegjen oan 'e efterdoar, waard ek yn plak set.

Dizze frij ferfine oanfal koe ûnopmurken foarbygean oant stabile Linux-distribúsjes berikt binne. Gelokkich wolle guon minsken kontrolearje wêrom't abnormale dingen barre.  

De ûntdekking fan 'e XZ Backdoor-oanfal

Faak wurdt ynjektearre kwea-aardich gedrach troch tafal of ûngelok opdûkt. In goed foarbyld wie in warskôging foar ôfskriuwing ("Wa jout om warskôgings?") dat late ta de ûntdekking fan 'e evenemint-stream oanfal yn oktober 2018. In oare is de brûker dy't warskôge Codecov yn april 2021 dat harren bash uploader-skript de kontrôlesom net trochjûn hat ("Wa ferifiearret de yntegriteit fan artefakten mei kontrôlesommen"?) Anomalieën en frjemde symptomen mei ssh logins (logins nimt in soad CPU en ferhege ferrûne tiid, valgrind-flaters) wekker de nijsgjirrigens fan Andres Freund, in waaksame PostgreSQL-ûntwikkelder mar gjin feiligensanalist (lykas hy steldeNei wat ûndersyk mei OpenSSH op Debian Sid, konkludearre hy dat in reaksjetiidprobleem ôfhinklik wie fan in bibleteek, liblzma, Diel fan 'e xz-utils kompresjebibleteek. De reden: "de upstream xz repository en de xz tarballs binne efterdoarreDizze diagnoaze wie sa akkuraat!   Op 29 maart 2024 pleatste Andres de earste analyze yn Openwall: "efterdoar yn upstream xz/liblzma dy't liedt ta kompromis tusken ssh-tsjinner". It feit: XZ Utils 5.6.0 en 5.6.1 tarballs befetsje in efterdoar. Dizze tarballs waarden makke en ûndertekene troch it neamde Jia Tan-akkount.  He pleatst yn Mastodon letter dy dei, en erkende dat de ûntdekking tafallich wie en in protte tafallen fereaske. De opmerkings fan oare brûkers binne it lêzen wurdich. GitHub-brûker deseldesam (ek wol bekend as Sam James) publisearre in moaie Gist FAQ oer de xz-utils efterdoar dêr't de oanfal gearfette waard, keppele oan mear yngeande analyses fan 'e oanfalslading. Dizze analyses wiene technysk sappich, en holpen ús om de ynjeksje better te begripen, dy't tige útwurke wie: Dit moai poster fan Thomas Roccia  lit in diel sjen fan 'e aktiviteit fan JiaT75 op 'e GitHub-repository, en hoe't it ynjeksjeskript de binêre efterdoar ynfoeget, wat fierder yllustrearret xz efterdoar útlein.

Hoe't it ynsidint behannele waard

Iepenbiering troch Andreas Freund wie foarsichtich, om't, yn syn eigen wurden:

"Mei it each op de dúdlike belutsenens fan upstream, haw ik gjin upstream-bug rapportearre. Om't ik earst tocht dat it in spesifyk probleem foar Debian wie, haw ik in mear foarriedich rapport stjoerd nei security@...ian.org. Dêrnei haw ik it probleem rapportearre oan distros@. CISA waard ynformearre troch in distribúsje.”

Red Hat hat dit probleem CVE-2024-3094 tawiisd. Doe gie it wurd as in wylde brân om. Lasse Collin, de oare ûnderhâlder foar de XZ, foege in ta nij commit op sneon 30 maart mei de titel "CMake: Sabotearre Landlock sandbox check" reparearje. Ien fan 'e bibleteek-sandbox-metoaden foar lânlock waard sabotearre, teminsten by it bouwen mei CMake. Hy makke it probleem daliks bekend yn 'e XZ brûkt efterdoar. Red Hat hat dit probleem tawiisd CVE-2024-3094 (sjoch ek yn CVE, NDV, ubuntu). It waard in flinke CVSS Basisskoare fan 10Sokke skoares feroverje it ynternet altyd. CISA hat op deselde 29 maart in alarmearje, miskien te simplistysk fanwegen de urginsje, en advisearret brûkers om te downgraden nei de stabile ferzje 5.4.6. GitHub-repositories ûnder de Tukaani-organisaasje waarden útskeakele (is dit goed of min? Ik tink goed: in protte distribúsjes en organisaasjes ferwiisden noch nei de GitHub-releases om de ynfekteare tarballs te finen foar it bouwen. It útskeakeljen fan de repo foarkomt dat. Der is dochs in kopy fan 'e repositories op git.tukaani.orgDe GitHub-akkounts JiaTan75 en Lasse Collins' (Larhzu) waarden ek skorst. Dit is ûnderdiel fan 'e befetsje, sels as it ûnskuldige minsken kin beynfloedzje. JiaT75 aktiviteit yn net-útskeakele repositories noch net te sjen wêze. De sektor reagearre fluch. In protte leveransiers publisearren regels foar it opspoaren fan kwetsbere systemen, lykas Yara regels, of stipe yn kommersjele ark fan Sysdig, PANNE, en oaren. Feiligensspesjalisten lykas James Berthoty pleatst oer it besjen fan hoe't wy iepen boarne software oanpakke.  Wy binne no yn 'e útrûgings- en herstelfaze fan it ynsidint. Oare projekten dy't troch JiaTan75 ûnderhâlden wurde, wurde nau besjoen, benammen de libarchive/libarchive (wêr't JiaTan75 in regelmjittige bydrager wie) en de fuzzer oss-fuzz (wêr't dit commit makke troch JiaTan75 besocht oss-fuzz te foarkommen, wat eins koe de efterdoar net ûntdekke). Dizze ferbergingspogingen foegje fierder bewiis ta. 

Wa is ûnder de oanfal?

Of it GitHub JiaT75-akkount waard kompromittearre (tink derom dat GitHub koartlyn 2FA oplein hat) of de fysike brûker dy't it akkount hie, is nei de tsjustere kant gien. Mar d'r binne oertsjûgjende redenen om te tinken oan in avansearre oanhâldende bedriging (APT), miskien troch de steat stipe, fanwegen de technyske ferfining fan 'e oanfal. Fierder ûndersyk troch cyberfeiligensburo's en wetshandhaving sil útwize ... Dizze yngong yn YCombinator Hacker Nijs oer Jia Tan smyt wat ljocht op de "wa" en syn aktiviteit. Oanrikkemandearre! It jout in soad ynformaasje oer hoe't de minne jonges besykje oare brûkers te mislieden, mei help fan sosjale technyk.

"Hiel ferfelend - de skynbere auteur fan 'e efterdoar wie ferskate wiken yn kommunikaasje mei my (rwmj) om te besykjen xz 5.6.x ta te foegjen oan Fedora 40 & 41 fanwegen de "geweldige nije funksjes". Wy hawwe sels mei him gearwurke om it valgrind-probleem op te lossen (dat no blykt feroarsake te wurden troch de efterdoar dy't hy tafoege hie). Wy moasten justerjûn race om it probleem op te lossen nei in ûnbedoelde ûnderbrekking fan it embargo. Hy is al 2 jier diel út fan it xz-projekt, en hat allerlei binêre testbestannen tafoege, en om earlik te wêzen mei dit nivo fan ferfining soe ik sels âldere ferzjes fan xz achterdochtich wêze oant it tsjinoerstelde bewiisd is."

Jia Tan naam maatregels om te foarkommen dat it folge waard: it liket derop dat it VPN (vpn.singapore.witopia.net) brûkt hat om ferbining te meitsjen - wat op himsels goed is. En in protte feroarings lykje stipe te wurden troch tydlike e-mails foar ien gebrûk (yn dit gefal fan ProtonMail) dy't oantrúnje om feroarings gear te foegjen.

De akteur kin fan doel wêze om noch djipper te gean, oant de Linux-kernel, as de bydragejouwer oan de xy-ynbêde projekt. In earste analyze fûn gjin bewiis fan miskream, oant hjoed de dei.

Opmerking: in oar ûnopfallende XZ-meiwurker "Hans Jansen" (GitHub-brûker “hansjans162”) is ûnder kontrôleSyn akkount by debian is no blokkearreHy makke in soad updates oan Debian Games om dejinge dy't er woe op debian/xz-utils te ferbergjen, in update nei upstream 5.6.1 om de distribúsje fan 'e efterdoar te fersnellen nei debian/ynstabyl

Alles wat wy foarearst sizze kinne is dat dit in (noch net identifisearre) APT is dy't ferskate akkounts brûkt, teminsten twa jier oan dizze kampanje wurket, en geduldich wurket om in RCE yn SSH te ymplantearjen.

Op it stuit fan skriuwen is de identiteit efter "Jia Tan" noch net befêstige. Der is gjin betroubere taskriuwing oan in spesifyk yndividu, organisaasje of steatsakteur iepenbier ferifiearre, wat befestiget hoe effektyf de operasjonele dissipline fan 'e persona wie.

Wie de XZ-efterdoaroanfal foarkomber?

Earder lestich. 

Earst kaam in part fan 'e ynjektearre efterdoar yn komprimearre testbestannen dy't net brûkt waarden troch testen. Achterôf sjoen koe dat wat (lawaaierige) alarmen feroarsaakje, mar wa makket him út om te kontrolearjen dat alle testbestannen brûkt wurde troch werklike testen yn 'e echte wrâld? Twadde, in part fan 'e ynjektearre efterdoar kaam yn makrobestannen yn 'e release-tarballs, en it is lestich om manuell te kontrolearjen op ferskillen mei de ferwachte tarballs. Automatisearring is ek kompleks, om't it ferwachte resultaat fan 'e build sels (foar elkenien dy't wit hoe't automake/autoconf wurket) lestich te modellearjen is foar it analysearjen oft de echte tarball oerienkomt mei de ferwachtingen. Guon stelden it as "De tarballs dy't net oerienkomme mei de git-beam binne in funksje, gjin bug"De oarsprong fan binêre tarballs út syn boarnekoade is in net oplost probleem.

Brûkersreputaasje? No, it JiaTan75 GitHub-akkount die neffens it ferline gjin skurke dingen. commits. It waard pas skorst nei't it bewiis sammele wie, mar oant 29 maart wie dat in reguliere brûker dy't normale saken die. No, net sa normaal. Letter commits (dit, dit, dit, en dit dy't de exploitkoade oanpast hat) besocht de valgrind-flaters en crashes yn guon konfiguraasjes te reparearjen, fanwegen ferskillen mei de stack-yndieling dy't ferwachte wurdt troch de efterdoar. Commit resinsjes koenen dit ûntdekke, mar wa hat it geduld om feroarings yn in binêr testbestân te analysearjen of de wirklike motivaasje foar in feroaring yn GCC-attributen yn C-boarnekoade?

Moat men alarm slaan as in SSH login duorret 800 ms ynstee fan 300 ms? Wierskynlik soene allinich hyperfoarsichtige minsken der omtinken oan jaan. Cicero sei, "Oermoedichheid heart by de jeugd; foarsichtigens by de âlderdom."  

De ifunc-ynfrastruktuer waard yn juny 2023 tafoege troch "Hans Jansen" en "Jia Tan". Dit is de earste commit ifunc-stipe tafoege oan crc64_fast.c (letter brûkt om de efterdoar te ynjeksjearjen). Moannen foar it ynjeksjearjen fan de efterdoarbinêre bestannen yn 'e testbestannen!

Opmerking: Auteur en commithjir ferskille, mar dit is normaal: Lasse Collin is de projektbehearder, en hy hat de feroarings gearfoege. Hy tanket sels "Hans Jansen" ...

Nimmen hat soargen útsprutsen foar de post fan Andres Freund en de CVE makke troch RedHat. As jo ​​in kaskade fan ark sjogge dy't dit fange soene, detektearje se no de troffen komponint, ex post facto

Wierskynlik kaam de bêste previnsje fan 'e aard fan Linux-distribúsjes, en hoe't ynstabile, foarútstribjende ferzjes allinich nei stabile distribúsjes streamôfwerts geane nei in tempoproses.

Lessen leard fan XZ bBackdoor-oanfal

Wy hawwe opmurken hoe dreech it is om te ûntdekken intentionaal efterdoarren. Efterdoarren moatte beskôge wurde as in ynterne bedriging, om't se plante wurde troch yntern personiel of fia kompromittearre ynterne akkounts. En dy jonges wurde meast fertroud. En as de efterdoar ymplantearre is yn it ferspraat artefakt, makket it it dreger te ûntdekken.

Guon auteurs lykas Kevin Beaumont wiisde op systeem, dy't in grut oanfalsflak fan tsjinsten fan tredden iepenet nei efterdoar. Dit is wat de minne akteur hjir misbrûkt hat. Systemd hat in protte eachbollen, mar XZ is in ûndúdlike bibleteek omheech yn 'e keatling. "As de streamop fersmoarge is, drinkt elkenien fergiftige wetter streamop".

In net-relatearre feroaringsfersyk yn it systeem foar dynamysk laden fan kompresjebiblioteken, dat de efterdoar fuortsmite soe, wie al yn it systeem ynfoege mar noch net levere. De ekstra ôfhinklikheden yntrodusearre troch libsystemd kinne de boarne wêze fan kwetsberheden, en juster dit fersyk waard iepene

A reaksje yn "xz: Skeakelje ifunc út om probleem op te lossen" commit joech in skerp ynsjoch yn wêr't wy de fokus op lizze moatte as wy sokke aktiviteit foarkomme wolle (de klam leit by my):

"De les dy't wy as mienskip leare moatte is mear om feilich te stellen software supply chain security holistisch, it kontrolearjen fan bousystemen dy't fierder geane as allinich boarnekoade. Lykas de SolarWinds-ynbraak wêrby't oanfallers software-updates oanpasten foar it oanbod fan sletten boarne-monitoringsoftware fan SolarWinds.”

De iere ûntdekking en rappe reaksje beheinden de ynfloed safolle. As jo ​​​​​​jo ûnthâlde de ein-sêne fan Manlju yn Swart III: "Dat wie in spannende". Nochris fergeat K de tip net te litten. En gjin boglodite kaam yn stabile Linux-distribúsjes.
1. “Ik bin *gjin* befeiligingsûndersiker, en ek gjin reverse engineer.” 2. Jia is in gewoane Sineeske foarnamme. Tan is ek in gewoane famyljenamme dy't "prachtig" betsjut. In protte net-besibbe minsken diele dizze namme, feroardielje asjebleaft nimmen mei dizze namme!

FAQ

Is de XZ-efterdoar hjoed de dei noch in risiko?

Foar it grutste part ûnder kontrôle, mar net hielendal fuort. Yn augustus 2025 fûnen ûndersikers de efterdoar noch oanwêzich yn ferskate Debian Docker Hub-ôfbyldings, dy't troch Debian behannele waarden as ynaktive histoaryske artefakten. Teams moatte ferifiearje dat se net bouwe op ferâldere, net-patched basisôfbyldings ynstee fan oan te nimmen dat de patch fan 2024 de doar folslein sluten hat.

sca-tools-software-komposysje-analyse-ark
Prioritearje, ferhelpe en befeiligje jo softwarerisiko's
Krij jo fergese akkount.
Gjin kredytkaart nedich.

Befeiligje jo softwareûntwikkeling en levering

mei Xygeni Produkt Suite