- Selama lebih dari 2 tahun, penyerang yang menggunakan nama "Jia Tan" berperan sebagai kontributor yang rajin dan efektif pada pustaka kompresi xz, hingga akhirnya diberi hak commit dan hak administrator.
- Dengan menggunakan hak tersebut, ia memasang backdoor yang sangat halus dan disembunyikan dengan cermat di
liblzma, bagian dari xz yang juga menjadi dependensi OpenSSH sshd pada Debian, Ubuntu, Fedora, dan sistem Linux berbasis systemd lainnya.
- Backdoor ini memantau saat sesi SSH dimulai untuk melihat apakah penyerang mengirimkan perintah tersembunyi, sehingga memberi penyerang kemampuan menjalankan perintah arbitrer pada sistem target tanpa login. Ini adalah remote code execution pada target yang tidak diautentikasi.
- Serangan ini diungkap ke publik pada 29 Maret 2024, dan tampaknya merupakan serangan supply chain serius pertama terhadap perangkat lunak open source yang digunakan secara luas.
- Ini merupakan peristiwa penting dalam keamanan supply chain open source.
- Tulisan ini adalah timeline terperinci yang disusun tentang aspek social engineering dari serangan ini, yang tampaknya berawal sejak akhir 2021.
Prolog
- 2005-2008, Lasse Collin bersama bantuan orang lain merancang format berkas .xz menggunakan algoritma kompresi LZMA, yang memampatkan berkas menjadi sekitar 70% dibandingkan gzip.
- Seiring waktu, format ini menjadi banyak digunakan untuk mengompresi berkas
tar, image kernel Linux, dan sebagainya.
Kemunculan Jia Tan dan para pendukungnya
- 2021-10-29: Jia Tan mengirim patch pertama yang tidak berbahaya ke mailing list xz-devel.
- 2021-11-29: Jia Tan mengirim patch kedua yang tidak berbahaya.
- 2022-04-19: Jia Tan mengirim patch lain yang juga tidak berbahaya.
- 2022-04-22: "Jigar Kumar" mengeluhkan bahwa patch Jia Tan belum juga di-merge.
- 2022-05-19: "Dennis Ens" menanyakan status pemeliharaan XZ for Java.
- 2022-05-19: Lasse Collin meminta maaf atas respons yang lambat, dan menjawab bahwa "Jia Tan membantu XZ Utils di luar mailing list, dan setidaknya tampaknya bisa mengambil peran yang lebih besar di XZ Utils".
- 2022-05-27: Jigar Kumar mengirim email bernada menekan pada thread patch.
- 2022-06-07: Jigar Kumar mengirim email bernada menekan pada thread Java.
- 2022-06-08: Lasse Collin menjawab bahwa ia belum kehilangan minat, tetapi terbatas karena masalah kesehatan mental.
- 2022-06-10: Lasse Collin me-merge commit pertama yang ditulis Jia Tan.
- 2022-06-14: Jugar Kumar mengirim email penekan lainnya.
- 2022-06-21: Dennis Ens mengirim email penekan yang menyarankan agar pemeliharaan diserahkan kepada orang lain.
- 2022-06-22: Jigar Kumar mengirim email penekan pada thread patch C.
- 2022-06-29: Lasse Collin membalas dengan mengisyaratkan bahwa "Jia Tan bisa mengambil peran yang lebih besar dalam proyek".
Jia Tan menjadi maintainer
- Lasse tampaknya mulai bekerja lebih dekat dengan Jia Tan. Jigar Kumar dan Dennis Ens kemungkinan besar adalah persona palsu.
- 2022-09-27: Jia Tan memberikan ringkasan rilis 5.4.0.
- 2022-11-30: Lasse Collin mengubah email laporan bug dari alamat pribadi menjadi alias yang dibagikan dengan Jia Tan.
- 2022-12-30: Jia Tan me-merge commit pertamanya langsung ke repositori xz.
- 2023-01-11: Lasse Collin menandai dan membangun rilis terakhirnya, v5.4.1.
- 2023-03-18: Jia Tan menandai dan membangun rilis pertamanya, v5.4.2.
- 2023-03-20: Jia Tan memperbarui konfigurasi Google oss-fuzz agar bug dikirim kepadanya.
- 2023-06-22: Hans Jansen mengirim sepasang patch yang menggunakan fitur "GNU indirect function", lalu Lasse Collin mengerjakannya ulang dan Jia Tan me-merge-nya.
- 2023-07-07: Jia Tan menonaktifkan dukungan
ifunc selama build oss-fuzz.
- 2024-01-19: Jia Tan memindahkan situs web ke GitHub Pages dan mengendalikan halaman web XZ Utils.
Serangan dimulai
- 2024-02-23: Jia Tan me-merge kode biner backdoor yang disembunyikan di dalam berkas input pengujian.
- 2024-02-24: Jia Tan menandai v5.6.0, lalu memublikasikan distribusi
xz-5.6.0.tar.gz yang menyertakan build-to-host.m4 berbahaya.
- 2024-02-24: Gentoo mulai mengalami crash pada 5.6.0.
- 2024-02-26: Debian menambahkan
xz-utils 5.6.0-0.1 ke unstable.
- 2024-02-28: Debian menambahkan
xz-utils 5.6.0-0.2 ke unstable.
- 2024-02-29: Di GitHub, @teknoraver mengirim pull request agar
liblzma tidak ditautkan ke libsystemd.
- 2024-02-28: Jia Tan menambahkan typo halus pada program C yang digunakan untuk memeriksa dukungan Landlock, sehingga merusak deteksi Landlock pada skrip
configure.
- 2024-03-04: Distribusi RedHat mulai mengalami error Valgrind di
_get_cpuid milik liblzma.
- 2024-03-05: PR
libsystemd di-merge sehingga liblzma dihapus.
- 2024-03-05: Debian menambahkan
xz-utils 5.6.0-0.2 ke testing.
- 2024-03-05: Jia Tan melakukan commit perbaikan bug
ifunc.
- 2024-03-08: Jia Tan membuat commit untuk perbaikan Valgrind.
- 2024-03-09: Jia Tan membuat commit yang memperbarui berkas backdoor.
- 2024-03-09: Jia Tan menandai v5.6.1 dan memublikasikan distribusi xz 5.6.1.
- 2024-03-20: Lasse Collin mengirim set patch ke LKML untuk menambahkan dirinya dan Jia Tan sebagai maintainer kode kompresi xz di kernel.
- 2024-03-25: Hans Jansen mengajukan bug Debian untuk memperbarui
xz-utils ke 5.6.1.
- 2024-03-28: Jia Tan mengajukan bug Ubuntu agar
xz-utils diperbarui dari Debian ke 5.6.1.
Deteksi serangan
- 2024-03-28: Andres Freund menemukan bug tersebut dan memberi tahu Debian serta
distros@openwall secara privat. RedHat menetapkan CVE-2024-3094.
- 2024-03-28: Debian me-roll back 5.6.1 dan memperkenalkan
5.6.1+really5.4.5-1.
- 2024-03-29: Andres Freund memublikasikan peringatan backdoor ke daftar publik
oss-security@openwall, sambil mengatakan bahwa ia menemukannya "selama beberapa minggu terakhir".
- 2024-03-29: RedHat mengumumkan bahwa xz yang mengandung backdoor telah didistribusikan di Fedora Rawhide dan Fedora Linux 40 beta.
- 2024-03-30: Debian menghentikan build dan membangun ulang mesin build menggunakan Debian stable.
Opini GN⁺
- Insiden ini akan menjadi titik balik penting dalam serangan supply chain terhadap perangkat lunak open source. Alasannya, lewat pendekatan social engineering jangka panjang oleh pelaku, kepercayaan berhasil diraih dan akses diperoleh, lalu backdoor dipasang secara diam-diam pada pustaka inti yang digunakan luas.
- Perlu dipikirkan kembali proses tata kelola proyek open source dan alih kewenangan. Ada baiknya mempertimbangkan model tata kelola yang lebih terdistribusi agar keadaan pribadi maintainer inti tidak terlalu menentukan nasib proyek.
- Audit keamanan dan code review untuk proyek open source penting akan menjadi semakin penting. Diperlukan juga alat pemeriksaan otomatis untuk mendeteksi perubahan mencurigakan dan mencegah penyalahgunaan hak akses, misalnya peringatan atas penambahan data biner.
- Tanpa merusak keunggulan model open source yang dikembangkan secara terbuka dan memungkinkan siapa pun berkontribusi, perlu disiapkan langkah teknis dan kelembagaan untuk menyaring kontributor jahat dan menghentikan serangan lebih awal.
- Semakin proyek open source menggunakan bahasa atau alat yang lemah dari sisi keamanan, semakin besar risikonya. Bersamaan dengan upaya meningkatkan keamanan dari berbagai sisi seperti memory safety, static analysis, dan fuzzing, transisi ke alat yang lebih modern juga akan dibutuhkan.
- Perhatian akan tertuju pada hasil analisis rinci seperti kondisi aktivasi tersembunyi dari backdoor, jalur penyebaran, dan cakupan dampaknya. Dari sana bisa diperoleh wawasan untuk mempertahankan diri dari serangan serupa di masa depan.
7 komentar
Yang bikin khawatir dari insiden ini adalah.. Apakah ada kemungkinan PC pengembang open source diretas, atau mereka diculik/ditahan, atau disuap dengan uang lalu disisipi malware.. Begitu terpikir soal uang, jadi kepikiran juga apakah para pengembang open source hidupnya berkecukupan?
Saya kerja di bidang keamanan, dan kalau menemukan bug saat code review, suka keluar candaan seperti, "Apa kamu masuk kerja di sini 5 tahun lalu cuma buat menyisipkan kode ini?" wkwk
Lesser Collin tampaknya mengalami masa yang sangat berat dalam banyak hal...
Ya, archlinux sudah di-patch dari jauh-jauh hari~ sini merapat sini merapat, ya backdoor out, latest arch paling mantap~
pacman -Syu
Lasse Collin menulis artikel yang merangkum insiden tersebut
https://tukaani.org/xz-backdoor/
Komentar Hacker News
Ringkasan kejadian yang sangat bagus dan semua tautannya terkumpul di satu tempat, sehingga menjadi materi yang sempurna bagi siapa pun yang ingin mempelajari bagaimana serangan rekayasa sosial benar-benar berkembang dalam praktik.
Menunjukkan bahwa linimasa Fedora tidak dicantumkan.
Mengemukakan pendapat bahwa kode yang sulit dipahami di dalam sistem seharusnya tidak lagi ditoleransi.
Ini tampak sebagai salah satu hasil positif yang mungkin berupa meningkatnya sikap konservatif terhadap upgrade.
Mengusulkan bahwa komunitas FOSS dapat mulai melarang pengguna yang kasar secara sistematis, atau terjadi perubahan budaya yang meningkatkan kesadaran komunitas agar merespons perilaku kasar dengan lebih tegas.
Menunjukkan bahwa pengamatan tentang format alamat email itu keliru.
Mengungkapkan kekhawatiran tentang betapa mudahnya tekanan sosial membuat orang melepaskan kendali.
Sebagai maintainer, menekankan bahwa semakin gigih kontributor atau pengguna menuntut sesuatu, semakin kecil kemungkinan permintaan itu dikabulkan.
Mengutip pendapat Joe Cooper dan membagikan pandangannya tentang tekanan terhadap maintainer proyek.
Menjelaskan bahwa kode biner backdoor yang disembunyikan tersembunyi dengan sangat baik di dalam file input pengujian biner, dan karena file-file ini sebagian besar dibuat secara manual dengan hex editor, file itu sendiri merupakan "source code" terbaiknya.