Cara Kerja Serangan Rantai Pasokan NPM Axios (Dan Cara Melindungi Proyek API Anda)

Ashley Innocent

Ashley Innocent

1 April 2026

Cara Kerja Serangan Rantai Pasokan NPM Axios (Dan Cara Melindungi Proyek API Anda)

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

TL;DR

Pada 31 Maret 2026, penyerang membobol akun npm pemelihara utama Axios, klien HTTP JavaScript paling populer dengan 83 juta unduhan mingguan. Mereka menerbitkan versi berbahaya (1.14.1 dan 0.30.4) yang berisi RAT lintas platform yang mencuri kredensial, kunci SSH, dan token cloud dari mesin pengembang. Turunkan versi ke Axios 1.14.0 segera, rotasi semua rahasia, dan pindai indikator kompromi pada sistem Anda.

Pendahuluan

Axios memproses lebih banyak permintaan HTTP dibandingkan pustaka JavaScript lainnya. Jika Anda telah membangun klien API, menguji titik akhir, atau menghubungkan frontend ke backend dalam lima tahun terakhir, Anda mungkin pernah menggunakannya.

Pada 31 Maret 2026, pukul 00:21 UTC, pelaku ancaman menerbitkan Axios versi 1.14.1 melalui akun pemelihara yang dibajak. Paket tersebut tampak identik dengan rilis yang sah. Perbedaannya sangat teliti: hanya package.json yang berubah di antara 86 file. Namun, file tunggal itu menyuntikkan dependensi hantu bernama plain-crypto-js yang menyebarkan trojan akses jarak jauh ke setiap mesin yang menjalankan npm install.

Versi berbahaya tersebut tetap aktif selama kurang lebih dua hingga tiga jam sebelum npm menariknya. Dua hingga tiga jam di antara 83 juta unduhan mingguan.

💡
Jika Anda membangun atau menguji API, serangan ini secara langsung menargetkan toolchain Anda. Klien HTTP bawaan Apidog menghilangkan kebutuhan akan pustaka HTTP pihak ketiga dalam alur kerja pengujian API Anda, menghilangkan seluruh permukaan serangan ini. Unduh Apidog secara gratis untuk mengikuti langkah-langkah audit keamanan di bawah ini.
button

Artikel ini menjelaskan bagaimana serangan itu bekerja, cara mendeteksi apakah sistem Anda terkompromi, dan apa yang harus diubah oleh tim API mengenai manajemen dependensi mereka di masa mendatang.

Bagaimana serangan rantai pasok Axios terungkap

Garis waktu

Penyerang mengeksekusi operasi ini dengan presisi dalam rentang waktu 18 jam:

Bagaimana akun dibobol

Penyerang mengambil alih akun npm jasonsaayman, pemelihara utama Axios. Mereka mengubah email yang terdaftar menjadi ifstap@proton.me. Bukti forensik utama:

Perbedaan ini penting. Jika organisasi Anda menerbitkan paket npm, tidak adanya pengikatan OIDC dan asal-usul CI/CD pada rilis adalah tanda bahaya yang patut diotomatisasi pemeriksaannya.

Teknik injeksi dependensi

Inilah yang membuat serangan ini halus. Penyerang tidak memodifikasi kode sumber Axios. Mereka mengubah satu baris di package.json untuk menambahkan plain-crypto-js@^4.2.1 sebagai dependensi runtime. Paket ini tidak pernah diimpor di mana pun dalam basis kode Axios. Ini ada semata-mata untuk memicu hook postinstall-nya selama npm install.

Analisis biner mengonfirmasi presisi bedah: hanya package.json yang berbeda antara rilis bersih 1.14.0 dan 1.14.1 yang dikompromikan di semua 86 file dalam paket.

Apa yang dilakukan muatan berbahaya

Mekanisme dropper

Hook postinstall di plain-crypto-js mengeksekusi file yang di-obfuscated berukuran 4.2 KB bernama setup.js. Ia menggunakan dua lapisan obfuscation:

  1. Lapisan 1: Sandi XOR menggunakan kunci yang berasal dari string "OrDeR_7077"
  2. Lapisan 2: Pengodean Base64 dengan pembalikan karakter

Setelah didekode, dropper mengidentifikasi sistem operasi host dan mengeksekusi muatan spesifik platform.

Jalur serangan spesifik platform

macOS:

Writes AppleScript to /tmp/6202033
Executes via osascript
Downloads payload to /Library/Caches/com.apple.act.mond

Windows:

Copies PowerShell to %PROGRAMDATA%\wt.exe (persistence artifact)
Executes VBScript dropper via cscript

Linux:

Downloads Python RAT to /tmp/ld.py
Executes via nohup python3

Ketiga cabang tersebut menghubungi server command-and-control dengan isi POST spesifik platform:

Kemampuan RAT

Trojan akses jarak jauh yang disebarkan mendukung:

Secara sederhana: penyerang mendapatkan kendali jarak jauh penuh atas mesin pengembangan Anda. Mereka dapat membaca file .env Anda, mencuri kunci API Anda, menyalin kunci SSH Anda, dan memanen token penyedia cloud.

Anti-forensik: muatan pembersih diri

Setelah dieksekusi, dropper melakukan tiga langkah pembersihan:

  1. Menghapus setup.js itu sendiri
  2. Menghapus package.json berbahaya
  3. Mengganti nama package.md yang telah disiapkan sebelumnya (melaporkan versi 4.2.0) menjadi package.json

Ini menciptakan lapisan penipuan di mana npm list akan melaporkan versi 4.2.0 alih-alih 4.2.1 yang mengeksekusi muatan. Pengembang yang memeriksa dependensinya setelah kejadian itu tidak akan melihat ada yang salah.

Siapa di balik serangan ini

Google Threat Intelligence Group mengaitkan serangan Axios dengan UNC1069, pelaku ancaman yang diduga berasal dari Korea Utara. Malware macOS menunjukkan "tumpang tindih yang signifikan" dengan WAVESHAPER, backdoor C++ yang dilacak Mandiant pada Februari 2026.

Kelompok yang disponsori negara Korea Utara memiliki pengalaman mendalam dengan serangan rantai pasok. Mereka secara historis menggunakan alat pengembang yang disusupi untuk mencuri mata uang kripto, dan operasi ini mengikuti pola yang sama: menyusupi alat pengembang yang banyak digunakan untuk mendapatkan akses ke kredensial dan infrastruktur cloud di ribuan organisasi.

Tingkat kecanggihan ini patut dicatat. Injeksi dependensi dua tahap, penyebaran RAT multi-platform, dan pembersihan anti-forensik semuanya menunjukkan operasi yang memiliki sumber daya yang baik. Ini bukan script kiddie yang menyebarkan cryptominer. Ini adalah operasi intelijen yang menargetkan workstation pengembang.

Cara memeriksa apakah Anda terpengaruh

Langkah 1: Periksa versi Axios Anda

Jalankan ini di setiap proyek yang menggunakan Axios:

npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"

Jika ini mengembalikan hasil, proyek Anda menginstal versi yang disusupi.

Langkah 2: Periksa dependensi berbahaya

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"

Meskipun dropper membersihkan dirinya sendiri, keberadaan direktori mengonfirmasi muatan dieksekusi.

Langkah 3: Periksa artefak RAT di sistem Anda

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null

Linux:

ls -la /tmp/ld.py 2>/dev/null

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"

Langkah 4: Periksa indikator jaringan

Blokir dan pindai koneksi ke:

Langkah 5: Periksa log build CI/CD

Tinjau setiap proses pipeline CI/CD antara 31 Maret pukul 00:21 UTC dan 03:15 UTC. Setiap npm install atau npm ci yang dijalankan selama periode ini yang menyelesaikan Axios dapat mengeksekusi dropper di lingkungan build Anda.

Langkah-langkah remediasi segera

Jika Anda menemukan indikator kompromi, anggap sistem yang terpengaruh sepenuhnya dikompromikan. Berikut adalah daftar prioritas:

1. Segera turunkan versi Axios

npm install axios@1.14.0

Atau untuk cabang 0.x:

npm install axios@0.30.3

2. Tambahkan penimpaan versi ke package.json Anda

Cegah resolusi transitif ke versi berbahaya:

{
  "overrides": {
    "axios": "1.14.0"
  }
}

Untuk Yarn:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}

3. Hapus paket berbahaya

rm -rf node_modules/plain-crypto-js

4. Rotasi semua kredensial

Jika dropper dieksekusi di mesin Anda, anggap yang berikut ini telah dikompromikan:

Rotasi semuanya. Tidak ada cara untuk mengetahui apa yang dieksfiltrasi oleh RAT selama jendela aktifnya.

5. Blokir C2 di tingkat jaringan

Tambahkan ke file hosts atau aturan firewall Anda:

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts

6. Jika artefak ditemukan, bangun ulang mesin

RAT dengan eksekusi shell dan akses sistem file dapat memodifikasi apa pun. Jika Anda menemukan artefak dari Langkah 3, jangan percayai sistem tersebut. Bangun ulang dari keadaan yang diketahui baik.

Pertahanan jangka panjang untuk tim pengembangan API

Gunakan lockfile dan pin versi yang tepat

Serangan Axios mengeksploitasi rentang semver ^. Jika package.json Anda mengatakan "axios": "^1.14.0", npm menyelesaikan versi yang paling kompatibel, yaitu 1.14.1 selama jendela serangan.

{
  "dependencies": {
    "axios": "1.14.0"
  }
}

Pin versi yang tepat. Selalu komit package-lock.json atau yarn.lock Anda. Jalankan npm ci alih-alih npm install di CI/CD untuk memberlakukan resolusi lockfile.

Nonaktifkan skrip postinstall di CI/CD

Seluruh serangan bergantung pada hook postinstall yang dieksekusi selama npm install. Anda dapat menonaktifkan ini:

npm ci --ignore-scripts

Ini merusak beberapa paket yang memerlukan kompilasi asli. Uji build Anda terlebih dahulu, lalu secara selektif izinkan skrip untuk paket yang membutuhkannya menggunakan .npmrc:

ignore-scripts=true

Audit dependensi secara teratur

npm audit
npx socket-security/cli audit

Jalankan ini di CI/CD sebagai gerbang. Setiap kerentanan kritis atau tinggi harus memblokir build.

Kurangi permukaan dependensi klien HTTP Anda

Inilah pertanyaan yang lebih dalam yang diajukan oleh serangan ini: mengapa alur kerja pengujian API Anda bergantung pada pustaka HTTP pihak ketiga yang dapat dikompromikan?

Apidog menyediakan klien HTTP bawaan untuk pengujian API, debugging, dan dokumentasi. Anda tidak memerlukan Axios, node-fetch, atau got di tumpukan pengujian Anda. Klien HTTP adalah bagian dari platform, tanpa dependensi pihak ketiga yang dapat dikompromikan.

Khusus untuk pengujian API, memindahkan permintaan HTTP Anda ke Apidog menghilangkan seluruh permukaan serangan:

Coba Apidog gratis untuk melihat bagaimana menghilangkan dependensi pustaka HTTP dari alur kerja API Anda mengurangi risiko rantai pasok Anda.

Verifikasi asal-usul paket

npm sekarang mendukung asal-usul paket melalui Sigstore. Periksa apakah paket yang Anda andalkan menggunakan ini:

npm audit signatures

Versi Axios yang berbahaya tidak memiliki asal-usul OIDC. Rilis sah dari pipeline CI/CD menyertakan attestasi kriptografi dari asal build mereka. Jika versi baru muncul tanpa asal-usul, perlakukan dengan kecurigaan.

Apa artinya ini bagi ekosistem JavaScript

Model kepercayaan rusak

Model kepercayaan npm bergantung pada keamanan akun pemelihara. Satu kredensial yang disusupi memberikan penyerang kendali atas paket yang diinstal oleh 83 juta proyek setiap minggu. Otentikasi dua faktor membantu, tetapi token akses berumur panjang masih dapat dicuri dari lingkungan pengembangan yang disusupi.

Komunitas sedang mendiskusikan beberapa perubahan struktural:

Serangan rantai pasok tidak melambat

Serangan ini terjadi dalam beberapa hari setelah insiden RubyGems fracture dan kekhawatiran dependensi PyPI yang sedang berlangsung. Registri paket di setiap ekosistem bahasa berada di bawah serangan berkelanjutan. Pengembang API perlu memikirkan pohon dependensi mereka sebagai permukaan serangan, bukan kenyamanan.

Diskusi Reddit menangkap sentimen dengan baik: "NPM adalah kelemahan terbesar internet saat ini dan itu masih akan menyebabkan bencana besar." Apakah Anda setuju dengan hiperbola atau tidak, serangan Axios menunjukkan bahwa radius ledakan itu nyata.

Perbandingan: Pendekatan dependensi klien HTTP

Pendekatan Risiko rantai pasok Beban pemeliharaan Kemampuan pengujian
Axios + skrip kustom Tinggi (dependensi pihak ketiga) Tinggi (manajemen versi) Penyiapan manual diperlukan
Node.js native fetch Rendah (dibangun di runtime) Rendah Fitur pengujian terbatas
Klien bawaan Apidog Tidak ada (tidak ada dependensi npm) Tidak ada (dikelola platform) Pengujian penuh, mocking, dokumen
Skrip curl/httpie Rendah (alat tingkat sistem) Sedang Otomatisasi terbatas

FAQ

Apakah Axios aman digunakan sekarang?

Ya. Versi 1.14.0 dan 0.30.3 bersih. Versi yang disusupi (1.14.1 dan 0.30.4) tidak dipublikasikan dalam waktu sekitar tiga jam. Verifikasi versi yang terinstal dengan npm list axios dan periksa lockfile Anda untuk memastikan Anda menggunakan versi yang aman.

Bagaimana saya tahu jika RAT berjalan di mesin saya?

Periksa artefak spesifik platform: /Library/Caches/com.apple.act.mond di macOS, /tmp/ld.py di Linux, atau %PROGRAMDATA%\wt.exe di Windows. Juga periksa apakah node_modules/plain-crypto-js ada di salah satu proyek Anda. Dropper membersihkan dirinya sendiri, jadi ketiadaan artefak tidak menjamin Anda aman jika Anda menginstal versi yang disusupi.

Haruskah saya berhenti menggunakan Axios sepenuhnya?

Belum tentu. Axios tetap menjadi pustaka yang terawat baik dengan rekam jejak yang kuat. Tetapi serangan ini harus mendorong Anda untuk mengevaluasi apakah Anda memerlukan klien HTTP pihak ketiga sama sekali. Node.js 18+ menyertakan fetch asli. Untuk pengujian API, platform seperti Apidog menyediakan klien HTTP bawaan yang menghilangkan dependensi ini.

Bagaimana saya bisa mencegah serangan rantai pasok dalam proyek saya?

Pin versi dependensi yang tepat, komit lockfile, jalankan npm ci --ignore-scripts di CI/CD, audit dependensi secara teratur, verifikasi asal-usul paket dengan npm audit signatures, dan minimalkan pohon dependensi Anda. Pertimbangkan untuk memindahkan alur kerja pengujian API ke platform terintegrasi yang tidak bergantung pada paket npm untuk komunikasi HTTP.

Apakah serangan ini terkait dengan kebocoran kode sumber Claude?

Kedua peristiwa terjadi pada hari yang sama (31 Maret 2026), tetapi tidak terkait. Serangan Axios adalah kompromi rantai pasok yang disengaja oleh pelaku ancaman yang disponsori negara. Kebocoran Kode Claude diakibatkan oleh bug alat build Bun yang mengirimkan peta sumber dalam produksi. Waktu yang kebetulan telah memicu diskusi tentang keamanan registri npm secara keseluruhan.

Siapa di balik serangan Axios?

Google Threat Intelligence Group mengaitkan serangan itu dengan UNC1069, pelaku ancaman yang diduga berasal dari Korea Utara. Malware macOS memiliki tumpang tindih yang signifikan dengan WAVESHAPER, backdoor yang dilacak oleh Mandiant. Kelompok Korea Utara memiliki pengalaman luas dengan serangan rantai pasok, biasanya menargetkan kredensial pengembang dan infrastruktur mata uang kripto.

Berapa banyak pengembang yang terpengaruh?

Versi berbahaya aktif selama kurang lebih dua hingga tiga jam. Dengan 83 juta unduhan mingguan, potensi paparan sangat signifikan. npm belum menerbitkan angka dampak resmi. Deteksi runtime StepSecurity mengonfirmasi bahwa dropper menghubungi C2 dalam 1.1 detik setelah npm install dimulai, sebelum resolusi dependensi selesai.

Bisakah Apidog membantu mencegah serangan rantai pasok?

Apidog menghilangkan salah satu vektor serangan utama dengan menyediakan klien HTTP bawaan untuk pengujian API, debugging, dan dokumentasi. Anda tidak perlu menginstal Axios, node-fetch, atau pustaka HTTP lainnya dalam alur kerja pengujian Anda. Ini mengurangi permukaan dependensi npm Anda dan menghilangkan risiko paket klien HTTP yang disusupi memengaruhi proses pengembangan API Anda.

Poin-poin penting

Serangan Axios adalah panggilan bangun. Setiap dependensi di node_modules Anda adalah keputusan kepercayaan. Pastikan Anda membuat keputusan tersebut secara sengaja, bukan secara default.

button

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.

Cara Kerja Serangan Rantai Pasokan NPM Axios (Dan Cara Melindungi Proyek API Anda)