FreeBSD 13 hampir berakhir dengan implementasi WireGuard yang diretas dengan pelanggaran lisensi dan kerentanan

Dari basis kode di mana rilis FreeBSD 13 dibentuk, kode yang mengimplementasikan protokol WireGuard VPN, yang dikembangkan atas perintah Netgate tanpa berkonsultasi dengan pengembang WireGuard asli, dan sudah termasuk dalam rilis stabil distribusi pfSense, sangat memalukan. DIHAPUS. Setelah peninjauan kode oleh Jason A. Donenfeld, penulis WireGuard asli, ternyata implementasi WireGuard yang diusulkan FreeBSD adalah bagian dari kode jelek, penuh dengan buffer overflows dan melanggar GPL.

Implementasinya mengandung kelemahan besar dalam kode kriptografi, sebagian dari protokol WireGuard dihilangkan, terdapat kesalahan yang menyebabkan crash pada kernel dan melewati metode keamanan, dan buffer berukuran tetap digunakan untuk memasukkan data. Kehadiran stub alih-alih pemeriksaan yang selalu mengembalikan "benar", serta printf debug yang terlupakan dengan keluaran parameter yang digunakan untuk enkripsi, dan penggunaan fungsi tidur untuk mencegah kondisi balapan menunjukkan banyak hal tentang kualitas kode.

Beberapa bagian kode, seperti fungsi crypto_xor, di-porting dari implementasi WireGuard yang dikembangkan untuk Linux, yang melanggar lisensi GPL. Hasilnya, Jason Donenfield, bersama dengan Kyle Evans dan Matt Dunwoodie (penulis port WireGuard untuk OpenBSD), mengambil tugas untuk mengerjakan ulang implementasi yang bermasalah dan, dalam waktu seminggu, sepenuhnya mengganti semua kode pengembang yang disewa oleh Netgate . Versi modifikasi dirilis sebagai kumpulan tambalan terpisah, ditempatkan di repositori proyek WireGuard dan belum disertakan dalam FreeBSD.

Menariknya, pada awalnya tidak ada tanda-tanda masalah; Netgate, yang ingin dapat menggunakan WireGuard dalam distribusi pfSense, mempekerjakan Matthew Macy, yang berpengalaman dalam kernel FreeBSD dan tumpukan jaringan, terlibat dalam perbaikan bug dan memiliki pengalaman dalam pengembangan. driver jaringan untuk sistem operasi ini. Macy diberi jadwal yang fleksibel tanpa tenggat waktu atau pemeriksaan tengah semester. Pengembang yang bertemu Macy saat mengerjakan FreeBSD menggambarkannya sebagai programmer berbakat dan profesional yang tidak membuat kesalahan lebih banyak daripada orang lain dan menanggapi kritik dengan baik. Buruknya kualitas kode implementasi WireGuard untuk FreeBSD mengejutkan mereka.

Setelah 9 bulan bekerja, Macy menambahkan implementasinya ke cabang HEAD, yang digunakan untuk merumuskan rilis FreeBSD 13, Desember lalu tanpa penyelesaian tinjauan sejawat dan pengujian. Pengembangan dilakukan tanpa komunikasi dengan pengembang WireGuard asli dan Port OpenBSD dan NetBSD. Pada bulan Februari, Netgate mengintegrasikan WireGuard ke dalam rilis stabil pfSense 2.5.0 dan mulai mengirimkan firewall berdasarkan rilis tersebut. Setelah masalah teridentifikasi, kode WireGuard dihapus dari pfSense.

Kode yang ditambahkan mengungkapkan kerentanan kritis yang digunakan dalam eksploitasi 0 hari, tetapi pada awalnya Netgate tidak mengakui adanya kerentanan dan mencoba menuduh pengembang WireGuard asli melakukan serangan dan bias, yang berdampak negatif pada reputasinya. Pengembang port pada awalnya menolak klaim mengenai kualitas kode dan menganggapnya berlebihan, namun setelah menunjukkan kesalahan, ia menarik perhatian pada fakta bahwa masalah yang sangat penting adalah kurangnya tinjauan yang tepat terhadap kualitas kode di FreeBSD, karena masalah tersebut tetap tidak terdeteksi selama berbulan-bulan. (Perwakilan Netgate mengindikasikan bahwa tinjauan publik diluncurkan kembali pada bulan Agustus 2020, namun masing-masing pengembang FreeBSD mencatat bahwa di Phabricator, tinjauan tersebut ditutup oleh Macy tanpa penyelesaian dan dengan komentar yang diabaikan). Tim Inti FreeBSD menanggapi kejadian tersebut dengan berjanji untuk memodernisasi proses peninjauan kode mereka.

Matthew Macy, pengembang port FreeBSD yang bermasalah, mengomentari situasi tersebut dengan mengatakan bahwa dia membuat kesalahan besar dengan mengambil pekerjaan tersebut tanpa siap untuk mengimplementasikan proyek tersebut. Macy menjelaskan akibat dari kelelahan emosional dan akibat dari masalah yang muncul akibat sindrom pasca-Covid. Pada saat yang sama, Macy tidak menemukan tekad untuk meninggalkan kewajiban yang telah dia lakukan dan berusaha menyelesaikan proyek tersebut.

Kondisi Macy mungkin juga dipengaruhi oleh hukuman penjara yang diterimanya baru-baru ini karena upaya ilegal mengusir penyewa dari rumah yang dibelinya yang tidak bersedia pindah secara sukarela. Sebaliknya, ia dan istrinya menggergaji balok lantai dan melubangi lantai hingga tidak dapat dihuni, serta mencoba mengintimidasi warga, mendobrak apartemen yang ditempati dan merampas barang-barangnya (tindakan tersebut tergolong perampokan). Untuk menghindari tanggung jawab atas tindakannya, Macy dan istrinya melarikan diri ke Italia, namun diekstradisi ke Amerika Serikat dan menjalani hukuman lebih dari empat tahun penjara.

Sumber: opennet.ru

Tambah komentar