31 poin oleh GN⁺ 2024-04-03 | 7 komentar | Bagikan ke WhatsApp
  • 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

 
sagee 2024-04-09

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?

 
botplaysdice 2024-04-05

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

 
aer0700 2024-04-04

Lesser Collin tampaknya mengalami masa yang sangat berat dalam banyak hal...

 
xcutz 2024-04-03

Ya, archlinux sudah di-patch dari jauh-jauh hari~ sini merapat sini merapat, ya backdoor out, latest arch paling mantap~

 
tpdns90321 2024-04-07

pacman -Syu

 
sdkfile 2024-04-03

Lasse Collin menulis artikel yang merangkum insiden tersebut
https://tukaani.org/xz-backdoor/

 
GN⁺ 2024-04-03
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.

    • Pada bagian "awal serangan", Ubuntu dan Debian disebutkan tetapi Fedora tidak, jadi bisa ditambahkan agar lebih lengkap.
    • Tekanan rekayasa sosial terhadap Fedora tampaknya dimulai pada pekan sebelum 4 Maret 2024.
  • Menunjukkan bahwa linimasa Fedora tidak dicantumkan.

    • Seseorang bernama "Jia Tan" mencoba menghubungi antara 27 Februari dan 27 Maret untuk memasukkan xz baru ke Fedora 40 dan 41.
  • Mengemukakan pendapat bahwa kode yang sulit dipahami di dalam sistem seharusnya tidak lagi ditoleransi.

    • Berpendapat bahwa sudah saatnya menghapus M4 dan skrip shell yang rumit.
  • Ini tampak sebagai salah satu hasil positif yang mungkin berupa meningkatnya sikap konservatif terhadap upgrade.

    • Banyak orang, termasuk para pengembang, perlu mempertimbangkan risiko dan manfaat dengan saksama alih-alih selalu menganggap upgrade sebagai sesuatu yang baik.
  • 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.

    • Format alamat email Jigar Kumar dan Dennis Ens berbeda, dan ini tidak membuktikan maupun membantah bahwa keduanya adalah orang yang sama (sokcpuppets).
  • Mengungkapkan kekhawatiran tentang betapa mudahnya tekanan sosial membuat orang melepaskan kendali.

    • Sulit membayangkan betapa mengejutkannya kejadian ini bagi pencipta asli XZ, dan berharap peristiwa ini menjadi contoh kuat bagi pihak-pihak lain di dunia open source agar tidak menyerah pada tekanan dari orang lain.
  • 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.

    • Ini menjadi peringatan bagi orang-orang yang membela binary blob untuk perangkat keras yang tidak didukung dalam perangkat lunak open source.
    • Berpendapat bahwa sesuatu harus dapat direproduksi dalam bentuk source, atau seharusnya tidak ada sama sekali.