FreeBSD 13 hampir berakhir dengan pelaksanaan WireGuard yang meretas dengan pelanggaran lesen dan kelemahan

Daripada asas kod di mana keluaran FreeBSD 13 dibentuk, kod yang melaksanakan protokol VPN WireGuard, yang dibangunkan mengikut perintah Netgate tanpa berunding dengan pembangun WireGuard asal, dan telah dimasukkan ke dalam keluaran stabil pengedaran pfSense, adalah memalukan. dikeluarkan. Selepas semakan kod oleh Jason A. Donenfeld, pengarang WireGuard asal, ternyata cadangan pelaksanaan WireGuard yang dicadangkan oleh FreeBSD adalah sekeping kod buruk yang penuh dengan limpahan penimbal dan melanggar GPL.

Pelaksanaan tersebut mengandungi kecacatan bencana dalam kod kriptografi, sebahagian daripada protokol WireGuard telah ditinggalkan, terdapat ralat yang membawa kepada ranap kernel dan memintas kaedah keselamatan, dan penimbal saiz tetap digunakan untuk data input. Kehadiran stub dan bukannya semakan yang sentiasa mengembalikan "benar", serta terlupa penyahpepijatan printfs dengan output parameter yang digunakan untuk penyulitan, dan penggunaan fungsi tidur untuk menghalang keadaan perlumbaan mengatakan banyak tentang kualiti kod.

Beberapa bahagian kod, seperti fungsi crypto_xor, telah dialihkan daripada pelaksanaan WireGuard yang dibangunkan untuk Linux, yang melanggar lesen GPL. Akibatnya, Jason Donenfield, bersama Kyle Evans dan Matt Dunwoodie (pengarang pelabuhan WireGuard untuk OpenBSD), mengambil tugas untuk mengolah semula pelaksanaan yang bermasalah dan, dalam masa seminggu, menggantikan sepenuhnya semua kod pembangun yang diupah oleh Netgate . Versi yang diubah suai dikeluarkan sebagai set tampung yang berasingan, diletakkan dalam repositori projek WireGuard dan belum lagi dimasukkan ke dalam FreeBSD.

Menariknya, pada mulanya tidak terdapat tanda-tanda masalah; Netgate, yang ingin menggunakan WireGuard dalam pengedaran pfSense, mengupah Matthew Macy, yang mahir dalam kernel dan susunan rangkaian FreeBSD, terlibat dalam pembetulan pepijat dan mempunyai pengalaman membangunkan pemacu rangkaian untuk sistem pengendalian ini. Macy diberi jadual yang fleksibel tanpa tarikh akhir atau semakan pertengahan penggal. Pembangun yang bertemu dengan Macy semasa bekerja di FreeBSD menyifatkan beliau sebagai pengaturcara yang berbakat dan profesional yang tidak membuat kesilapan lebih daripada yang lain dan bertindak balas dengan secukupnya kepada kritikan. Kualiti buruk kod pelaksanaan WireGuard untuk FreeBSD mengejutkan mereka.

Selepas 9 bulan bekerja, Macy menambah pelaksanaannya ke cawangan HEAD, yang digunakan untuk merumuskan keluaran FreeBSD 13, Disember lalu tanpa menyelesaikan semakan dan ujian rakan sebaya Pembangunan itu dilakukan tanpa komunikasi dengan pemaju WireGuard asal dan Port OpenBSD dan NetBSD. Pada bulan Februari, Netgate menyepadukan WireGuard ke dalam keluaran stabil pfSense 2.5.0 dan mula menghantar tembok api berdasarkannya. Selepas masalah dikenal pasti, kod WireGuard telah dialih keluar daripada pfSense.

Kod tambahan itu mendedahkan kelemahan kritikal yang digunakan dalam eksploitasi 0 hari, tetapi pada mulanya Netgate tidak mengakui kewujudan kelemahan dan cuba menuduh pemaju WireGuard asal atas serangan dan berat sebelah, yang menjejaskan reputasinya secara negatif. Pembangun pelabuhan pada mulanya menolak dakwaan tentang kualiti kod dan menganggapnya keterlaluan, tetapi selepas menunjukkan ralat, dia menarik perhatian kepada fakta bahawa masalah yang sangat penting ialah kekurangan semakan kualiti kod yang betul dalam FreeBSD, kerana masalah itu kekal tidak dapat dikesan selama beberapa bulan. (Wakil Netgate menyatakan bahawa ulasan itu telah dilancarkan kepada umum pada Ogos 2020, tetapi pembangun FreeBSD individu menyatakan bahawa dalam Phabricator ulasan itu telah ditutup oleh Macy tanpa selesai dan dengan ulasan diabaikan). Pasukan Teras FreeBSD bertindak balas terhadap insiden itu dengan berjanji untuk memodenkan proses semakan kod mereka.

Matthew Macy, pembangun pelabuhan FreeBSD yang bermasalah, mengulas situasi itu dengan mengatakan bahawa dia melakukan kesilapan besar dengan mengambil tugas tanpa bersedia untuk melaksanakan projek itu. Macy menerangkan hasil akibat keletihan emosi dan akibat masalah yang timbul akibat sindrom pasca-Covid. Pada masa yang sama, Macy tidak menemui keazaman untuk meninggalkan kewajipan yang telah dia laksanakan dan cuba menyelesaikan projek itu.

Keadaan Macy juga mungkin terjejas oleh hukuman penjara baru-baru ini yang diterimanya kerana cuba mengusir penyewa secara haram dari rumah yang dibelinya yang tidak mahu berpindah secara sukarela. Sebaliknya, dia dan isterinya menggergaji rasuk lantai dan memecahkan lubang di lantai untuk menjadikan rumah itu tidak boleh didiami, dan juga cuba menakut-nakutkan penduduk, memecah masuk ke dalam pangsapuri yang diduduki dan membawa keluar barang-barang mereka (tindakan itu diklasifikasikan sebagai pecah rumah). Untuk mengelakkan tanggungjawab atas tindakannya, Macy dan isterinya melarikan diri ke Itali, tetapi diekstradisi ke Amerika Syarikat dan menjalani hukuman penjara lebih daripada empat tahun.

Sumber: opennet.ru

Tambah komen