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 endpoint, 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 sah. Perbedaannya hanya pada file package.json, yang menyuntikkan dependensi hantu bernama plain-crypto-js dan menyebarkan trojan akses jarak jauh ke setiap mesin yang menjalankan npm install.
Versi berbahaya ini aktif selama dua hingga tiga jam sebelum npm menariknya. Dalam rentang waktu singkat, potensi paparan sangat besar.
💡 Jika Anda membangun atau menguji API, serangan ini menargetkan toolchain Anda langsung. Klien HTTP bawaan Apidog menghilangkan kebutuhan pustaka HTTP pihak ketiga, mengurangi permukaan serangan ini.
Artikel ini membahas cara kerja serangan, deteksi sistem yang terkompromi, dan perubahan penting untuk manajemen dependensi API Anda.
Bagaimana Serangan Rantai Pasok Axios Terjadi
Garis Waktu Eksekusi
-
30 Maret, 05:57 UTC: Paket bersih
plain-crypto-js@4.2.0diterbitkan ke npm untuk membangun riwayat. -
30 Maret, 23:59 UTC: Versi berbahaya
plain-crypto-js@4.2.1diterbitkan, menambahkan hookpostinstallberisi dropper. -
31 Maret, 00:21 UTC:
axios@1.14.1dirilis dengan akun pemelihara yang disusupi. -
31 Maret, 01:00 UTC:
axios@0.30.4menyusul, menargetkan cabang 0.x. - 31 Maret, ~03:15 UTC: npm membatalkan kedua versi setelah laporan komunitas.
-
31 Maret, 04:26 UTC: npm menerbitkan stub keamanan untuk
plain-crypto-js.
Cara Akun Dibobol
- Akun npm utama Axios (
jasonsaayman) diambil alih, email diubah keifstap@proton.me. - Rilis sah menggunakan OIDC Trusted Publisher, versi berbahaya tidak.
- Tidak ada
gitHeadpada rilis yang disusupi, menandakan tidak berasal dari CI/CD. - Penyerang menggunakan token npm berumur panjang untuk publikasi manual.
Otomatiskan pemeriksaan OIDC dan asal CI/CD pada pipeline Anda untuk deteksi dini.
Teknik Injeksi Dependensi
- Modifikasi hanya pada
package.json, menambahplain-crypto-js@^4.2.1sebagai dependensi runtime. - Paket tidak diimpor di kode, hanya untuk memicu hook
postinstallsaatnpm install. - Hanya file
package.jsonyang berbeda antara rilis 1.14.0 (bersih) dan 1.14.1 (berbahaya).
Apa yang Dilakukan Muatan Berbahaya
Mekanisme Dropper
- Hook
postinstallpadaplain-crypto-jsmengeksekusi filesetup.jsberukuran 4.2 KB dengan dua lapisan obfuscation:- XOR dengan kunci
"OrDeR_7077" - Base64 dengan pembalikan karakter
- XOR dengan kunci
- Setelah decoding, dropper mendeteksi OS dan mengeksekusi payload spesifik.
Jalur Serangan per Platform
macOS:
# Membuat AppleScript dan menjalankan payload
Writes AppleScript to /tmp/6202033
Executes via osascript
Downloads payload to /Library/Caches/com.apple.act.mond
Windows:
# Artefak persistensi dan eksekusi payload
Copies PowerShell to %PROGRAMDATA%\wt.exe
Executes VBScript dropper via cscript
Linux:
# Men-download dan menjalankan Python RAT
Downloads Python RAT to /tmp/ld.py
Executes via nohup python3
Semua varian mengirim POST ke server C2 berbeda:
- macOS:
packages.npm.org/product0 - Windows:
packages.npm.org/product1 - Linux:
packages.npm.org/product2
Kemampuan RAT
- Eksekusi perintah shell arbitrer
- Eksfiltrasi file & enumerasi direktori
- Daftar & injeksi proses
- Injeksi biner in-memory (fileless)
- Beacon ke server C2 tiap 60 detik
Penyerang dapat mengakses kredensial, kunci SSH, token cloud, file .env, dll.
Anti-Forensik: Pembersihan Otomatis
Dropper melakukan:
- Menghapus
setup.js - Menghapus
package.jsonberbahaya - Mengganti nama
package.md(berisi versi 4.2.0) menjadipackage.json
Hasilnya, npm list akan melaporkan versi 4.2.0, menutupi jejak eksekusi.
Siapa di Balik Serangan Ini?
Google Threat Intelligence Group mengaitkan serangan Axios dengan UNC1069 yang diduga asal Korea Utara. Malware macOS mirip dengan WAVESHAPER (backdoor C++ yang dilacak Mandiant). Polanya konsisten: kompromi toolchain developer untuk mencuri kredensial dan aset cloud.
Cara Memeriksa Apakah Anda Terpengaruh
Langkah 1: Cek Versi Axios
Jalankan di setiap proyek:
npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"
Jika hasil keluar, proyek memakai versi terinfeksi.
Langkah 2: Cek Dependensi Berbahaya
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"
Jika folder ada, payload kemungkinan sudah dijalankan.
Langkah 3: Cek Artefak RAT
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: Cek Indikator Jaringan
Blokir dan cari koneksi ke:
- Domain C2:
sfrclak.com - IP C2:
142.11.206.73 - URL C2:
http://sfrclak.com:8000/6202033
Langkah 5: Tinjau Log Build CI/CD
Periksa pipeline antara 31 Maret 00:21-03:15 UTC. Proses npm install saat periode ini bisa menjalankan dropper di lingkungan build Anda.
Langkah-Langkah Remediasi Segera
Jika ada indikator kompromi, anggap sistem Anda sepenuhnya terinfeksi.
1. Segera Turunkan Versi Axios
npm install axios@1.14.0
Untuk cabang 0.x:
npm install axios@0.30.3
2. Tambahkan Override Versi di package.json
Cegah resolusi 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
Asumsikan semua token & rahasia tercuri:
- Token npm
- Kredensial AWS/GCP/Azure
- Kunci SSH
- Token GitHub
- API key di
.env - Kredensial database
- Semua environment variable rahasia
Rotasi semuanya segera.
5. Blokir C2 pada Jaringan
echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts
6. Temukan Artefak? Build Ulang Mesin
Jika artefak dari Langkah 3 ditemukan, rebuild dari image bersih. Jangan percaya sistem tersebut.
Pertahanan Jangka Panjang untuk Tim API
Gunakan Lockfile & Pin Versi
Jangan gunakan semver ^. Pin versi tepat:
{
"dependencies": {
"axios": "1.14.0"
}
}
Selalu commit package-lock.json atau yarn.lock. Gunakan npm ci di CI/CD agar lockfile enforced.
Nonaktifkan postinstall di CI/CD
Jalankan:
npm ci --ignore-scripts
Atur juga di .npmrc:
ignore-scripts=true
Jika ada paket yang butuh build native, whitelist secara selektif.
Audit Dependensi Secara Rutin
npm audit
npx socket-security/cli audit
Blok build jika ada vulnerability critical/high.
Kurangi Permukaan Dependensi Klien HTTP
Untuk pengujian API, gunakan klien HTTP bawaan seperti Apidog. Tidak perlu Axios, node-fetch, atau got pada stack pengujian Anda.
Contoh Praktis:
- Pengujian API: Gunakan builder tes visual Apidog
- Debugging API: Pakai inspector request bawaan Apidog
- Mock Server: Gunakan fitur mock Apidog
- Integrasi CI/CD: Jalankan tes API otomatis dengan Apidog CLI, tanpa dependensi HTTP npm
Coba Apidog gratis untuk mengurangi risiko dependensi HTTP di workflow API Anda.
Verifikasi Asal-usul Paket
Cek OIDC/Sigstore:
npm audit signatures
Versi Axios berbahaya tidak punya asal OIDC. Selalu cek rilis baru & audit asalnya.
Apa Artinya untuk Ekosistem JavaScript
Model Kepercayaan npm Lemah
Satu akun pemelihara yang dibobol bisa berdampak ke jutaan proyek. 2FA membantu, tapi token akses panjang tetap rawan dicuri.
Solusi yang sedang didiskusikan:
- OIDC Wajib: Semua paket populer harus publish via CI/CD OIDC.
- Persetujuan Rilis Ganda: Rilis paket kritikal harus multi-maintainer.
- Sandbox Skrip postinstall: Batasi akses runtime skrip seperti model izin Deno.
Supply Chain Attack Semakin Sering
Serangan Axios terjadi bersamaan dengan insiden RubyGems dan PyPI. Setiap registry paket rentan.
Anggap pohon dependensi Anda sebagai permukaan serangan, bukan "kenyamanan".
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. Verifikasi dengan npm list axios dan cek lockfile Anda.
Bagaimana saya tahu jika RAT berjalan di mesin saya?
Cek artefak:
- macOS:
/Library/Caches/com.apple.act.mond - Linux:
/tmp/ld.py - Windows:
%PROGRAMDATA%\wt.exeJuga cek keberadaannode_modules/plain-crypto-js. Namun, dropper melakukan pembersihan otomatis, jadi ketiadaan artefak tidak berarti 100% aman jika Anda pernah install versi berbahaya.
Haruskah saya berhenti menggunakan Axios sepenuhnya?
Tidak harus. Axios masih terawat baik. Namun, evaluasi ulang apakah Anda butuh klien HTTP pihak ketiga. Node.js 18+ sudah ada fetch. Untuk pengujian API, gunakan solusi terintegrasi seperti Apidog.
Bagaimana mencegah serangan supply chain di proyek saya?
- Pin versi dependensi secara eksplisit
- Commit lockfile
- Jalankan
npm ci --ignore-scriptsdi CI/CD - Audit dependensi rutin
- Verifikasi asal paket dengan
npm audit signatures - Minimalkan pohon dependensi
- Gunakan platform pengujian API tanpa dependensi npm untuk HTTP
Apakah serangan ini terkait kebocoran kode sumber Claude?
Tidak. Keduanya terjadi pada hari yang sama, tapi serangan Axios adalah supply chain attack, sedangkan kebocoran Claude adalah bug alat build Bun.
Siapa di balik serangan Axios?
Google Threat Intelligence Group: UNC1069 (diduga Korea Utara). Malware macOS mirip WAVESHAPER, menargetkan kredensial developer dan aset crypto.
Berapa banyak pengembang yang terpengaruh?
Versi berbahaya aktif 2-3 jam. Dengan 83 juta unduhan mingguan, paparan sangat besar. Deteksi runtime StepSecurity: dropper menghubungi C2 <2 detik setelah npm install.
Bisakah Apidog membantu mencegah supply chain attack?
Ya. Apidog menyediakan klien HTTP bawaan untuk pengujian API, debugging, dan dokumentasi—tanpa perlu install Axios, node-fetch, atau paket HTTP lain di workflow pengujian Anda.
Poin-Poin Penting
- Supply chain attack Axios berdampak pada 83 juta+ unduhan mingguan lewat satu akun pemelihara yang dicuri
- RAT menargetkan macOS, Windows, Linux; mencuri kredensial, SSH key, dan token cloud
- Segera cek sistem Anda pakai langkah deteksi di atas
- Pin dependensi secara eksplisit, nonaktifkan postinstall di CI/CD
- Kurangi permukaan dependensi HTTP dengan alat built-in seperti Apidog untuk pengujian API
- Keamanan registry paket adalah masalah sistemik (npm, PyPI, RubyGems)
- Setiap dependensi di
node_modulesadalah keputusan trust—ambil secara sadar, bukan default
button
Top comments (0)