Image credit: magnific
Serangan Pencuri Kredensial & Token Autentikasi – Beberapa paket npm resmi milik SAP dikompromikan dalam serangan rantai pasok yang diyakini dilakukan oleh aktor ancaman TeamPCP.
Serangan ini dirancang untuk mencuri kredensial dan token autentikasi dari sistem pengembang, yang jika terjadi menjadi mimpi buruk.
Peneliti keamanan melaporkan bahwa kompromi mempengaruhi empat paket utama yang kini telah ditandai sebagai usang (deprecated) di registry npm.
Paket-Paket yang Terdampak
Empat paket yang menjadi sasaran serangan ini merupakan komponen penting dalam ekosistem pengembangan SAP:
- @cap-js/sqlite v2.2.2
- @cap-js/postgres v2.2.2 SAP CAP
- @cap-js/db-service v2.10.1
- mbt v1.2.48
Paket-paket ini mendukung Cloud Application Programming Model (CAP) dan Cloud MTA milik SAP, yang umum digunakan dalam pengembangan perangkat lunak enterprise .
Versi-versi berbahaya tersebut dipublikasikan pada 29 April 2026, antara pukul 09:55 UTC hingga 12:14 UTC.
|
Baca juga: Ancaman Pemerasan Digital di Era Kecerdasan Buatan (AI) |
Mekanisme Serangan
Skrip Preinstall sebagai Pintu Masuk
Paket-paket yang dikompromikan dimodifikasi untuk menyertakan skrip preinstall berbahaya yang dieksekusi secara otomatis ketika paket npm diinstal .
Skrip ini meluncurkan loader bernama setup.mjs yang mengunduh runtime Bun JavaScript dari GitHub dan menggunakannya untuk mengeksekusi muatan execution.js yang telah diobfuskasi secara berat.
Muatan tersebut merupakan information stealer yang dirancang untuk mencuri berbagai jenis kredensial dari mesin pengembang maupun lingkungan CI/CD, meliputi :
- Token autentikasi npm dan GitHub
- Kunci SSH dan kredensial pengembang
- Kredensial cloud untuk AWS, Azure, dan Google Cloud Platform
- Konfigurasi Kubernetes dan secrets
- Secrets dan variabel lingkungan pipeline CI/CD
Pencurian Data dari Memori CI Runner
Salah satu teknik paling canggih dalam serangan ini adalah upaya ekstraksi secrets langsung dari memori proses CI runner. Peneliti menjelaskan bahwa pada runner CI, muatan mengeksekusi skrip Python tertanam yang membaca /proc/<pid>/maps dan /proc/<pid>/mem untuk proses Runner.Worker guna mengekstrak setiap secret yang cocok dengan pola “key” :{ “value”: “…”, “isSecret”:true} langsung dari memori runner, melewati semua log masking yang diterapkan oleh platform CI.
Pemindai memori untuk secrets ini secara struktural identik dengan yang didokumentasikan dalam insiden Bitwarden dan Checkmarx sebelumnya
Mekanisme Propagasi dan Dead-Drop
GitHub Commit Search sebagai Dead-Drop
Malware ini mengandalkan pencarian commit GitHub sebagai mekanisme dead-drop untuk mengambil token dan mendapatkan akses lebih lanjut.
Malware mencari commit GitHub untuk string tertentu dan menggunakan pesan commit yang cocok sebagai tempat penampungan token. Pesan commit yang cocok dengan pola OhNoWhatsGoingOnWithGitHub:<base64> didekode menjadi token GitHub dan diperiksa untuk akses repositori .
Kemampuan Penyebaran Diri (Self-Propagation)
Mirip dengan serangan sebelumnya, muatan yang dikerahkan juga menyertakan kode untuk menyebarkan diri ke paket lain. Menggunakan kredensial npm atau GitHub yang dicuri, malware mencoba memodifikasi paket dan repositori lain yang diaksesnya, serta menyuntikkan kode berbahaya yang sama untuk menyebar lebih luas.
Muatan sebesar 11,6 MB ini juga mampu menyuntikkan workflow GitHub Actions berbahaya ke repositori korban untuk mencuri repository secrets dan menerbitkan versi beracun ke registry npm
|
Baca juga: DeepLoad Malware AI Nir-Lelah |
TeamPCP dan Jejak Serangan Sebelumnya
Atribusi ke TeamPCP
Peneliti telah menghubungkan serangan ini dengan tingkat kepercayaan tinggi ke aktor ancaman TeamPCP, yang menggunakan kode dan taktik serupa dalam serangan rantai pasok sebelumnya terhadap Trivy, Checkmarx, dan Bitwarden.
Wiz menilai dengan keyakinan tinggi bahwa ini adalah karya operator TeamPCP yang sama, berdasarkan kunci publik RSA bersama yang digunakan untuk mengenkripsi secrets yang dieksfiltrasi.
Beberapa kesamaan yang menguatkan atribusi ini meliputi :
- Penggunaan kunci publik RSA yang sama untuk enkripsi muatan
- Pemeriksaan bahasa sistem yang sama jika ditemukan bahasa Rusia (ru), malware keluar tanpa mengeksfiltrasi data
- Penggunaan hook npm install yang sama seperti dalam kompromi Bitwarden CLI
- Eksfiltrasi berbasis GitHub ke repositori bertema Dune
Jejak Serangan TeamPCP Sebelumnya
TeamPCP, yang juga dilacak sebagai DeadCatx3, PCPcat, ShellForce, dan CanisterWorm, telah menunjukkan kemampuan operasional yang sangat canggih. Operasi mereka sebelumnya pada Maret 2026 mencakup:
- 19 Maret: Kompromi Trivy (CVE-2026-33634, CVSS 9.4) melalui force-push ke 76 dari 77 tag versi
- 20 Maret: Penyebaran worm CanisterWorm di ekosistem npm yang menginfeksi lebih dari 50 paket
- 23 Maret: Kompromi Checkmarx KICS GitHub Action dan ekstensi VS Code di Open VSX Registry
- 24 Maret: Kompromi LiteLLM di PyPI dengan 3,4 juta unduhan per hari
- 27 Maret: Kompromi Telnyx SDK di PyPI
Yang membedakan kampanye TeamPCP adalah penggunaan infrastruktur Internet Computer Protocol (ICP) blockchain sebagai command-and-control, menjadikan takedown berbasis domain tradisional tidak efektif .
Kegagalan Konfigurasi CircleCI
Meskipun belum jelas bagaimana aktor ancaman mengkompromikan proses penerbitan npm milik SAP, seorang insinyur keamanan melaporkan bahwa token npm mungkin telah terpapar.
Sumber berita: