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:- xz/liblzma: Bash-stage Obfuscation útleinMoaie analyze fan 'e deobfuskaasje troch it ynjeksjeskript, yn fjouwer "stadia".
- Filippo Valsorda syn bluesky-thread Analyse fan 'e efterdoar sels yn RSA_public_decrypt, dy't syn aard sjen lit: in RCE, gjin autentikaasjebypass, en gated (akseptearret de priveekaai fan 'e auteur en as dat net it gefal is, giet it werom nei normaal gedrach) / net werom te beteljen. De auteur wie fan doel om leech profyl te gean om deteksje te foarkommen!
- XZ Efterdoaranalyse troch @smx-smx (WIP) – Oanfoljende analyze fan 'e efterdoar (ik rekke hast yn it begjin ferlern 😀)
- xz efterdoar dokumintaasje wiki, in oare analyze fan it 5.6.1 ynjeksjeskript.
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.”
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.”
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.





