BIND 9 Dynamic Update DoS Zaafiyeti- Acil

Internetin Sonu mu geldi?

Internetin çalışması için gerekli en temel protokollerden birisi DNS’dir. DNS domain isimleriyle ip adresleri arasında çözümleme yaparak bizleri ulaşmak istediğimiz sitelere/sistemlere kolaylıkla ulaştırır. Bir nevi arkadaşlarımızın cep telefon numaralarını ezberlemek yerine adres defteri kullanmak gibi.

DNS çalışmadığı zaman ne olur?

E-posta sistemi çalışmaz, web sayfalarına isimlerini kullanarak (www.google.com gibi )girişler imkansız hale gelir, kısacası internet durur.

DNS Sunucu Yazılımları

DNS hizmeti veren çeşitli sunucu yazılımlar bulunmaktadır. ISC Bind, DjbDNS, Maradns, Microsoft DNS yazılımları bunlara örnektir. Bu yazılımlar arasında en yoğun kullanıma sahip olanı ISC Bind’dır. Internetin %80 lik gibi büyük bir kısmı Bind dns yazılımı kullanmaktadır.

DOS  Atakları

DOS(Denial Of Service) hizmet dışı bırakma saldırısıdır. Bir servis DOS’a maruz kalırsa çalışmaz, bir network DOS’a maruz kalırsa ulaşılamaz. DOS saldırıları risk açısından  sınıflandırıldığında acil kategorisinde yer alır.

BIND 9 Dynamic Update DoS Zaafiyeti

28/07/2009 tarihinde ISC Bind yazılım geliştiricileri tüm Bind 9 sürümlerini etkileyen acil bir güvenlik zaafiyeti duyurdular. Duyuruya göre eğer DNS sunucunuz Bind9 çalıştırıyorsa ve üzerinde  en az bir tane yetkili kayıt varsa bu açıklıktan etkileniyor demektir.

Aslında bu bind 9 çalıştıran tüm dns sunucularını etkiler anlamına geliyor. Bunun nedeni dns sunucunuz sadece caching yapıyorsa bile üzerinde localhost için girilmiş kayıtlar bulunacaktır ve açıklık bu kayıtları değerlendirerek sisteminizi devre dışı bırakabilir.

Güvenlik Açığı Nasıl Çalışıyor?

Açıklık dns sunucunuzdaki  ilgili zone tanımı(mesela:www.lifeoverip.net) için gönderilen özel hazırlanmış dynamic dns update paketlerini düzgün işleyememesinden kaynaklanıyor.

Açıklığın sonucu olarak dns servisi veren named prosesi duruyor. Yani DNS hizmeti veremez hale geliyorsunuz.

Önlem:

Güncelleme: Açıklığı gideren yeni sürüm bind paketleri yayınlandı. Güncelleme yaparak bu açıklıktan korunabilirsiniz.Aşağıdaki adresler güncel bind paketlerine ait.

http://ftp.isc.org/isc/bind9/9.6.1-P1/bind-9.6.1-P1.tar.gz
http://ftp.isc.org/isc/bind9/9.5.1-P3/bind-9.5.1-P3.tar.gz
http://ftp.isc.org/isc/bind9/9.4.3-P3/bind-9.4.3-P3.tar.gz

Güvenlik Duvarı/IPS: Güvenlik duvarı ya da Intrusion Prevention System üzerinden dns sunucularıan gelen nsupdate mesajlarını engelleyerek açıktan korunabilirsiniz.

Snort IDS İmzası:

alert udp any any -> $HOME_NET 53 (msg:"ET CURRENT_EVENTS ISC BIND9 Update DoS"; \
content:"|00 2a 08 68 6d 61 63 2d 6d 64 35 07 73 69 67 2d 61 6c 67 03 72 65 67 03 69 6e 74 00|"; \
content:"|35 99 52 00 4e|"; classtype:misc-attack; reference:url,downloads.securityfocus.com/vulnerabilities/exploits/35848.txt; reference:url,www.isc.org/node/474; sid:2009695; rev:1;)

Linux Iptables ile engelleme: Aşağıda yazan iptables kuralı ile açıklığı network seviyesinde engelleyebilirsiniz(kural denenmemiştir, debian tartışma listesinden alıntıdır).

#iptables -A INPUT -p udp –dport 53 -j DROP -m u32 –u32 ’30>>27&0xF=5′

Kötü senaryo: DNS UDP üzerinden çalışıyor, bu açıklığın exploiti de internette dolaşıyor. Hayata küsmüş kötü niyetli bir hacker internetin çalışmasını  birkaç yüz paketle sekteye uğratabilir ve dns paketlerinde rahatlıkla ip spoofing yapılabileceği için kimin yaptığı da bulunamaz.

Açıklık ile ilgili detay bilgiler: https://www.isc.org/node/474

Açıklığın testi;

Açıklığın testi için internet ortamında çeşitli exploitler dolaşıyor. Exploitlerden birinini kendi sistemlerimi test için uyarlayıp denedim, bir iki saniye içerisinde dns servisi crash oldu.

# perl dnstest.pl
;; HEADER SECTION
;; id = 51444
;; qr = 0    opcode = UPDATE    rcode = NOERROR
;; zocount = 0  prcount = 1  upcount = 1  adcount = 1

;; ZONE SECTION (1 record)
;; test.com.        IN      SOA

;; PREREQUISITE SECTION (1 record)
www.test.com.       0       IN      ANY     ; no data

;; UPDATE SECTION (1 record)
www.test.com.       0       ANY     ANY     ; no data

;; ADDITIONAL SECTION (1 record)
<key.   0       IN      ANY     ; rdlength = 0

Bu aşamadan sonra ilgili zonu barındıran dns sunucu sorgulara cevap veremez hale geliyor.

Aug  1 16:03:52 mail named[45293]: /usr/src/lib/bind/dns/../../../contrib/bind9/lib/dns/db.c:595: REQUIRE(type != ((dns_rdatatype_t)dns_rdatatype_any)) failed
Aug  1 16:03:52 mail named[45293]: exiting (due to assertion failure)
Aug  1 16:03:52 mail kernel: pid 45293 (named), uid 0: exited on signal 6 (core dumped)

This entry was posted in DNS, Misc. Bookmark the permalink.

2 Responses to BIND 9 Dynamic Update DoS Zaafiyeti- Acil

  1. admin says:

    Ilgili iptables komutunu kullanabilmek icin u32 özelliğinin sistemde kurulu olması gerekir.
    http://www.netfilter.org/documentation/HOWTO//netfilter-extensions-HOWTO-3.html#ss3.21

Leave a Reply

Your email address will not be published. Required fields are marked *

9 + thirteen =