Laporan Investigasi Keamanan Siber Lengkap: Analisis Forensik & Threat Intelligence pada Insiden Supply Chain Attack Paket Axios
Pada 31 Maret 2026, akun npm milik maintainer utama
Axios diduga dibajak, lalu digunakan untuk menerbitkan dua versi
berbahaya dari library Axios. Paket berbahaya itu menyisipkan
dependency tersembunyi
[email protected], yang menjalankan postinstall script untuk mengunduh dan
mengeksekusi Remote Access Trojan (RAT) lintas
platform pada Windows, macOS, dan Linux.
Attacker tidak mengubah source code Axios secara langsung, melainkan menyisipkan dependency berbahaya. Teknik ini bypasses static analysis dan memanfaatkan trust model npm ecosystem yang already trusted.
80-100 juta unduhan/minggu
Axios adalah salah satu paket paling critical di ekosistem npm
CI/CD Blast Radius
Automated pipelines dapat menyebarkan malware ke production
Transitive Dependency
plain-crypto-js tidak langsung terlihat di axios package.json
Stealth Execution
Lifecycle hook exploitation tanpa modifikasi source code
Axios adalah library HTTP client berbasis JavaScript yang digunakan untuk melakukan request HTTP/HTTPS baik di browser maupun di lingkungan Node.js. Library ini menjadi standar de facto dalam ekosistem JavaScript modern karena API yang sederhana, fleksibel, dan kompatibel lintas environment.
~80–100 juta unduhan per minggu di npm
Axios termasuk salah satu paket paling banyak digunakan di seluruh ekosistem JavaScript
Web Applications
Frontend SPA (React, Vue, Angular)
Backend APIs
Node.js services, microservices
Mobile Apps
React Native applications
Serverless
AWS Lambda, Azure Functions
CI/CD Pipelines
Build & deployment automation
Workstations
Developer machines
Analisis: Insiden ini memanfaatkan trust yang sudah terbangun selama bertahun-tahun pada ekosistem npm, membuat detection menjadi sangat challenging karena tidak ada perubahan visible pada package source code.
[email protected]
MALICIOUS
Primary malicious release
[email protected]
MALICIOUS
Secondary malicious release (legacy version)
Dependency Berbahaya
[email protected]
Jenis Serangan
Maintainer Account Takeover
Payload
Cross-Platform RAT (Windows, macOS, Linux)
Publish
[email protected]
dengan malicious dependency
Deteksi awal oleh security researcher / automated monitoring
Publish
[email protected] -
versi legacy juga disusupi
npm menghapus paket berbahaya dari registry
~3 jam 8 menit
Window kritis antara publish pertama hingga removal
Automated builds yang melakukan
npm install dalam
window ini berpotensi menyebarkan malware
Analisis sistematis setiap tahap serangan dengan kerangka kerja MITRE ATT&CK untuk supply chain compromise.
Maintainer credentials stolen
[email protected] with malicious postinstall
Victim downloads malicious package
Base64+XOR obfuscation → C2 connection
sfrclak.com:8000
Windows / macOS / Linux
Credential Theft
Data Exfil
Lateral Move
Initial Access
Compromised npm maintainer account credentials
Persistence
Malicious package version publication
Execution
npm lifecycle postinstall hook abuse
C2 Communication
HTTP beaconing to sfrclak.com:8000
Payload Delivery
Cross-platform RAT download & execution
Impact
Remote code execution, credential theft
Terjadi di layer supply chain (bukan endpoint). Attacker mengkompromi account maintainer, bukan mengeksploitasi vulnerability pada sistem korban.
NPM lifecycle hook (postinstall) dimanfaatkan untuk eksekusi otomatis tanpa user interaction.
Tidak ada perubahan pada source code Axios → sangat sulit dideteksi dengan static analysis biasa.
Transitive dependency + CI/CD automation = potensi penyebaran malware sangat luas dalam waktu singkat.
package.json
axios
OrDeR_7077
Dropper Execution Flow (setup.js):
1. Decode reversed Base64 payload
2. XOR decode dengan key "OrDeR_7077"
3. Detect OS (darwin/win32/linux)
4. Connect to C2: sfrclak.com:8000
5. Download platform-specific RAT
6. Execute payload
7. Delete dropper evidence
File Location
/Library/Caches/com.apple.act.mond
Execution Method
LaunchAgent persistence, LaunchDaemon
C2 Endpoint
/product0
Kemampuan RAT:
File Locations
%PROGRAMDATA%\wt.exe
%TEMP%\6202033.vbs
%TEMP%\6202033.ps1
Execution Method
Scheduled task, Registry Run key
C2 Endpoint
/product1
Kemampuan RAT:
File Location
/tmp/ld.py
Execution Method
Cron job, systemd service
C2 Endpoint
/product2
Kemampuan RAT:
Kompilasi indikator compromise untuk keperluan detection, hunting, dan forensic analysis.
| Package | Version | SHA1 Hash |
|---|---|---|
| axios | 1.14.1 | 2553649f232204966871cea80a5d0d6adc700ca |
| axios | 0.30.4 | d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71 |
| plain-crypto-js | 4.2.1 | 07d889e2dadce6f3910dcbc253317d28ca61c766 |
Domain C2
sfrclak.com
IP C2
142.11.206.73
Full URL
http://sfrclak.com:8000/6202033
C2 Port
8000
Beacon Endpoints:
/product0
macOS
/product1
Windows
/product2
Linux
macOS
/Library/Caches/com.apple.act.mond
Windows
%PROGRAMDATA%\wt.exe
Windows Temp
%TEMP%\6202033.vbs, %TEMP%\6202033.ps1
Linux
/tmp/ld.py
Dropper (All Platforms)
node_modules/plain-crypto-js/setup.js
Lockfile Check:
grep -E '"axios"' package-lock.json | grep -E
'1\.14\.1|0\.30\.4'
Dependency Check:
npm ls plain-crypto-js
Filesystem Check (macOS/Linux):
find / -name "setup.js" -path "*/plain-crypto-js/*"
2>/dev/null
Filesystem Check (Windows PowerShell):
Get-ChildItem -Path C:\ -Recurse -Filter "setup.js"
-ErrorAction SilentlyContinue | Where-Object {$_.FullName
-like "*plain-crypto-js*"}
package-lock.json
untuk versi axios
1.14.1
atau
0.30.4
plain-crypto-js
di dependency tree
npm install
~/.npm/_logs
untuk timestamps
node_modules/plain-crypto-js
sfrclak.com
142.11.206.73:8000
npm install atau
npm ci?
ignore-scripts
diaktifkan?
Sistem yang melakukan
npm install axios
dalam window 00:21-03:29 UTC dan tidak menggunakan mitigation.
Sistem yang install dalam window tapi dengan
--ignore-scripts
atau environment variables protection.
Sistem yang menggunakan
npm ci dengan
lockfile, atau install di luar window exposure, atau sudah
cleanup.
RAT dapat mengeksekusi arbitrary commands pada sistem korban
dengan privileges user yang melakukan
npm install.
Attacker dapat mencuri API keys, tokens, SSH keys, dan credentials lainnya yang tersimpan di environment atau file system.
Compromised developer workstation dapat menjadi pivot point untuk menyerang internal infrastructure, repositori, dan cloud environments.
Compromised CI/CD pipelines dapat menyebarkan malware ke production artifacts, affecting end-users secara langsung.
RAT dapat mengakses dan exfiltrate sensitive data termasuk source code, customer data, dan business intelligence.
Malware dapat bertahan di sistem bahkan setelah cleanup awal, dengan mekanisme persistence pada autostart locations.
Tambahkan exact version di package.json:
"axios": "1.14.0"
Selalu gunakan
npm ci bukan
npm install
untuk deterministic builds dari lockfile.
Tambahkan di package.json:
"npm": {"ignore-scripts": true}
Atau gunakan:
npm ci --ignore-scripts
Jalankan
npm audit
secara regular dan monitor transitive dependencies.
Segera disconnect dari network jika RCE suspected. Jangan matikan sistem untuk forensic preservation.
Segera rotate semua credentials yang mungkin terekspos: API keys, tokens, SSH keys, passwords.
Hapus node_modules dan reinstall:
rm -rf node_modules && npm ci
Capture memory dumps, disk images, dan network logs sebelum cleanup untuk incident investigation.
Review access logs, CI/CD pipelines, dan artifact registries untuk identifikasi scope compromise.
Ekosistem npm berbasis trust tanpa verifikasi otomatis. Package popularity bukan indikasi security. Selalu verify dependencies.
package-lock.json adalah defense line critical. Commit lockfile
dan gunakan
npm ci untuk
reproducible builds.
postinstall, preinstall, dll. berjalan dengan elevated privileges.
Pertimbangkan
--ignore-scripts di
CI/CD.
Implementasikan monitoring untuk suspicious network connections, unauthorized script execution, dan anomalous process activity.
Tim CSIRT dan Security专家 kami siap membantu Anda melakukan audit, forensic analysis, dan incident response untuk insiden ini.
Response time: ≤ 4 jam untuk kasus emergency
Insiden supply chain attack npm axios ini menunjukkan evolusi signifikan dalam tactics, techniques, dan procedures (TTPs) attacker yang menargetkan software supply chain. Berbeda dari serangan sebelumnya yang mengubah source code secara visible, pendekatan dependency injection yang digunakan di sini merupakan stealth technique yang sangat efektif.
Insiden ini menegaskan bahwa supply chain security memerlukan pendekatan berlapis. Organisasi harus mengimplementasikan:
Dependency Pinning
Gunakan exact versions dan lockfiles
Continuous Monitoring
Monitor dependency trees secara real-time
Script Validation
Audit dan sandbox lifecycle scripts
MFA Enforcement
Wajib MFA untuk package registry accounts
Insiden ini kemungkinan akan memicu diskusi tentang reformasi trust model di npm ecosystem. Browser-like security model dengan capability-based permissions untuk packages, SBOM (Software Bill of Materials) mandates, dan improved maintainer account security mungkin akan menjadi standar industry dalam waktu dekat.
Related Topics: axios npm malware npm supply chain attack axios compromised remote access trojan npm dependency attack npm security