DNS’e Yönelik DoS ve DDoS Saldırıları

DNS Flood DoS/DDoS Saldırıları

Bu saldırı tipi genelde iki şekilde gerçekleştirilir:

  • Hedef DNS sunucuya kapasitesinin üzerinde (bant genişliği olarak değil) DNS istekleri göndererek, normal isteklere cevap veremeyecek hale gelmesini sağlamak
  • Hedef DNS sunucu önündeki Firewall/IPS’ in “session” limitlerini zorlayarak Firewall arkasındaki tüm sistemlerin erişilemez olmasını sağlamak

Her iki yöntem için de ciddi oranlarda DNS sorgusu gönderilmesi gerekir. İnternet üzerinden edinilecek POC (proof of concept) araçlar incelendiğinde çoğunun Perl/Python gibi script dilleriyle yazıldığı ve paket gönderme kapasitelerinin maksimum 10.000-15.000 civarlarında olduğu görülecektir. Bu araçlar kullanılarak ciddi DNS DDoS testleri gerçekleştirilemez.

UDP Flood : UDP Flood saldırılarının temel amaçlarından biri UDP servisini koruyan Güvenlik Duvarı’nın oturum tablosunun dolması ve cevap veremez hale gelmesidir.

Boş UDP/53 Paketi ile DNS Paketi Arasındaki Farklar

DNS Flood saldırılarında sık yapılan hatalardan biri UDP 53 portuna gönderilen her paketin DNS olduğunu düşünmektir. Bu şekilde gerçekleştirilecek DDoS denemeleri hedef sistem önündeki IPS ve benzeri sistemler tarafından protokol anormalliğine takılarak hedefe ulaşamayacaktır. UDP port 53′e gönderilen boş /dolu(DNS olmayan içerik) ve DNS istekleri farklıdır. Hping gibi araçlar kullanılarak gerçekleştirilen UDP port 53 Flood saldırıları DNS Flood saldırısı olarak adlandırılamaz. UDP Flood belirlenen hedefe boş UDP (ya da rastgele doldurularak) paketleri göndermektir. DNS Flood ise DNS servisine yönelik rastgele DNS istekleri (DNS istekleri UDP)gönderilerek gerçekleştirilir.

Saldırılarda Sahte (spoofed) IP Adreslerinin Kullanımı

DNS Flood DoS/DDoS saldırıları genellikle sahte IP adresleri kullanılarak gerçekleştirilir. Sahte IP adresi kullanımı da temelde iki şekilde olmaktadır.

  • Rastgele seçilmiş IP adresleri
  • Bilinen DNS sunucuların IP adreslerinin kaynak olarak kullanımı

Bilinen DNS Sunucu IP Adreslerinden DNS Flood Gerçekleştirme

Tüm atak bir subnet ya da bir IP aralığı ya da bir ülke IP adresinden geliyormuş gibi gösterilebilir. Bu tip saldırılarda hedef DNS sunucunun önünde gönderilen paket sayısına göre rate limiting/karantina uygulayan IPS, DDoS Engelleme Sistemi varsa paket gönderilen sahte IP adresleri bu cihazlar tarafından engellenecektir. Bu da saldırgana internet üzerinde istediği IP adreslerini engelletme lüksü vermektedir.

Özellikle Türk Telekom, Google ve OpenDNS’ in IP adresleri kullanılarak gerçekleştirilen DNS Flood saldırılarına rastlanmaktadır. Bu tip gerçek DNS sunucuların ip adreslerinden geliyormuş gibi gerçekleştirilen DNS Flood ataklarını engellemek çok zordur.

DNS Performans Ölçümü

DNS sunucuya gelen isteklere döndüğü paketlerin süresi ölçülürse DNS sunucunun performansı ile ilgili bilgi edinilebilir. Performans ölçümü için çeşitli araçlar bulunmaktadır. En temel araç Linux sistemlerle birlikte gelen “dig” komutudur. Dig komutu ile DNS sunucunun cevap vermesinin ne kadar sürdüğü belirlenebilir.

Dig komutu çıktısındaki “;; Query time” satırı DNS’ in sorguya döndüğü cevap süresini belirler.

Amplified DNS DoS Saldırıları

Bu saldırı tipinde gönderilen DNS isteğine dönecek cevabın kat kat fazla olması özelliğini kullanır. Sisteme gönderilecek 50 byte’lık bir DNS isteğine yaklaşık 500 Byte cevap döndüğü düşünülürse saldırgan elindeki bant genişliğinin 10 katı kadar saldırı trafiği oluşturabilir.

a

Nasıl Önlemler Alınmalıdır?

Windows Server sunucularda default olarak DNS kurulu gelmektedir ve 53 nolu portu açık durumdadır. Bu portun kapatılması ve DNS özelliklerinden “recursive” sorgulara kapatılması gerekmektedir. Firewall tarafında şayet DNS sunucusu barındırmıyorsak 53 nolu porttan gelen sorgulara kapatılması gerekmektedir ve IDS tarafında bir kural yazılıp gelen paketlerin ortak özelliğine göre engeller konulursa sorun çözülmüş olacaktır.

NTP Amplification Attack

Her sistemin kendine ait bir sistem saati bulunmaktadır. Bu amaçla sistem saati tüm istemci ve sunucularda aynı olmasını sağlamak amacıyla bazı özel sunuculara bu görev verilmiştir. Bu sunuculara Network Time Protokol adı verilen bir servis yüklenmiş ve UDP 123 nolu porttan çalışması sağlanmıştır. İstemciler UDP 123 nolu porta tıpkı DNS’ e soru sorar gibi saati sorar ve NTP sunucusu da 123 nolu portundan cevap vermektedir. Bu aşamalarda herhangi bir kimlik doğrulama aşaması bulunmamaktadır. Kim soru sorarsa ona cevap dönmektedir. NTP sunucular, kendine daha önce sorgu yapan IP adreslerini bellekte tutar ve bunu bir sorgu ile öğrenmemize fırsat tanır.

NTP, UDP tabanlı olduğu için gönderilecek isteklerde kaynak IP adresi olarak DDOS saldırısı gerçekleştirilmek istenen hedef verilirse saldırgan 10 Mbps ile 300 Mbps trafik üretebilir. Yüzlerce NTP sunucusu bularak saldırganlar DNS amplificationda olduğu gibi eline 123 nolu porta cevap veren ve IP aralığı 1.1.1.1 den başlayıp 255.255.255.255 arasındaki tüm IP adreslerini arattığında aslında dünyadaki tüm NTP sunucularına ulaşabilmektedir.

DNS Flood DDoS Saldırılarını Yakalama

DNS Flood saldırılarını engellemek için kullanılan temel yöntemler:

  • DNS Caching
  • DNS Anycast
  • Rate Limiting
  • DFAS

Rate Limiting Yöntemi

Rate Limiting yöntemi ile belirli IP adreslerinden yapılacak UDP/DNS Flood saldırılarında kaynak IP adresi engellemesi amaçlanır. Ama UDP tabanlı protokollerde kaynak IP adresinin gerçek olup olmadığını anlamak çok zor olduğu için genellikle işe yaramaz bir yöntemdir. Bu yöntemi kullanan bir hedefe doğru saldırgan istediği IP adresinden geliyormuş gibi paketler göndererek istediği IP adresinin engellenmesini sağlayabilir (Türkiye IP bloklarından paket göndermek gibi).

DFAS

TCP üzerinden gerçekleştirilecek olan DDoS saldırılarını engellemek göreceli olarak daha kolaydır diyebiliriz. Bunun temel nedeni TCP üzerinden yapılacak saldırılarda saldırganın gerçek IP ile mi yoksa sahte IP ile mi saldırıp saldırmadığının anlaşabiliyor olmasıdır(basit mantık 3′lü el sıkışmayı tamamlıyorsa IP gerçektir). UDP üzerinden gerçekleştirilecek DDoS saldırılarını (UDP Flood, DNS Flood vs.) engellemek saldırı gerçekleştiren IP adreslerinin gerçek olup olmadığını anlamanın kesin bir yolu olmadığı için zordur. UDP kullanarak gerçekleştirilen saldırılarda genellikle ilk paketi engelle ikinci paketi kabul et(DFAS) gibi bir yöntem kullanılır.

DFAS Yönteminin Temeli

TCP ya da UDP ilk gelen paket için cevap vermez aynı paket tekrar gelirse pakete uygun cevap verilir ve ilgili IP adresine ait oturumu tutmaya başlar veya ilk pakete hatalı cevap döner(sıra numarası yanlış SYN-ACK) ve karşı taraftan RST gelmesini bekler. Ardından istemcinin gönderdiği TCP isteğine DDoS engelleme sistemi tarafından hatalı bir cevap dönülerek karşı taraftan RST paketi beklenir ve RST paketi alındıktan sonra IP adresinin gerçek olduğu belirlenerek paketlere izin verilir. DFAS yöntemi, gelen giden tüm paketler için değil saldırı anındaki ilk paketler için gerçekleştirilir.

Saldırı Anında Sistemin DNS İsteklerine Döndüğü Cevap:

IP 1.2.3.4.51798 > 5.6.7.8.53: 53698+ A? http://www.example.com. (37)

IP 5.6.7.8.53 > 1.2.3.4.51798: 53698 ServFail- 0/0/0 (37)

IP 1.2.3.4.34623 > 5.6.7.8.53: 61218+ A? http://www.example.com (37)

IP 5.6.7.8.53 > 1.2.3.4.34623: 61218*- 1/0/0 A 1.21.2.72 (53)

DNS Caching Cihazlarını Atlatma Saldırıları

Caching cihazları aynı tipte gelen sorgulamalar için caching işlemi yapabilmektedir ve yoğun saldırılarda DNS sunucuların en az seviyede etkilenmesini sağlamaktadır.

12

DNS Flood saldırılarında gönderilen tüm DNS isteklerindeki alan adlarını rastgele seçilirse caching cihazları gelen tüm istekleri gerçek DNS sunuculara yönlendirecektir.

Eğer test yapılan DNS sunucu authoritive (yetkili) tipte sunucu ise rastgele domainler için yapılacak sorgulamalara cevap dönülmeyecektir. Bu tip sunuculara karşı hedef DNS sunucuda tutulan herhangi bir domainin sub-domainlerine(rastgele üretilmiş) yönelik paketlerin gönderilmesi DNS sunucunun performansını etkileyecektir.

DNS Hijacking

DNS Hijacking merkez DNS’ ler, kök DNS sunucularda, name serverı yönettiğiniz domain paneli üzerinde, kullanıcı üzerinde domain sunucularının tanımlı olduğu alanda değişiklik yapılmasını sağlayan hacking türüdür. Böylece DNS çözümleme işlemi sırasında bir yerlerde bizi doğru sunucuya yönlendirme yerine önceden planlanan ve gerçek olmayan bir sunucuya yönlendirmektedir. Eğer siz her hangi bir web sitesinin name serverlarının yönetimini ele geçirirseniz bu domainin yönetiminin tamamen ele geçirildiği anlamına gelir. Önceleri Domain Hacking ismi verilen domain haklarının illegal yollarla üzerine geçirilmesi işleminin, günümüzde hak sahipliği anlaşmaları ile garantiye alınarak domainin asıl sahibinin geri alması üzerinde birçok kolaylıklar sağlanmaktadır. DNS Hijacking işleminde siz domain hak sahipliğini geçici süre alsanız bile bu kısmi domain hack olur ve domainin yönetimini kısa süreli de olsa elinizde bulundurmuş olursunuz.

Burada dikkat edilmesi gereken şeylerden bir tanesi de şudur. DNS Hijacking işlemi DNS Spoofing ile kesinlikle karıştırılmamalıdır. Arp saldırılarından olan DNS spoofing işleminde olay yerel DNS lerle alakalıdır ve genelde yerel ağı ilgilendiren bir konudur.

DNS Spoofing

DNS Spoofing, DNS ön bellek zehirlenmesi, ya da DNS zehirlenmesi, DNS ad sunucusunun ön bellek veri tabanına veri eklenerek, ya da oradaki veriler değiştirilerek ad sunucunun yanlış IP adresleri dönmesine ve trafiğin başka bir bilgisayara (sıklıkla da saldırıyı gerçekleştirenin bilgisayarına) yönlendirilmesine neden olan bir saldırıdır.

Bu saldırıya maruz kalan bilgisayarınıza kullanıcı bir sayfaya (internet adresine) gitmeye çalıştığı zaman, isteği farklı bir adrese yönlendirilir. O noktada kullanıcının bilgisayarına worm, malware, web tarayıcı korsan programı veya başka türlü zararlı yazılımlar yüklenebilir, ya da kullanıcı gitmeye çalıştığı siteye benzer, ama sahte bir siteye çekilerek tuzağa düşürülebilir. İnternet üzerinde kullandığınız tüm bilgilerinize sahip olabilir. Buna banka şifreleriniz ve Facebook, mail vb. gibi internet şifreleriniz de dahildir.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s