Serangan Pintu Belakang XZ

XZ Backdoor: “Itu hampir berjaya”

SSH Pintu Belakang

Penyelenggara yang jahat atau terjejas telah memasukkan tingkah laku berniat jahat dalam pustaka bernama liblzma, sebahagian daripada alat dan pustaka pemampatan xz, mengakibatkan pintu belakang dalam SSH. Ini merupakan serangan rantaian bekalan perisian lanjutan kerana pustaka tersebut sengaja diubah suai untuk pintu belakang, dengan teknik pengaburan dan penyembunyian untuk menyembunyikan muatan serangan daripada pengulas.

Ia telah ditemui dan didedahkan baru-baru ini (pada 29 Mac lalu), dan pengendalian serangan sedang dijalankan. Walau bagaimanapun, ia dikawal dengan cepat kerana ia nampaknya hanya menjejaskan versi pra-keluaran bagi set persekitaran terhad (pakej DEB dan RPM, untuk seni bina x86_64, dan dibina dengan GCC). Walau bagaimanapun, CVE telah diberikan Skor asas CVSS daripada 10, yang dikhaskan untuk kelemahan keselamatan siber yang paling kritikal. Sekiranya ia memasuki pengedaran yang stabil, kesannya akan menjadi sangat besar. 

Analisis teknikal serangan itu, termasuk xz backdoor dijelaskan secara mendalam, telah dianalisis di tempat lain. Catatan ini akan memberi tumpuan kepada garis masa serangan, bagaimana ia dapat dikesan, bagaimana insiden itu dikendalikan sehingga kini, dan pengajaran yang boleh diambil daripada serangan itu.

Ekor panjang pintu belakang telah berterusan melepasi tampalan awal. Pada Ogos 2025, lebih setahun selepas CVE-2024-3094 didedahkan, penyelidik keselamatan di Binarly mendapati pintu belakang masih terdapat dalam sedozen imej Debian Docker yang diterbitkan di Docker Hub, dengan pasukan Debian enggan membuangnya, menganggapnya sebagai artifak pembangunan sejarah dan bukannya risiko aktif. Secara berasingan, OpenSSF dan OpenJS mengeluarkan amaran bersama sejurus selepas insiden XZ bahawa percubaan pengambilalihan kejuruteraan sosial yang serupa telah pun menyasarkan projek JavaScript, menunjukkan corak serangan kepercayaan pengekal yang digunakan di sini sedang digunakan semula di tempat lain.

Bagaimana pintu belakang XZ disuntik

Nota: Repositori git berada dalam git.tukaani.org. Walau bagaimanapun, terdapat juga sebuah Repositori yang dihoskan oleh GitHub (kini disekat) tempat akaun GitHub menyiarkan perubahan yang kemudiannya diintegrasikan ke dalam repositori Git.

Satu bahagian pintu belakang nampaknya hanya terdapat dalam tarball teragih untuk versi 5.6.0 dan 5.6.1, bukan dalam repositori git dan bergantung pada a baris tunggal dalam build-to-host.m4 fail makro yang digunakan oleh autoconf. Bahagian yang lain berada dalam dua fail ujian yang sepatutnya bad-3-corrupt_lzma2.xz dan besar-baik-dimampatkan.lzma

itu committed oleh akaun GitHub “Jia Tan” (JiaT75) di dalam repositori xz pada 23 Feb. Ia merupakan perubahan yang tidak berbahaya dengan menambah fail ujian (sepatutnya blok termampat .lzma dan .xz). Menariknya, fail ujian tidak digunakan oleh ujian! Baris dalam fail .m4 menyuntik skrip yang dikaburkan (termasuk dalam tarball) untuk dilaksanakan pada akhir konfigurasi jika beberapa syarat sepadan. Ia mengubah suai Makefile untuk liblzma pustaka untuk mengandungi kod yang mengekstrak data daripada fail .xz, yang selepas penyahkeliruan tamat dalam skrip ini, dipanggil pada akhir configure. Ia memutuskan sama ada untuk mengubah suai proses binaan untuk menyuntik kod: hanya di bawah GCC dan penghubung GCC, di bawah Debian atau rpm, dan hanya untuk x86_64 Linux. Apabila dipadankan, kod yang disuntik memintas pelaksanaan dengan menggantikan dua ifunc penyelesai supaya panggilan tertentu digantikan. Ini menyebabkan jadual simbol dihuraikan dalam ingatan (ini memerlukan masa, yang membawa kepada pengesanan, seperti yang dijelaskan kemudian).

Kemudian keadaan menjadi menarik: Pintu belakang memasang cangkuk audit ke dalam penghubung dinamik, menunggu simbol fungsi RSA_public_decrypt tiba, yang dialihkan ke satu titik ke dalam kod pintu belakang, yang seterusnya memanggil kembali libcrypto, mungkin untuk melaksanakan pengesahan biasa. Dan muatan diaktifkan jika program yang berjalan mempunyai nama proses /usr/sbin/sshdJelas sekali bahawa pelayan SSH adalah sasarannya. Secara tradisinya, SSHD pelayan seperti OpenSSH tidak dipautkan dengan liblzma, tetapi sshd ialah sering ditampal untuk menyokong systemd-notify supaya perkhidmatan lain boleh bermula apabila sshd sedang berjalan. Dan kemudian liblzma dimuatkan secara tidak langsung oleh sistem, menutup bulatan itu.

Pintu belakang masih belum dianalisis sepenuhnya, tetapi nampaknya membenarkan pelaksanaan arahan jarak jauh (RCE) dengan keistimewaan daemon sshd, berjalan dalam konteks pra-pengesahan. Maklumat daripada sijil jauh, apabila dipadankan dengan pintu belakang, dinyahsulit dengan ChaCha20, dan apabila ia berjaya dinyahsulit, ia akan dihantar kepada sistem ()Jadi ini pada asasnya RCE berpagar, jauh lebih teruk daripada pintasan kunci awam semata-mata. 

Tarball 5.6.1 yang lebih baru menunjukkan usaha tambahan untuk menyembunyikan jejak, menambah lagi pengeliruan untuk nama simbol, dan cuba membetulkan ralat yang dilihat. mekanisme lanjutan di mana fail ujian tambahan dicari, tandatangan tertentu untuk ditambahkan pada pintu belakang juga telah disediakan.

Serangan yang agak canggih ini mungkin tidak disedari sehingga pengagihan Linux yang stabil dicapai. Mujurlah, sesetengah orang suka menyemak mengapa perkara luar biasa berlaku.  

Penemuan Serangan Pintu Belakang XZ

Banyak kali tingkah laku berniat jahat yang disuntik ditemui secara kebetulan atau tidak sengaja. Satu contoh yang baik ialah amaran penamatan ("Siapa yang peduli tentang amaran?") yang membawa kepada penemuan serangan aliran peristiwa pada Oktober 2018. Seorang lagi ialah pengguna yang memberi amaran Codecov pada April 2021 bahawa skrip pemuat naik bash mereka tidak lulus checksum (“Siapa yang mengesahkan integriti artifak dengan checksum”?) Anomali dan gejala ganjil dengan ssh logins (loginmengambil banyak CPU dan peningkatan masa berlalu, ralat valgrind) membangkitkan rasa ingin tahu Andres Freund, seorang pembangun PostgreSQL yang berwaspada tetapi bukan seorang penganalisis keselamatan (seperti yang dinyatakannyaSelepas beberapa penyiasatan dengan OpenSSH pada Debian Sid, beliau menyimpulkan bahawa masalah masa tindak balas bergantung pada pustaka, liblzma, Sebahagian daripada xz-perkakas perpustakaan pemampatan. Sebabnya: "repositori xz huluan dan tarball xz telah di-backdoorDiagnostik ini sangat tepat!   Pada 29 Mac 2024, Andres menyiarkan analisis pertama di Openwall: “Pintu belakang di huluan xz/liblzma yang membawa kepada kompromi pelayan sshHakikatnya: Tarball XZ Utils 5.6.0 dan 5.6.1 mengandungi pintu belakang. Tarball ini telah dicipta dan ditandatangani oleh akaun Jia Tan yang dinyatakan di atas.  He disiarkan dalam Mastodon kemudian pada hari itu, menyedari bahawa penemuan itu adalah tidak sengaja dan memerlukan banyak kebetulan. Komen daripada pengguna lain berbaloi untuk dibaca. pengguna GitHub thesamesam (aka Sam James) menerbitkan Gist yang bagus Soalan Lazim tentang pintu belakang xz-utils di mana serangan itu diringkaskan, menghubungkan kepada lebih banyak lagi analisis mendalam daripada muatan serangan. Analisis ini secara teknikalnya menarik, dan membantu kami lebih memahami suntikan tersebut, yang telah dihuraikan dengan teliti: Ini bagus poster daripada Thomas Roccia  menunjukkan sebahagian daripada aktiviti JiaT75 pada repositori GitHub, dan bagaimana skrip suntikan memasukkan pintu belakang binari, yang seterusnya menggambarkan penjelasan pintu belakang xz.

Bagaimana kejadian itu ditangani

Pendedahan oleh Andreas Freund adalah berhati-hati kerana, dalam kata-katanya sendiri:

"Memandangkan penglibatan huluan yang jelas, saya tidak melaporkan pepijat huluan. Memandangkan pada mulanya saya menyangka ia adalah isu khusus Debian, saya telah menghantar laporan awal kepada security@...ian.org. Selepas itu, saya melaporkan isu tersebut kepada distros@. CISA telah dimaklumkan oleh satu pengedaran.”

Red Hat telah memberikan isu ini CVE-2024-3094. Kemudian perkataan itu tersebar seperti api liar. Lasse Collin, penyelenggara lain untuk XZ, menambah baru commit pada Sabtu 30 Mac bertajuk “CMake: Betulkan semakan kotak pasir Landlock yang disabotaj”. Salah satu kaedah sandboxing landlock perpustakaan telah disabotaj, sekurang-kurangnya semasa membina dengan CMake. Beliau segera mendedahkan isu tersebut dalam Pintu belakang XZ Utils. Red Hat telah memberikan isu ini CVE-2024 3094- (lihat juga dalam CVE, NDV, Ubuntu). Ia telah diberikan satu kekalahan yang besar Skor Asas CVSS sebanyak 10Skor sebegini sentiasa menggegarkan Internet. CISPada 29 Mac yang sama mengeluarkan berjaga-jaga, mungkin terlalu ringkas kerana keadaannya yang mendesak, mengesyorkan pengguna untuk menurunkan taraf kepada versi stabil 5.4.6. Repositori GitHub di bawah organisasi Tukaani telah dinyahdayakan (adakah ini baik atau buruk? Saya fikir bagus: Banyak distro dan organisasi masih memautkan kepada keluaran GitHub untuk mendapatkan sumber tarball yang dijangkiti untuk pembinaan. Melumpuhkan repo menghalangnya. Walau bagaimanapun, terdapat salinan atau repo di git.tukaani.orgAkaun GitHub JiaTan75 dan Lasse Collins (Larhzu) juga telah digantung. Ini adalah sebahagian daripada pembendungan, walaupun ia mungkin menjejaskan orang yang tidak bersalah. JiaT75 aktiviti dalam repositori yang tidak dinyahdayakan belum dapat dilihat. Industri bertindak balas dengan segera. Banyak vendor menerbitkan peraturan untuk mengesan sistem yang terdedah, seperti Peraturan Yara, atau sokongan dalam alat komersial daripada Sysdig, PAN, dan lain-lain. Pakar keselamatan seperti James Berthoty menyiarkan tentang menyemak cara kami mendekati perisian sumber terbuka.  Kita kini berada dalam fasa Pembasmian dan Pemulihan insiden tersebut. Projek-projek lain yang diselenggara oleh JiaTan75 sedang dikaji semula dengan teliti, terutamanya libarkif/libarkif (di mana JiaTan75 merupakan penyumbang tetap) dan si fuzzer oss-fuzz (di mana ini commit dibuat oleh JiaTan75 cuba mengelakkan oss-fuzz, yang sebenarnya tidak dapat mengesan pintu belakangPercubaan penyembunyian ini menambah bukti selanjutnya. 

Siapakah yang sedang diserang?

Sama ada akaun GitHub JiaT75 telah dikompromi (ingat bahawa GitHub baru-baru ini telah mewajibkan 2FA) atau pengguna fizikal yang berhutang akaun tersebut telah pergi ke pihak yang salah. Tetapi terdapat sebab-sebab yang menarik untuk memikirkan ancaman berterusan yang canggih (APT), mungkin disokong oleh kerajaan, disebabkan oleh kecanggihan teknikal serangan tersebut. Siasatan lanjut oleh agensi keselamatan siber dan penguatkuasaan undang-undang akan memberitahu … entri ini dalam Berita Penggodam YCombinator tentang Jia Tan memberi sedikit gambaran tentang "siapa" dan aktivitinya. Disyorkan! Ia memberikan banyak maklumat tentang bagaimana penjahat cuba menipu pengguna lain, menggunakan kejuruteraan sosial.

“Sangat menjengkelkan - pengarang pintu belakang yang jelas telah berkomunikasi dengan saya (rwmj) selama beberapa minggu cuba menambah xz 5.6.x pada Fedora 40 & 41 kerana "ciri baharu yang hebat". Kami juga bekerjasama dengannya untuk menyelesaikan masalah valgrind (yang ternyata kini disebabkan oleh pintu belakang yang telah ditambahkannya). Kami terpaksa berlumba malam tadi untuk menyelesaikan masalah tersebut selepas pelanggaran embargo yang tidak disengajakan. Dia telah menjadi sebahagian daripada projek xz selama 2 tahun, menambah pelbagai jenis fail ujian binari, dan sejujurnya dengan tahap kecanggihan ini, saya akan curiga dengan versi xz yang lebih lama sehingga terbukti sebaliknya.”

Jia Tan telah mengambil langkah untuk mengelakkan daripada dijejaki: Nampaknya ia telah menggunakan VPN (vpn.singapore.witopia.net) untuk berhubung – yang mana ianya tidak mengapa. Dan banyak perubahan nampaknya disokong oleh e-mel sementara yang hanya digunakan sekali sahaja (daripada ProtonMail dalam kes ini) yang menggesa untuk menggabungkan perubahan.

Pelakon itu mungkin berhasrat untuk pergi lebih jauh, sehingga ke kernel Linux, sebagai penyumbang kepada terbenam xy projek. Analisis awal tidak menemui bukti keguguran, setakat hari ini.

Nota: satu lagi Penyumbang XZ yang berprofil rendah “Hans Jansen“ (Pengguna GitHub “hansjans162”) ialah di bawah pengawasanAkaunnya di debian kini disekatDia telah membuat banyak kemas kini pada Debian Games untuk menyembunyikan yang diingininya pada debian/xz-utils, kemas kini pada upstream 5.6.1 untuk mempercepatkan pengedaran pintu belakang ke debian/tidak stabil

Apa yang boleh kami katakan, buat masa ini, ialah ini adalah APT (yang masih belum dikenal pasti) yang menggunakan akaun berbeza, bekerja selama sekurang-kurangnya dua tahun dalam kempen ini dan dengan sabar berusaha untuk menanamkan RCE dalam SSH.

Sehingga penulisan ini dibuat, identiti di sebalik "Jia Tan" masih belum disahkan. Tiada atribusi yang boleh dipercayai kepada individu, organisasi atau pelakon negara tertentu telah disahkan secara terbuka, mengukuhkan betapa berkesannya disiplin operasi persona tersebut.

Adakah serangan pintu belakang XZ boleh dicegah?

Agak sukar. 

Pertama, sebahagian daripada pintu belakang yang disuntik masuk ke dalam fail ujian termampat yang tidak digunakan oleh ujian. Secara retrospektif, itu boleh menimbulkan beberapa penggera (bising), tetapi siapa yang peduli untuk menyemak sama ada semua fail ujian digunakan oleh ujian sebenar di dunia sebenar? Kedua, sebahagian daripada pintu belakang yang disuntik masuk dalam fail makro ke dalam tarball keluaran, dan sukar untuk menyemak secara manual untuk perbezaan dengan tarball yang dijangkakan. Automasi juga kompleks, kerana hasil yang dijangkakan daripada binaan itu sendiri (bagi sesiapa yang tahu cara automake/autoconf berfungsi) sukar untuk dimodelkan untuk dianalisis sama ada tarball sebenar sepadan dengan jangkaan. Ada yang mengemukakannya as "Tarball yang tidak sepadan daripada pokok git adalah satu ciri, bukan pepijat"Asal usul tarball binari daripada kod sumbernya merupakan masalah yang belum dapat diselesaikan.

Reputasi pengguna? Akaun GitHub JiaTan75 tidak melakukan perkara-perkara yang tidak bermoral seperti yang berlaku sebelum ini. commits. Ia digantung hanya selepas bukti terkumpul, tetapi sehingga 29 Mac itu adalah pengguna biasa yang menjalankan perniagaan biasa. Tidak begitu normal. Kemudian commits (kursus, kursus, kursus, dan kursus yang melaraskan kod eksploit) cuba membetulkan ralat valgrind dan ranap dalam beberapa konfigurasi, disebabkan oleh perbezaan dengan susun atur tindanan yang dijangkakan oleh pintu belakang. Commit ulasan boleh mengesan perkara ini, tetapi siapa yang mempunyai kesabaran untuk menganalisis perubahan dalam fail ujian binari atau motivasi sebenar untuk perubahan dalam atribut GCC dalam kod sumber C?

Haruskah seseorang membunyikan penggera apabila SSH login mengambil masa 800 ms dan bukannya 300 ms? Mungkin hanya orang yang terlalu berhemat akan mengambil perhatian. Cicero berkata, "Kecerobohan adalah milik orang muda; kebijaksanaan adalah milik orang tua."  

Infrastruktur ifunc telah ditambah pada Jun 2023 oleh “Hans Jansen” dan “Jia Tan”. Ini merupakan yang pertama commit menambah sokongan ifunc pada crc64_fast.c (kemudiannya digunakan untuk menyuntik pintu belakang). Beberapa bulan sebelum menyuntik binari pintu belakang dalam fail ujian!

Nota: Pengarang dan commitTerdapat perbezaan di sini, tetapi ini adalah perkara biasa: Lasse Collin ialah penyelenggara projek, dan dia telah menggabungkan perubahan tersebut. Dia juga mengucapkan terima kasih kepada “Hans Jansen” …

Tiada siapa yang membangkitkan kebimbangan sebelum catatan Andres Freund dan CVE yang dicipta oleh RedHat. Jika anda melihat pelbagai alatan yang dapat mengesan perkara ini, mereka kini mengesan komponen yang terjejas, ex post facto

Mungkin pencegahan terbaik datang daripada sifat pengedaran Linux, dan bagaimana versi yang tidak stabil dan kurang maju hanya akan beralih kepada pengedaran yang stabil di hilir selepas proses yang pantas.

Pengajaran yang Dipetik daripada Serangan XZ bBackdoor

Kami telah menyatakan betapa sukarnya untuk mengesannya disengajakan pintu belakang. Pintu belakang harus dianggap sebagai ancaman dalaman, kerana ia ditanam oleh kakitangan dalaman atau melalui akaun dalaman yang dicerobohi. Dan mereka kebanyakannya dipercayai. Dan apabila pintu belakang ditanamkan dalam artifak yang diedarkan, ia menjadikannya lebih sukar untuk dikesan.

Beberapa penulis seperti Kevin Beaumont menunjuk ke arah sistem, yang membuka permukaan serangan besar perkhidmatan pihak ketiga ke pintu belakang. Inilah yang disalahgunakan oleh pelakon jahat di sini. Systemd mempunyai banyak perhatian, tetapi XZ ialah perpustakaan yang tidak dikenali di rantaian atas. "Apabila hulu tercemar, semua orang minum air beracun di hilir".

Permintaan perubahan yang tidak berkaitan dalam sistem untuk memuatkan pustaka mampatan secara dinamik, yang akan mengalih keluar pintu belakang, telah digabungkan ke dalam sistem tetapi belum dihantar lagi. Kebergantungan tambahan yang diperkenalkan oleh libsystemd mungkin menjadi sumber kerentanan, dan semalam permintaan ini telah dibuka

A komen dalam "xz: Lumpuhkan ifunc untuk menyelesaikan Masalah" commit memberikan pandangan yang tajam tentang di mana hendak meletakkan fokus jika kita ingin mencegah aktiviti sedemikian (penekanan adalah dari saya):

"Pengajaran yang harus kita pelajari sebagai sebuah komuniti adalah lebih kepada menjamin keselamatan software supply chain security secara holistik, mengaudit sistem binaan melangkaui sekadar kod sumber. Seperti pelanggaran SolarWinds di mana penyerang mengubah suai kemas kini perisian untuk tawaran perisian pemantauan sumber tertutup SolarWinds.”

Penemuan awal dan tindak balas pantas telah mengehadkan impaknya dengan begitu banyak. Jika anda masih ingat babak penamat dari Lelaki Berbaju Hitam III: “Itu hampir berjaya”. Sekali lagi, K tidak lupa untuk meninggalkan petua. Dan tiada boglodite yang memasuki pengedaran stabil Linux.
1. “Saya *bukan* penyelidik keselamatan, mahupun jurutera terbalik.” 2. Jia ialah nama keluarga Cina yang biasa. Tan juga merupakan nama keluarga yang biasa bermaksud "hebat". Ramai orang yang tidak berkaitan berkongsi nama ini, tolong jangan kutuk sesiapa pun dengan nama ini!

Soalan Lazim

Adakah pintu belakang XZ masih berisiko hari ini?

Kebanyakannya terkawal, tetapi tidak sepenuhnya hilang. Pada Ogos 2025, para penyelidik mendapati pintu belakang masih terdapat dalam beberapa imej Hab Docker Debian, yang dianggap oleh Debian sebagai artifak sejarah yang tidak aktif. Pasukan harus mengesahkan bahawa ia tidak membina berdasarkan imej asas yang ketinggalan zaman dan tidak ditampal dan bukannya menganggap tampalan 2024 menutup pintu sepenuhnya.

alat-analisis-komposisi-perisian-alat-sca
Utamakan, pulihkan dan lindungi risiko perisian anda
Dapatkan Akaun Percuma anda.
Tiada kad kredit yang diperlukan.

Lindungi Pembangunan dan Penghantaran Perisian Anda

dengan Suit Produk Xygeni