Pada hari Jumat, seorang pengembang Microsoft mengguncang dunia ketika ia mengungkapkan bahwa backdoor sengaja ditanam di XZ Utils, sebuah utilitas kompresi data sumber terbuka yang tersedia di hampir semua instalasi Linux dan sistem operasi mirip Unix lainnya. Orang atau orang-orang di balik penyusupan backdoor ini kemungkinan besar menghabiskan waktu bertahun-tahun untuk mengerjakannya. Mereka sangat dekat ketika backdoor ini dimerge ke Debian dan Red Hat, dua distribusi Linux terbesar, ketika akhirnya seorang pengembang perangkat lunak yang sangat teliti melihat sesuatu yang mencurigakan.
Apa itu XZ Utils?
XZ Utils hampir ada di mana-mana di Linux. Ini memberikan kompresi data lossless di hampir semua sistem operasi mirip Unix, termasuk Linux. XZ Utils menyediakan fungsi penting untuk mengompresi dan mendekompresi data pada semua jenis operasi yang sedang berjalan. XZ Utils juga mendukung format .lzma lama, menjadikan komponen ini semakin penting.
Apa yang telah terjadi?
Andres Freund, seorang pengembang dan insinyur yang mengerjakan Microsoft PostgreSQL, baru-baru ini memecahkan masalah kinerja yang dialami sistem Debian dengan SSH, protokol yang paling banyak digunakan untuk login jarak jauh ke perangkat melalui Internet. Secara khusus, login SSH memakan terlalu banyak siklus CPU dan menghasilkan error dengan valgrind, sebuah utilitas untuk memantau memori komputer.
Melalui keberuntungan dan kehati-hatian Freund, dia akhirnya menemukan bahwa masalah tersebut disebabkan oleh pembaruan yang telah dilakukan pada XZ Utils. Pada hari Jumat, Freund melalui Open-Source Security List mengungkapkan bahwa pembaruan tersebut adalah hasil dari seseorang yang dengan sengaja memasang backdoor pada perangkat lunak kompresi.
Sulit untuk melebih-lebihkan kompleksitas rekayasa sosial dan cara kerja backdoor ini. Thomas Roccia, seorang peneliti di Microsoft, menerbitkan grafik di Mastodon yang membantu memvisualisasikan luasnya upaya yang hampir berhasil untuk menyebarkan backdoor dengan jangkauan yang akan mengerdilkan acara SolarWinds pada tahun 2020.
Apa Yang dilakukan Backdoor?
Kode berbahaya yang ditambahkan ke xz Utils versi 5.6.0 dan 5.6.1 mengubah cara fungsi perangkat lunak. Sshd dimanipulasi oleh backdoor, file yang dapat dieksekusi yang digunakan untuk membuat koneksi SSH jarak jauh. Siapa pun yang memiliki kunci enkripsi yang telah ditentukan sebelumnya dapat menyimpan kode apa pun pilihan mereka di sertifikat SSH, mengunggahnya, dan menjalankannya di perangkat yang ada backdoornya. Belum ada seorang pun yang benar-benar melihat kode yang diunggah, sehingga tidak diketahui kode apa yang akan dijalankan oleh penyerang. Secara teori, kode tersebut memungkinkan apa saja, termasuk mencuri kunci enkripsi atau memasang malware.
Tunggu, Bagaimana Utilitas Kompresi Memanipulasi Proses Sensitif Keamanan seperti SSH?
Pustaka mana pun dapat merusak cara kerja bagian dalam dari setiap executable yang terhubung dengannya. Seringkali, pengembang file yang dapat dieksekusi akan membuat link ke pustaka yang diperlukan agar dapat berfungsi dengan baik. OpenSSH, implementasi sshd paling populer, tidak terhubung ke pustaka liblzma secara langsung, namun Debian dan banyak distribusi Linux lainnya menambahkan patch untuk menghubungkan sshd ke systemd, sebuah program yang memuat berbagai layanan selama bootup sistem. Systemd, pada gilirannya, terhubung ke liblzma, dan ini memungkinkan XZ Utils untuk menggunakan kontrol atas sshd.
Bagaimana munculnya backdoor ini?
Tampaknya backdoor ini dibuat selama bertahun-tahun. Pada tahun 2021, seseorang dengan nama pengguna JiaT75 membuat commit pertamanya pada proyek sumber terbuka. Jika ditinjau kembali, perubahan pada proyek libarchive mencurigakan, karena menggantikan fungsi safe_fprint dengan varian yang telah lama dianggap kurang aman. Tidak ada yang memperhatikan saat itu.
Tahun berikutnya, JiaT75 mengirimkan patch melalui milis XZ Utils, dan, segera, peserta yang belum pernah terlihat sebelumnya bernama Jigar Kumar bergabung dalam diskusi dan berpendapat bahwa Lasse Collin, pengelola lama XZ Utils, belum memperbarui perangkat lunak secara sering atau cukup cepat. Kumar, dengan dukungan Dennis Ens dan beberapa orang lain yang sebelumnya tidak pernah hadir dalam mailinglist tersebut, menekan Collin untuk menambahkan pengembang tambahan untuk mempertahankan proyek tersebut.
Pada bulan Januari 2023, JiaT75 membuat commit pertamanya pada XZ Utils. Beberapa bulan berikutnya, JiaT75 yang menggunakan nama Jia Tan semakin terlibat dalam urusan XZ Utils. Misalnya, Tan mengganti informasi kontak Collins dengan informasi kontak mereka di oss-fuzz, sebuah proyek yang memindai perangkat lunak sumber terbuka untuk mencari kerentanan yang dapat dieksploitasi. Tan juga meminta agar oss-fuzz menonaktifkan fungsi ifunc selama pengujian, sebuah perubahan yang mencegahnya mendeteksi perubahan berbahaya yang akan segera dilakukan Tan pada XZ Utils.
Pada bulan Februari 2024, Tan mengeluarkan commit untuk XZ Utils versi 5.6.0 dan 5.6.1. Pembaruan yang menerapkan backdoor. Pada minggu-minggu berikutnya, Tan atau pihak lain meminta pengembang Ubuntu, Red Hat, dan Debian untuk menggabungkan pembaruan ke dalam OS mereka. Akhirnya, salah satu dari dua pembaruan tersebut berhasil diluncurkan ke beberapa rilis, menurut perusahaan keamanan Tenable. Ada lebih banyak informasi tentang Tan dan kronologinya di sini.
Singkatnya, ini memungkinkan seseorang dengan kunci pribadi yang tepat untuk membajak sshd, file yang dapat dieksekusi yang bertanggung jawab untuk membuat koneksi SSH, dan dari sana menjalankan perintah berbahaya. backdoor ini diimplementasikan melalui loader lima tahap yang menggunakan serangkaian teknik sederhana namun cerdas untuk menyembunyikan dirinya. Hal ini juga menyediakan sarana pengiriman muatan baru tanpa memerlukan perubahan besar.
Banyak orang yang melakukan reverse engineering memiliki pendapat lebih banyak tentang backdoor ini. Pengembang Sam James memberikan ikhtisarnya di sini.
Dalam sebuah wawancara online, pengembang dan reverse engineer HD Moore membenarkan kecurigaan Sam James bahwa backdoor menargetkan distribusi Debian atau Red Hat.
“Serangan ini licik karena hanya melakukan langkah terakhir dari backdoor jika Anda membangun pustaka di amd64 (intel x86 64-bit) dan membangun paket Debian atau RPM (alih-alih menggunakannya untuk instalasi lokal)," dia menulis.
sumber: wired