DNS önbellek zehirleme, sahte bir DNS yanıtının recursive resolver (özyinelemeli DNS çözümleyicisi) tarafından geçerli bir kayıt gibi önbelleğe alınmasıdır. Recursive resolver daha sonra aynı alan adı için kendisine başvuran kullanıcılara bu yanlış kaydı döndürebilir.

Bu saldırıda alan adının gerçek DNS kayıtlarının değiştirilmiş olması gerekmez. Sorun, kullanıcılar adına sorgu yapan ve sonuçları belirli bir süre saklayan recursive resolver hizmetinin yanlış yanıtı kabul etmesiyle oluşur.

Yanlış bir siteye yönlendirilmek önemli bir belirti olabilir; ancak tek başına önbellek zehirlemeyi kanıtlamaz. İstemci ayarlarını, modem veya yönlendirici yapılandırmasını, sorguları yanıtlayan recursive resolver hizmetini ve yetkili DNS kayıtlarını ayrı ayrı karşılaştırmak gerekir.

Sahte Yanıt Önbelleğe Nasıl Yerleşir?

Recursive resolver, önbelleğinde bulunmayan bir alan adı için gerektiğinde kök, üst düzey alan ve yetkili DNS sunucularına sorgu gönderir. Bekleyen sorguyla eşleşen ilk geçerli yanıtı kabul eder. Bir saldırgan, gerçek yanıt ulaşmadan önce beklenen sorguya aitmiş gibi görünen sahte bir yanıt göndermeye çalışabilir.

Recursive resolver sahte yanıtı geçerli kabul ettiğinde kaydı önbelleğine yazar. Kayıt bu aşamadan sonra aynı alan adı ve kayıt türü için gelen sorgulara yanıt olarak kullanılabilir.

Zehirlenmiş Kayıt Önbellekte Ne Kadar Kalır?

TTL, kaydın normalde önbellekte kaç saniye saklanabileceğini belirtir. Zehirlenmiş kayıt bu süre dolana, recursive resolver kaydı daha erken kaldırana veya hizmetin yöneticisi temizleyene kadar kullanılabilir. Aynı hizmeti kullanan istemciler bu sırada yanlış yanıtı tekrar alabilir.

Süre dolduğunda kayıt normal kullanım için eskimiş sayılır; recursive resolver gerektiğinde yeni bir sorguyla güncel yanıtı alır. Ancak bazı hizmetler, yetkili DNS sunucusuna ulaşamadıklarında yapılandırmalarına bağlı olarak süresi dolmuş yanıtı bir süre daha kullanabilir. Bu nedenle yalnız TTL süresinin dolmasını beklemek saldırının etkisinin bittiğini garanti etmez. Güvenlik açığı sürüyorsa kaydın yenilenmesi sırasında başka bir sahte yanıt da kabul edilebilir.

DNS Önbellek Zehirleme ile DNS Ele Geçirme Arasındaki Farklar

DNS hijacking (DNS ele geçirme) geniş anlamda DNS çözümleme yolunun yetkisiz biçimde değiştirilmesini ifade eder. Önbellek zehirleme ise sahte bir yanıtın recursive resolver önbelleğine yerleştiği bir saldırı türüdür.

  • Recursive resolver önbelleğinin zehirlenmesi: Yanlış kayıt paylaşılan recursive resolver önbelleğine girer ve bu hizmeti kullanan istemcilere dağıtılır.
  • İstemci veya yönlendiricinin ele geçirilmesi: Cihazın, modemin ya da yönlendiricinin DNS sunucusu ayarı değiştirilerek sorgular farklı bir DNS sunucusuna gönderilir.
  • Yetkili DNS kayıtlarının değiştirilmesi: Alan adının yetkili DNS kayıtları değiştirilir veya yönetim hesabı ele geçirilir; bu durum önbellek zehirlemeden farklı bir güvenlik olayıdır.

Bu ayrım, sorunun nerede aranacağını belirler. Yalnız bir cihaz etkileniyorsa o cihazın DNS sunucusu ayarlarını ve alan adlarını yerel olarak IP adresleriyle eşleyen hosts dosyasını inceleyin. Aynı recursive resolver hizmetini kullanan farklı ağ ve cihazlarda ortak bir yanlış yanıt görülüyorsa bu hizmetin yöneticisinden önbelleği incelemesini isteyin.

Sahte DNS Yanıtlarına Karşı Hangi Kontroller Kullanılır?

Sahte yanıt riskini tek bir yöntemle sınırlamak mümkün değildir. İşlem kimliği, kaynak portu ve DNS Cookies mekanizmasındaki tahmin edilmesi zor çerez değerleri, sahte yanıtın bekleyen sorguyla eşleşmesini zorlaştırır. DNSSEC ise imzalı verinin kaynağını ve bütünlüğünü doğrular.

Sorgu ve Yanıt Eşleştirmesi

İşlem kimliklerinin ve kaynak portlarının öngörülemez seçilmesi, saldırganın doğru kombinasyonu bulmasını güçleştirir. Recursive resolver yalnız bekleyen sorgunun adı, sınıfı, kayıt türü, işlem kimliği, IP adresleri ve portlarıyla eşleşen yanıtları işler.

Bu kontroller saldırı olasılığını azaltır ancak DNS verisinin yetkili kaynaktan geldiğini veya imzalandıktan sonra değişmediğini tek başına kanıtlamaz. Yazılımın yanıtları hangi alanlara göre eşleştirdiği ve işlem kimliğiyle kaynak portunu ne kadar öngörülemez seçtiği, sahte yanıtın kabul edilme ihtimalini doğrudan etkiler.

DNS Cookies

DNS Cookies, istemci ve sunucunun gizli değerler ve istemcinin IP adresi gibi bilgilerle ürettiği çerezleri sorgu ve yanıtlara ekler. Ağ yolunda bulunmayan bir saldırganın geçerli isteği veya yanıtı taklit edebilmesi için doğru çerez değerini de tahmin etmesi gerekir.

Bu mekanizma DNS verisini imzalamaz, sorgu içeriğini şifrelemez ve ağ trafiğini görebilen bir saldırgana karşı tek başına koruma sağlamaz. Etkisi iki tarafın DNS Cookies mekanizmasını desteklemesine ve doğru uygulamasına bağlıdır; bu nedenle diğer eşleştirme kontrollerinin veya DNSSEC'in yerine geçmez.

DNSSEC Doğrulaması

DNSSEC, DNS kayıtlarına eklenen dijital imzalarla verinin kaynağını ve bütünlüğünü doğrular. Alan adı doğru biçimde imzalanmışsa, güven zinciri kurulmuşsa ve recursive resolver DNSSEC doğrulaması yapıyorsa geçersiz imzalı sahte kayıtları reddeder.

DNSSEC bütün DNS saldırılarını önleyen genel bir koruma değildir. İmzalanmamış alan adları, yanlış yapılandırılmış güven zincirleri, ele geçirilmiş istemci ayarları, yetkili hesap ihlalleri ve hizmet kesintileri farklı önlemler gerektirir. DNSSEC ayrıca DNS sorgularını gizlemez veya şifrelemez.

Beklenmeyen DNS Yönlendirmesinin Kaynağı Nasıl Belirlenir?

Beklenmeyen bir IP adresi veya farklı bir web sitesi önbellek zehirlemeye işaret edebilir. Aynı alan adının zaman zaman farklı IP adreslerine çözülmesi ise CDN'lerde, yük dengelemede veya konuma göre yanıt veren DNS hizmetlerinde normal olabilir. Hatalı DNS kaydı, yerel hosts ayarı, değiştirilmiş DNS sunucusu, eski önbellek ve yetkili DNS yapılandırma hatası da benzer belirtiler oluşturabilir.

  1. Cihazın ve yönlendiricinin hangi DNS sunucularını kullandığını kontrol edin; VPN ve tarayıcının güvenli DNS tercihini de ayrıca inceleyin.
  2. Aynı alan adı için farklı güvenilir recursive resolver hizmetlerinden alınan sonuçları karşılaştırın.
  3. Farklı recursive resolver hizmetlerinin yanıtlarını, alan adının yetkili DNS sunucularındaki kayıtlarla karşılaştırın.
  4. Alan adı DNSSEC kullanıyorsa DNSKEY kayıtlarındaki açık anahtarları üst bölgedeki DS kaydına bağlayan güven zincirini ve kayıt imzalarını kontrol edin.
  5. Sorunun tek cihazda mı, tek recursive resolver hizmetinde mi yoksa yetkili DNS kayıtlarında mı bulunduğunu belirleyin.

DNSSEC Doğrulama aracıyla imzaları ve güven zincirini denetleyebilirsiniz; başarılı veya hatalı bir sonuç tek başına önbellek zehirleme saldırısı yaşandığını kanıtlamaz.

Yetkili DNS sunucuları doğru kaydı verirken belirli bir recursive resolver sürekli farklı bir kayıt döndürüyorsa bu hizmetin yöneticisinden önbelleği incelemesini isteyin. Yetkili DNS sunucularının kendisi yanlış sonuç veriyorsa olay önbellek zehirlemeden çok DNS bölgesi veya alan adı yönetimiyle ilgili olabilir.