Siber Güvenlik

DNS Güvenlik Açıkları ve DNS Saldırı Türleri

DNS, "Domain Name System" tabirinin kısaltmasıdır. Söz konusu terimin Türkçe karşılığı ise "alan isimlendirme sistemi"dir. Bir diğer ifade ile; "DNS, internetin telefon rehberidir" diyebiliriz. DNS, isimlerin IP’ye dönüştürülesi maksadıyla kullanılan ve 256 karaktere kadar da büyüyebilen bir sistemdir. Host, cihazın adını ve İnternet "domain"ini gösterir. DNS, bilgisayar ya da bilgisayar sistemleri ile çalışan cihazların IP’lerini çözerek birbirleri ile haberleşmelerini sağlar.

Fatih KENDİR |

29.11.2022

DNS’nin asıl amacı, ağ üzerinde yaşanan IP numarası ve alan adı ile ilgili sorulara cevap vermektir. Bu amaca yönelik de yaygın olarak kullanılan BIND yazılımından istifade edilir. Kullanıcı, bir siteye ulaşmak istediğinde DNS sayesinde bir sitenin, İnternetin hangi alanında bulunduğu kolay bir şekilde çözülür. Bu sayede pratik bir şekilde erişim gerçekleştirebilirsiniz.

 

DNS, son derece basit bir sistem ile çalışır. Sistem, makinelerin karşılıklı olarak etkileşimini sağlar. Günlük hayatta IP adreslerinin hatırlanması kolay olmadığı için bununu yerine domain isimlendirme sisteminden istifade edilir.

 

DNS Nasıl Çalışır?

 

DNS sunucusu, DNS sisteminin yürütüldüğü mekanizmaya verilen isimdir. Yani web adresini, IP adresine çeviren ana İnternet unsurudur. DNS, İnternetteki her bir alanı adlandırmaya ve bunları birbirine bağlayan sistemdir. Ağı oluşturan her birimin kendine ait bir IP adresi bulunur. Kullanıcı herhangi bir İnternet sitesine gireceği zaman, bu IP adresleri ile bağlantı kurar. Kullanıcı her sitenin IP adresini aklında tutamayacağı için web sitelerinin isimleri ile bağlantı kurar. Site adresleri tarayıcıya yazıldıktan sonra server, bağlantı kurmak için IP adresini kullanır.

 

DNS sistemi sunucu ve çözümleyici isimli iki faktör tarafından çalıştırılır. İsim sunucuları, IP adresi bilgilerini muhafaza eder. Çözümleyiciler ise, DNS isteyen ekipmanlardır. Çözümleyicilerde; DNS sunucuları ve sunucuların adresleri bulunur. Bir çözümleyici, bilgisayarın adına karşılık gelen bir IP adresini bulmak istediğinde sunucuya yönlenir.

 

DNS Nedir


Şekil 1: DNS çalışma şekli

 

İnternet adresleri öncelikle ülkelere göre sınıflandırılır. Ülkemizdeki İnternet sitelerinin sonundaki TR, bu sınıflandırmayı ifade eder. Her ülkenin kendine özel bir sınıflandırma sembolü vardır. Sadece Amerika Birleşik Devletleri, istisnai bir durum sergiler. Bu da DNS'in Amerika'da geliştirilmiş olmasından kaynaklanır. Sınıflandırılan İnternet siteleri, "com", "gov", "edu" gibi alt bölümlere ayrılır. Bu ifadelerin anlamlarını şu şekilde sıralayabiliriz:

 

com : İngilizce "commercial" kelimesinin kısaltmasıdır. Ticari kuruluş olan İnternet sitelerini gösterir.

org : İngilizce "organization" kelimesinden gelir. Ticari niteliğe sahip olmayan kurumları temsil eder.

mil : İngilizce "military" kelimesinin kısaltılmasından türetilmiştir. Askeri kurum sitelerini gösterir.

gov : İngilizce "government" kelimesinin kısaltılmasıdır. Devlet'e bağlı olarak faaliyet gösteren İnternet sitelerinde kullanılır.

edu : İngilizce "education" kelimesinden gelir. Eğitim kuruluşlarını ifade eder.

net : "Network" kelimesinden üretilmiştir ve uluslararası faaliyet alanına sahip kurumları ifade eder.

 

Alan adları, belirlenen kurallar çerçevesinde verilir. Herkes istediği alan adını kullanamaz.

 

DNS Nedir

Şekil 2: DNS ağaç yapısı

 

DNS İçin Gerekli Dosya Türleri Nelerdir?

 

DNS’de kullanılan bir kısım dosya türleri vardır. Dosya türleri olmadan DNS’yi çalıştırmanız mümkün değildir. Söz konusu dosya türlerini aşağıda bulabilirsiniz.

 

boot : Bu dosya türü, DNS çalışmaya başladığı anda okunan dosyaların ilkidir.

local : bu dosya türü, makinenin gösterdiği adresin etkin şekilde çözümlenmesi için kullanılır.

ca : Root server olarak adlandırılan adreslerin tutulduğu dosya türü "named.ca"dır.

hosts : DNS alanında çalışan tüm makinelerin adreslerinin tutulduğu dosya türü "named.hosts"tur.

reverse : "Named.hosts" dosyasında tutulan IP adreslerini makinenin ismine çevirmek için "named.reverse" dosyası kullanılır.

 

DNS Güvenlik Açıkları ve DNS saldırı türleri

 

Her sistem gibi DNS üzerinde de güvenlik açıkları bulunmaktadır. DNS sunucularına yapılan önemli saldırıların bazılarını aşağıda yer vermeye çalıştık.

 

DNS Zone Transfer Zafiyeti

 

DNS sorgu türü AXFR olarak da bilinen DNS bölge aktarımı, bir DNS sunucusunun veritabanının bir bölümünün bir kopyasını başka bir DNS sunucusuna geçirdiği bir işlemdir. Veritabanının çoğaltılan kısmı bölge olarak bilinir. Bir bölge aktarımı, TCP protokolünü kullanarak istemci-sunucu şeklinde gerçekleşir.

 

Bölge aktarımı isteyen istemci, bir ana sunucudan veya birincil sunucudan veri isteyen bir bağımlı sunucu veya ikincil sunucu olabilir.

 

AXFR kimlik doğrulaması sunmaz, bundan dolayı herhangi bir istemci bir DNS sunucusundan tüm DNS kayıtlarının kopyasını isteyebilir. Bu, bir tür koruma getirilmediği sürece, saldırganın bir etki alanı için tüm ana bilgisayarların bir listesini alabileceği ve onlara çok sayıda potansiyel saldırı vektörü verebileceği anlamına gelir.

 

Zafiyeti Önlemek için

 

1. Yalnızca güvenilir IP'lerden bölge aktarımına izin verin. Aşağıda, BIND DNS sunucusunda bunun nasıl düzeltileceğine bir örnek verilmiştir;

 

/etc/named.conf'a gidin ve şunları ekleyin:

 

ACL trusted-servers 
        {  
            IP_DNS1; // ns1  
            IP_DNS2; // ns2  
        };
        zone company.com 
        {  
            type master;   file "zones/zonetransfer.me"; 
            allow-transfer { trusted-servers; };  
        };

 

2. Zone transferleri için Transaction SIGnatures'ı (TSIG) kullanın.

 

DNS Önbellek Zehirlenmesi

 

DNS sahtekarlığı (DNS spoofing) veya DNS önbelleği zehirlenmesi (DNS Cache Poisoning), çevrimiçi trafiği amaçlanan hedefi taklit eden sahte bir siteye yönlendirmek için değiştirilmiş DNS kayıtlarının kullanılmasını içerir. Kullanıcılar hileli hedefe ulaştıklarında, hesaplarında oturum açmaları istenir.

 

Bilgileri girdikten sonra, esasen tehdit aktörüne erişim kimlik bilgilerinin yanı sıra hileli oturum açma formuna girilen tüm hassas bilgileri çalma fırsatı verirler. Ek olarak, bu kötü amaçlı web siteleri genellikle son kullanıcıların bilgisayarlarına virüsler veya solucanlar yüklemek için kullanılır ve tehdit aktörüne makineye ve depoladığı tüm verilere uzun vadeli erişim sağlar.

 

DNS Nedir

Şekil 3: DNS ön bellek zehirlenmesi

 

DNS önbellek zehirlenmesinin çözüm yollarından birisi DNSSEC kullanmaktır. DNSSEC, Etki Alanı Adı Sistemi Güvenlik Uzantılarının kısaltmasıdır ve DNS veri bütünlüğünü ve kaynağını doğrulamanın bir yoludur. DNS başlangıçta böyle bir doğrulama olmaksızın tasarlanmıştır, bu nedenle DNS zehirlenmesi mümkündür.

 

TLS/SSL'ye çok benzeyen DNSSEC, verileri doğrulamak ve doğrulamak için ortak anahtar şifrelemesi (bilgileri dijital olarak imzalamanın bir yolu) kullanır. DNSSEC uzantıları 2005'te yayınlandı, ancak DNSSEC henüz yaygınlaşmadı ve bu da DNS'yi saldırılara karşı hâlâ savunmasız bırakıyor. DNSSEC  ile detaylı yapılandırma için şu makaleyi göz atabilirsiniz. ?

 

DNS Amplification Atağı

 

DNS Amplification Atağı, bir saldırganın hedef sunucuyu veya ağı artan miktarda trafikle boğarak sunucuyu ve çevresindeki altyapıyı erişilemez hale getirmek için açık DNS çözümleyicilerinin işlevselliğinden yararlandığı yansıma tabanlı hacimsel dağıtılmış hizmet reddi (DDoS) saldırısıdır.

 

Atak çalışma şekli

 

Tüm yükseltme (Amplification) saldırıları, bir saldırgan ile hedeflenen web kaynağı arasındaki bant genişliği tüketimindeki eşitsizlikten yararlanır. Maliyet eşitsizliği birçok istekte büyütüldüğünde, ortaya çıkan trafik hacmi ağ altyapısını bozabilir. Kötü niyetli kullanıcı, büyük yanıtlarla sonuçlanan küçük sorgular göndererek, daha azından daha fazlasını elde edebilir. Bir botnet'teki her botun benzer taleplerde bulunmasıyla bu büyütmeyi çarparak, saldırgan hem tespit edilmekten şaşırır hem de büyük ölçüde artan saldırı trafiğinin avantajlarından yararlanır.

 

Her botun, hedeflenen kurbanın gerçek kaynak IP adresi olarak değiştirilen sahte bir IP adresiyle DNS çözümleyicilerini açma istekleri yapması sonucunda hedef, DNS çözümleyicilerinden bir yanıt alır. Saldırgan, büyük miktarda trafik oluşturmak için isteği, DNS çözümleyicilerinden olabildiğince büyük bir yanıt oluşturacak şekilde yapılandırır. Sonuç olarak, hedef saldırganın ilk trafiğinde bir artış alır ve ağları sahte trafikle tıkanarak hizmet reddine neden olur.

 

DNS Nedir

Şekil 4: DNS Amplification

 

DNS yükseltme saldırısı dört adıma ayrılabilir:

 

  1. Saldırgan, sahte IP adreslerine sahip UDP paketlerini bir DNS yineleyicisine göndermek için güvenliği ihlal edilmiş bir uç nokta kullanır. Paketlerdeki sahte adres kurbanın gerçek IP adresini gösterir.
  2. UDP paketlerinin her biri, mümkün olan en büyük yanıtı almak için genellikle “ANY” gibi bir bağımsız değişkeni ileterek bir DNS çözümleyicisine istekte bulunur.
  3. İstekleri aldıktan sonra, yanıt vererek yardımcı olmaya çalışan DNS çözümleyicisi, sahte IP adresine büyük bir yanıt gönderir.
  4. Hedefin IP adresi yanıtı alır ve çevredeki ağ altyapısı trafik seliyle boğulur ve bu da hizmet reddine neden olur (DOS).

 

Ağ altyapısını kapatmak için birkaç istek yeterli olmasa da aynı anda birden çok istek gönderildiğinde DNS çözümleyici tüm isteklere yanıt veremez hale gelir ve saldırı gerçekleşmiş olur.

 

Zafiyeti Önlemek için

 

Bu saldırıdan korunmak için trafiği dağıtmak ve tek bir DNS sunucusunu aşırı yüklemekten kaçınmak için DNS Anycast kullanılabilir. Sunuculardan IoT cihazlarına kadar olan tüm istemcilerin yalnızca kurum içinden DNS isteklerini işleyecek şekilde yapılandırılmış yerel dahili DNS sunucularını kullanması sağlanabilir.

 

Alabileceğiniz önlemlerden bir diğeri, yalnızca 127.0.0.1'i (localhost) dinlemek için sunucuya bir sınır koymaktır. Kullanılmıyorsa udp protokolü tamamen devre dışı bırakabilirsiniz. Diğer bir önlem ise 11211 numaralı port tanımı için bir güvenlik duvarı kullanmak ve yalnızca beyaz listeye alınmış IP'lerle sınırlı olarak sunucu erişimine izin vermektir (DNS sıkılaştırma).

 

Subdomain Takeover

 

Amazon, Github, Cloudfront vb. bulut hizmetleri son yıllarda popülerlik kazamaya başladı. Bu hizmetlerin popülerlik kazanması ile bu zafiyeti çok duymaya başladık. En sık karşılaşılan yöntem ise DNS sunucusu üzerinde CNAME kaydının yapıldığı domain adresinin kullanım süresinin dolmasıdır. Bir domain başka bir domain için DNS sunucuları üzerinde bir CNAME kaydı kullanır. Örneğin; finance.company.com subdomainin DNS sunucusu üzerinde CNAME kaydı company.com.tr adına kayıtlı olabilir. Belli bir süre sonra company.com.tr domainin süresi bitebilir ve bunun üzerine artık company.com.tr domaini başkası tarafından satın alınabilir. CNAME kaydı DNS Zone üzerinden silinmediği sürece saldırgan company.com.tr domain adını satın aldıktan sonra finance.company.com subdomaini üzerinde yetki sahibi olabilir.

 

Bu güvenlik açığından korunmak için otomatik araçlar ile CNAME kayıtları temizlenebilir, tüm alan adlarının CNAME bilgileri ve içerikleri kontrol edilebilir. Alan adlarını ziyaret ettiğinizde aşağıdaki tabloda görmüş olduğunuz hatalar ile karşılaşılıyorsa subdomain takeover zafiyetinden etkilenebilme durumu söz konusu olabilir.

 

DNS Nedir

Şekil 5: DNS Subdomain Takeover

 

DNS Tünelleme

 

DNS Tüneli saldırısı, tespit edilmesi çok zor olduğu için çok popüler bir siber tehdittir. DNS isteklerini saldırgan tarafından kontrol edilen bir sunucuya yönlendirmek için kullanılır ve onlara gizli bir komut ve kontrol kanalı ile veri sızdırma yolu sağlar.

 

DNS tünelleme saldırısı, DNS protokolünden yararlanır ve bir istemci-sunucu modeli aracılığıyla kötü amaçlı yazılım veya verileri tünellemeyi başarır. Bu saldırının gerçekte nasıl çalıştığını açıklamaya çalışalım.

 

Her şey, bir kullanıcı kötü amaçlı yazılım indirdiğinde veya siber saldırgan kötü niyetli bir yükü aktarmak için güvenliği ihlal edilmiş cihazın bir güvenlik açığından yararlanmayı başardığında başlar. Çoğu durumda, siber saldırgan güvenliği ihlal edilmiş cihazla bağlantısını sürdürmek ister, yani hedef cihazda komut çalıştırma veya verileri sızdırma fırsatına sahip olmak ister. Bu nedenle, saldırgan bir komuta ve kontrol (command and control) bağlantısı kurabilir. Bu tür trafikleri katmanlı ağ güvenlik önlemlerine fark edilmeden geçirebilmelidir, ayrıca hedef ağı geçene kadar tespit edilmekten kaçınmalıdır. Bu nedenle, tünel kurulumu için DNS uygun bir seçenektir. Bu (tünelleme), veri (komutlar) içeren bir yük taşıyan ve çevre güvenlik önlemlerinden geçen bir protokol bağlantısını ifade eden siber güvenlikte yaygın bir terimdir. Bu şekilde, DNS tünelleme saldırısı, DNS sorguları içindeki bilgileri gizlemeyi ve bunları siber suçlu tarafından kontrol edilen bir sunucuya göndermeyi başarır. DNS trafiği, güvenlik duvarları gibi çevre güvenlik önlemlerinden serbestçe geçer. Siber saldırgan, DNS tünelini ayarlamak amacıyla bir alan adı kaydeder ve kendi kontrolü altında yetkili bir ad sunucusu yapılandırır. Ardından güvenliği ihlal edilmiş cihazdaki kötü amaçlı yazılım , kodlanmış bir iletişimi tanımlayan bir alt etki alanı için bir DNS sorgusu başlatır. Recursive DNS sunucusu (DNS çözümleyici), DNS sorgusunu alır ve bunu saldırganın sunucusuna yönlendirir. Sunucu, güvenliği ihlal edilmiş cihaza veri (komut) içeren kötü amaçlı DNS verileriyle yanıt verir. Bu sayede herhangi bir güvenlik önlemi devreye girmeden saldırı geçer.

 

DNS Nedir

Şekil 6: DNS Tünelleme Saldırı Örneği

 

Tünellemenin tespit edilebilmesi için birkaç yöntem vardır. DNS üzerinden yapılan sorgu ve cevapların boyutları kontrol edilebilir. Yüksek boyutlu sorgu ve cevaplar şüpheli olarak değerlendirilebilir. Belirli bir süre içerisinde art arda yapılan istekler kontrol edilebilir. Bilinmeyen veya daha önce kategorize edilmemiş alan adlarına doğru olan DNS sorguları kontrol edilebilir. Şüpheli görülen trafikler için alarm mekanizmaları kurularak güvenlik duvarı seviyesinde önlem alınabilir.

 

DNS Enumeration

 

DNS Enumeration, bir web sitesinin veya ana bilgisayarın DNS sunucusunu sorgulayarak mümkün olduğunca fazla bilgi toplamak için kullanılan kritik yöntemlerden biridir. Saldırıdan daha çok bilgi toplama olarak düşünebilir. Ancak doğru yapılandırılmayan DNS sunucu olduğundan bu bilgi toplama süreci kritik veri ifşasına doğru bizi götürmektedir. Yukarıda bahsetmiş olduğumuz birçok zafiyet bu aşamada tespit edilebilmektedir. DNSenum, Fierce, Nslookup gibi araçların dışında bazı online sitelerde bu hizmeti sağlamaktadır.

 

Eğer DNS sunucunuz iyi bir şekilde yapılandırılmadıysa DNS Enumeration ile hassas bilgiler dışarıya sızdırılabilir. Bunun önüne geçebilmek için DNS sunucularınızın sıkılaştırılması gereklidir. Bu sıkılaştırmalara bir örnek kullanılan BIND versiyon bilgisinin saklanmasıdır.

 

Bu işlem için;

 

Genellikle /etc/named.conf konumunda bulunan named.conf dosyanızı açın

 

Dosya için de “options { … };” alanını bulun. Bu bloğun sonunda bir sürüm değişkeni bulacaksınız (eğer yoksa bir tane ekleyin):

 

version "BIND";

 

Kullandığınız sürümünüzü gizlemek için bunu başka bir şeye ayarlayın, örneğin:

 

version "Forbidden";

 

Yapılandırma dosyasını kaydedin ve kapatın. Daha sonra ilgili servis restart edin.

 

service named restart

 

Referanslar

[1] https://www.milleni.com.tr/blog/teknik/dns-nedir
[2] https://lostar.com.tr/2020/08/dns-zafiyetleri-ve-guvenligi.html
[3] https://www.cloudflare.com/learning/ddos/dns-amplification-ddos-attack/
[4] https://securitytrails.com/blog/8-tips-to-prevent-dns-attacks
[5] https://www.cloudns.net/blog/dns-tunneling-attack-what-is-it-and-how-to-protect-ourselves/

Fatih KENDİR |

29.11.2022

Yorumlar

Osman Ölmez
03.12.2022 - 07:18

Elinize sağlık harika bir içerik olmuş esreva sitesinde de görmüştüm ama sizin ki daha iyi bir içerik

Melih Emre Yıldız
28.12.2022 - 01:29

<base href="javascript:/a/-alert(1)////////">

<a href=../melih/acc.html>test</a>

<a href>sjsdjs</a>