Êrîşa Deriyê Paşîn a XZ

XZ Backdoor: "Ew yek nêzîk bû"

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: Ev xweş posterê ji Thomas Roccia  beşek ji çalakiya JiaT75 li ser depoya GitHub nîşan dide, û ka skrîpta derzîkirinê çawa deriyê paşîn ê dualî têxe, û bêtir nîşan dide deriyê paşîn ê xz hate şîrovekirin.

Ç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.”

Red Hat ev hejmar da CVE-2024-3094. Paşê peyva wekî agirê daristanê belav bû. Lasse Collin, parêzvanê din ê XZ, lê zêde kir nşh commit di roja Şemî 30ê Adarê de bi sernavê "CMake: Kontrola sandboxê ya sabotajkirî ya Landlock rast bike". Yek ji rêbazên sandboxkirina landlock a pirtûkxaneyê hate sabotajkirin, bi kêmanî dema ku bi CMake re hate çêkirin. Wî pirsgirêk di cih de eşkere kir. Deriyê paşîn ê XZ Utils. Red Hat ev pirsgirêk erkdar kir CVE-2024-3094 (her wiha li CVE, NVD, Ubuntu). Ew pir zêde hatibû destnîşankirin Xala bingehîn a CVSS 10 eEv skorên her tim înternetê bi bahozê dihejînin. CISA di heman 29ê Adarê de weşand hişyar, dibe ku ji ber lezgîniyê pir sade be, pêşniyar dike ku bikarhêner dakevin guhertoya sabît 5.4.6. Depoyên GitHubê yên di bin rêxistina Tukaani de hatin neçalakkirin (ev baş e an xirab e? Ez difikirim baş e: Gelek belavok û rêxistin hîn jî bi guhertoyên GitHubê ve girêdayî bûn da ku tarballên vegirtî ji bo çêkirinê peyda bikin. Neçalakkirina depoyê rê li ber vê yekê digire. Bi her awayî kopiyek ji depoyan li wir heye. git.tukaani.org). Hesabên GitHubê yên JiaTan75 û Lasse Collins (Larhzu) jî hatin sekinandin. Ev beşek ji ragirtin, her çend ew dikare bandorê li mirovên bêguneh bike jî. JiaT75 çalakî di depoyên bê-astengdar de hîn nayê dîtin. Pîşesaziyê bi lez û bez bertek nîşan da. Gelek firoşkaran rêzikname ji bo tespîtkirina pergalên xeternak weşandin, mîna Yara hukm dike, an jî piştgirî di amûrên bazirganî de ji Sysdig, TAWE, û yên din. Pisporên ewlehiyê yên mîna James Berthoty li ser nirxandina ka em çawa nêzîkî nermalava çavkaniya vekirî dibin şandiye.  Em niha di qonaxa Jiholêrakirin û Vegerandina bûyerê de ne. Projeyên din ên ku ji hêla JiaTan75 ve têne domandin di bin nirxandinek nêzîk de ne, nemaze pirtûkxane/pirxane (ku JiaTan75 beşdarvanek birêkûpêk bû) û fuzzer oss-fuzz (ku ev li ku derê commit ji hêla JiaTan75 ve hatî çêkirin hewl da ku ji oss-fuzz dûr bisekine, ku di rastiyê de nekarî deriyê paşîn tespît bikeEv hewldanên veşartinê delîlên din zêde dikin. 

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.”

Vedîtina zû û berteka bilez bandor ewqas sînordar kir. Ger hûn bi bîr bînin dîmena dawî ji Zilamên Reş III: "Ew yek nêzîk bû". Careke din, K ji bîr nekir ku serişteyê bihêle. Û tu boglodite neket nav belavkirinên sabît ên Linux-ê.
1. "Ez *ne* lêkolînerê ewlehiyê me, ne jî endezyarekî berevajî me." 2. Jia navekî gelemperî yê Çînî ye. Tan jî navekî malbatî yê gelemperî ye ku tê wateya "bi heybet". Gelek kesên bêxem vî navî parve dikin, ji kerema xwe kesî bi vî navî şermezar nekin!

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.

amûrên-nermalava-berhevkirinê-ya-sca-amûran
Rîskên nermalava xwe bidin pêşanî, sererast bikin û ewle bikin
Hesabê xwe yê Belaş bistînin.
Qerta krediyê ne hewce ye.

Pêşvebirin û radestkirina nermalava xwe ewle bikin

bi Xygeni Product Suite re