Linux ‘io_uring’ Güvenlik Blindspot, gizli rootkit saldırılarına izin verir


Linux

‘IO_uring’ arayüzünün neden olduğu Linux çalışma zamanı güvenliğinde önemli bir güvenlik boşluğu, rootKit’lerin gelişmiş kurumsal güvenlik yazılımını atlarken sistemlerde tespit edilmemesini sağlar.

Kusur, IO_uring’den kaçıştan yararlanan saldırıların pratikliğini ve fizibilitesini göstermek için “kürleme” adlı bir kavram kanıtı geliştiren Armo Güvenlik araştırmacıları tarafından keşfedildi.

IO_uring, verimli, asenkron I/O işlemleri için bir Linux çekirdek arayüzüdür. Geleneksel G/Ç sistemi ile performans ve ölçeklenebilirlik sorunlarını ele almak için 2019 yılında Linux 5.1 ile tanıtıldı.

IO_uring, çok fazla ek yük ve süreç asmasına neden olan sistem çağrılarına güvenmek yerine, programın çalışmaya devam etmesine izin vererek, programların çalıştırılmasına izin vermek için programlar ve sistem çekirdeği arasında paylaşılan halka arabellekleri kullanır.

io_uring Görev Gönderme ve Tamamlama Halkaları
io_uring Görev Gönderme ve Tamamlama Halkaları
Kaynak: Donald Hunter

Armo’ya göre sorun, çoğu güvenlik aracının şüpheli syscalls ve kanca (‘pTRACE’ veya ‘seccomp’ gibi) için izlemesi, IO_ring’i içeren herhangi bir şeyi tamamen görmezden gelmesi ve çok tehlikeli bir kör nokta oluşturması gerçeğinden kaynaklanıyor.

Araştırmacılar, IO_uring’in dosya okuma/yazma, ağ bağlantıları oluşturma ve kabul etme, yumurtlama işlemleri, dosya izinlerini değiştirme ve okuma dizin içeriğini de dahil olmak üzere 61 OP türü aracılığıyla çok çeşitli işlemleri desteklediğini ve güçlü bir rootkit vektörü haline getirdiğini açıklıyor.

Google’ın Linux çekirdeğini kullanan ve temel güvenlik açıklarının çoğunu devralan Android ve Chromeos’ta varsayılan olarak kapatmaya karar vermesi riski budur.

Teoriyi test etmek için Armo, io_uring’i uzak bir sunucudan komutları çekmek ve Syscall kancalarını tetiklemeden keyfi işlemler yürütmek için io_uring’i kötüye kullanan özel amaçlı bir kök sarkı olan iyileştirme yarattı.

Birkaç tanınmış çalışma zamanı güvenlik aracına karşı kürlenmenin test edilmesi, çoğunun etkinliğini tespit edemediğini gösterdi.

Özellikle, Falco’nun özel algılama kuralları kullanıldığında bile tamamen kör olduğu bulunurken, Tetragon varsayılan yapılandırma altında kötü niyetli etkinlikleri işaretleyemedi.

Bununla birlikte, Tetragon, bu rootkit’i tespit etmek için izleme etkinleştirilebileceğinden platformunu savunmasız olarak görmez.

Araştırmacılar, “Bunu Tetragon ekibine bildirdik ve tepkileri, bakış açılarından Tetragon’un temelde herhangi bir yere kancalama esnekliği sağladıkları için” savunmasız “olmadığıydı.”

“Konu hakkında yazdıkları iyi bir blog yazısına dikkat çektiler.”

Ticari araçlara karşı test edilen Armo, Syscall’ları içermeyen IO_uring tabanlı kötü amaçlı yazılım ve çekirdek etkileşimlerini tespit edemediğini de doğruladı. Ancak Armo, hangi ticari programları tekrar test ettiklerini paylaşmadı.

Bu tehdide karşı ortamlarını test etmek isteyenler için Armo, kürü GitHub’da ücretsiz olarak kullanılabilir hale getirdi.

Armo, EBPF programlarının güvenlik ile ilgili çekirdek etkinliklerine eklenmesine izin veren çekirdek çalışma zamanı güvenlik enstrümantasyonunun (KRSI) benimsenmesi ile sorunun çözülebileceğini öne sürüyor.



Source link