Pada hari Jumat, seorang pengembang Microsoft sendirian mengguncang dunia ketika ia mengungkapkan bahwa backdoor telah sengaja ditanamkan di XZ Utils, utilitas kompresi data sumber terbuka yang tersedia di hampir semua instalasi Linux dan sistem operasi mirip Unix lainnya. Orang atau orang di balik proyek ini kemungkinan besar sudah menghabiskan bertahun-tahun untuknya. Mereka kemungkinan besar sangat dekat dengan melihat pembaruan backdoor disatukan ke dalam Debian dan Red Hat, dua distribusi Linux terbesar, ketika seorang pengembang perangkat lunak berhati-hati melihat sesuatu yang mencurigakan.
“Ini mungkin adalah serangan rantai pasokan yang paling terlaksana yang pernah kita lihat dijelaskan secara terbuka, dan ini adalah skenario mimpi buruk: jahat, kompeten, diotorisasi di upstream yang digunakan secara luas dalam sebuah perpustakaan,” kata insinyur perangkat lunak dan kriptografi Filippo Valsorda tentang upaya tersebut, yang sangat dekat dengan berhasil.
Para peneliti telah menghabiskan akhir pekan mengumpulkan petunjuk. Berikut adalah apa yang kita ketahui sejauh ini.
Apa itu XZ Utils?
XZ Utils hampir merata di Linux. Ini menyediakan kompresi data tanpa kehilangan pada hampir semua sistem operasi mirip Unix, termasuk Linux. XZ Utils menyediakan fungsi kritis untuk mengompresi dan mendekompresi data selama semua jenis operasi. XZ Utils juga mendukung format .lzma bersejarah, menjadikan komponen ini bahkan lebih penting.
Apa yang Terjadi?
Andres Freund, seorang pengembang dan insinyur yang bekerja pada penawaran PostgreSQL Microsoft, baru-baru ini sedang menangani masalah kinerja yang dialami sistem Debian dengan SSH, protokol yang paling banyak digunakan untuk masuk ke perangkat secara remote melalui Internet. Secara khusus, login SSH mengonsumsi terlalu banyak siklus CPU dan menghasilkan kesalahan dengan valgrind, sebuah utilitas untuk memantau memori komputer.
Melalui keberuntungan semata dan mata hati-hati Freund, akhirnya dia menemukan masalah tersebut adalah hasil dari pembaruan yang telah dibuat ke XZ Utils. Pada hari Jumat, Freund mengungkapkan pembaruan tersebut sebagai hasil dari seseorang dengan sengaja menanamkan backdoor dalam perangkat lunak kompresi tersebut.
Apa yang Dilakukan Backdoor?
Kode jahat yang ditambahkan ke XZ Utils versi 5.6.0 dan 5.6.1 mengubah cara perangkat lunak berfungsi saat melakukan operasi terkait kompresi atau dekompresi .lzma. Ketika fungsi-fungsi ini melibatkan SSH, mereka memungkinkan kode jahat untuk dieksekusi dengan hak akses root. Kode ini memungkinkan seseorang yang memiliki kunci enkripsi tertentu untuk login ke sistem yang telah ditanam backdoor melalui SSH. Mulai dari saat itu, orang tersebut akan memiliki tingkat kontrol yang sama seperti administrator yang diotorisasi.
Bagaimana Backdoor ini Terjadi?
Nampaknya backdoor ini sudah berlangsung bertahun-tahun. Pada tahun 2021, seseorang dengan nama pengguna JiaT75 melakukan komit pertamanya yang diketahui ke sebuah proyek sumber terbuka. Secara retrospektif, perubahan pada proyek libarchive terlihat mencurigakan, karena menggantikan fungsi safe_fprint dengan varian yang sudah lama diakui sebagai kurang aman. Tidak ada yang memperhatikan pada saat itu.
Tahun berikutnya, JiaT75 mengajukan patch melalui milis XZ Utils, dan hampir seketika, seorang peserta yang belum pernah terlihat sebelumnya bernama Jigar Kumar bergabung dalam diskusi dan berpendapat bahwa Lasse Collin, pemelihara XZ Utils sejak lama, tidak sering atau cepat memperbarui perangkat lunak. Kumar, dengan dukungan Dennis Ens dan beberapa orang lain yang sebelumnya tidak pernah hadir dalam milis, mendesak Collin untuk membawa seorang pengembang tambahan untuk menjaga proyek tersebut.
Pada Januari 2023, JiaT75 melakukan komit pertamanya ke XZ Utils. Dalam beberapa bulan berikutnya, JiaT75, yang menggunakan nama Jia Tan, semakin terlibat dalam urusan XZ Utils. Misalnya, Tan mengganti informasi kontak Collins dengan miliknya sendiri di oss-fuzz, sebuah proyek yang memindai perangkat lunak sumber terbuka untuk kerentanan yang dapat dieksploitasi. Tan juga meminta agar oss-fuzz menonaktifkan fungsi ifunc selama pengujian, perubahan yang mencegahnya mendeteksi perubahan jahat yang akan segera dilakukan oleh Tan pada XZ Utils.
Pada Februari tahun ini, Tan melakukan komit untuk versi 5.6.0 dan 5.6.1 XZ Utils. Pembaruan tersebut menerapkan backdoor. Dalam beberapa minggu berikutnya, Tan atau orang lain meminta para pengembang Ubuntu, Red Hat, dan Debian untuk menyatukan pembaruan ke dalam OS mereka. Akhirnya, salah satu dari dua pembaruan tersebut masuk ke beberapa rilis, menurut perusahaan keamanan Tenable. Ada lebih banyak tentang Tan dan kronologinya di sini.
Dapatkah Anda Bercerita Lebih Banyak Tentang Apa yang Backdoor Ini Lakukan?
Secara singkat, itu memungkinkan seseorang dengan kunci pribadi yang tepat untuk meretas sshd, file yang bertanggung jawab untuk membuat koneksi SSH, dan dari situ untuk menjalankan perintah jahat. Backdoor ini diimplementasikan melalui loader lima tahap yang menggunakan serangkaian teknik sederhana namun cerdas untuk menyembunyikan dirinya. Ini juga memberikan cara bagi payload baru untuk disampaikan tanpa perubahan besar yang diperlukan.
Beberapa orang yang telah melakukan reverse-engineering pada pembaruan memiliki lebih banyak hal untuk dikatakan tentang backdoor tersebut. Pengembang Sam James memberikan gambaran di sini.