
SlowMist, Kepala Keamanan Informasi Utama, mengungkapkan pada 25 Maret bahwa perpustakaan gateway AI Python LiteLLM yang diunduh sebanyak 97 juta kali per bulan telah diserang melalui rantai pasokan PyPI. Versi yang terdampak, 1.82.7 dan 1.82.8, berada di platform setidaknya selama dua jam. Penyerang menyisipkan kode berbahaya berlapis-lapis yang dapat mencuri informasi termasuk data dompet cryptocurrency.
LiteLLM berperan sebagai antarmuka tunggal dalam tumpukan teknologi AI, mendukung panggilan model dari penyedia utama seperti OpenAI, Anthropic, dan Google. Arsitekturnya berada langsung di antara aplikasi dan berbagai penyedia layanan AI, memungkinkan akses ke banyak API key, variabel lingkungan, dan data konfigurasi sensitif.
Dengan menembus lapisan tengah ini, penyerang tidak perlu menyerang layanan hulu secara langsung, melainkan dapat menyadap kredensial sensitif yang melintasi lingkungan pengembangan lokal, pipeline CI/CD, dan infrastruktur cloud. Saat ini, penyelidikan sedang menilai apakah serangan ini terkait dengan kelompok ancaman TeamPCP dan LAPSUS$. Investigasi masih berlangsung. Kejadian ini pertama kali dilaporkan secara terbuka oleh pengguna GitHub dan kemudian dianalisis lebih lanjut oleh peneliti eksternal Futuresearch.
Kode berbahaya yang disisipkan dalam versi yang terdampak menggunakan arsitektur tiga lapis, diimplementasikan melalui kode Python yang dienkripsi dengan Base64 yang telah dibaurkan:
Lapisan pertama (Lapisan Kebocoran Data): Mengumpulkan data sensitif lokal, mengenkripsinya dengan algoritma AES-256-CBC, kemudian mengenkripsi kunci sesi menggunakan RSA publik yang dikodekan secara keras, dan membungkusnya dalam file tpcp.tar.gz yang kemudian dikirim ke titik akhir jarak jauh yang dikendalikan penyerang.
Lapisan kedua (Lapisan Pengintaian dan Pengumpulan Kredensial): Mengenumerasi informasi sistem dan variabel lingkungan, serta secara sistematis mengekstrak kunci SSH, kredensial Git, kredensial cloud AWS/GCP/Azure, konfigurasi Kubernetes, data dompet cryptocurrency, dan konfigurasi CI/CD. Dalam beberapa kasus, kode berbahaya secara aktif mencoba menggunakan kredensial yang dicuri untuk melakukan kueri API AWS atau operasi Kubernetes.
Lapisan ketiga (Lapisan Persistensi dan Kontrol Jarak Jauh): Menulis file sysmon.py ke disk dan mengonfigurasikannya sebagai layanan sistem, yang secara periodik, setiap 50 menit, melakukan polling ke titik akhir yang dikendalikan penyerang, memungkinkan penyerang untuk terus mengirimkan fungsi berbahaya baru ke sistem yang telah terinfeksi.
Domain yang digunakan untuk komunikasi berbahaya meliputi models[.]litellm[.]cloud dan checkmarx[.]zone.
Organisasi yang telah menginstal atau menjalankan versi LiteLLM yang terdampak (1.82.7 atau 1.82.8) harus menganggap sistem mereka telah diretas. Karena kode berbahaya memiliki kemampuan persistensi dan mungkin telah menyebarkan payload tambahan, sekadar menghapus paket tidak cukup.
Disarankan segera melakukan langkah berikut: mengganti semua kredensial yang mungkin terekspos (termasuk kunci akses AWS/GCP/Azure, kunci SSH, dan API keys); meninjau log untuk mencari koneksi keluar yang mencurigakan ke domain models[.]litellm[.]cloud atau checkmarx[.]zone; menghapus file berbahaya seperti tpcp.tar.gz, /tmp/pglog, /tmp/.pg_state, dan layanan terkait sysmon.py; serta, jika memungkinkan, membangun ulang sistem yang terdampak dari cadangan yang bersih.
Versi yang terdampak adalah LiteLLM 1.82.7 dan 1.82.8, dengan kode berbahaya yang disisipkan di dalam proxy_server.py (kedua versi) dan litellm_init.pth (versi 1.82.8). Pengguna disarankan segera memverifikasi versi yang digunakan dan memperbarui ke versi terbaru yang aman.
Kode berbahaya ini mengumpulkan data seperti kunci SSH, kredensial cloud AWS/GCP/Azure, konfigurasi Kubernetes dan token akun layanan, kredensial Git, API keys dari variabel lingkungan, riwayat shell, data dompet cryptocurrency, dan password database. Serangan ini mencakup lingkungan pengembangan lokal, pipeline CI/CD, dan infrastruktur cloud.
Periksa indikator berikut: keberadaan file arsip tpcp.tar.gz, file sementara /tmp/pglog atau /tmp/.pg_state, serta layanan persistensi terkait sysmon.py; juga tinjau log koneksi keluar untuk mendeteksi komunikasi dengan domain berbahaya yang disebutkan di atas.