
Zadnja vrata vplivajo na Linux
Pred kratkim je novica to razkrila v paketu XZ Utils so bila identificirana zadnja vrata ki omogoča napadalcem prestrezanje in spreminjanje obdelanih podatkov aplikacije, povezane s knjižnico liblzma. Glavna ranljivost (že katalogizirana pod CVE-2024-3094) Nahaja se na strežniku OpenSSH, ki v nekaterih distribucijah uporablja knjižnico libsystemd, ta pa je odvisna od liblzma. S povezovanjem sshd z ranljivo različico liblzma lahko napadalci dostopajo do strežnika SSH brez preverjanja pristnosti.
Odkritje iz zakulisja v projektu XZ Utils prišlo po odkritju težav, kot je prekomerna poraba procesorja in napake, ki jih ustvari valgrind pri povezovanju s sistemi, ki temeljijo na Debian Sid prek SSH. Ta vprašanja so vodila do poglobljene preiskave, ki je razkrila prisotnost stranskih vrat.
domnevni Avtor backdoorja Jia Tan je bil aktiven in cenjen razvijalec pri projektu xz, z nekajletnim statusom »sovzdrževalca« in pomembnim prispevkom pri razvoju več različic. Poleg projekta xz je prispeval tudi k drugim sorodnim paketom, kot sta xz-java in xz-embedded. Pred kratkim je bil celo vključen med vzdrževalce projekta XZ Embedded, ki se uporablja v jedru Linuxa.
Zlonamerna sprememba je bila odkrita po pritožbah glede težav z različico xz 5.6.0, ki je vključevala zadnja vrata, kot so upočasnitve in zrušitve sshd. Naslednja različica, xz 5.6.1, je vključevala spremembe, ki jih je pripravil Jia Tan kot odgovor na te pritožbe, kar je bil verjetno način za prikrivanje prisotnosti stranskih vrat.
Poleg tega se omenja, da Jia Tan je naredil nezdružljive spremembe z načinom pregleda “-fsanitize=address” lani, ki je lprivedlo do onemogočanja testiranja fuzzov v tistem času. Te podrobnosti kažejo, da je bila uvedba stranskih vrat načrtovano in skrito dejanje v okviru razvoja projekta, ki bi lahko ogrozilo neznano število uporabnikov in projektov, ki uporabljajo XZ Utils.
Čeprav to ranljivost vpliva na sisteme x86_64, ki temeljijo na jedru Linuxa in knjižnici Glibc C ki vključuje sshd z libsystemd za podporo mehanizma sd_notify, Vpliv je omililo več dejavnikov. Na primer, različica liblzma z zadnjimi vrati ni bila vključena v stabilne izdaje velikih distribucij, nekatere distribucije, kot sta Arch Linux in Gentoo, pa so uporabljale ranljivo različico xz, vendar zaradi določenih konfiguracij niso dovzetne za napad.
Omenjeno je, da je bila aktivacija backdoorja skrita v makrih m4 v datoteki build-to-host.m4 uporabljen med prevajanjem, kar omogoča vstavljanje zlonamerne kode v knjižnico liblzma. Ta zlonamerna koda je spremenila logiko delovanja nekaterih funkcij v knjižnici in omogočila nepooblaščen dostop do strežnika SSH v prizadetih sistemih.
Postopek implementacije backdoorja v paket XZ Utils Vključevalo je več korakov in tehnik za skrivanje njegove prisotnosti in aktivacije. Makri m4 so bili med prevajanjem uporabljeni v datoteki build-to-host.m4 za vnos zlonamerne kode v knjižnico liblzma. Ti makri so bili prisotni v datotekah tar za izdajo, ne pa tudi v repozitoriju Git in so bili dodani v .gitignore. Poleg tega so bile v repozitorij vključene zlonamerne preskusne datoteke, kar nakazuje privilegiran dostop do postopka generiranja izdaje.
Zadnja vrata so bila aktivirana z izvedbo ukaza /usr/sbin/sshd in je bil skrit v nerazhroščenih ali produkcijskih okoljih, pri čemer se je izogibal zaznavanju na običajnih terminalih. Funkcija RSA_public_decrypt je bila ponarejena, da bi zaobšla postopek preverjanja pristnosti sshd in napadalcem omogočila nepooblaščen dostop do strežnika SSH.
Za nadaljnje skrivanje prisotnosti stranskih vrat so bili vključeni zaščitni mehanizmi proti odkrivanju in preverjena je bila izvedba v okoljih za odpravljanje napak. Vse to dokazuje napredno raven načrtovanja in tehničnega znanja tistih, ki so odgovorni za stranska vrata, da se izognejo odkrivanju in izvedejo uspešne napade na prizadete sisteme.
Če vas zanima več o tem, si lahko ogledate podrobnosti V naslednji povezavi.