Sistemlerdeki varlığını gizlemek için gizli ve gelişmiş ayrıcalık yükseltme tekniklerini kullanan Pumakit adlı yeni bir Linux rootkit kötü amaçlı yazılımı keşfedildi.
Kötü amaçlı yazılım, bir damlalık, bellekte yerleşik yürütülebilir dosyalar, bir çekirdek modülü kök takımı ve bir paylaşılan nesne (SO) kullanıcı alanı kök takımı içeren çok bileşenli bir settir.
Elastic Security, Pumakit’i VirusTotal’a 4 Eylül 2024 tarihli şüpheli bir ikili dosya (“cron”) yüklemesinde keşfetti ve onu kimin kullandığına ve neyi hedeflediğine dair hiçbir görünürlük olmadığını bildirdi.
Genellikle bu araçlar, casusluk, finansal hırsızlık ve kesinti operasyonları için kritik altyapıları ve kurumsal sistemleri hedef alan gelişmiş tehdit aktörleri tarafından kullanılır.
Pumakit
Pumakit, gömülü veri yüklerini (‘/memfd:tgt’ ve ‘/memfd:wpn’) tamamen bellekten çalıştıran ‘cron’ adlı bir damlalık ile başlayan çok aşamalı bir enfeksiyon süreci kullanıyor.
Bir alt süreçte yürütülen ‘/memfd:wpn’ yükü, ortam kontrolleri ve çekirdek görüntüsü manipülasyonu gerçekleştirir ve sonunda LKM rootkit modülünü (‘puma.ko’) sistem çekirdeğine dağıtır.
LKM kök kitinin içine gömülü olan Kitsune SO (‘lib64/libs.so’), kullanıcı düzeyinde sistem çağrılarını engellemek için ‘LD_PRELOAD’ kullanarak kendisini işlemlere enjekte eden kullanıcı alanı kök takımı olarak görev yapar.

Kaynak: Elastik Güvenlik
Gizli ayrıcalık artışı
Rootkit, yüklemeden önce belirli çekirdek sembollerini, güvenli önyükleme durumunu ve diğer önkoşulları kontrol ederek koşullu bir etkinleştirmeyi takip eder.
Elastic, Puma’nın sistem davranışını değiştirmek için ‘kallsyms_lookup_name()’ işlevini kullandığını söylüyor. Bu, rootkit’in yalnızca sürüm 5.7’den önceki Linux çekirdeklerini hedeflemek üzere tasarlandığını gösterir; çünkü daha yeni sürümler artık işlevi dışa aktarmaz ve bu nedenle diğer çekirdek modülleri tarafından kullanılamaz.
Elastic araştırmacıları Remco Sprooten ve Ruben Groenewoud, “LKM rootkit’in sistem davranışını manipüle etme yeteneği, sistem çağrısı tablosunu kullanması ve sembol çözümlemesi için kallsyms_lookup_name()’e güvenmesiyle başlar” diye açıklıyor.
“Çekirdek sürüm 5.7 ve üzerini hedefleyen modern rootkit’lerin aksine, rootkit şunları kullanmıyor: kprobes
eski çekirdekler için tasarlandığını gösteriyor.”
Puma, ayrıcalık yükseltme, komut yürütme ve süreçleri gizleme yeteneği kazanmak için ‘ftrace’i kullanarak 18 sistem çağrısını ve birden fazla çekirdek işlevini bağlar.

Kaynak: Elastik Güvenlik
‘prepare_creds’ ve ‘commit_creds’ çekirdek işlevleri, belirli işlemlere kök ayrıcalıkları vererek işlem kimlik bilgilerini değiştirmek için kötüye kullanılır.

Kaynak: Elastik Güvenlik
Rootkit, kendi varlığını çekirdek günlüklerinden, sistem araçlarından ve antivirüsten gizleyebilir ve ayrıca bir dizindeki belirli dosyaları ve işlem listelerindeki nesneleri de gizleyebilir.
Kancalar kesintiye uğrarsa, rootkit bunları yeniden başlatarak kötü amaçlı değişikliklerin geri döndürülmemesini ve modülün kaldırılmamasını sağlar.
Kullanıcı alanı kök kiti Kitsune SO, Puma ile sinerji içinde çalışarak gizlilik ve kontrol mekanizmalarını kullanıcıyla yüz yüze etkileşimlere kadar genişletiyor.
Kullanıcı düzeyindeki sistem çağrılarını keser ve rootkit ile ilişkili dosyaları, işlemleri ve ağ bağlantılarını gizlemek için ls, ps, netstat, top, htop ve cat gibi görünümlerin davranışını değiştirir.
Ayrıca saldırganın tanımladığı kriterlere göre diğer dosya ve dizinleri dinamik olarak gizleyebilir ve kötü amaçlı ikili dosyaları kullanıcılar ve sistem yöneticileri için tamamen görünmez hale getirebilir.
Kitsune SO aynı zamanda komut ve kontrol (C2) sunucusuyla tüm iletişimi yönetir, komutları LKM rootkitine iletir ve konfigürasyon ile sistem bilgilerini operatörlere iletir.
Elastic Security, dosya karmalarının yanı sıra, Linux sistem yöneticilerinin Pumakit saldırılarını tespit etmesine yardımcı olmak için bir YARA kuralı yayınladı.