Beberapa hari lalu , sebuah insiden tidak biasa terjadi yang mengguncang komunitas kernel Linux: Linus Torvalds memerintahkan pemblokiran segera akun Kees Cook di kernel.org setelah mendeteksi commit yang dimanipulasi di repositori Git pengembang ini.
Kees Cook, yang dikenal atas kepemimpinannya di tim keamanan Ubuntu dan karena memelihara lebih dari selusin subsistem yang terkait dengan keamanan kernel, untuk sementara dilarang mengirimkan perubahan sementara fakta-fakta diklarifikasi.
Perubahan kepengarangan dan tanda tangan di repositori Kees Cook
Masalah ini muncul dari permintaan untuk memasukkan perubahan ke dalam cabang kernel 6.16, di mana Linus mengidentifikasi referensi ke repositori yang berisi commit yang dimanipulasi dengan namanya tercantum sebagai penulis dan pengesah, meskipun dia tidak melakukannya. Salah satu contoh yang paling serius adalah keberadaan commit duplikat, yang identik isinya dengan aslinya tetapi dengan hash SHA1 yang berbeda, yang secara keliru menyertakan tanda tangan Linus Torvalds.
Perubahan ini tidak dapat dikaitkan begitu saja dengan kesalahan yang tidak disengaja selama operasi git rebase, karena melibatkan modifikasi besar-besaran terhadap informasi sensitif, termasuk lebih dari 6.000 commit yang ditulis ulang, 330 di antaranya mencantumkan nama Linus sebagai penulisnya.
Reaksi Torvalds: kecurigaan adanya manipulasi yang disengaja
Linus Torvalds tidak menyembunyikan kekhawatirannya dan menggambarkan peristiwa tersebut sebagai berpotensi jahat:
"Satu atau dua kali penulisan ulang bisa jadi kesalahan. Namun, ribuan di antaranya, banyak yang tanda tangannya saya palsu, bukan kesalahan," ungkapnya.
Mengingat besarnya perubahan dan risiko terhadap integritas pohon kernel resmi, Torvalds meminta Konstantin Ryabitsev, administrator infrastruktur kernel.org, untuk memblokir akses Kees Cook sampai situasinya diklarifikasi.
Sebagai tanggapan, Kees Cook menjelaskan bahwa ia baru-baru ini mengalami masalah teknis yang mungkin memicu insiden tersebut. Ia menyatakan bahwa SSD-nya mengalami kerusakan selama operasi penyalinan, yang mengakibatkan kerusakan pada beberapa repositori. Setelah kesalahan ini, ia mencoba memulihkan keadaan repositorinya menggunakan `git rebase` dan berbagai alat otomatisasi.
Namun, operasi-operasi ini dilakukan pada cabang-cabang kritis , seperti for-next/hardening dan for-linus/hardening, yang menyebabkan modifikasi yang tidak disengaja pada riwayat repositori, termasuk perubahan dalam kepemilikan commit. Terlepas dari penjelasannya, Linus tetap skeptis.
"Saya tidak mengerti bagaimana bisa terjadi menyalip secara tidak sengaja, apalagi dengan perubahan sebanyak ini."
Penyebab sebenarnya: git-filter-repo dan trailer b4
Dalam pesan selanjutnya, Kees Cook mengidentifikasi kemungkinan sumber kesalahan tersebut : penggunaan gabungan dua alat, git-filter-repo dan b4 trailers, yang memanipulasi riwayat commit dan trailer (label seperti Signed-off-by:) dalam commit.
Penyalahgunaan utilitas ini akan menyebabkan penulisan ulang otomatis ribuan commit , termasuk mengganti penulis dengan nilai default (dalam hal ini, Linus Torvalds), tanpa disadari oleh Kees pada saat itu . Konstantin Ryabitsev, penulis alat b4, mengkonfirmasi teori ini dan menegaskan bahwa tidak ada niat jahat dari pihak Cook. Bahkan, sistem tersebut sudah menghasilkan peringatan yang diabaikan.
Setelah situasi diklarifikasi, akses Kees Cook ke kernel.org dipulihkan. Sebagai langkah pencegahan, diumumkan bahwa alat b4 akan menyertakan pemeriksaan keamanan baru, yang akan mencegah modifikasi commit yang kepemilikannya tidak sesuai dengan identitas pengguna saat ini. Hal ini bertujuan untuk mencegah kesalahan serupa dan melindungi integritas kode sumber kernel.
Kees, di pihak lain, berjanji untuk membuat ulang cabang yang terpengaruh dari patch individual dan menganalisis secara menyeluruh langkah-langkah yang menyebabkan kesalahan tersebut. Meskipun insiden ini telah memper strained hubungan di dalam tim pengembangan kernel, hal ini juga menyoroti pentingnya menggunakan alat penulisan ulang riwayat dengan hati-hati, terutama dalam proyek-proyek sepenting kernel Linux.
Terakhir, perlu disebutkan bahwa insiden antara Linus Torvalds dan Kees Cook ini menjadi peringatan tentang bahaya memanipulasi riwayat commit, dan berkat intervensi cepat dari tim kernel.org dan transparansi prosesnya, situasi tersebut telah terkendali.
Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut, Anda dapat menemukan detailnya di tautan berikut.