Pendahuluan

Serangan terhadap ekosistem open-source semakin meningkat dalam beberapa tahun terakhir. Banyak hacker kini menargetkan package manager populer seperti npm untuk menyebarkan malware atau mengambil alih package milik developer.

Untuk mengatasi masalah tersebut, npm menghadirkan beberapa fitur keamanan baru, salah satunya adalah 2FA-gated publishing dan kontrol instalasi package yang lebih ketat.

Langkah ini dilakukan untuk meningkatkan keamanan supply chain software dan melindungi jutaan developer yang menggunakan npm setiap hari.


Mengapa Supply Chain Attack Menjadi Ancaman Besar?

Saat ini hampir semua aplikasi modern menggunakan dependency dari internet.

Developer biasanya menginstal package menggunakan perintah seperti:

npm install

Masalahnya, jika package tersebut berbahaya atau akun maintainer berhasil diretas, malware dapat menyebar ke banyak aplikasi sekaligus.

Beberapa kasus besar sebelumnya menunjukkan bagaimana hacker berhasil:

  • mencuri token maintainer
  • mengambil alih package populer
  • menyisipkan malware ke dependency
  • menyerang pipeline CI/CD

Karena itu keamanan supply chain kini menjadi prioritas utama.


Apa Itu 2FA-Gated Publishing?

2FA-gated publishing adalah fitur keamanan baru dari npm yang mewajibkan proses verifikasi tambahan sebelum package dipublikasikan.

Sebelumnya, setelah package di-upload, package langsung tersedia untuk publik.

Sekarang proses publish memiliki tahap tambahan berupa:

  • verifikasi identitas
  • approval manual
  • autentikasi dua faktor (2FA)

Tujuannya adalah memastikan bahwa package benar-benar dipublikasikan oleh pemilik akun asli.


Cara Kerja 2FA-Gated Publishing

1. Package Diunggah ke Staging Queue

Saat developer melakukan publish:

npm publish

package tidak langsung tersedia di registry npm.

Package terlebih dahulu masuk ke antrean sementara atau staging queue.


2. Maintainer Harus Melakukan Verifikasi

npm kemudian meminta maintainer melakukan autentikasi menggunakan:

  • aplikasi authenticator
  • kode OTP
  • metode 2FA lainnya

3. Package Baru Dipublikasikan

Setelah verifikasi berhasil, package akan tersedia untuk publik.

Dengan cara ini npm memastikan ada manusia yang benar-benar menyetujui proses publish.


Mengapa Fitur Ini Penting?

1. Mencegah Penyalahgunaan Token CI/CD

Banyak developer menggunakan token otomatis pada pipeline seperti:

  • GitHub Actions
  • GitLab CI
  • Jenkins

Jika token tersebut bocor, hacker bisa langsung mempublikasikan package berbahaya.

Dengan sistem baru ini, token saja tidak cukup.

Masih diperlukan approval manual melalui 2FA.


2. Mengurangi Risiko Package Takeover

Akun maintainer menjadi target utama hacker.

Jika akun berhasil diretas, package populer dapat digunakan untuk menyebarkan malware ke jutaan pengguna.

2FA membantu mengurangi risiko tersebut.


npm Mulai Mendukung Trusted Publishing

Selain 2FA-gated publishing, npm juga memperkuat sistem Trusted Publishing menggunakan teknologi OpenID Connect (OIDC).


Apa Itu Trusted Publishing?

Trusted Publishing memungkinkan proses publish tanpa menggunakan token permanen.

Biasanya developer menyimpan token npm pada CI/CD pipeline.

Masalahnya, token bisa:

  • bocor
  • dicuri
  • disalahgunakan

Dengan OIDC, proses autentikasi dilakukan secara dinamis sehingga lebih aman.


Keuntungan Trusted Publishing

Beberapa keuntungan fitur ini antara lain:

  • tidak perlu menyimpan token jangka panjang
  • mengurangi risiko pencurian kredensial
  • lebih aman untuk pipeline otomatis
  • mendukung verifikasi provenance package

Kontrol Baru pada Instalasi Package

npm juga menambahkan kontrol baru saat proses instalasi dependency.

Beberapa flag baru yang diperkenalkan antara lain:

--allow-file
--allow-remote
--allow-directory

Tujuan Kontrol Baru Ini

Fitur tersebut membantu developer membatasi sumber instalasi package.

Tujuannya adalah:

  • mencegah instalasi dependency mencurigakan
  • mengurangi risiko package berbahaya
  • meningkatkan kontrol terhadap source package

Dampak bagi Developer dan DevOps

1. Keamanan Menjadi Lebih Baik

Pipeline CI/CD menjadi lebih aman dari serangan supply chain.


2. Workflow Sedikit Bertambah Panjang

Karena membutuhkan approval manual, proses publish mungkin terasa sedikit lebih lama.

Namun hal ini dianggap sebanding dengan peningkatan keamanan.


3. Developer Perlu Beradaptasi

Sebagian developer perlu menyesuaikan workflow automation mereka agar kompatibel dengan sistem baru npm.


Mengapa Open Source Menjadi Target Utama?

Ekosistem open-source kini menjadi target utama hacker karena:

  • digunakan hampir semua aplikasi modern
  • dependency sangat banyak
  • banyak developer kurang memeriksa package
  • satu package bisa digunakan ribuan aplikasi

Karena itu supply chain attack menjadi sangat efektif bagi penyerang.


Cara Meningkatkan Keamanan Dependency npm

1. Aktifkan 2FA

Gunakan aplikasi authenticator untuk akun npm dan GitHub.


2. Gunakan Trusted Publishing

Hindari penggunaan token permanen pada CI/CD.


3. Audit Dependency Secara Berkala

Gunakan tools seperti:

  • Dependabot
  • Snyk
  • Trivy
  • osv-scanner

4. Periksa Package Sebelum Instalasi

Pastikan package memiliki:

  • reputasi baik
  • maintainer aktif
  • repository terpercaya

Masa Depan Keamanan Open Source

Langkah npm ini menunjukkan bahwa keamanan supply chain kini menjadi standar baru.

Ke depan kemungkinan platform lain seperti:

  • PyPI
  • RubyGems
  • Crates.io

akan menerapkan kebijakan serupa.

Model keamanan zero trust mulai menjadi bagian penting dalam ekosistem open-source modern.


Pelajaran dari Kebijakan Baru npm

Kasus-kasus supply chain attack menunjukkan bahwa:

  • otomatisasi tanpa keamanan sangat berbahaya
  • token developer menjadi target utama hacker
  • verifikasi manusia masih sangat penting
  • DevSecOps harus diterapkan sejak awal development

Kesimpulan

npm mengambil langkah besar dalam meningkatkan keamanan ekosistem open-source melalui fitur:

  • 2FA-gated publishing
  • Trusted Publishing
  • kontrol instalasi dependency

Fitur-fitur ini membantu mencegah penyebaran package berbahaya dan mengurangi risiko supply chain attack.

Bagi developer dan tim DevOps, perubahan ini mungkin menambah sedikit proses tambahan, tetapi sangat penting untuk menjaga keamanan software modern.