DNS Amplification Saldırısı Nedir?

DNS Amplification Saldırısı Nedir?

Herkese merhaba. Bu yazımda daha önce birçok kez denenmiş olan, ülkemizde de örnekleri bulunan Dns Amplification atağından söz edeceğim. Teori kısmını açıkladıktan sonra aynı zamanda Kali Linux ile bu atağı uygulamalı bir şekilde anlatmaya çalışacağım.

Dns Nedir? Nasıl Çalışır?

DNS (Domain Name System), kısaca internetin telefon defteri olarak tanımlanabilir. Bilgisayarlar birbirleri ile iletişime geçebilmek için, birbirlerinin sahip oldukları IP adreslerine ihtiyaç duyarlar. Kullanıcılar, bir başka bilgisayar ile iletişime geçmek için, iletişime geçeceği IP adreslerini bilmeleri gerekir. Eskiden, bilmediğimiz telefon numaraları için kalınca bir telefon defteri kitabı her evde bulunmaktaydı. Bilmediğimiz numaralar içinde açıp o telefon defterinden numarayı bulup ulaşmaya çalışırdık. DNS de hemen hemen bu işe yaramaktadır. Bilmediğimiz IP adresleri için, DNS sunucularına başvurulmaktadır. Çok fazla IP adresi bulunduğu ve akılda tutulması zor olduğu için alan adı sistemi olarak adlandırılan DNS protokolü ortaya çıkmıştır. 53 numaralı port adresini kullanıp UDP protokolü ile birlikte çalışmaktadır. Dns sunucuları, internet adreslerinin IP adresi karşılığını kayıtlı tutmaktadır.

Örneğin 172.217.17.174 yerine google.com domain adresini yazmak gibi düşünebiliriz. Peki DNS nasıl çalışır?

Bir web sitesinin adresini tarayıcımızın adres çubuğuna girdiğimizde tarayıcı öncelikle kendi lokal cache’inde ilgili adres için IP’nin bulunup bulunmadığına bakar. İstenen bilgi lokalde bulunmazsa, bilgisayarda tanımlı olan DNS sunucusuna recursive olarak istek atılır. Bilgiyarımızda tanımlı olan DNS sunucusu genellikle internet sağlayıcımızın adresi olur. İlgili sunucu, istenen bilgi kendisinde varsa isteği direkt olarak cevaplarken istenen cevap yoksa bir üst sunucuya istekte bulunur. İstenen cevap zincirdeki sunucularda bulunmazsa kaydı tutan asıl sunucuya kadar gidilir, cevap bulunur ve dönülür.

DNS Amplification Saldırısı Nedir?

Daha önce bu saldırı ismini, Garanti Bankası’na yapılan saldırı olarak sık sık duymuştuk. Bu atak tamamen DDoS saldırı türlerinden biridir. Yani amacı, kullanıcıların ağ üzerinde bulunan sistemlere erişimlerini yavaşlatmak veya ağa bağlı bir sisteme, servise, web sitesine veya uygulamaya erişimlerini engellemektedir.

DNS çok önemli bir protokol olduğundan hem güvenlik uzmanlarının hem de hackerlar tarafından sık sık kullanılmaktadır. DNS Amplification saldırısının temel mantığı da şudur: Bir DNS isteğine dönecek cevabın kat kat fazla olmasıdır. Sisteme gönderilecek 50 byte’lık bir DNS isteğine, 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.

DNS Amplification saldırısının adımlarını bu görsel ile açıklayabiliriz.

  • Adım 1 de, saldırgan botnet ağında, recursive sorguya açık DNS sunucusu bulur ve daha önce hazırladığı özel alan adını -webserver.com-sorgulatır.
  • Kendi cache inde bulunmayan isteği ara DNS sunucusu gidip ana DNS sunucusuna (root servers) sorar. (50 byte)
  • Root Dns sunucu webserver.com için gerekli cevabı döner. (500 byte)
  • Ara DNS sunucu cevabı ön belleğine alarak bir kopyasını saldırgana döner. Burada amaç ara Dns sunucunun dönen 500 byte’lık cevabı ön belleğe almasını sağlamaktır.
  • Saldırganın elinde bulunduğu botnet ağı webserver.com alan adını sorgular ve cevabın cachede olup olmadığını anlamaya çalışır.
  • Ara DNS sunucu ön belleğinden 500 byte cevap döner.
  • Saldırgan kurbanın IP adresinden geliyormuş gibi sahte DNS paketleri gönderir. DNS paketleri webserver.com adresini sorgulamaktadır. (ort. 100.000 dns q/s)
  • Ara DNS sunucu gelen her paket için 500 byte lık cevabı kurban sistemlere dönmeye çalışacaktır. Böylece ara Dns sunucu 100.000×500 byte trafik üreterek saldırganın kendi trafiğinin 10 katı kadar çoğaltarak kurbana saldırıyor gözükecektir.

Burada saldırganın bant genişliğinin de oldukça fazla olması gerekmektedir. Kendi bant genişliğinin düşük bir boyutta olursa saldırının etkisi de o kadar küçük olacaktır. Yukarıdaki örnek saldırı adımları, reflective bir saldırı örneğidir.

DNS Amplification saldırısını tespit etmek kolay olsa bile, saldırıya maruz kalan hedefin IP adresine gelen yoğun trafikten dolayı saldırganın IP adresinin tespit edilmesi zorlaşabilir. Çünkü saldırgan, sahte IP adresi kullanarak DNS Amplification saldırısı gerçekleştirebilir. DDoS saldırılarının temel mantığı da zaten saldırganların, sahte IP’ler ya da botnet ağları kullanarak gizlenmesidir.

Garanti Bankası DDoS Saldırısı

27 Ekim 2019 tarihinde yaşanan DDoS saldırısı ile, Garanti BBVA ve telekom operatörleri hizmetlerini veremediler. Bu saldırı sonrasında Garanti Bankası mobil ve web hizmetleri, 2 gün boyunca hizmet veremedi. Birçok siber güvenlik uzmanı farklı saldırı türü üzerinde dursa da, saldırı DNS protokolü üzerinden gerçekleşen bir saldırı olarak nitelendirildi. Bu saldırıyı bir uzman şu şekilde değerlendirdi;

“Siber saldırıyı gerçekleştirenler dışardan atağı büyüterek, çok az bant genişliği kullanarak yapıyor. Megafonla bağırmak gibi düşün. Böyle olunca hem yurt içinden hem yurt dışından Garanti’ye DNS cevapları geliyor. Garanti, tüm operatörlerden hizmet alıyor. Diyelim ki Garanti’nin 1’er Gigabitlik üç tane hattı var, operatörlerin de 10’ar Gigabitlik birer hattı var; 30 Gigabit ediyor. Gelen trafik 100 Gigabit. Gelen trafik taşıyor. Garanti’nin yapabileceği hiçbir şey yok.”

Fakat Telekom ekipleri bu saldırıda olaya tam anlamıyla hızlı bir cevap veremediğini söyleyebilirim.

DNS Amplification saldırıları, dns çözümleyicilerinin internette de herkese açık olması ve çok sayıda olduğu için kolaylıkla gerçekleştirilebilir. Bu nedenle DNS Amplification saldırısı bir sistemin internet erişimini yavaşlatmak, hatta erişimi sonlandırmak için kullanılan popüler saldırılardan birisidir.

DNS Amplification Saldırı Uygulaması

Bu saldırıyı yapabilmek için Kali Linux makinesini kullanacağım. Saldırıyı gerçekleştirebilmek için Saddam, Tsunami, dnsdrdos adında birçok tool bulunmaktadır. Ben bu uygulamada “dnsdrdos” toolu ile saldırıyı gerçekleştireceğim.

DNS çözümleyicilerinin bazıları, internette herkese açık olarak paylaşılmaktadır. Saldırıyı yapabilmek için bu dns çözümleyicilerini tespit etmemiz gerekmektedir. Tarayıcıdan “public-dns.info” adresine giderek, istekte bulunacağımız DNS çözümleyicilerine ulaşabiliriz.

DNS çözümleyicilerini seçip, “dnsliste” adında bir txt uzantılı dosyaya kaydettim. Çözümleyicileri seçerken %100 durumda olanları seçtim. Ülkelere göre de yukarıdaki siteden filtreleme işlemi yapıp, dns çözümleyici seçebilirsiniz.

“wget” komutunu kullanarak link üzerinden dnsdrdos.c dosyasını indirdim. Bazı durumlarda bu adresten indirirken parçalama arızası alabilirsiniz. Bu durumda http://www.nullsecurity.net adresindeki https://raw.githubusercontent.com/nullsecuritynet/tools/master/dos/dnsdrdos/release/dnsdrdos.c dnsdrdos.c dosyasını indirmeyi deneyebilirsiniz. Ya da bu adresteki kodları kopyalayıp, “dnsdrdos.c” dosyası oluşturup içerisine kopyalayabilirsiniz.

İndirdiğimiz ya da kaydettiğimiz dnsdrdos.c dosyasını, “gcc” programı ile derlememiz gerekmektedir. Derleme işlemi sonrası “dnsdrdos” dosyası oluşarak artık çalışmaya hazır bir hale gelmiştir. Fakat çalıştırmadan önce “chmod u+x” komutunu kullanarak çalıştırma izni verebiliriz. Bazı durumlarda, “permission denied” hatası ile karşılaşabilmekteyiz. “ls -ll” ile dosyaları listelediğimiz zaman, çalıştırma izinleri verildiğini görmekteyiz.

Artık saldırıyı gerçekleştirebilmek için her şey hazır. Kaydettiğimiz Dns çözümleyicilerine istekte bulunmak için dnsdrdos programını kullanacağız. -s parametresi ile source ip verilir. Burada bir botnet ağımız olmadığı için kendi IP adresimi belirttim. -l parametresi ile gönderilecek paket sayısını belirttik. Oldukça yüksek bir paket sayısıdır bu. Tüm bu parametreleri girdikten sonra “enter” tuşuna basarak saldırıyı başlattık.

Wireshark programı üzerinden, “DNS” trafiğini izlediğimiz zaman, belirlediğimiz source ip’den, destination adreslere 69 byte boyutunda paketler gönderilmiştir. -l parametresi ile belirttiğimiz paket sayısı kadar destinationlara paket gönderilecektir. Hedef makine üzerinden DNS çözümleyicilerine herhangi bir istek yapılmadığı halde, hedef makinenin IP adresi kullanılarak, DNS çözümleyicilerine paketler gönderildi. Böylece DNS Amplification saldırısı tamamlanmış oldu.

Nasıl Korunulur?

DNS Amplification saldırısı bir DDoS saldırısı olduğu için, tam anlamıyla önlenebileceği söylenemez. Fakat bazı çözümler uygulanabilir. Örneğin Garanti Bankası saldırısında, DDoS Protection servisi tam olarak istenildiği gibi çalışamamıştır. Bunun nedeni de gerekli yatırımlarının yapılmamasıdır. DDoS saldırılarına karşı kurumlar mutlaka yatırımlarını doğru bir şekilde yapmaları gerekmektedir.

Bu saldırıda amaç bant genişliğini doldurmak olduğu için, DNS bant genişliğini arttırmak önlem olabilir. Bu saldırı, herkese açık DNS çözümleyicileri ile gerçekleştirilirse, kaynak IP adresinin engellenebilir. Gelen paket içeriği filtrelenmelidir. Ayrıca açık DNS çözümleyicilerinin sayısı azaltılabilir. DNS çözümleyici hizmetlerini yalnızca güvenilir bir etki alanından gelen aygıtlara sağlamalıdır.

Kötü yapılandırılmış güvenlik duvarları, internetten gelen trafiğin kontrol edilmeden geçmesine izin verebilir. Bu nedenden dolayı kurumlar, kendi ağlarından kaynaklanan ve internete bağlı trafiğin gerçekte yerel ağda bulunan bir IP adresinden yapılıp yapılmadığını tespit etmelidirler.

Mümkünse ve kullanılan sistem performansı bu işlem için uygunsa güvenlik duvarı veya DDoS koruma  gibi sistemler üzerinde UDP ve ICMP gibi protokoller için de durum tabanlı (statefull) kontrol gerçekleştirebilecek özelliklerin etkinleştirilmesi tavsiye edilmektedir. Bu sayede, örneğin saldırı DNS protokolü üzerinden geliyor ise daha önce açılmış bir bağlantıya ait olmayan ve kaynak portu 53 olan paketler otomatik olarak engellenebilir.

Son olarak bazı kurumlarda DNS trafiğinin hacmi, konum olarak dağıtılmış birçok DNS sunucusu arasında paylaştırılarak denge sağlanabilir. Bu işlem için DNS Anycast uygulaması kullanılabilir. Böylece oluşan trafik tüm sunuculara dağıtılarak sunucular arasında dengeleme sağlanabilir.

Bu yazımda DNS Ampflication saldırısının ne olduğundan, nasıl gerçekleştirildiğinden ve nasıl önlenebileceğinden bahsetmeye çalıştım. Bir sonraki yazımda görüşmek üzere. Sağlıklı günler dilerim.

Kaynaklar

https://youtu.be/yE3ABdDuczU

https://www.cloudflare.com/learning/ddos/dns-amplification-ddos-attack/

https://wiki.bgasecurity.com/DNS_Amplification_DoS_Sald%C4%B1r%C4%B1s%C4%B1

https://medium.com/@ramin_karimhani/dns-domain-name-system-nedi%CC%87r-ve-nasil-%C3%A7ali%C5%9Fir-465513138670

https://www.priviasecurity.com/dns-amplification-attack/

Related Posts

Facebook Comments