Peneliti keamanan telah mengembangkan rootkit Linux canggih bernama Singularity yang melewati mekanisme deteksi dan respons endpoint Elastic Security. Alat ini menunjukkan kerentanan dalam sistem deteksi statis dan perilaku melalui teknik ofusksasi lanjutan. Diungkap di GitHub oleh peneliti 0xMatheuZ, ini menyoroti tantangan berkelanjutan dalam identifikasi ancaman tingkat kernel.
Peneliti keamanan, dipimpin oleh nama samaran 0xMatheuZ, telah merilis Singularity, sebuah rootkit kernel Linux di GitHub, yang dirancang untuk menghindari deteksi oleh solusi EDR Elastic Security, yang dikenal sebagai Elastic Defend. Biasanya, Elastic Security memicu lebih dari 26 peringatan untuk implementasi rootkit standar, termasuk karantina file dan terminasi proses, tetapi Singularity mengelaknya melalui empat strategi penghindaran utama.
Teknik pertama melibatkan ofusksasi string pada waktu kompilasi, di mana string sensitif seperti “GPL” dan “kallsyms_lookup_name” dipecah menjadi konstanta terpisah, seperti MODULE_LICENSE(“G” “P” “L”), yang dikonkatenasi oleh kompiler C. Ini mencegah pemindai tanda tangan YARA mengidentifikasi string berbahaya berurutan dalam biner sambil mempertahankan fungsionalitas.
Kedua, randomisasi nama simbol menggantikan pola yang dapat diprediksi, seperti “hook_getdents,” “fake_tcp4_seq_show,” dan “hide_module,” dengan nama generik mirip kernel yang diawali “sys,” “kern,” atau “dev.” Daftar putih melindungi API kernel esensial, dan pola regex memastikan penamaan ulang yang konsisten tanpa kesalahan.
Ketiga, fragmentasi modul membagi file .ko yang dikompilasi menjadi segmen 64KB yang dikodekan XOR menggunakan kunci acak 16 byte. Segmen ini dirakit kembali di memori melalui pemuat khusus dan memfd_create, menghindari artefak disk untuk analisis statis. Pemuatan terjadi melalui syscall langsung dengan assembly inline, melewati pembungkus libc yang dipantau, mendukung sistem 64-bit dan 32-bit melalui int $0x80.
Keempat, fungsi pembantu ftrace seperti “fh_install_hook” dan “fh_remove_hook” dinamai ulang menjadi pengenal acak, menghindari aturan yang menandai beberapa kejadian seperti itu.
Singularity juga mencakup fungsionalitas untuk menyembunyikan proses dari sistem file /proc, menyamarkan file dan direktori yang cocok dengan “singularity” atau “matheuz,” menutupi koneksi TCP pada port 8081, dan mengaktifkan eskalasi hak istimewa melalui sinyal khusus atau variabel lingkungan. Ini menampilkan pintu belakang berbasis ICMP untuk shell terbalik yang dipicu oleh urutan paket tertentu, dengan langkah-langkah anti-analisis yang menghalangi pelacakan dan membersihkan log.
Untuk penghindaran perilaku, ia menerapkan skrip bash bertahap ke /singularity, dieksekusi dengan baris perintah bersih untuk menghindari deteksi shell terbalik. Skrip menggunakan kill -59 untuk penyembunyian PID dan eskalasi, mengompilasi pemuat di /tmp daripada direktori yang dipantau. Dalam pengujian, Singularity dimuat tanpa peringatan, menyembunyikan proses, dan membangun shell root.
Penelitian ini mengungkap kelemahan dalam deteksi berbasis tanda tangan dan perilaku untuk ancaman kernel, menekankan kebutuhan pembaruan berkelanjutan, pemantauan integritas kernel, forensik memori, dan strategi pertahanan mendalam yang menggabungkan pendekatan ganda.