Upaya seorang developer untuk meningkatkan keamanan supply chain pada salah satu paket JavaScript paling populer telah memicu perdebatan tentang praktik kontribusi open source dan respons maintainer. Insiden ini menyoroti meningkatnya ketegangan antara kontributor yang fokus pada keamanan dan maintainer proyek yang menghadapi banjir kontribusi otomatis dan berkualitas rendah.
Peningkatan Keamanan yang Berbalik Arah
Developer tersebut mencoba menambahkan package provenance ke lodash, sebuah library utilitas JavaScript yang banyak digunakan dan diunduh puluhan juta kali setiap minggu. Package provenance menciptakan pernyataan yang ditandatangani selama proses build, membantu mendeteksi paket berbahaya yang melewati alur kerja CI/CD yang tepat. Meskipun lodash sangat populer, paket ini belum diperbarui selama lebih dari lima tahun dan tidak memiliki fitur keamanan dasar ini.
Kontributor tersebut menghabiskan berjam-jam melakukan reverse engineering pada proses build lodash dan berhasil membuat alur kerja GitHub Actions yang berfungsi. Namun, setelah membuka dan dengan cepat menutup pull request yang prematur, mereka mendapati diri mereka benar-benar diblokir dari repositori - tidak dapat membuat issues, mengawasi repo, atau berkontribusi dengan cara apa pun.
Package provenance: Fitur keamanan yang menciptakan bukti kriptografis tentang bagaimana dan di mana paket perangkat lunak dibangun, membantu pengguna memverifikasi keasliannya.
Status Proyek Lodash
- Tidak ada rilis baru dalam lebih dari 5 tahun
- Diunduh puluhan juta kali per minggu
- Branch utama: tidak ada commit dalam 9 bulan
- Tidak ada workflow CI/CD untuk publishing
- Termasuk dalam 10 besar paket npm tanpa provenance
Komunitas Terpecah Soal Keputusan Pemblokiran
Pemblokiran tersebut telah membagi komunitas open source. Beberapa menganggapnya sebagai reaksi berlebihan terhadap upaya peningkatan keamanan yang tulus. Yang lain berargumen bahwa langsung masuk ke perubahan proses build yang kritis tanpa diskusi sebelumnya menimbulkan tanda bahaya, terutama mengingat lonjakan kontribusi yang dihasilkan AI yang menargetkan repositori populer belakangan ini.
Seseorang yang tidak saya kenal tanpa riwayat berkontribusi ke proyek saya yang langsung masuk ke packaging, distribusi, provenance benar-benar akan membuat saya mempertanyakan niat mereka.
Waktu kejadian selama Hacktoberfest - acara selama sebulan yang mendorong kontribusi open source - mungkin telah berkontribusi pada kewaspadaan maintainer terhadap kontribusi otomatis atau superfisial.
Adopsi Provenance Paket
- Hanya 2 dari 10 paket npm paling populer yang menggunakan provenance
- Paket TypeScript tidak memiliki provenance meskipun populer
- Implementasi memerlukan flag npm publish sederhana:
--provenance --access public - Membantu mendeteksi paket yang melewati pemeriksaan keamanan CI/CD
Tantangan yang Lebih Luas dalam Pemeliharaan Open Source
Insiden ini mencerminkan masalah yang lebih besar yang dihadapi proyek open source populer. Maintainer berjuang untuk menyeimbangkan penyambutan kontributor yang tulus sambil menyaring kiriman berkualitas rendah, spam yang dihasilkan AI, dan perubahan yang berpotensi berbahaya. Maintainer lodash sebelumnya telah menyatakan kebangkrutan issue pada tahun 2023, menutup banyak issue terbuka untuk memulai dari awal.
Kurangnya komunikasi memperparah masalah. Tanpa penjelasan untuk pemblokiran, kontributor tidak dapat belajar dari kesalahan atau mengklarifikasi niat. Ini menciptakan siklus di mana developer yang bermaksud baik menjadi putus asa sementara maintainer merasa kewalahan oleh perhatian yang tidak diinginkan.
Developer tersebut sejak itu telah menyesuaikan pendekatan mereka, berencana untuk membuka issue diskusi sebelum mengirimkan perubahan kode untuk mengukur minat maintainer. Meskipun tujuan peningkatan keamanan tetap valid, pengalaman tersebut menunjukkan bahwa bahkan kontribusi yang bermanfaat memerlukan pengenalan yang hati-hati dalam lanskap open source yang kompleks saat ini.
Referensi: On Being Blocked From Contributing to lodash
