GitHub telah mengumumkan bahwa npm v12, yang diharapkan bulan depan, akan memperkenalkan beberapa perubahan yang berfokus pada keamanan yang bertujuan untuk memblokir serangan rantai pasokan yang menyalahgunakan perilaku yang dipicu oleh perintah ‘npm install’.
‘npm install’ adalah perintah yang digunakan untuk mengunduh dan menginstal dependensi proyek dan menjalankan skrip terkait instalasi apa pun yang ditentukan oleh paket.
Pengembang mengeksekusinya setelah mengkloning proyek, menarik pembaruan, atau selama pembuatan CI/CD, dan penyerang menargetkannya karena potensi eksekusi kode otomatis selama instalasi paket.
Tema utama dari pengumuman ini adalah bahwa eksekusi kode dan sumber ketergantungan non-registrasi yang saat ini terpicu secara otomatis selama instalasi npm kini akan memerlukan persetujuan eksplisit dan bukannya dipercaya secara default.
Secara khusus, GitHub mengumumkan perubahan berikut:
- Mulai versi 12, npm install tidak akan menjalankan skrip prainstal, instal, atau pascainstal dari dependensi kecuali telah disetujui secara eksplisit. Hal ini juga berlaku untuk pembuatan modul asli yang dipicu melalui node-gyp, dan menyiapkan skrip dari Git, file lokal, dan dependensi tertaut.
- npm install tidak akan lagi mengambil dependensi dari repositori Git, baik langsung maupun transitif, kecuali diizinkan secara eksplisit. GitHub mengatakan ini menghapus jalur eksekusi kode di mana file .npmrc ketergantungan Git dapat mengubah executable Git mana yang digunakan, bahkan ketika skrip instalasi dinonaktifkan.
- Ketergantungan yang dipasang dari URL jarak jauh, seperti tarbal HTTPS, tidak akan lagi teratasi kecuali diizinkan secara eksplisit. Hal ini berlaku untuk ketergantungan langsung dan transitif.
Perubahan ini dapat mengurangi serangan rantai pasokan secara signifikan dengan menghapus eksekusi otomatis skrip instalasi dependensi, resolusi otomatis dependensi berbasis Git, dan resolusi otomatis dependensi URL jarak jauh.
Kegagalan baru ini dapat mengganggu beberapa teknik serangan yang digunakan dalam serangan rantai pasokan baru-baru ini.
Ini termasuk prainstal/skrip pasca instalasi kampanye menargetkan eslint-config-prettier, Paket Picasso Toptalpuluhan paket npm pencuri dataserta Penyalahgunaan ketergantungan Git didokumentasikan dalam Serangan Shai-Hulud.
Proyek yang mengandalkan salah satu perilaku ini untuk alur kerja yang sah harus secara eksplisit ikut serta sebelum meningkatkan ke npm v12.
GitHub merekomendasikan agar pengembang bersiap dengan meningkatkan ke npm 11.16.0 atau lebih baru, yang menampilkan peringatan tentang semua tindakan yang akan gagal pada versi 12.
Hal ini memungkinkan pengembang menjalankan rutinitas penginstalan normal untuk meninjau peringatan ini dan mengidentifikasi dependensi atau alur kerja yang memerlukan persetujuan eksplisit sebelum melakukan peningkatan.
Setelah meningkatkan ke versi 12, hanya skrip dan sumber ketergantungan yang disetujui secara eksplisit yang akan terus berfungsi secara otomatis.
A diskusi komunitas telah dibuka bagi pengembang untuk membagikan saran mereka tentang perubahan yang akan datang.
Uji setiap lapisan sebelum penyerang melakukannya
Tim keamanan mencatat 54% serangan yang berhasil dan hanya memberikan peringatan 14%. Sisanya bergerak melalui lingkungan Anda tanpa terlihat.
Whitepaper Picus menunjukkan bagaimana simulasi pelanggaran dan serangan menguji aturan SIEM dan EDR Anda sehingga ancaman berhenti lolos saat terdeteksi.
