Sunucudaki bellek parçalarını uzaktan tespit etmek için bir saldırı yöntemi önerildi

Daha önce MDS, NetSpectre, Throwhammer ve ZombieLoad saldırılarını geliştirmesiyle tanınan Graz Teknik Üniversitesi'nden (Avusturya) bir grup araştırmacı, Bellek Tekilleştirme mekanizmasına karşı yeni bir yan kanal saldırı yöntemi (CVE-2021-3714) yayınladı Bu, belirli verilerin bellekte bulunup bulunmadığının belirlenmesine, bellek içeriğinin bayt bayt sızıntısının düzenlenmesine veya adres tabanlı rastgeleleştirme (ASLR) korumasını atlamak için bellek düzeninin belirlenmesine olanak tanır. Yeni yöntem, tekilleştirme mekanizmasına yönelik daha önce gösterilen saldırı türlerinden farklı olarak, saldırgana HTTP/1 ve HTTP/2 protokolleri aracılığıyla gönderilen isteklere yanıt süresindeki değişikliği kriter olarak kullanarak harici bir ana bilgisayardan saldırı gerçekleştiriyor. Saldırıyı gerçekleştirme yeteneği Linux ve Windows tabanlı sunucular için gösterilmiştir.

Bellek tekilleştirme mekanizmasına yapılan saldırılar, verideki bir değişikliğin Yazma Üzerine Kopyalama (COW) mekanizması kullanılarak tekilleştirilmiş bir bellek sayfasının klonlanmasına yol açtığı durumlarda bilgi sızdırmak için bir yazma işleminin işlem süresindeki farkı bir kanal olarak kullanır. . İşlem sırasında çekirdek, farklı işlemlerden gelen aynı bellek sayfalarını algılar ve bunları birleştirerek yalnızca bir kopya depolamak için aynı bellek sayfalarını fiziksel belleğin bir alanına eşler. İşlemlerden biri, tekilleştirilmiş sayfalarla ilişkili verileri değiştirmeye çalıştığında, bir istisna (sayfa hatası) meydana gelir ve Yazma Üzerine Kopyalama mekanizması kullanılarak, işleme atanan bellek sayfasının ayrı bir kopyası otomatik olarak oluşturulur. Kopyanın tamamlanması için ek süre harcanır; bu, başka bir işleme müdahale eden veri değişikliklerinin işareti olabilir.

Araştırmacılar, COW mekanizmasından kaynaklanan gecikmelerin yalnızca yerel olarak değil, aynı zamanda ağ üzerinden yanıt teslim sürelerindeki değişiklikleri analiz ederek de yakalanabileceğini gösterdi. HTTP/1 ve HTTP/2 protokolleri üzerinden isteklerin yürütme süresini analiz ederek uzak bir ana bilgisayardaki bellek içeriğini belirlemek için çeşitli yöntemler önerilmiştir. Seçilen şablonları kaydetmek için, isteklerde alınan bilgileri hafızada saklayan standart web uygulamaları kullanılır.

Saldırının genel prensibi, sunucudaki bir bellek sayfasının, sunucuda zaten mevcut olan bir bellek sayfasının içeriğini potansiyel olarak tekrarlayan verilerle doldurulmasına dayanır. Saldırgan daha sonra çekirdeğin tekilleştirmesi ve bellek sayfasını birleştirmesi için gereken süreyi bekler, ardından kontrollü yinelenen verileri değiştirir ve isabetin başarılı olup olmadığını belirlemek için yanıt süresini değerlendirir.

Sunucudaki bellek parçalarını uzaktan tespit etmek için bir saldırı yöntemi önerildi

Deneyler sırasında, maksimum bilgi sızıntısı oranı, küresel bir ağ üzerinden saldırırken saatte 34.41 bayt ve yerel bir ağ üzerinden saldırırken saatte 302.16 bayt oldu; bu, üçüncü taraf kanallar aracılığıyla veri çıkarmanın diğer yöntemlerinden daha hızlıdır (örneğin, NetSpectre saldırısında veri aktarım hızı saat birde 7.5 bayttır).

Üç çalışan saldırı seçeneği önerildi. İlk seçenek Memcached kullanan web sunucusunun belleğindeki verileri belirlemenizi sağlar. Saldırı, belirli veri kümelerinin Memcached depolama alanına yüklenmesi, tekilleştirilmiş bloğun temizlenmesi, aynı öğenin yeniden yazılması ve bloğun içeriğini değiştirerek COW kopyalamanın gerçekleşmesi için bir koşul yaratılmasından ibarettir. Memcached ile yapılan deneme sırasında, sanal makinede çalışan bir sistemde kurulu olan libc sürümünün 166.51 saniyede belirlenmesi mümkün olmuştur.

İkinci seçenek, InnoDB depolamayı kullanırken, içeriği bayt bayt yeniden oluşturarak MariaDB DBMS'deki kayıtların içeriğini bulmayı mümkün kıldı. Saldırı, özel olarak değiştirilmiş istekler gönderilerek, bellek sayfalarında tek baytlık uyumsuzluklara neden olarak ve bayt içeriği hakkındaki tahminin doğru olup olmadığını belirlemek için yanıt süresini analiz ederek gerçekleştirilir. Böyle bir sızıntının oranı düşüktür ve yerel bir ağdan saldırırken saatte 1.5 bayta ulaşır. Yöntemin avantajı, bilinmeyen bellek içeriklerini kurtarmak için kullanılabilmesidir.

Üçüncü seçenek, ofset adresinin diğer verilerin değişmediği bir bellek sayfasında olduğu bir durumda KASLR koruma mekanizmasını 4 dakika içinde tamamen atlamayı ve sanal makine çekirdek görüntüsünün bellek ofseti hakkında bilgi almayı mümkün kıldı. Saldırı, saldırılan sistemden 14 atlama uzaklıkta bulunan bir ana bilgisayardan gerçekleştirildi. Sunulan saldırıların uygulanmasına yönelik kod örneklerinin GitHub'da yayınlanacağına söz veriliyor.

Kaynak: opennet.ru

Yorum ekle