11 poin oleh GN⁺ 2024-03-30 | 8 komentar | Bagikan ke WhatsApp
  • 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

 
[Komentar ini disembunyikan.]
 
depth221 2024-03-30

Semua yang saya ketahui tentang backdoor xz
Tulisan ini ditulis oleh Andres Freund, orang yang menemukan backdoor tersebut.

 
edunga1 2024-04-01

Sungguh mengejutkan betapa terencananya semuanya bergerak;; prosesnya terasa seperti drama.

 
carnoxen 2024-03-30

Bahkan jika dihukum sekejam mungkin pun masih pantas.

 
roxie 2024-03-31

Kenapa?

 
keepworking 2024-04-01

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.

 
roxie 2024-04-01

Ah, sepertinya sekarang saya sudah memahami nuansanya. Terima kasih.

 
GN⁺ 2024-03-30
Komentar Hacker News
  • Tautan terkait:

  • Ringkasan:

    • Penulis backdoor berkomunikasi selama beberapa minggu untuk mencoba menambahkan xz 5.6.x ke Fedora 40 & 41. Mereka sempat bekerja sama untuk menyelesaikan masalah valgrind yang disebabkan oleh backdoor ini, tetapi pada akhirnya diketahui bahwa penyebab masalah tersebut memang backdoor itu sendiri. Setelah masa embargo pengungkapan tanpa sengaja terlanggar, masalah ini harus segera ditangani.
    • Salah satu penulis backdoor secara langsung menonaktifkan fitur di oss-fuzz yang bergantung pada backdoor, untuk mencegah penemuan yang tidak disengaja.
    • Penulis backdoor menambahkan file SECURITY.md ke proyek xz-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.
    • openssh tidak secara langsung menggunakan liblzma, tetapi Debian dan beberapa distro lain menerapkan patch ke openssh untuk dukungan notifikasi systemd. Akibatnya libsystemd menjadi bergantung pada liblzma, sehingga menambah dependensi pada daemon yang sangat penting bagi keamanan seperti openssh dan meningkatkan risiko serangan rantai pasok.
    • Hal-hal utama yang perlu dicek bagi orang-orang yang sedang panik:
      • Apakah menggunakan versi terbaru liblzma5 (5.6.0 atau 5.6.1). Ini ditambahkan sekitar sebulan terakhir.
      • Apakah menggunakan distro Linux berbasis Debian atau RPM. Ini tampaknya merupakan upaya untuk mempersulit reverse engineering.
      • Apakah menjalankan OpenSSH sshd di bawah systemd. OpenSSH yang dipatch di beberapa distro menggunakan libsystemd untuk fitur logging, dan ini menarik masuk liblzma5 yang rentan.
      • Debian testing sudah memiliki versi 5.6.1+really5.4.5-1, yang sebenarnya adalah versi lama 5.4 yang dikemas ulang sebagai versi baru.
    • Jika ingin menyembunyikan sesuatu yang mencurigakan di GNU autoconf, orang akan menyembunyikannya di sana, bukan di skrip 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 seperti libarchive. Banyak upaya diperlukan untuk menyisipkan backdoor ini.
    • Beberapa tahun lalu seseorang menulis library Go yang membungkus kode C xz sehingga kompresi xz bisa 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.
    • Ada kontributor yang bukan peneliti keamanan maupun reverse engineer, tetapi suka menulis artikel teknis. Laporan yang merangkum temuannya dianggap sebagai template yang sangat baik bagi para kontributor di luar dunia debugging arus utama yang enggan berbagi.
    • Jika membayangkan upaya backdoor yang lebih mahir terhadap xz(1), mungkin ini tidak akan ditemukan secepat itu. xz digunakan hampir di mana-mana. Seseorang bisa membuat xz yang secara selektif hanya memodifikasi sebagian kecil file, seperti tarball perangkat lunak .tar.xz yang digunakan sebagai dasar proses build tertentu. Sasarannya bukan tarball kode sumber, melainkan tarball yang mendistribusikan biner yang telah dikompilasi sebelumnya.