Vegerandina SSH-ê ya ji paş ve
Parastvanekî xerabkar an jî xeternak tevgerên xerabkar di pirtûkxaneyekê de bi navê pirtûkxane, beşek ji amûr û pirtûkxaneyên zextkirina xz, ku di encamê de deriyek paşîn di SSH de çêdibe. Ev êrîşek zincîra dabînkirina nermalava pêşkeftî ye ji ber ku pirtûkxane bi zanebûn ji bo deriyê paşîn hatiye guhertin, bi teknîkên veşartî û veşartî ji bo veşartina barê êrîşê ji nirxanderan.
Ew vê dawiyê (di 29ê Adarê de) hate kifşkirin û eşkerekirin, û birêvebirina êrîşê berdewam dike. Lêbelê, ew zû hate kontrolkirin ji ber ku xuya dike ku ew tenê bandorê li guhertoyên pêş-berdanê yên komek jîngehên sînorkirî dike (pakêtên DEB û RPM, ji bo mîmariya x86_64, û bi GCC-ê hatî çêkirin). Her çi dibe bila bibe, CVE hate dayîn Pûana bingehîn a CVSS ji 10an, ku ji bo qelsiyên ewlehiya sîber ên herî krîtîk tê veqetandin. Ger ew bikeve belavkirinên stabîl, bandor dê pir zêde be.
Analîza teknîkî ya êrîşê, tevî deriyê paşîn ê xz bi kûrahî hate ravekirin, li cîhek din hate analîzkirin. Ev nivîs dê li ser dema êrîşê, çawaniya tespîtkirina wê, çawaniya birêvebirina bûyerê heta niha, û çi ders dikarin ji êrîşê werin derxistin, bisekine.
Dûvika dirêj a deriyê paşîn ji patch-a destpêkê jî pir dirêj berdewam kir. Di Tebaxa 2025-an de, zêdetirî salek piştî eşkerekirina CVE-2024-3094, lêkolînerên ewlehiyê yên li Binarly dîtin ku deriyê paşîn hîn jî di deh wêneyên Debian Docker-ê de li ser Docker Hub-ê hatine weşandin heye, tîmê Debian red kir ku wan jê bibe, wan wekî berhemên pêşkeftina dîrokî bihesibîne ne wekî xetereya çalak. Bi awayekî cuda, OpenSSF û OpenJS demek kurt piştî bûyera XZ hişyariyek hevbeş dan ku hewldanên desteserkirina endezyariya civakî yên wekhev berê jî projeyên JavaScript hedef girtibûn, ev yek jî nîşan dide ku şêweya êrîşa pêbaweriya parastvanê ya li vir tê bikar anîn li cîhek din tê bikar anîn.
Çawa deriyê paşîn ê XZ hate derzîkirin
Têbînî: Depoya git di nav de ye git.tukaani.org. Lebê, her wiha hebû Depoya mêvandarkirî ya GitHub (niha hatiye astengkirin) cihê ku hesabê GitHub guhertinên ku paşê di depoya Git de hatine entegrekirin dişand.
Beşek ji deriyê paşîn xuya dike ku tenê di tarballên belavkirî de ji bo guhertoyên 5.6.0 û 5.6.1 de ye, ne di depoyên git de ye û xwe dispêre a rêzek yekane di build-to-host.m4 de pelê makroyê ku ji hêla autoconf ve tê bikar anîn. Beşa din di du pelên testê yên gumanbar de bû. xirab-3-corrupt_lzma2.xz û baş-mezin_pêçayî.lzma
ew bûn committed ji hêla hesabê GitHub "Jia Tan" ve (JiaT75) hindirê depoya xz di 23ê Sibatê de. Guhertinek bêzerar bû ku testfiles (blokên pêçayî yên qaşo .lzma û .xz) lê zêde dikir. Bi balkêşî, pelên testê ji hêla testan ve nehatin bikar anîn! Xeta di pelê .m4 de skrîptek tarî (di nav tarballê de heye) derzî dike da ku di dawiya mîhengkirinê de were bicîh kirin ger hin şert li hev bikin. Ew Makefile ji bo diguherîne pirtûkxane pirtûkxane ji bo koda ku daneyan ji pelê .xz derdixe dihewîne, ku piştî deobfuscation bi dawî dibe di vê senaryoyê de, di dawiya mîhengkirinê de tê gazîkirin. Ew biryar dide ka pêvajoya avakirinê biguherîne da ku kodê derzî bike: tenê di bin GCC û girêdana GCC de, di bin Debian an rpm de, û tenê ji bo x86_64 Linux. Dema ku li hev tê, koda derzîkirî bi guhertina duyan darvekirinê digire. ifunc çareserkeran ji ber vê yekê hin bang têne guhertin. Ev dibe sedema ku tabloyên sembolan di bîrê de werin analîzkirin (ev dem digire, ku bû sedema tespîtkirinê, wekî ku paşê tê ravekirin).
Hingê tişt balkêş dibin: Deriyê paşîn çengelek denetimê di girêdana dînamîk de saz dike, li benda gihîştina sembola fonksiyona RSA_public_decrypt e, ku ber bi xalek di koda deriyê paşîn de tê veguheztin, ku di encamê de vedigere libcrypto, bi îhtimaleke mezin ji bo pêkanîna pejirandina normal. Û barkêş çalak dibe ger bernameya ku dixebite navê pêvajoyê hebe /usr/sbin/sshdEşkere bû ku serverên SSH hedef bûn. Bi kevneşopî, ssh serverên mîna OpenSSH bi wan ve ne girêdayî bûn pirtûkxane, lê sshd ye gelek caran hatiye peçandin ji bo piştgiriya systemd-notify da ku xizmetên din dema ku sshd dixebite dest pê bikin. Û wê hingê liblzma bi awayekî nerasterast ji hêla sîstem, girtina çemberê.
Deriyê paşîn hîn bi tevahî nehatiye analîzkirin, lê xuya ye ku ew e destûrê dide pêkanîna fermanên ji dûr ve (RCE) bi mafên daîmona sshd re, di çarçoveyek pêş-pejirandinê de dixebite. Agahiyên ji sertîfîkaya dûr, dema ku ji hêla deriyê paşîn ve li hev tên, bi ChaCha20 ve têne şîfrekirin, û dema ku ew bi serkeftî şîfre dibe, ew ji sîstem()Ji ber vê yekê ev di bingeh de RCE-yek dergehî ye, ji derbasbûna mifteya giştî pir xirabtir.
Guhertoyek tarball a 5.6.1 a paşîn hewlên zêdetir nîşan da ji bo veşartina şopan, ji bo navên sembolan bêtir tarîkirin zêde kir, û hewl da ku xeletiyên dîtî rast bike. mekanîzmaya dirêjkirinê li wir pelên testê yên zêde ji bo hin îmzeyan hatin lêgerîn da ku li deriyê paşîn werin zêdekirin jî hatin danîn.
Ev êrîşa sofîstîke heta ku belavkirinên Linux-ê yên sabît negihîjinê dikare bê dîtin. Bi xêra Xwedê, hin kes hez dikin ku bipirsin ka çima tiştên neasayî diqewimin.
Vedîtina Êrîşa XZ Backdoor
Gelek caran tevgerên xerab ên derzîkirî bi tesadufî an jî bi qezayê têne derxistin. Nimûneyek baş ev bû hişyariya betalkirinê ("Kî eleqedarê hişyariyan e?") ku bû sedema kifşkirina êrîşa herikîna bûyerê di Cotmeha 2018an de. Yekî din jî bikarhênerê ku hişyarî da ye Codecov di Nîsana 2021an de ku skripta barkêşê bash a wan ji kontrolê derbas nebûye ("Kî yekparebûna artefaktan bi kontrolên hesaban verast dike"?) Anomalî û nîşanên xerîb bi ssh re logins (logingelek CPU digire û dema derbasbûyî zêde dibe, xeletiyên valgrind) meraqa hişyar kir Andres Freund, pêşdebirê PostgreSQL-ê yê hişyar lê ne analîstê ewlehiyê (wekî ku wî diyar kir)Piştî hin lêkolînan bi OpenSSH li ser Debian Sid, wî gihîşt wê encamê ku pirsgirêkek dema bersivdayînê bi pirtûkxaneyekê ve girêdayî ye, pirtûkxane, parçeyek xz-utils pirtûkxaneya pêçandinê. Sedem: "depoya jorîn a xz û tarballên xz ji paş ve hatine girtin.Ev teşhîs pir rast bû! Di 29ê Adara 2024an de, Andres yekem analîza xwe li Openwallê weşand: "deriyê paşîn di jorîn a xz/liblzma de dibe sedema xetereya servera sshRastî: tarballên XZ Utils 5.6.0 û 5.6.1 deriyekî paşverû dihewînin. Ev tarball ji hêla hesabê Jia Tan ê ku li jor hatî behs kirin ve hatine afirandin û îmzekirin. He di Mastodon de hatî weşandin paşê wê rojê, qebûl kir ku vedîtin tesadufî bû û gelek tesadufan hewce kir. Şîroveyên bikarhênerên din hêjayî xwendinê ne. Bikarhênerê GitHub heman tişt (aka Sam James) Gistek xweş weşand Pirs û Bersîvên Pir tên Pirsîn (FAQ) li ser deriyê paşîn ê xz-utils li ku derê êrîş hate kurtkirin, girêdana bi bêtir analîzên kûr ji barkêşiya êrîşê. Ev analîz ji hêla teknîkî ve balkêş bûn, û ji me re bûn alîkar ku em derzîkirinê, ku pir berfireh bû, çêtir fam bikin:- xz/liblzma: Şirovekirina Tepeserkirina Qonaxa BashAnalîzek baş li ser deobfuskasyonê bi rêya skripta derzîkirinê, di çar "qonaxan" de.
- Têla şîn a Filippo Valsorda Analîza deriyê paşîn bi xwe di RSA_public_decrypt de, ku cewherê wê nîşan dide: RCE ye, ne derbasbûna destûrnameyê ye, û girtî ye (kilîta taybet a nivîskar qebûl dike û heke na, vedigere rewşa normal) / nayê vegerandin. Nivîskar niyeta wî ew bû ku xwe ji nişka ve nîşan bide da ku ji tespîtkirinê dûr bikeve!
- Analîza deriyê paşîn a XZ ji hêla @smx-smx (WIP) ve - Analîzek zêdetir a deriyê paşîn (ez hema hema di destpêkê de winda bûm 😀)
- wîkiya belgekirina deriyê paşîn ê xz, analîzek din a senaryoya derzîkirinê ya 5.6.1.
Çawa bûyer hate çareserkirin
Aşkerekirina Andreas Freund bi hişyarî bû, ji ber ku, bi gotinên wî bi xwe:"Ji ber beşdarbûna eşkere ya jorîn, min çewtiyek jorîn rapor nekiriye. Ji ber ku min di destpêkê de fikirî ku ew pirsgirêkek taybetî ya debianê ye, min raporek pêşîntir ji security@...ian.org re şand. Paşê, min pirsgirêk ji distros@ re ragihand." CISA ji hêla belavkirinekê ve hate agahdarkirin.”
Kî di bin êrîşê de ye?
Yan hesabê GitHub JiaT75 hatiye tahrîbkirin (ji bîr mekin ku GitHub vê dawiyê 2FA ferz kir) an jî bikarhênerê fîzîkî yê xwediyê hesabê çûye aliyê tarî. Lê sedemên girîng hene ku meriv li ser gefek domdar a pêşkeftî (APT) bifikire, dibe ku ji hêla dewletê ve were piştgirî kirin, ji ber sofîstîkebûna teknîkî ya êrîşê. Lêkolîna bêtir ji hêla ajansên ewlehiya sîber û sepandina qanûnê ve dê nîşan bide ... Ev têketin di Nûçeyên Hackerê yên YCombinator de derbarê Jia Tan de hinek ronî dide ser "kî" û çalakiya wî. Pêşniyarkirî! Ew gelek agahdarî dide ka çawa xirabkar hewl didin bikarhênerên din bi karanîna endezyariya civakî bixapînin."Gelek acizker - nivîskarê eşkere yê deriyê paşîn çend hefteyan bi min (rwmj) re di têkiliyê de bû û hewl dida ku xz 5.6.x li Fedora 40 û 41 zêde bike ji ber "taybetmendiyên nû yên mezin". Me heta bi wî re xebitî da ku pirsgirêka valgrind çareser bike (ku niha derket holê ku ji ber deriyê paşîn ê ku wî lê zêde kiribû çêbûye). Piştî şikandina ambargoyê ya bêhemdî, me duh şev neçar ma ku em bi hev re pêşbaziyê bikin da ku pirsgirêkê çareser bikin. Ew 2 sal in beşek ji projeya xz ye, her cûre pelên testê yên dualî lê zêde dike, û ji bo ku bi rastî bi vê asta sofîstîkebûnê re ez ê ji guhertoyên kevintir ên xz jî guman bikim heya ku berevajî neyê îspat kirin."
Jia Tan tedbîr girtin da ku rê li ber şopandinê bigire: Wisa dixuye ku ji bo girêdanê VPN (vpn.singapore.witopia.net) bikar aniye - ku bi serê xwe baş e. Û xuya ye ku gelek guhertin bi e-nameyên demkî û yek-bikaranînî (di vê rewşê de ji ProtonMail) têne piştgirî kirin ku daxwaza yekkirina guhertinan dikin.
Dibe ku aktor niyeta wê hebe ku hîn kûrtir biçe, heta kernela Linuxê, wekî beşdarê vê yekê. xy-çandî proje. Analîzek destpêkê heta îro ti delîlên ji ber windakirina ducaniyê nedît.
Têbînî: yekî din beşdarvanê XZ yê profîla nizm "Hans Jansen" (Bikarhênerê GitHub "hansjans162") ev e di bin çavan deHesabê wê li debianê niha ye asteng kirinWî gelek nûvekirin li Debian Games kir da ku ya ku ew li ser debian/xz-utils dixwest veşêre, nûvekirinek ji bo upstream 5.6.1 da ku bi lez belavkirina deriyê paşîn bilezîne. debian/ne aram.
Tiştê ku em dikarin niha bibêjin ev e ku ev APT-yek (hîn nenaskirî) ye ku hesabên cûda bikar tîne, herî kêm du salan li ser vê kampanyayê dixebite, û bi sebir dixebite da ku RCE-yek di SSH-ê de bicîh bike.
Heta dema nivîsandina vê nivîsê, nasnameya li pişt "Jia Tan" hîn nehatiye piştrastkirin. Tu girêdaneke pêbawer bi kesekî, rêxistinekê, an aktorekî dewletê yê taybetî re bi awayekî giştî nehatiye piştrastkirin, ev yek jî nîşan dide ka dîsîplîna operasyonel a vê kesê çiqas bi bandor bû.
Gelo êrîşa deriyê paşîn a XZ-ê dihat astengkirin?
Gelekî dijwar.
Pêşî, beşek ji deriyê paşîn ê derzîkirî ket nav pelên testê yên pêçayî ku ji hêla ceribandinan ve nehatine bikar anîn. Bi paşveçûnê, ev dikare hin alarmên (dengdar) derxe, lê kî eleqedar e ku kontrol bike ka hemî pelên testê ji hêla ceribandinên rastîn ve di cîhana rastîn de têne bikar anîn? Ya duyemîn, beşek ji deriyê paşîn ê derzîkirî di pelên makro de ket nav tarballên berdanê, û dijwar e ku meriv bi destan cûdahiyên bi tarballên bendewar re kontrol bike. Otomasyon jî tevlihev e, ji ber ku encama bendewar ji avakirinê bixwe (ji bo her kesê ku dizane çawa çêkirina otomatîk/autoconf dixebite) dijwar e ku ji bo analîzkirinê model bike ka tarballa rastîn bi bendewariyan re li hev dike. Hinekan ew pêşkêş kirin as "Nakokiya tarballên ji dara git taybetmendiyek e, ne çewtiyek e"Çavkaniya pelên tarball ên dualî ji koda çavkaniya wê pirsgirêkek çaresernekirî ye.
Navûdengê bikarhêner? Belê, li gorî berê hesabê JiaTan75 GitHub tiştên nebaş nedikir. commits. Tenê piştî kombûna delîlan hate sekinandin, lê heta 29ê Adarê ew bikarhênerekî birêkûpêk bû ku karûbarên xwe yên normal dikir. Belê, ne ewqas normal. Paşê commits (ev, ev, ev, û ev ku koda îstismarkirinê sererast kir) hewl da ku xeletiyên valgrind û têkçûnên di hin konfigurasyonan de rast bike, ji ber cûdahiyên bi sêwirana stackê ya ku ji hêla deriyê paşîn ve tê hêvîkirin. Commit nirxandin dikarin vê yekê tespît bikin, lê kî xwedî sebir e ku guhertinên di pelê testa dualî de an jî motîvasyona rastîn ji bo guhertinek di taybetmendiyên GCC de di koda çavkaniya C de analîz bike?
Ma divê meriv dema ku SSH heye alarmê bide? login 800 ms digire li şûna 300 ms? Dibe ku tenê mirovên pir hişmend dê bala xwe bidinê. Cicero got, "Bêwijî ji bo ciwanan e; hişyarî jî ji bo pîrbûnê ye."
Binesaziya ifunc di Hezîrana 2023an de ji hêla "Hans Jansen" û "Jia Tan" ve hate zêdekirin. Ev yekem e commit piştgiriya ifunc li crc64_fast.c zêde kir (paşê ji bo derzîkirina deriyê paşîn hate bikar anîn). Meh berî ku pelên ducarî yên deriyê paşîn di pelên ceribandinê de werin derzîkirin!

Têbînî: Nivîskar û commitli vir cudahî heye, lê ev normal e: Lasse Collin parêzvanê projeyê ye, û wî guhertinan yek kir. Wî heta spasiya "Hans Jansen" jî kir...
Berî posta Andres Freund û CVE-ya ku ji hêla RedHat ve hatî afirandin, kesî fikarên xwe dernexist. Ger hûn rêzek amûrên ku vê yekê digirin bibînin, ew niha pêkhateya bandorbûyî tespît dikin, ex post facto.
Dibe ku pêşîgirtina herî baş ji xwezaya belavkirinên Linuxê hat, û çawa guhertoyên nearam û pêşkeftî tenê piştî pêvajoyek bilez derbasî belavkirinên stabîl dibin.
Dersên ku ji êrîşa XZ bBackdoor hatine hînkirin
Me dît ku tespîtkirina wê çiqas dijwar e binêt deriyên paş. Divê deriyên paş wekî gefên navxweyî werin hesibandin, ji ber ku ew ji hêla karmendên navxweyî ve an jî bi rêya hesabên navxweyî yên xeternak têne çandin. Û ew kes bi piranî pêbawer in. Û dema ku deriyê paş di berhema belavkirî de tê çandin, tespîtkirina wê dijwartir dike.
Hin nivîskarên wekî Kevin Beaumont nîşan da sîstem, ku rûberek êrîşê ya mezin a karûbarên partiya sêyemîn ji bo deriyê paşîn vedike. Ev tiştê ku aktorê xirab li vir îstismar kiriye ye. Systemd gelek çav hene, lê XZ pirtûkxaneyek nepenî ye li jor zincîrê. "Dema ku jorîn qirêj dibe, her kes ava jehrî vedixwe ber bi jêr".
Daxwazeke guhertineke bê têkilî di sîstemê de ji bo pirtûkxaneyên pêçandinê yên bi dînamîkî barkirin, ku dê deriyê paşîn jê bike, jixwe bi pergalê ve hatibû yekkirin lê hîn nehatiye radestkirin. Girêdayîbûnên zêde yên ku ji hêla libsystemd ve hatine destnîşan kirin dibe ku çavkaniya qelsiyan bin., û duh ev daxwaz hate vekirin.
A agahkişî di "xz: Ji bo çareserkirina pirsgirêkê ifunc neçalak bike" de commit têgihiştinek tûj da ka ger em bixwazin pêşî li çalakiyek wusa bigirin, divê balê bikişînin ser kîjan astê (tekez li ser ya min e):
"Dersa ku divê em wekî civatek fêr bibin bêtir ewlekarî ye" software supply chain security bi awayekî holîstîk, kontrolkirina pergalên avakirina ji koda çavkaniyê wêdetir. Mîna binpêkirina SolarWinds ku êrîşkaran nûvekirinên nermalavê ji bo pêşkêşkirina nermalava çavdêriya çavkaniya girtî ya SolarWinds guherandin.”
Pirs û Bersîv
Ma deriyê paşîn ê XZ hîn jî îro xeterek e?
Bi piranî di bin kontrolê de ye, lê bi tevahî nemaye. Di Tebaxa 2025an de, lêkolîneran dît ku deriyê paşîn hîn jî di çend wêneyên Debian Docker Hub de heye, ku ji hêla Debian ve wekî berhemên dîrokî yên neçalak têne hesibandin. Tîm divê piştrast bikin ku ew li ser wêneyên bingehîn ên kevnar û nepatchkirî ava nakin, li şûna ku texmîn bikin ku patchê 2024an derî bi tevahî girtiye.







