Neseniai žinia tai atskleidė „XZ Utils“ pakete buvo identifikuotos užpakalinės durys kad leidžia užpuolikams perimti ir keisti tvarkomus duomenis naudojant programas, susijusias su liblzma biblioteka. Pagrindinis pažeidžiamumas (jau kataloguotas CVE-2024-3094) Jis yra OpenSSH serveryje, kuri kai kuriuose platinimuose naudoja libsystemd biblioteką, kuri savo ruožtu priklauso nuo liblzma. Susiejus sshd su pažeidžiama liblzma versija, užpuolikai gali pasiekti SSH serverį be autentifikavimo.
Atradimas iš užpakalinių durų projekte XZ Utils įvyko nustačius tokias problemas kaip per didelis procesoriaus suvartojimas ir klaidas, kurias generuoja valgrind jungiantis prie Debian sid pagrįstų sistemų per SSH. Šios problemos paskatino gilesnį tyrimą, kuris atskleidė užpakalinių durų buvimą.
Tariamas „Backdoor“ autorius Jia Tan buvo aktyvus ir gerbiamas xz projekto kūrėjas, kelerius metus turintis „bendradarbiaujančiojo“ statusą ir svariai prisidėjęs prie kelių versijų kūrimo. Be xz projekto, jis taip pat prisidėjo prie kitų susijusių paketų, tokių kaip xz-java ir xz-embedded. Jis netgi neseniai buvo įtrauktas į XZ Embedded projekto, naudojamo Linux branduolyje, prižiūrėtojų.
Kenkėjiškas pakeitimas buvo aptiktas po skundų dėl problemų, susijusių su xz 5.6.0 versija, kuri apėmė galines duris, pvz., sulėtėjimus ir sshd gedimus. Kitoje versijoje, xz 5.6.1, buvo įtraukti Jia Tan parengti pakeitimai, atsakydami į šiuos skundus, o tai galbūt buvo būdas nuslėpti užpakalinių durų buvimą.
Be to, minima, kad Jia Tan padarė nesuderinamų pakeitimų su „-fsanitize=adresas“ patikrinimo režimu praėjusiais metais, kurį ltuo metu buvo išjungtas pūkelių testavimas. Šios detalės leidžia manyti, kad užpakalinių durų įvedimas buvo suplanuotas ir paslėptas veiksmas kuriant projektą, kuris galėjo pakenkti nežinomam skaičiui vartotojų ir projektų, naudojančių XZ Utils.
Nors tai pažeidžiamumas paveikia x86_64 sistemas, pagrįstas Linux branduoliu ir Glibc C biblioteka kuri apima sshd su libsystemd, kad palaikytų sd_notify mechanizmą, Poveikį sušvelnino keli veiksniai. Pavyzdžiui, liblzma versija su užpakalinėmis durimis nebuvo įtraukta į stabilius didelių platinimų leidimus, o kai kurie platinimai, tokie kaip Arch Linux ir Gentoo, naudojo pažeidžiamą xz versiją, tačiau dėl tam tikrų konfigūracijų nėra imlūs atakoms.
Minima, kad galinių durų aktyvavimas buvo paslėptas m4 makrokomandose build-to-host.m4 faile naudojamas kompiliavimo metu, leidžiantis į liblzma biblioteką įterpti kenkėjišką kodą. Šis kenkėjiškas kodas pakeitė kai kurių bibliotekos funkcijų veikimo logiką, palengvindamas neteisėtą prieigą prie SSH serverio paveiktose sistemose.
Užpakalinių durų diegimo procesas XZ Utils pakete Tai apėmė kelis veiksmus ir metodus, kad paslėptų jo buvimą ir aktyvavimą. Kompiliavimo metu buvo naudojamos m4 makrokomandos build-to-host.m4 faile, siekiant įvesti kenkėjišką kodą į liblzma biblioteką. Šios makrokomandos buvo leidimo tar failuose, bet ne Git saugykloje, ir buvo įtrauktos į .gitignore. Be to, į saugyklą buvo įtraukti kenkėjiški bandomieji failai, siūlantys privilegijuotą prieigą prie leidimo generavimo proceso.
Užpakalinės durys buvo suaktyvintos vykdant komandą /usr/sbin/sshd ir buvo paslėpta neatkurtoje arba gamybinėje aplinkoje, išvengiant aptikimo įprastuose terminaluose. Funkcija RSA_public_decrypt buvo suklastota siekiant apeiti sshd autentifikavimo procesą, leidžiantį užpuolikams gauti neteisėtą prieigą prie SSH serverio.
Siekiant dar labiau paslėpti užpakalinių durų buvimą, buvo įtraukti apsaugos nuo aptikimo mechanizmai, o vykdymas buvo patikrintas derinimo aplinkose. Visa tai rodo pažangų planavimo ir techninių žinių lygį tų, kurie atsakingi už užpakalines duris, siekiant išvengti aptikimo ir sėkmingų atakų prieš paveiktas sistemas.
Jei norite sužinoti daugiau apie tai, galite sužinoti daugiau Šioje nuorodoje.