Security

GitHub Umumkan Perubahan Keamanan npm untuk Tangkal Serangan Supply-Chain

Platform repositori kode global, GitHub, mengumumkan langkah perlindungan baru pada ekosistem JavaScript lewat peluncuran npm versi 12 yang dijadwalkan hadir bulan depan. Pembaruan ini berfokus pada perombakan sistem keamanan guna memblokir taktik serangan rantai pasok (supply-chain attacks) yang kerap mengeksploitasi celah otomatisasi pada perintah npm install.

Perintah npm install sendiri merupakan instruksi standar yang digunakan oleh para pengembang perangkat lunak untuk mengunduh, memasang dependensi proyek, serta menjalankan skrip bawaan yang ditentukan oleh paket terkait. Perintah ini biasanya dieksekusi setelah melakukan kloning proyek, melakukan pembaruan kode, atau selama proses integrasi berkelanjutan (CI/CD builds). Sifat eksekusinya yang berjalan otomatis membuat jalur ini menjadi target favorit para peretas untuk menyisipkan kode berbahaya.

Melalui npm v12, GitHub mengubah filosofi keamanan mereka: seluruh proses eksekusi kode otomatis dan penarikan dependensi dari luar registri resmi yang sebelumnya dipercaya secara bawaan (trusted by default), kini wajib mendapatkan persetujuan eksplisit dari pengguna.


Tiga Perubahan Keamanan Utama pada npm v12

GitHub merinci tiga poin perubahan regulasi keamanan krusial yang akan diterapkan secara ketat pada pembaruan mendatang:

  • Blokir Otomatisasi Skrip Dependensi: Mulai versi 12, perintah npm install tidak akan lagi menjalankan skrip preinstall, install, atau postinstall dari paket dependensi kecuali pengguna telah memberikan izin secara manual. Aturan ketat ini juga berlaku untuk proses kompilasi modul bawaan (native module builds) yang dipicu lewat alat node-gyp, serta skrip prepare yang berasal dari repositori Git, file lokal, dan dependensi tertaut (linked dependencies).
  • Pembatasan Penarikan Repositori Git: Sistem tidak akan lagi menarik atau mengunduh dependensi langsung dari repositori Git eksternal, baik yang bersifat langsung (direct) maupun transitif (transitive), tanpa izin tertulis dari administrator. GitHub menjelaskan langkah ini diambil untuk menutup celah eksekusi kode berbahaya, di mana file konfigurasi .npmrc pada dependensi Git bajakan dapat memanipulasi file eksekusi (executable) Git yang digunakan sistem, bahkan saat fungsi skrip instalasi dinonaktifkan.
  • Penolakan Resolusi URL Jarak Jauh: Seluruh dependensi yang dipasang dari tautan URL jarak jauh, seperti paket arsip HTTPS tarballs, tidak akan diselesaikan (resolved) secara otomatis oleh sistem kecuali pengguna mengizinkannya secara eksplisit.

Memutus Rantai Kampanye Malware Populer

Perubahan kebijakan bawaan (new defaults) ini diklaim mampu memangkas berbagai teknik manipulasi kode yang marak digunakan dalam serangan supply-chain belakangan ini. Kebijakan baru ini diproyeksikan dapat meredam efektivitas kampanye skrip preinstall/postinstall berbahaya yang sebelumnya sempat menyerang paket eslint-config-prettier, paket Picasso milik Toptal, lusinan paket pencuri data kredensial, hingga eksploitasi dependensi Git yang terdokumentasi dalam serangan siber Shai-Hulud.

Bagi proyek atau aplikasi legal yang alur kerjanya masih bergantung pada mekanisme otomatisasi di atas, pengembang wajib melakukan pengaturan persetujuan masuk (opt-in) secara manual sebelum melakukan migrasi ke versi baru.

Langkah Persiapan Bagi Pengembang

Guna mencegah terjadinya kegagalan fungsi atau rusaknya alur kerja proyek saat beralih ke npm v12, GitHub menyarankan para pengembang untuk meningkatkan sistem mereka ke versi npm 11.16.0 atau yang lebih baru terlebih dahulu.

Pada versi transisi tersebut, sistem akan mulai memunculkan pesan peringatan (warnings) pada setiap tindakan atau dependensi yang berpotensi terblokir di versi 12. Hal ini memberikan ruang bagi para pengembang untuk meninjau log peringatan, mengidentifikasi dependensi pihak ketiga yang bermasalah, dan mendaftarkan pengecualian izin sebelum pembaruan final digulirkan secara massal. Saat ini, GitHub juga telah membuka ruang diskusi komunitas bagi para pengembang untuk membagikan umpan balik terkait perubahan regulasi ini.


Sumber: GitHub Engineering Product Announcement

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button