Riverside'daki California Üniversitesi'nden bir araştırma ekibi, CVE-2021-20322 güvenlik açığını engellemek için geçen yıl eklenen korumalara rağmen çalışan SAD DNS saldırısının (CVE-2020-25705) yeni bir versiyonunu yayınladı. Yeni yöntem genel olarak geçen yılki güvenlik açığına benziyor ve yalnızca aktif UDP bağlantı noktalarını kontrol etmek için farklı türde ICMP paketlerinin kullanılması açısından farklılık gösteriyor. Önerilen saldırı, hayali verilerin DNS sunucusu önbelleğine yerleştirilmesine olanak tanır; bu, önbellekteki rastgele bir etki alanının IP adresini değiştirmek ve etki alanına yönelik istekleri saldırganın sunucusuna yönlendirmek için kullanılabilir.
Önerilen yöntem yalnızca ağ yığınında işlevseldir. Linux ICMP paket işleme mekanizmasının çalışma şeklinin özellikleriyle olan bağlantı nedeniyle LinuxBu durum, kullanılan UDP port numarasının belirlenmesini kolaylaştıran bir veri sızıntısı kaynağı görevi görür. sunucu Harici bir istek göndermek için. Bilgi sızıntılarını engelleyen değişiklikler çekirdeğe kabul edildi. Linux Ağustos ayı sonunda (düzeltme, 5.15 çekirdeğine ve Eylül ayı LTS çekirdek güncellemelerine dahil edildi). Düzeltme, ağ önbellekleri için Jenkins Hash yerine SipHash karma algoritmasına geçmeyi içeriyor. Dağıtımlardaki güvenlik açığı düzeltmesinin durumu şu sayfalardan değerlendirilebilir: DebianRHEL, Fedora, SUSE, Ubuntu.
Sorunu tespit eden araştırmacılara göre, OpenDNS ve Quad9 (9.9.9.9) gibi popüler DNS hizmetleri de dahil olmak üzere ağdaki açık çözümleyicilerin yaklaşık %38'i savunmasız durumda. Sunucu yazılımlarına gelince, saldırı şu yöntemlerle gerçekleştirilebilir: Linux-BIND, Unbound ve dnsmasq gibi sunucu paketleri. Bu paketler kullanılarak çalışan DNS sunucularında. Windows BSD sistemlerinde ise sorun kendini göstermez. Başarılı bir saldırı için IP sahtekarlığı gereklidir; yani saldırganın internet servis sağlayıcısının sahte kaynak IP adresine sahip paketleri engellememesi gerekir.
Bir hatırlatma olarak, SAD DNS saldırısı, 2008 yılında Dan Kaminsky tarafından önerilen klasik DNS önbellek zehirlenmesi yöntemini engellemek için DNS sunucularına eklenen korumaları atlar. Kaminsky'nin yöntemi, yalnızca 16 bit olan DNS sorgu kimliği alanının küçük boyutunu yönetir. Ana bilgisayar adı sahtekarlığı için gerekli olan doğru DNS işlem tanımlayıcısını seçmek için yaklaşık 7000 istek göndermek ve yaklaşık 140 bin hayali yanıtı simüle etmek yeterlidir. Saldırı, hayali bir IP bağlaması ve farklı DNS işlem tanımlayıcıları olan çok sayıda paketin DNS çözümleyicisine gönderilmesinden ibarettir. İlk yanıtın önbelleğe alınmasını önlemek için, her yapay yanıt biraz değiştirilmiş bir alan adı içerir (1.example.com, 2.example.com, 3.example.com, vb.).
Bu tür saldırılara karşı koruma sağlamak için, DNS sunucusu üreticileri, çözümleme isteklerinin gönderildiği kaynak ağ bağlantı noktalarının rastgele bir dağılımını uyguladı; bu, tanımlayıcının yeterince büyük olmamasını telafi etti. Kurgusal bir yanıt göndermek için koruma uygulandıktan sonra, 16 bitlik bir tanımlayıcı seçmenin yanı sıra, 64 bin bağlantı noktasından birinin seçilmesi gerekli hale geldi ve bu da seçim seçeneklerinin sayısını 2^32'ye çıkardı.
SAD DNS yöntemi, ağ bağlantı noktası numarasının belirlenmesini radikal bir şekilde basitleştirmenize ve saldırıyı klasik Kaminsky yöntemine azaltmanıza olanak tanır. Saldırgan, ICMP yanıt paketlerini işlerken ağ bağlantı noktalarının etkinliklerine ilişkin sızdırılan bilgilerden yararlanarak, kullanılmayan ve etkin UDP bağlantı noktalarına erişimi tespit edebilir. Bu yöntem, arama seçeneklerinin sayısını 4 büyüklük sırası kadar azaltmamıza olanak tanır - 2^16 yerine 2^16+2^32 (131_072_4_294 yerine 967_296). Etkin UDP bağlantı noktalarını hızlı bir şekilde belirlemenizi sağlayan bilgi sızıntısı, parçalanma istekleri (ICMP Parçalanma Gerekli bayrağı) veya yeniden yönlendirme (ICMP Yeniden Yönlendirme bayrağı) ile ICMP paketlerini işlemeye yönelik koddaki bir kusurdan kaynaklanır. Bu tür paketlerin gönderilmesi, ağ yığınındaki önbelleğin durumunu değiştirir; bu, sunucunun yanıtına göre hangi UDP bağlantı noktasının etkin olup hangisinin olmadığını belirlemeyi mümkün kılar.
Saldırı senaryosu: Bir DNS çözümleyicisi bir alan adını çözümlemeye çalıştığında, alan adını işleyen DNS sunucusuna bir UDP sorgusu gönderir. Çözümleyici yanıt beklerken, bir saldırgan sorguyu göndermek için kullanılan kaynak port numarasını hızlıca belirleyebilir ve sahte bir yanıt göndererek, alan adını işleyen DNS sunucusunu taklit edebilir. IP adresleriDNS çözümleyici, sahte yanıtta iletilen verileri önbelleğe alacak ve belirli bir süre boyunca, saldırgan tarafından değiştirilen IP adresini alan adı için yapılan diğer tüm DNS sorgularına döndürecektir.
Kaynak: opennet.ru
