Pembangun Disekat dari Lodash Selepas Cuba Menambah Penambahbaikan Keselamatan

Pasukan Komuniti BigGo
Pembangun Disekat dari Lodash Selepas Cuba Menambah Penambahbaikan Keselamatan

Percubaan seorang pembangun untuk menambahbaik keselamatan rantai bekalan bagi salah satu pakej JavaScript yang paling popular telah mencetuskan perdebatan mengenai amalan sumbangan sumber terbuka dan respons penyelenggara. Insiden ini menyerlahkan ketegangan yang semakin meningkat antara penyumbang yang berfokus kepada keselamatan dan penyelenggara projek yang berhadapan dengan kemasukan sumbangan automatik dan berkualiti rendah.

Penambahbaikan Keselamatan Yang Menjadi Bumerang

Pembangun tersebut cuba menambah asal usul pakej kepada lodash, sebuah perpustakaan utiliti JavaScript yang digunakan secara meluas dan dimuat turun berpuluh juta kali setiap minggu. Asal usul pakej mencipta kenyataan yang ditandatangani semasa proses pembinaan, membantu mengesan pakej berniat jahat yang memintas alur kerja CI/CD yang betul. Walaupun lodash popular, ia tidak dikemas kini selama lebih lima tahun dan tidak mempunyai ciri keselamatan asas ini.

Penyumbang tersebut menghabiskan berjam-jam untuk kejuruteraan terbalik proses pembinaan lodash dan berjaya mencipta alur kerja GitHub Actions yang berfungsi. Walau bagaimanapun, selepas membuka dan dengan cepat menutup permintaan tarik yang pramatang, mereka mendapati diri mereka disekat sepenuhnya dari repositori - tidak dapat mencipta isu, memerhati repo, atau menyumbang dalam apa jua cara.

Asal usul pakej: Ciri keselamatan yang mencipta bukti kriptografi tentang bagaimana dan di mana pakej perisian dibina, membantu pengguna mengesahkan keasliannya.

Status Projek Lodash

  • Tiada keluaran baharu dalam tempoh lebih 5 tahun
  • Dimuat turun berpuluh juta kali setiap minggu
  • Cawangan utama: tiada komit dalam 9 bulan
  • Tiada aliran kerja CI/CD sedia ada untuk penerbitan
  • Antara 10 pakej npm teratas tanpa asal usul

Komuniti Berpecah Mengenai Keputusan Penyekatan

Penyekatan tersebut telah memecahbelahkan komuniti sumber terbuka. Ada yang melihatnya sebagai reaksi berlebihan terhadap percubaan penambahbaikan keselamatan yang tulen. Yang lain berpendapat bahawa melompat terus ke dalam perubahan proses pembinaan kritikal tanpa perbincangan terdahulu menimbulkan tanda bahaya, terutamanya memandangkan lonjakan terkini dalam sumbangan yang dijana AI yang menyasarkan repositori popular.

Seseorang yang saya tidak kenali tanpa sejarah menyumbang kepada projek saya yang terus melompat ke dalam pembungkusan, pengedaran, asal usul benar-benar akan membuatkan saya mempersoalkan niat mereka.

Masa semasa Hacktoberfest - acara selama sebulan yang menggalakkan sumbangan sumber terbuka - mungkin telah menyumbang kepada kewaspadaan penyelenggara terhadap sumbangan automatik atau dangkal.

Penggunaan Provenance Pakej

  • Hanya 2 daripada 10 pakej npm paling popular menggunakan provenance
  • Pakej TypeScript tidak mempunyai provenance walaupun popular
  • Pelaksanaan memerlukan flag npm publish yang mudah: --provenance --access public
  • Membantu mengesan pakej yang memintas pemeriksaan keselamatan CI/CD

Cabaran Yang Lebih Luas dalam Penyelenggaraan Sumber Terbuka

Insiden ini mencerminkan masalah yang lebih besar yang dihadapi oleh projek sumber terbuka yang popular. Penyelenggara bergelut untuk mengimbangi antara mengalu-alukan penyumbang tulen sambil menapis penyerahan berkualiti rendah, spam yang dijana AI, dan perubahan yang berpotensi berniat jahat. Penyelenggara lodash sebelum ini telah mengisytiharkan kebankrapan isu pada tahun 2023, menutup banyak isu terbuka untuk memulakan semula.

Kekurangan komunikasi memburukkan lagi masalah tersebut. Tanpa penjelasan untuk penyekatan, penyumbang tidak dapat belajar dari kesilapan atau menjelaskan niat. Ini mewujudkan kitaran di mana pembangun yang berniat baik menjadi kecewa manakala penyelenggara berasa terhimpit dengan perhatian yang tidak diingini.

Pembangun tersebut sejak itu telah menyesuaikan pendekatan mereka, merancang untuk membuka isu perbincangan sebelum menyerahkan perubahan kod untuk mengukur minat penyelenggara. Walaupun matlamat penambahbaikan keselamatan kekal sah, pengalaman tersebut menunjukkan bahawa walaupun sumbangan yang bermanfaat memerlukan pengenalan yang teliti dalam landskap sumber terbuka yang kompleks hari ini.

Rujukan: On Being Blocked From Contributing to lodash