SLUBStick adı verilen yeni bir Linux Kernel çapraz önbellek saldırısı, sınırlı bir yığın güvenlik açığını keyfi bir bellek okuma ve yazma yeteneğine dönüştürmede %99 oranında başarıya ulaşarak araştırmacıların ayrıcalıkları yükseltmesine veya kapsayıcılardan kaçmasına olanak tanıyor.
Bu keşif, hem 32 bit hem de 64 bit sistemlerde mevcut dokuz CVE kullanarak Linux çekirdeğinin 5.9 ve 6.2 (en son) sürümlerine yönelik saldırıyı gösteren Graz Teknoloji Üniversitesi’nden bir araştırma ekibinden geliyor ve bu da yüksek çok yönlülüğü gösteriyor.
Ayrıca saldırı, Süpervizör Modu Yürütme Önleme (SMEP), Süpervizör Modu Erişim Önleme (SMAP) ve Çekirdek Adres Alanı Düzeni Rastgeleleştirme (KASLR) gibi tüm modern çekirdek savunmaları etkinken çalıştı.
SLUBStick, bu ayın ilerleyen günlerinde yapılacak Usenix Güvenlik Sempozyumu konferansında ayrıntılı olarak sunulacak. Araştırmacılar, en son Linux’ta en son savunmaların etkinleştirildiği ayrıcalık yükseltme ve kapsayıcı kaçışını sergileyecekler.
Bu arada, yayınlanan teknik raporda saldırıya ilişkin tüm detaylar ve olası istismar senaryoları yer alıyor.
SLUBStik detayları
Linux çekirdeğinin belleği verimli ve güvenli bir şekilde yönetmesinin bir yolu, farklı veri yapıları için “levhalar” adı verilen bellek parçaları tahsis etmesi ve tahsisini kaldırmasıdır.
Bu bellek yönetim sürecindeki kusurlar saldırganların çapraz önbellek saldırıları adı verilen veri yapılarını bozmasına veya manipüle etmesine olanak tanıyabilir. Ancak bunlar yaklaşık %40 oranında etkilidir ve genellikle er ya da geç sistem çökmelerine yol açar.
SLUBStick, bellek ayırma sürecini manipüle etmek için çift serbest bırakma, kullanıcı serbest bırakıldıktan sonra veya sınır dışı yazma gibi bir yığın güvenlik açığından yararlanır.
Daha sonra, bellek parçası tahsis/tahsis kaldırma anını tam olarak belirlemek için bir zamanlama yan kanalı kullanır ve böylece saldırganın bellek yeniden kullanımını tahmin etmesine ve kontrol etmesine olanak tanır.
Bu zamanlama bilgisinin kullanılması, çapraz değişim sömürüsünün başarısını %99’a çıkarır ve bu da SLUBStick’i oldukça pratik hale getirir.
Yığın kusurunun keyfi bellek okuma ve yazma ilkeline dönüştürülmesi üç adımda yapılır:
- Belirli bellek parçalarını serbest bırakın ve çekirdeğin bunları yeniden kullanmasını bekleyin.
- Bu parçaları kontrollü bir şekilde yeniden tahsis edin ve sayfa tabloları gibi kritik veri yapıları için yeniden kullanılmalarını sağlayın.
- Geri alındıktan sonra saldırgan sayfa tablosu girdilerini üzerine yazar ve herhangi bir bellek konumunu okuyup yazma olanağı elde eder.
Gerçek dünya etkisi
Yan kanal içeren çoğu saldırıda olduğu gibi, SLUBStick de hedef makinede kod yürütme yeteneklerine sahip yerel erişim gerektirir. Dahası, saldırı Linux çekirdeğinde bir yığın güvenlik açığının varlığını gerektirir ve bu daha sonra belleğe okuma ve yazma erişimi elde etmek için kullanılır.
Bu durum saldırıyı uygulanamaz gibi gösterse de saldırganlara bazı avantajlar sağlıyor.
SLUBStick, kod yürütme yeteneklerine sahip saldırganlar için bile ayrıcalık yükseltme, çekirdek savunmalarını aşma, kapsayıcı kaçışları gerçekleştirme veya karmaşık bir saldırı zincirinin parçası olarak kullanma yeteneği sağlar.
Ayrıcalık yükseltme, ayrıcalıkları kök düzeyine yükseltmek ve sınırsız işlem yapmaya izin vermek için kullanılabilirken, konteyner kaçışı, korumalı ortamlardan çıkmak ve ana sisteme erişmek için kullanılabilir.
Ayrıca, istismar sonrası aşamada SLUBStick, kalıcılığı korumak için çekirdek yapılarını veya kancaları değiştirebilir ve bu da kötü amaçlı yazılımların savunucular tarafından tespit edilmesini zorlaştırabilir.
SLUBStick’i daha derinlemesine incelemek ve Graz Üniversitesi araştırmacılarının kullandığı istismarları denemek isteyenler bunları araştırmacının GitHub deposunda bulabilirler.