Ana içeriğe geç
Güvenlik

Linux çekirdeğinin anahtarlık alt sistemi dosyasız ELF çalıştırmaya olanak tanıyor

Öne çıkanlar

  • Linux çekirdek anahtarlığı, `add_key` çağrısıyla ELF dosyalarını doğrudan bellek diliminde saklamaya imkan tanıyor.
  • Yöntem, dosya tanımlayıcısı oluşturmadığı için `/proc/self/fd/` altında tespit edilebilir bir iz bırakmıyor.
  • Yükleyici, `execve` çağırmadan ELF segmentlerini anonim belleğe eşleyip doğrudan kod başlangıç adresine atlıyor.

Linux sistemlerinde dosyasız kod çalıştırma tekniklerine alternatif bir yöntem geliştirildi. Güvenlik araştırmacısı MatheuzSecurity, memfd_create veya O_TMPFILE gibi geleneksel dosyasız çalıştırma yöntemlerinin dosya tanımlayıcısı oluşturması sorununu aşmak için Linux çekirdeğinin anahtarlık alt sistemini kullandı. Bu teknik sayesinde zararlı ELF yükleri, dosya sistemine yazılmadan ve execve sistem çağrısı tetiklenmeden doğrudan yürütülebiliyor.

Yöntemde süreçler, add_key sistem çağrısıyla ELF ikilisini çekirdeğin bellek dilimine veri öbeği olarak yazıyor. Geri dönen tanımlayıcı bir dosya tanıtıcısı olmadığı için /proc/self/fd/ dizininde herhangi bir iz oluşmuyor. Yükleyici, keyctl çağrıları ile verinin boyutunu öğrenip belleğe kopyaladıktan sonra anahtarı KEYCTL_REVOKE işlemiyle iptal ediyor. İptal işleminin ardından çekirdek belleğindeki orijinal kopya serbest kalıyor ve yük yalnızca anonim bellek eşlemesinde varlığını sürdürüyor.

ELF başlıklarını kullanıcı alanında manuel olarak çözümleyen yükleyici, mmap ve mprotect çağrılarıyla bellek segmentlerini oluşturup doğrudan bellek giriş noktasına atlıyor. Bu süreçte execve çağrılmadığı için yeni bir süreç başlangıç olayı tetiklenmiyor ve /proc/self/exe bağlantısı olağan dışı bir durum sergilemiyor. Geliştirilen yaklaşım, standart izleme araçlarının dosya tanıtıcılarına ve süreç oluşturma sinyallerine dayalı tespit mekanizmalarını atlatabiliyor.

Kaynak

Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.