Serangan Supply Chain NPM Terus Berlanjut Meski Dimiliki Microsoft, Developer Menuntut Langkah Keamanan yang Lebih Baik

Tim Komunitas BigGo
Serangan Supply Chain NPM Terus Berlanjut Meski Dimiliki Microsoft, Developer Menuntut Langkah Keamanan yang Lebih Baik

Komunitas pengembang JavaScript sekali lagi bergulat dengan serangan supply chain yang menargetkan package manager NPM , menimbulkan pertanyaan serius tentang keamanan repositori kode terbesar di dunia. Insiden terbaru telah mengkompromikan paket-paket populer yang digunakan oleh ribuan developer setiap hari, mencuri data sensitif termasuk kunci AWS dan token autentikasi.

Peran Microsoft Mendapat Sorotan

Sejak Microsoft mengakuisisi NPM melalui GitHub pada tahun 2020, raksasa teknologi ini menghadapi kritik yang meningkat karena gagal mengatasi kerentanan keamanan fundamental. Perusahaan ini kini mengendalikan seluruh ekosistem JavaScript - dari repositori kode ( GitHub ) hingga distribusi paket ( NPM ) dan lingkungan pengembangan utama ( VS Code ). Meski memiliki kantong yang dalam dan sumber daya yang luas, Microsoft telah membuat kemajuan minimal dalam mengamankan platform dari aktor jahat.

Isu utama terletak pada keputusan desain NPM yang dibuat lebih dari satu dekade lalu. Fitur seperti script postinstall dan npx memungkinkan paket untuk mengeksekusi kode arbitrer selama instalasi, menciptakan vektor serangan yang mudah. Ketika dikombinasikan dengan budaya update agresif NPM dan kecenderungan ekosistem untuk menyertakan ratusan atau ribuan dependensi, permukaan serangan menjadi sangat besar.

Kerentanan Keamanan Utama dalam NPM

  • Postinstall Scripts: Memungkinkan eksekusi kode sewenang-wenang selama instalasi paket
  • NPX Tool: Dapat menjalankan modul apa pun dari sumber web mana pun tanpa interaksi pengguna
  • Automatic Updates: Budaya upgrade yang agresif dengan rentang semver (^) secara default
  • No Code Signing: Paket tidak ditandatangani atau diverifikasi secara kriptografis
  • Weak 2FA Requirements: Hanya 100 paket teratas yang memerlukan autentikasi dua faktor

Perlawanan Komunitas dan Solusi yang Diusulkan

Developer semakin frustrasi dengan kurangnya perbaikan keamanan yang berarti. Banyak yang menunjuk pada package manager alternatif seperti pnpm, yang menonaktifkan script post-install secara default dan menyertakan fitur seperti kebijakan usia rilis minimum untuk menunda update otomatis paket yang baru dipublikasikan.

Alat yang kita gunakan untuk membangun perangkat lunak tidak aman secara default, dan hampir sepanjang waktu, perusahaan yang menyediakan alat tersebut tidak dimintai pertanggungjawaban atas keamanan produk mereka.

Ahli keamanan menyarankan beberapa perbaikan segera: autentikasi dua faktor wajib untuk semua maintainer paket, persyaratan code signing, dan pemindaian otomatis untuk konten berbahaya sebelum publikasi. Beberapa developer telah menerapkan langkah perlindungan mereka sendiri, termasuk dependency pinning, sandboxing instalasi, dan review kode manual untuk update.

Langkah-Langkah Keamanan yang Direkomendasikan

  • Gunakan pnpm sebagai pengganti npm untuk keamanan default yang lebih baik
  • Tetapkan versi yang tepat daripada menggunakan rentang semver
  • Terapkan periode cooldown untuk versi paket baru (24-72 jam)
  • Sandbox instalasi menggunakan alat seperti bubblewrap di Linux
  • Tinjauan dependensi manual untuk proyek-proyek kritis
  • Gunakan npm audit dan alat pemindaian dependensi secara rutin

Masalah Ekosistem yang Lebih Luas

Krisis keamanan NPM mencerminkan isu yang lebih dalam dalam model perangkat lunak open source. Perusahaan Fortune 500 sangat bergantung pada perangkat lunak gratis yang dikelola oleh relawan yang tidak dibayar, namun memberikan sedikit kontribusi kembali untuk proyek-proyek kritis ini. Hal ini menciptakan situasi yang tidak berkelanjutan di mana infrastruktur penting kekurangan pengawasan keamanan yang tepat.

Tidak seperti package manager lain yang telah menerapkan langkah keamanan - PyPI memiliki attestation dan trusted publisher, Ruby memiliki signed gem sejak versi 2 - NPM telah mendiskusikan package signing sejak 2013 dengan sedikit kemajuan konkret. Popularitas platform ini membuatnya menjadi target yang menarik, tetapi filosofi desainnya memprioritaskan kemudahan penggunaan daripada keamanan.

Manajer Paket Alternatif dengan Keamanan yang Lebih Baik

Manajer Paket Fitur Keamanan
pnpm Menonaktifkan skrip postinstall secara default, kebijakan usia rilis minimum
PyPI Dukungan attestation, sistem trusted publisher
RubyGems Gems yang ditandatangani sejak versi 2
Maven Proses persetujuan legal, pembaruan yang diteliti dengan ketat di enterprise

Melihat ke Depan

Seiring serangan supply chain menjadi lebih canggih dan sering, komunitas JavaScript menghadapi titik keputusan kritis. Beberapa developer mengadvokasi langkah keamanan yang lebih ketat meski dapat memperumit proses pengembangan, sementara yang lain menolak perubahan yang mungkin memperlambat budaya iterasi cepat yang telah mendefinisikan pengembangan JavaScript .

Situasi saat ini menyoroti kebutuhan akan perubahan industri secara luas terhadap keamanan supply chain perangkat lunak. Tanpa tindakan terkoordinasi dari pemilik platform, maintainer paket, dan organisasi konsumen, serangan-serangan ini kemungkinan akan terus meningkat baik dalam frekuensi maupun kecanggihan.

Referensi: Oh no, not again... a meditation on NPM supply chain attacks