DNS Önbellek Zehirlenmesi (DNS Cache Poisoning)

dnccpYazar: Alpin Karagözoğlu

Önceki yazımda kısaca DNS işlevini açıklamıştım. DNS Önbellek Zehirlemesin de. Saldırgan, DNS sunucusuna yetkisiz bir kaynaktan veri yüklenmesi ile ortaya çıkan durumdur. (non-authentic)

Güvenlik açıkları, zayıf yapılandırma, yetersiz güvenlik önlemleri, hatalar gibi unsurlar neticesinde veya “DNS protokolünün açıklarıyla başarıyla iletilen özgün olmayan veri, sistem performansını artırmak için saldırılan sunucunun önbelleğine gelir ve böylece önbellek “zehirlenmiş” olur.”

NS (Name Server) kayıtlarının ya da Yine NS’in IP adresinin yönlendirilmesi ile Zehirleme söz konusu olabilir.
Diğer bir saldırı yöntemşi olarakta gerçek Alan adı sunucusunun, yanıt vermesinden önce saldırgnın ya da kötü niyeli sunucunun araya girip, gerçek sunucudan önce yapılan sorgulamaya cevap vermesidir. Bu tip saldırılar, man-in-the-middle olarak nitelendirilir.

DNS Haberlermeşi birden fazla sorguyu içerisinde barındırır;

1-Başlık (Header)
2-Soru(Question
3-Yanıt(Answer)
4-Yetki(Authority)
5-Ekler(Additional)

DNS mesajın da yer alan Header kısmının ilk 16bit’i “nonce” olarak atanır. Sorguyu düzenleyen program tarafınan atılan bu “nonce” değer, sorguyada verilir yani sorguda ki ile aynıdır. Böylece Soru-Yanıt eşleşmesi gerçekleştirlebilinir. Bu değer, DNSCP (DNS Cache Poisoning)’te önemli rol oynar çünkü saldırgen bu 16bit’liğe atanan değeri tahmin etmeye çalışır.

Aşağıda örnek olarak verilen saldırılar başarıya ulaştığın da, sunucu üzerinde bizim hedefine gittiğini düşündüğümüz e-posta, veri, bilgi v.b şeyler aslında hedeflediğimiz yere değil kötü niyetli sunucuya gidiyor olacaktır. Sonuç olarak bilgi-veri hırsızlığı  söz konsuu olacaktır.

TANIMLAMA (Aşağıda yer alanlar örnektir)

1- xxx.xxx.x.xx IP adresili kötü niyetli kişi, saldırı yapacağı DNS üzerinden www.alpinden.comadresini sorgular.

2-www.alpinden.com ilgili DNS üzerinde olmadığı için, DNS, www.alpinden.com’dan sorumlu olan ns1.alpinden.com sunucusundan alana dını sorgular.

3-Bu sorgulamanın üzerine ns1.alpinden.com sunucusu, www.alpinden.comalan adı için geçerli olan
yy.yyy.y.yy IP adresini, yanıt olarak hedef DNS sunucusuna geri döndürür.

4-Sitenin, IP Adresini alan DNS sunucusuda, bu bilgiyi sorgulam a yapan saldırgana iletir.

NOT: DNS sunucusunun saldırgan ile haberleşirken istek ve cevaplarda aynı kaynak portu (6134) kullanması ve tahmin edilebilir TXID (0x6749) değerini kullanmasıdır. Hedef DNS sunucusundan gelen cevabın geçerli olması için istekte bulunurken kullanılan TXID değerinin cevap kısmında da aynen dönmesi gerekmektedir.

Microsoft:İlgili sorgulama nsloopup komutu ile Windows Komut istemi ile yapılabilinir.
Linux:Konsol’dan Dig (Domain Information Groper) komutu ile yapılabilinir.

Eğer IP tarafımıza iletilmiş ise bu sunucuda açık olduğunu tespit etmiş oluyoruz.

Daha da basite indirelim;

-Saldırgan DNS Sunucusu üzerinden saldırıya maruz bırakılacak siteyi sorgular

-DNS Sunucusu ilgli sitenin bilgileri üzerinde olmadığından ötürü, siteden sorumlu sunucuya gider.

-Sitenin sorumlu sunucusu DNS’in sorusuna cevap verir (IP Adresi).

-DNS Sunucusu, Sorgu yapan saldırgana söz konusu siteden sorumlu sunucudan aldığı cevabı aynen geri iletir.

SALDIRI

DNCCP 3 aşama ile gerçekleşir;

1- Saldırgan hedef sunucuda bulunan alt alan adları (subdomain) için DNS sunucsuna bir çok DNS sorgusu yollar. Burada ki kasıt saldırılan sunucunun, alpinden.com’dan sorumlu(yetkili) sunucuya birçok DNS sorgusu yollamasını sağlamaktır.

SALDIRGAN                                                                                                       HEDEF SUNUCU
192.168.2.1————-a.alpinden.com IP Adresi nedir?————->xxx.xxx.xx.x
( Port:6144         TXID:0x8b3c)

192.168.2.1————-b.alpinden.com IP Adresi nedir?————->xxx.xxx.xx.x
( Port:6146        TXID:0x5b2a)

192.168.2.1————-b.alpinden.com IP Adresi nedir?————->xxx.xxx.xx.x
( Port:6141        TXID:0x3c1b)

Bu işlem defalarca tekrarlanır.

2- İkinci aşamada ise, hedef DNS sunucu tüm alt alan isimleri için ns1.alpinden.com sunucusuna istekte bulunucaktır. Doğal olarakta, ns1.alpinden.com un sunucusuda tüm bu sorgulara cevap verecektir. Bu esnada saldırıyı gerçekleştiren kişide hedef DNS sunucusuna sanki kendisi ns1.alpinden.com muş gibi cevaplar yollamaktadır. Gönderilen cevaplarda www.alpinden.com’ un ip adresiymiş gibi kendi elinde tuttuğu sistemin ip’ sini bildirmektedir. Ancak bunu yaparken TXID değerini’de arttırmakta ve doğru TXID değerini bulmaya çalışmaktadır.

Saldırının başarıya ulaşması;

Saldırgan tarafından gönderilen, doğru TXID olduğu taktirde, saldırı altında ki DNS sunucusu cevabın, ns1.alpinden.com’ dan geldiğini kabul edecektir. İşte bu kabul olayı gerçekleştiğinde, DNS Ön Bellek zehirlenmesi gerçekleşmiş oluyor.

Kullanıcının Tuzağa Düşmesi;

Bilgisayarından alpinden.com’ a girmek isteyen kişi, internet tarayıcısına www.alpinden.com’u yazar ve enter’a basar.

-Kullanıcının sistemi istenilen siteye ulaşmak için DNS sunucusuna www.alpinden.com’usorgular

-Zehirlenmiş DNS sunucusunun ön belleğinde www.alpinden.com’un IP adresi olduğu için, saldırgan tarfından yerleştirilen IP adresini normal kullanıcıya cevap olarak verir.

-Sahte IP adresini cevap olarak alan kullanıcının sistemi, saldırganın oluşturduğu ve zehirlemede kullandığı IP üzerinden yayın yapan sahte, tuzak siteye gider. Kafalar karışmasın burda ki 2 IP’ de aynıdır.

-Kullanıcı, bilgilerini, şifrelerini bu sahte sayfaya giriş yapmak için kullanır. Bunun sonucunda kullanıcının giriş bilgileri, şifreleri v.s saldırgana iletişmiş olur.

Bir sonra ki yazıda, saldırıdan korunma yollarını inceleyeceğim. 🙂

Kaynaklar;

http://en.wikipedia.org/wiki/DNS_cache_poisoning
http://www.scanit.be/advisory-2007-11-14.html
https://www.kb.cert.org/CERT_WEB%5Cservices%5Cvul-notes.nsf/id/800113
http://support.microsoft.com/default.aspx?scid=kb;en-us;241352
http://www.bilgiguvenligi.gov.tr/index.php?option=com_content&task=view&id=294&Itemid=6
Can Bican, Bahtiyar Bircan – DNS Önbellek Zehirlenmesi: Açıklık ve Kapanması

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir