Paket NuGet Berbahaya Menyisipkan “Bom Waktu” yang Dapat Mengganggu Database dan PLC Industri

Peneliti keamanan menemukan serangkaian paket berbahaya di repositori NuGet yang menyembunyikan payload sabotase terjadwal — atau “bom waktu” — yang akan aktif pada rentang tanggal antara 2027 dan 2028. Teknik ini menimbulkan ancaman serius, karena menargetkan implementasi database .NET serta perangkat kontrol industri Siemens S7 melalui pustaka yang tampak sah dan banyak digunakan.
Analisis menunjukkan pelaku menerbitkan paket-paket tersebut di bawah akun pengembang bernama shanhai666. Dari 12 paket yang terkait, sembilan di antaranya mengandung muatan berbahaya yang disamarkan di dalam kode fungsional yang sah sehingga hampir tidak terdeteksi: paket-paket tersebut meliputi variasi nama yang berkaitan dengan akses database (.NET) seperti SqlUnicorn.Core, SqlRepository, MyDbRepository, serta paket berbahaya yang meniru pustaka PLC populer bernama Sharp7Extend. Ketika diunduh dan dipasang sebagai dependensi, paket-paket ini menyuntikkan logika berbahaya ke dalam alur operasi aplikasi tanpa perubahan eksplisit pada kode aplikasi korban.
Mekanisme serangan — ekstensi yang menyusup
Trik yang digunakan pelaku sederhana namun efektif: mereka memanfaatkan extension methods di C# untuk memasang kode tambahan yang berjalan setiap kali aplikasi melakukan operasi database atau interaksi PLC. Sebagian besar kode paket tetap terlihat legit — lebih dari 99% — sehingga memberi rasa aman bagi pengembang yang mengandalkan fungsionalitas paket. Namun di dalamnya terdapat segmen berbahaya singkat (kira-kira 20 baris) yang memeriksa tanggal sistem dan, bila syarat terpenuhi, menjalankan mekanisme sabotase probabilistik.
Secara teknis ada dua pola utama:
- Pemutusan proses acak (kill) — ketika tanggal terpenuhi (antara Agustus 2027 sampai November 2028 pada sejumlah paket), kode mengacak angka 1–100 dan, dengan peluang 20%, memanggil fungsi untuk langsung menghentikan proses host. Untuk aplikasi database atau klien PLC yang sering memanggil metode transaksional, stop proses seketika ini akan menyebabkan gangguan layanan dan operasi yang terganggu.
- Korupsi tulis PLC terjadwal — pada paket yang meniru Sharp7 (Sharp7Extend), selain pemutusan instan ada mekanisme tertunda: setelah periode waktu 30–90 menit, filter internal mulai merusak tulis PLC dengan probabilitas 80%, sehingga perintah yang dilewatkan ke aktuator bisa diubah atau diabaikan. Akibatnya, kontrol industri seperti setpoint, aktivasi keselamatan, atau perintah mesin bisa gagal dijalankan.
Kombinasi kedua teknik ini — pemutusan acak yang langsung dan korupsi tulis yang terjadwal — menghasilkan serangan multi-lapis yang dapat memicu gangguan proses industri serius dan sulit diatribusikan.
Dampak berpotensi luas
Target pertama yang diidentifikasi oleh peneliti mencakup tiga penyedia database umum di dunia .NET (SQL Server, PostgreSQL, SQLite) sehingga potensi dampak menyentuh banyak aplikasi bisnis dan layanan backend. Namun potensi paling berbahaya ada pada Sharp7Extend, paket yang meniru pustaka komunikasi dengan PLC Siemens S7: karena nama paket sangat mirip dengan pustaka asli, banyak pengembang industri yang mencari ekstensi Sharp7 bisa tanpa sengaja mengunduh versi palsu ini sebagai dependensi.
Di lingkungan industri yang menggunakan automasi berbasis PLC, korupsi tulis atau pemutusan klien dapat menyebabkan kegagalan proses, terhentinya lini produksi, dan berpotensi menimbulkan risiko keselamatan fisik. Pada level aplikasi bisnis, pemutusan acak proses dapat menimbulkan downtime, kehilangan transaksi, dan gangguan layanan yang berdampak finansial.
Indikator kompromi dan langkah audit mendesak
Karena paket berbahaya memasang logika lewat extension methods, menandai keberadaannya dalam kode sumber mungkin tidak mudah. Organisasi yang mengandalkan .NET dan repositori pihak ketiga sebaiknya segera melakukan tindakan berikut:
- Audit dependensi NuGet pada semua proyek: cari nama paket daftar yang disebutkan—terutama Sharp7Extend serta paket yang mengandung kata kunci SqlUnicorn, SqlRepository, SqlUnicornCore, SqlLiteRepository, SqlRepository, MyDbRepository, MCDbRepository, dan serupa.
- Periksa histori unduhan dan paket yang di-cache pada mesin build/CI: pelaku sering menargetkan registry build untuk menyebarkan paket ke pipeline otomasi.
- Tinjau log operasi database dan komunikasi PLC untuk anomali: frequent abrupt process terminations, exception yang terkait dengan pemanggilan transaksional, atau kegagalan tulis PLC yang terjadi beberapa jam setelah deploy adalah tanda bahaya.
- Untuk lingkungan industri yang menggunakan Sharp7: lakukan verifikasi integritas pesan tulis PLC, periksa log safety untuk missed commands, dan implementasikan verifikasi tulis end-to-end untuk operasi berisiko tinggi.
- Isolasi dan mitigasi pada pipeline: hapus paket jahat dari feed internal, perbarui file lock (mis. paket.config, paket.lock) untuk memastikan versi sah, dan rebuild dari sumber tepercaya.
Rekomendasi pencegahan jangka panjang
Insiden ini menegaskan kembali rekomendasi best practice supply-chain perangkat lunak: gunakan hanya paket dari penerbit tepercaya, tandatangani dependensi kritikal, laksanakan pemindaian komponen pihak ketiga secara rutin, dan adopsi pemeriksaan reproducible builds di pipeline CI/CD. Organisasi industri harus menambahkan verifikasi integritas untuk operasi kontrol (mis. checksum untuk perintah kritis) serta deteksi anomali pada tingkat proses dan jaringan OT.
Kesimpulan
Strategi “bom waktu” dalam paket NuGet memperlihatkan evolusi taktik pelaku ancaman: menanam kode jahat yang bersembunyi lama lalu aktif pada saat yang ditentukan untuk memaksimalkan gangguan. Karena muatan berbahaya tersembunyi dalam paket yang tampak sah, tanggung jawab pertahanan terletak pada disiplin manajemen dependensi, audit paket regular, dan penguatan praktik keamanan pipeline pembangunan perangkat lunak. Organisasi yang menemukan paket-paket tersebut di lingkungan mereka harus menganggapnya sebagai kompromi serius dan bertindak cepat sesuai panduan mitigasi di atas.








