top of page

DNS nedir? DNS Hijacking nedir?

  • İbrahim Mert COŞKUN
  • Jul 5, 2018
  • 4 min read

Selamlar. Uzun ve yorucu bir Final - Büt döneminden sonra nihayet yazı yazma fırsatı bulabildim. Bu yazıda DNS nedir ve DNS üzerinde yapılabilen bir saldırı türü olan "DNS Hijacking" konusuna değineceğiz. DNS hijacking hakkında konuşmadan önce DNS nedir, ne değildir ve türleri nelerdir gibi temel sorunları halledelim.

DNS nedir?

DNS; Domain Name Server'ın kısaltmasıdır. Türkçeye Alan adı server'ları olarak da çevirilebilir. Daha kolay bir açıklama getirelim. Web siteleri sunucularda bir IP adresi üzerine kayıtlıdır. Bir çoğumuz tarayıcımızın adres çubuğuna sitenin adını ve uzantısını yazarız (google.com, imertcoskun.com gibi). Halbuki işin arka planı biraz farklı. Yazdığımız bu site isimleri "DNS serverları" dediğimiz sunucuda sorgulanır ve hangi IP adresine denk geliyorsa o IP adresine gider ve site karşımıza gelir.

Örneğin "google.com" adresini ziyaret etmek istediğinizde, bilgisayarınız yerel DNS sunucusuna başvurarak bu adrese karşılık gelen "216.58.206.174" IP adresini bulacaktır. Bilgisayarınızda tanımlı DNS sunucusu bu çevrimi yalnız başına gerçekleştirmez; kesin bir cevap alana kadar IP adresini öğrenmek için bir dizi DNS sunucusuna başvurur. Yani siz adres çubuğuna bu IP adresini yazdığınız zaman yine gideceğiniz yer google.com olacaktır. Bu sayede 32 bitlik karmaşık bir sayıyı ezberlemek yerine akılda kalıcı, kolay isimleri ezberlemek ve akılda tutmak daha kolay olabiliyor. Yani DNS sunucuları internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır. DNS sistemini bir tür telefon rehberine de benzetebiliriz.

DNS sistemi isim sunucularından ve çözümleyicilerden oluşur. İsim sunucuları olarak düzenlenen bilgisayarlar host isimlerine karşılık gelen IP adreslerini tutarlar. Çözümleyiciler ise DNS istemcileridir. DNS istemcilerde, DNS sunucu ya da sunucuların adresleri bulunur. Bir istemci girdiği isme karşılık gelen IP adresini bulmak isteyeceği zaman isim sunucuya başvurur. İsim sunucu (DNS) sunucusu da eğer kendi veritabanın da öyle bir isim var ise karşılık gelen IP adresini getirir ve işlem tamamlanmış olur. Bir DNS sunucusunun çalışma şekli şu şekildedir;

1 - Bilgisayarınız erişmek istediğiniz adresin IP adresini makinanızda bulunan DNS sunucusuna sorar.

2 - DNS sunucusu dünya üzerinde bulunan 13 adet "Root Name Server"lara erişmek istediğiniz adresi sorgular. Eğer yazdığınız isim kendi DNS sunucunuzda bulunmuyorsa bir üst DNS sunucusuna sorar. Böylelikle bulana kadar DNS sürekli sorar.

3 - DNS server girdiğiniz uzantıya göre arama yapar. .com üzerinden bir arama yaptığını düşünelim. DNS kendi sunucusundaki .com domainin IP adresini bulur ve yönlendirir.

4 - .com sunucusu kendi kayıtlarındaki "google.com" DNS sunucusunun IP adresini verir.

5 - Son olarak "google.com" domainin tutulduğu DNS sunucusuna hangi IP'de sorgusu getirilir.

6 - google.com IP'si DNS sunucunuza giderilir.

Artık DNS sunucunuz da "google.com" adresinin IP adresi kaydedilmiştir. Artık makineniz "google.com" için gitmesi gereken IP adresini biliyor.

DNS türleri hakkında daha detaylı bilgi için:

https://pressable.com/blog/2014/12/23/dns-record-types-explained/

https://bidb.itu.edu.tr/eskiler/seyirdefteri/blog/2013/09/06/dns-(domain-name-system---etki-alanı-ad-sunucusu)

DNS hijacking

DNS hijacking; DNS sorgu sonuçlarının değiştirilmesidir. Genel tanım olarak DNS sunucularını bizim internete çıkmak için kullandığımız adres olarak tanıtabiliriz. DNS hijacking konusuna tam girmeden önce DNSSec hakkında biraz bilgi verelim.

Yukarıda da bahsettiğimiz gibi DNS sorgusu ile gelen IP arasındaki bilgiler sayesinde bir siteye bağlanırız. Ancak bu işlem sırasında gelen ve giden veri açık olarak iletilebilir ve bu da bir tehdit oluşturmaktadır. Bu sayede bilgiler izlenilebilir ve araya girecek üçüncü bir kişi tarafından man in the middle attack saldırısı da yapılabilir. Bu da DNS sorgularınızı değiştererek sizi farklı bir yere yönlendirebilir.

İşte tam bu noktada DNSSec devreye giriyor. DNSSec istemci ile sunucu arasındaki gelen ve giden veri trafiğini şifreli olarak iletilmesini sağlar. Bu sayede araya girecek bir üçüncü kişinin aradaki trafiği izlemesi olanaksız hale gelecektir.(!)

DNSSec mekanizmasında trafik "kriptolanmaz". Veriler IP adresinin doğruluğu ile iletilir. Yani istemci makina ile sunucu makina arasındaki trafik olduğu sürece gönderilen ve alınan paketler'de ki makinalar, başta olduğu gibi aynı IP adresi ile haberleşiyorlarsa mekanizma devam eder. Bu belkide geçici veya tam olarak kesin bir çözüm getirmez (IP adreslerinin değiştilebilme olasılığı vs.) ancak belirli noktalarda güvenliği sağladığı kesin. Ek olarak SSL gibi güvenli bağlantılar ile birlikte kullanıldığı zaman yeterince güvenliği sağlayacağını düşünüyorum. Peki ya eğer veriler kriptolanmıyorsa aradaki veri alış - veri nasıl korunuyor?

DNSSec yapısı KSK (Key Signing Key) vs ZSK (Zone Signing Key) olmak üzere iki anahtar çiftinden oluşur. Her ne kadar belirli bir "key" sistemi ile çalışsa da saldırganlar tarafından "brute force" ile kırılabilir. DNSSec bu tür saldırılarda sistemi güçlendirmek için bir tür imzalama yapar. DNSSec, DNS kayıtlarını imzalarken ZKS anahtarını, imzaları doğrularken de KSK anahtar çiftini kullanır ve bu çiftler belirli aralıklar ile değişir. Bu sayede hem imzalama da hem de imza doğrulamalarında güvenlik sağlanmış oluyor.

Konumuza geri dönelim.

DNS hijacking ile bizim gitmek istediğimiz sunucunun gerek merkez DNS'ler üzerinde , gerek kök DNS sunucularda , gerek name server'ı yönettiğiniz domain paneli üzerinde , gerekse host üzerinde name serverlarin tanımlı olduğu alanda - değişiklik yapılmasını sağlayan hacking türüdür. Bu sayede bizim istediğimiz bir yol üzerinden değilde saldırganın hedeflediği bir yol üzerinden internetten çıkış yapabiliriz.

Bir çok kişi DNS sunucularını korumanın yöntemi olarak sadece DNSSec sisteminin yeterli olabileceğini düşünsede bu oldukça yanlış bir kanı. Güvenlik dünyasın da eğer bir sistemi korumak istiyorsanız belirli bir zincirler doğrultusunda bunu başarabilirsiniz. DNS güvenliğinde de işler böyle yürüyor. Dns sistemini korumanın sadece belirli bir alanı korumak değil tamamiyle bir güvenlik dizisi alarak birbirine bağlı değişkenlerden oluştuğunu bilmek gerekiyor.

Mesela DNSsec ile diğer DNS saldırılarından ( DNS cache poisoning) gibi saldırılardan koruyabilir evet. Ama DNSSec yapılan DDOS saldırılarına karşı bir koruma aracı değildir. Yaptığım bir çok araştırma ve sohbet ettiğim bir kaç forumda ne yazık ki bu bilgi yanlış biliniyor. DNSSec ile makinelerinde ki DNS trafiğini korunduğunu düşünen insanlar ne yazık ki bu bilgiyi atlıyor. Aynı zamanda bir ülkenin internetini kesmenin yolunu DNS yapısına saldırıldığından da bihaberler. Hatta daha da ileri giderek bir ülkenin servis sağlayıcısının web sitesine saldırarak veya çökerterek ülkede ki interneti kesilebileceğini söyleyen kişi sayısı da ne yazık ki biraz fazla

Peki DNS hijacking ile neler yapılabilir?

Eğer bir sistemin Name server'larını ele geçirirseniz bu alan adının tamamen ele geçirdiğinizin anlamına gelir. DNS hijacking ile domain üzerinde bir hak sahibi kazanırsınız ve domain yönetimini elinizde bulundurursunuz. Ele geçirilen bir domain DNS'lerin yönetimini değiştirerek istenilen hedefe trafiği çekebilir. Aradaki trafiği belirli bir süzgeçten geçirerek bir ara sunucu görevini görür ve istenilen tüm bilgileri alabilir. Bu sayede;

- Arada ki mail'ler

- Tüm internet alt yapısı

- Tüm ağ trafiği

- Şifreler, kredi kartı bilgileri vs.

Kısacası elde etmek istediğiniz her şeyi alabilirsiniz. Bundan dolayı "Emrullah Akdemir" hocamın da dediği gibi;

Bir ülke için DNS candır, DNS namustur.

Comments


Dünya üzerinde haksızlığa uğrayan, yardım bekleyen, Hak arayan onca mazlumun yanında bu sitenin haklarının pekte bir önemi yoktur. Tüm yazıları kullanabilirsiniz.

bottom of page