- Serangan rantai pasok terjadi di ekosistem NPM, dengan lebih dari 40 paket termasuk @ctrl/tinycolor yang populer disisipi malware yang dapat menyebar sendiri, sehingga rahasia di lingkungan pengembangan hingga kredensial CI/CD dapat terinfeksi secara berantai. Versi yang terinfeksi telah dihapus dari npm
- Payload serangan menjalankan bundel Webpack (
bundle.js, ~3.6MB) secara asinkron selama proses instalasi npm, lalu melakukan pengumpulan kredensial secara luas melalui variabel lingkungan, sistem file, dan cloud SDK
- Logika berbahaya memaksa patch dan distribusi paket lain melalui NpmModule.updatePackage untuk penyebaran berantai, serta menyuntikkan workflow shai-hulud ke GitHub Actions untuk mencuri secret organisasi melalui
toJSON(secrets)
- Data yang dikumpulkan dieksfiltrasi dengan membuat repositori GitHub publik 'Shai-Hulud', menyamar sebagai aktivitas pengembangan normal sehingga memiliki kemampuan penghindaran deteksi yang tinggi
- Dilakukan secara diam-diam melalui akses ke token dan endpoint metadata AWS/GCP/Azure/NPM/GitHub, serta pencarian secret berbasis TruffleHog
- Diperlukan tindakan seperti penghapusan paket segera, pembersihan repositori, penggantian seluruh kredensial, serta pemeriksaan log CloudTrail/GCP Audit, pemblokiran webhook, dan penerapan perlindungan branch/Secret Scanning/kebijakan cooldown
Affected Packages
- Dilaporkan ada total 195 paket/versi, termasuk @ctrl/tinycolor(4.1.1, 4.1.2), banyak paket dalam namespace @ctrl/, kelompok modul @crowdstrike/, serta ngx-bootstrap/ngx-toastr/ng2-file-upload/ngx-color di seluruh ekosistem Angular/web UI, stack mobile @nativescript-community/ dan @nstudio/, toolchain ilmu hayati teselagen/, ember-*, koa2-swagger-ui, pm2-gelf-json, wdio-web-reporter, dan lainnya
- Untuk versi yang tepat per paket, perlu merujuk ke tabel pada artikel asli dan melakukan pencocokan silang yang teliti apakah versi tersebut digunakan
- Contoh:
@ctrl/ngx-emoji-mart 9.2.1, 9.2.2, @ctrl/qbittorrent 9.7.1, 9.7.2, ngx-bootstrap 18.1.4, 19.0.3–20.0.5, ng2-file-upload 7.0.2–9.0.1 dan banyak lagi
Immediate Actions Required
Identify and Remove Compromised Packages
- Periksa keberadaan paket yang terinfeksi di proyek: gunakan
npm ls @ctrl/tinycolor dan sejenisnya
- Hapus segera paket yang terinfeksi: jalankan
npm uninstall @ctrl/tinycolor dan sejenisnya
- Periksa jejak lokal dengan mencari hash
bundle.js yang sudah diketahui: gunakan sha256sum | grep 46faab8a...
Clean Infected Repositories
- Hapus workflow GitHub Actions yang berbahaya: hapus
.github/workflows/shai-hulud-workflow.yml
- Deteksi dan hapus branch
shai-hulud yang dibuat di remote: setelah git ls-remote ... | grep shai-hulud, jalankan git push origin --delete shai-hulud
Rotate All Credentials Immediately
- Perlu mengganti total token NPM, GitHub PAT/Actions secrets, kunci SSH, kredensial AWS/GCP/Azure, string koneksi DB, token pihak ketiga, secret CI/CD, dan lainnya
- Diperlukan rotasi penuh termasuk item yang disimpan di AWS Secrets Manager/GCP Secret Manager
Audit Cloud Infrastructure for Compromise
- AWS: di CloudTrail, periksa waktu dan pola pemanggilan
BatchGetSecretValue, ListSecrets, GetSecretValue, lalu gunakan IAM Credential Report untuk memeriksa pembuatan/penggunaan key yang tidak normal
- GCP: periksa riwayat akses Secret Manager melalui Audit Logs, dan cek apakah ada event
CreateServiceAccountKey
Belum ada komentar.