- Beberapa gejala aneh yang berkaitan dengan liblzma (bagian dari paket xz) teramati pada instalasi Debian sid, seperti peningkatan penggunaan CPU saat login SSH dan error valgrind
- Penyebab masalahnya ditemukan berasal dari repositori hulu xz dan tarball yang telah terinfeksi backdoor. Sebagian backdoor hanya ada di tarball yang didistribusikan
- Skrip yang disertakan dalam tarball dijalankan di akhir
configure, dan jika kondisi tertentu terpenuhi, skrip tersebut memodifikasi $builddir/src/liblzma/Makefile untuk menyisipkan kode berbahaya.
Backdoor di dalam repositori
- Bagian utama backdoor ada dalam bentuk terenkripsi di direktori
tests/files di repositori.
- File-file ini tidak digunakan dalam pengujian versi 5.6.0, dan pada versi 5.6.1 tampaknya ada upaya untuk memperbaiki error valgrind dan crash yang disebabkan oleh backdoor.
Sistem yang terdampak
- Skrip backdoor pertama kali dipanggil setelah
configure, dan hanya memodifikasi proses build pada kondisi tertentu (misalnya sistem Linux x86-64, menggunakan gcc dan GNU linker, serta saat membangun paket Debian atau RPM).
Dampak pada server openssh
- Jika menggunakan liblzma yang telah dipasangi backdoor, login melalui SSH menjadi lambat.
- openssh tidak secara langsung menggunakan liblzma, tetapi beberapa distribusi termasuk Debian menerapkan patch pada openssh untuk mendukung notifikasi systemd, dan libsystemd bergantung pada lzma.
Analisis kode yang disisipkan
- Analisis dilakukan dari sudut pandang pengamat yang bukan peneliti keamanan atau ahli rekayasa balik.
- Backdoor mencegat eksekusi melalui ifunc resolver, lalu saat inisialisasi sshd ia me-resolve simbol dan mengubah simbol
RSA_public_decrypt agar menunjuk ke kodenya sendiri.
Dampak pada sshd
RSA_public_decrypt@....plt diubah agar menunjuk ke kode backdoor, sehingga kode backdoor dipanggil selama login kunci publik.
- Hal ini diduga memungkinkan bypass autentikasi atau eksekusi kode jarak jauh.
Laporan bug
- Karena ada kecurigaan keterlibatan repositori hulu, bug tidak dilaporkan.
- Red Hat menetapkan CVE-2024-3094 untuk masalah ini.
Deteksi instalasi yang rentan
- Disediakan skrip untuk mendeteksi apakah biner ssh pada sistem rentan.
8 komentar
Semua yang saya ketahui tentang backdoor xz
Tulisan ini ditulis oleh Andres Freund, orang yang menemukan backdoor tersebut.
Sungguh mengejutkan betapa terencananya semuanya bergerak;; prosesnya terasa seperti drama.
Bahkan jika dihukum sekejam mungkin pun masih pantas.
Kenapa?
Karena ini adalah tindakan sengaja menanamkan backdoor ke open source... dalam prosesnya mereka juga melakukan hal-hal seperti diam-diam menggiring opini publik
Sebelumnya juga pernah ada kasus memasukkan kerentanan secara jahat ke kernel Linux, jadi rasanya pahit.
Ah, sepertinya sekarang saya sudah memahami nuansanya. Terima kasih.
Komentar Hacker News
Tautan terkait:
Ringkasan:
SECURITY.mdke proyekxz-java. File ini berisi panduan agar kerentanan keamanan yang ditemukan tidak diumumkan secara publik, melainkan dilaporkan secara privat. Dari sudut pandang lain, ini bisa ditafsirkan sebagai upaya penulis untuk membeli waktu guna menyesuaikan exploit miliknya dan memanfaatkan target.opensshtidak secara langsung menggunakanliblzma, tetapi Debian dan beberapa distro lain menerapkan patch keopensshuntuk dukungan notifikasisystemd. Akibatnyalibsystemdmenjadi bergantung padaliblzma, sehingga menambah dependensi pada daemon yang sangat penting bagi keamanan sepertiopensshdan meningkatkan risiko serangan rantai pasok.liblzma5(5.6.0 atau 5.6.1). Ini ditambahkan sekitar sebulan terakhir.sshddi bawahsystemd. OpenSSH yang dipatch di beberapa distro menggunakanlibsystemduntuk fitur logging, dan ini menarik masukliblzma5yang rentan.5.6.1+really5.4.5-1, yang sebenarnya adalah versi lama 5.4 yang dikemas ulang sebagai versi baru.curl | sh. Pihak yang merilis dalam insiden ini juga pernah menangani rilis sebelumnya, dan mulai membuat commit sejak 2022. Ada banyak commit berisi perubahan nyata, dan juga commit ke proyek terkait sepertilibarchive. Banyak upaya diperlukan untuk menyisipkan backdoor ini.xzsehingga kompresixzbisa dilakukan dari Go. Sekitar seminggu lalu ia menerima PR pertama ke repositori itu untuk upgrade ke 5.6.1. Ini berbeda dari akun GitHub upstream.xz(1), mungkin ini tidak akan ditemukan secepat itu.xzdigunakan hampir di mana-mana. Seseorang bisa membuatxzyang secara selektif hanya memodifikasi sebagian kecil file, seperti tarball perangkat lunak.tar.xzyang digunakan sebagai dasar proses build tertentu. Sasarannya bukan tarball kode sumber, melainkan tarball yang mendistribusikan biner yang telah dikompilasi sebelumnya.