DNSSEC, saldırganların DNS yanıtlarını değiştirmesini engellemeyi amaçlamaktadır. Çözümleyicilerin verilerin gerçek ve değişmemiş olduğunu doğrulayabilmesi için kayıtları imzalar. Birçok güvenlik ekibi, DNSSEC doğrulaması başarılı olursa cevaba güvenilebileceğini varsayar. Yeni akademik araştırmalar, varsayımın daha yakından incelenmeyi hak ettiğini öne sürüyor.
Palo Alto Networks, Purdue Üniversitesi, California Irvine Üniversitesi ve Dallas’taki Texas Üniversitesi’nden araştırmacılar, böcek avının ötesine geçen bir DNSSEC analizi sunuyor. Ekip, bireysel kusurları aramak yerine protokolün matematiksel bir modelini oluşturdu ve daha derin bir soru sordu. DNSSEC, yazıldığı ve dağıtıldığı şekliyle her koşulda her zaman güvenli bir şekilde davranıyor mu?

DNSSEC’deki güven zinciri: Bir bölge için KSK, DNSKEY çiftini (KSK ve ZSK) doğrulamak için kullanılırken ZSK, alt bölgenin KSK veya A kayıtlarını doğrulamak için kullanılır.
DNSSEC’yi test etmenin farklı bir yolu
Araştırma, DNSSECVerif adlı bir çerçeveyi tanıtıyor. Şifreleme protokolü analizinde yaygın olan ancak bu ölçekte DNSSEC’ye nadiren uygulanan resmi doğrulama tekniklerini kullanır. Model, kriptografik kontroller ve eşzamanlı sorgular da dahil olmak üzere çözümleyicilerin, yetkili sunucuların ve önbelleklerin nasıl etkileşimde bulunduğunu yakalar.
DNSSEC, artımlı düzeltmelerle büyüdü. Her değişiklik bilinen bir sorunu gideriyordu ancak protokolün bir bütün olarak sağlamlığı hiçbir zaman kanıtlanamadı. Resmi doğrulama, önbelleklerin nasıl davrandığı ve kayıtların bölgeler arasında nasıl etkileşimde bulunduğu da dahil olmak üzere her varsayımın açık olmasını zorlar.
Ekip bu yaklaşımı DNSSEC’in sağlamayı amaçladığı dört temel güvenlik özelliğini kanıtlamak için kullandı. Bunlar arasında veri kaynağı kimlik doğrulaması, veri bütünlüğü, doğru güven zinciri doğrulaması ve kimliği doğrulanmış varlığın reddi yer alır. Bu özelliklerin kanıtlanması, çözümleyici önbelleklerinin ayrıntılı olarak modellenmesini gerektiriyordu; çünkü önbelleğe alma hataları, imzalar doğru olsa bile doğrulamayı zayıflatabilir.
Standartlar çarpıştığında
En önemli bulgu, DNSSEC standartlarının nasıl etkileşimde bulunduğundan kaynaklanmaktadır. DNSSEC, bir alan adının var olmadığını kanıtlamak için iki mekanizmayı destekler: NSEC ve NSEC3. Birçok bölge bunlardan yalnızca birini kullanır, ancak standartlar her ikisinin de aynı bölgede karıştırılmasını yasaklamaz.
Araştırmacılar bu bir arada yaşamanın bir kimlik doğrulama boşluğu yarattığını buldu. NSEC sıralı alan adlarına dayanırken, NSEC3 karma adlara dayanır. İkisi bir arada göründüğünde çözümleyici, geçerli alanları atlayan bir varoluş reddini kabul etmesi için kandırılabilir.
Resmi analiz, bir çözümleyicinin geçerli görünen bir NSEC3 kanıtını kabul ederken, onunla çelişen bir NSEC kaydını göz ardı edebildiğini gösterdi. Bu bir kodlama hatası değil. Standartların doğrulama kurallarını nasıl tanımladığını doğrudan takip eder.
Canlı çözümleyicilerden elde edilen kanıtlar
Bunun teori dışında önemli olup olmadığını test etmek için araştırmacılar gerçek uygulamaları incelediler. BIND, Unbound, PowerDNS, Knot ve Technitium gibi ana akım DNS yazılımlarını test ettiler. Test edilen her çözümleyici, karma mod bölgelerinde yanıltıcı NSEC3 reddetme kayıtlarını önbelleğe aldı.
Çözümleyicilerin hiçbiri testlerinde anında yanlış yanıt vermedi. Ancak kirli önbellekler, gelecekteki sorguların çelişkili verilerden etkilenebileceği anlamına gelir. Bu, hizmet reddine ve çözümleyici içinde sürekli kafa karışıklığının oluşmasına neden olur.
Ekip daha sonra 2,2 milyondan fazla açık çözümleyicinin internet çapında bir ölçüm çalışmasını yürüttü. Bu çözümleyicilerin çoğu hem NSEC hem de NSEC3 yanıtlarını kabul etti. Standart DNS sorgularıyla karşılaştırıldığında, NSEC ve NSEC3 sorguları çok daha yüksek oranda SERVFAIL yanıtları ve zaman aşımı üretti. Bu hatalar ekstra çözümleyici kaynaklarını tüketir ve saldırı trafiğini artırabilir.
Eski saldırılar yeniden gün yüzüne çıkıyor
Resmi model ayrıca, açıkça bulması için programlanmadan, DNSSEC saldırılarının bilinen üç sınıfını da yeniden keşfetti. Bunlardan biri, saldırganların bir bölgedeki tüm alan adlarını listelediği NSEC tabanlı bölge numaralandırmadır. Bir diğeri, zayıf veya desteklenmeyen şifreleme algoritmalarının doğrulamanın atlanmasına izin verdiği algoritma düşürme saldırılarıdır.
Üçüncüsü, doğrulanmamış önbelleğin yeniden kullanımı yoluyla DoS’yi içerir. Bazı çözümleyiciler hem doğrulanmış hem de doğrulanmamış verileri aynı önbellekte saklar. Bir saldırgan, daha sonra diğer istemcilerin doğrulamasını bozacak kayıtları enjekte etmek için sorun giderme özelliklerinden yararlanabilir.
Bu saldırıların resmi bir modelde yeniden ortaya çıkması önemli. Bu, bunların yalnızca uygulama hatalarından değil, protokol tasarım tercihlerinden kaynaklandığını gösteriyor.
Üretimde DNSSEC’nin etkileri
DNSSEC doğruluğu ikili değildir. Doğrulama geçişi, protokol kurallarının kendisi tutarsız durumlara izin veriyorsa güvenliği garanti etmez.
Yazarlar, karışık NSEC ve NSEC3 dağıtımlarından tamamen kaçınılmasını önermektedir. Standart kurumlarının bu konfigürasyonu güvensiz olarak ele alması ve çözümleyicilerin ortaya çıktığında doğrulamayı geçememesini talep etmeleri gerektiğini savunuyorlar.
Ayrıca resmi doğrulamanın protokol tasarımında daha erken bir rol oynaması gerektiğini öne sürüyorlar. DNSSEC geniş çapta dağıtılır ve değiştirilmesi zordur, bu da tasarım kusurlarının düzeltilmesini pahalı hale getirir.