Salı, Temmuz 22, 2008

DNS Kandirma Zafiyeti


Internet isimleri ile IP adresleri arasında dönüşüm yapmak için Alan Adı Sistemi (Domain Name System, DNS) kullanılmaktadır. Alan adı sisteminin kandırma saldırılarına olanak sağlayan tasarım zafiyetlerine açık olduğu uzun süredir biliniyordu. Ancak araştırmacı Dan Kaminsky tampon DNS sunucularının önbelleklerini zehirlemek (cache poisoning) ve isimleri farklı bir adrese yönlendirmek için pratik bir teknik bulduğunu, ve bu tekniği Ağustos başında yapılacak olan BlackHat konferansında açıklayacağını duyurmuştu.

DNS yazılım üreticileri (BIND, Microsoft, Cisco vb.) tarafından yamalar hazırlanmış ve tüm DNS tampon sunucusu (cache server) işletenlerin acil olarak bu yamaları kurması önerilmiş, yapılandırma önerileri verilmişti.

Üreticilerin hazırladığı yamalar, DNS soru ve cevaplarını eşleştirmek için rastgele işlem numarası yanında rastgele bir kaynak port numarası kullanılması bu sayede kandırma saldırısında tahmin edilmesi gereken bilinmeyenleri arttırmayı sağlamaktaydı.

Olayı zaten çözmüş saldırganlar hariç herkes konferanstaki açıklamayı beklerken, başka bir araştırmacı, Halvar Flake zafiyetle ilgili bir hipotezini yayınladı. Bunun hemen ardından yapılan birkaç yorum sonucunda bu hipotezin doğru olduğu ortaya çıktı.

Zafiyet, bir tampon sunucuya zehirlemek istediğiniz alan adı altında olmayan isimleri sormak ve kandırmak için çok sayıda cevap göndermek üzerine kurulu. Saldırgan her defasında farklı bir isim sorgulayarak, tahmin etme için yeniden şans kazanıyor. Yüksek bir olasılıkla kısa zamanda (kaynak portunu rastgele belirlememiş bir tampon sunucu için yaklaşık 10 saniye) cevabın ve cevaba eklediği bir ek bilginin tampon sunucu tarafından kabul edilmesini bu sayede tampon kayıtların zehirlenmesini sağlıyor.

Bu zafiyet önbellek sunucularını ve bilgisayarlardaki önbellekli çözümleyicileri hedef alabiliyor. Bu nedenle üreticilerin sağladığı yamaların bir an önce uygulanması öneriliyor.

Bu saldırıya karşı alınabilecek diğer önlemler:
  • Tampon DNS sunucusuna sorgu yapabilen adresleri kısıtlayın. İnternet adreslerine alan adı çözümleme (recursion) servisini kapatın, bu servisi sadece yöneticisi olduğunuz IP blokları için aktif hale getirin. Ancak sorgu yapmaya izni olan makinalar (örneğin kotü niyetli bir yazılım aracılığı ile) bu zafiyeti kullanabilirler.
  • Yönettiğiniz ağdan bu tip bir saldırı yapılmasını engellemek için, size ait olmayan kaynak adreslerine sahip (spoofed) paketlerin ağınızdan dışarı çıkmasına izin vermeyin.
  • Tanımadığınız, genel kullanıma açık DNS tampon sunucuları kullanmak yerine kendi (yamanmış ve sağlamlaştırılmış) ön bellek sunucunuzu kullanmayı tercih edin.
  • DNS çözümleme yazılımı geliştiriyorsanız IETF tarafından hazırlanmakta olan ve DNS sunucularını saldırılara karşı sağlamlaştırmayı hedefleyen dokümanı takip edin.