- Di repositori NPM, terkonfirmasi bahwa lebih dari 100 paket berbahaya pencuri kredensial diunggah tanpa terdeteksi sejak Agustus, dan total telah diunduh lebih dari 8.6000 kali
- Perusahaan keamanan Koi melaporkan bahwa kampanye serangan yang dinamai PhantomRaven mendistribusikan 126 paket berbahaya dengan menyalahgunakan fitur Remote Dynamic Dependencies (RDD) milik NPM
- RDD adalah struktur yang memungkinkan paket mengunduh kode dependensi secara dinamis dari domain yang tidak tepercaya, sehingga tidak terdeteksi oleh alat analisis statis
- Penyerang memanfaatkan fitur ini untuk mengunduh kode berbahaya melalui koneksi HTTP, sementara metadata paket menampilkan “0 Dependencies” sehingga pengembang dan pemindai keamanan tidak menyadarinya
- Kerentanan struktural ini menyoroti batas pengelolaan keamanan ekosistem NPM dan risiko mekanisme instalasi otomatis
Penyebaran paket berbahaya di repositori NPM
- Penyerang mengunggah lebih dari 100 paket pencuri kredensial sejak Agustus dengan memanfaatkan kelemahan struktural pada repositori kode NPM
- Sebagian besar paket didistribusikan tanpa terdeteksi, dengan total unduhan kumulatif lebih dari 86.000 kali
- Perusahaan keamanan Koi menamai serangan ini sebagai kampanye PhantomRaven dan menganalisis bahwa fitur tertentu di NPM telah disalahgunakan
- Menurut Koi, dari 126 paket berbahaya, sekitar 80 di antaranya masih tetap ada di NPM saat artikel ditulis
Struktur rentan pada Remote Dynamic Dependencies (RDD)
- RDD adalah fitur yang memungkinkan paket mengunduh kode dependensi secara dinamis dari situs web eksternal
- Biasanya dependensi diunduh dari infrastruktur tepercaya milik NPM, tetapi RDD juga mengizinkan pengunduhan melalui koneksi yang tidak terenkripsi seperti HTTP
- Penyerang PhantomRaven memanfaatkan fitur ini dengan mengatur paket agar mengunduh kode dari URL berbahaya, misalnya
http://packages.storeartifact.com/npm/unused-imports
- Dependensi semacam ini tidak terlihat oleh pengembang maupun pemindai keamanan, dan pada informasi paket ditampilkan sebagai “0 Dependencies”
- Karena fitur instalasi otomatis NPM, kode dependensi yang ‘tak terlihat’ ini otomatis dijalankan
Batas kemampuan deteksi alat keamanan
- Oren Yomtov dari Koi menyebut, “PhantomRaven adalah contoh yang secara cermat mengeksploitasi titik buta alat keamanan yang ada”
- RDD tidak terdeteksi oleh alat analisis statis
- Akibatnya, penyerang dapat melewati verifikasi keamanan dan menyebarkan kode berbahaya
Faktor kerentanan tambahan
- Koi menjelaskan bahwa dependensi yang diunduh melalui RDD diunduh ulang dari server penyerang pada setiap instalasi
- Karena tidak ada cache atau pengelolaan versi, bahkan untuk paket yang sama pun ada kemungkinan kode berbahaya berbeda disuntikkan pada setiap waktu instalasi
- Struktur unduhan dinamis semacam ini menyulitkan verifikasi integritas paket
Struktur dan latar belakang NPM
- NPM adalah manajer paket untuk JavaScript yang dikelola oleh anak perusahaan GitHub, npm, Inc.
- Ini adalah manajer paket bawaan untuk Node.js, dan terdiri dari klien baris perintah serta npm registry
- Registry menyimpan paket publik dan paket privat berbayar, dan dapat ditelusuri melalui situs web
- Insiden ini disebut sebagai contoh bagaimana struktur pengelolaan dependensi otomatis NPM dapat disalahgunakan dalam serangan
Penyebutan lain
- Di bagian akhir artikel, disebutkan pendapat bahwa eksekusi JavaScript yang tidak perlu harus diblokir
- Namun, serangan kali ini juga disebut sebagai kasus penyalahgunaan bahkan terhadap kode JavaScript yang esensial
Belum ada komentar.