DNS Zafiyetleri ve Güvenliği

DNS Nedir? 

İnternet, kendisine bağlanan her cihaza, benzersiz bir IP adresinin atandığı devasa bir ortam. IP adresi olarak tanımladığımız adres ise, üç nokta ile oktetlere ayrılmış bir sayı dizesidir (Örneğin; xxx.xx.191.201).  

Kullanıcıların nümerik IP adresleri yerine İnternet Alan Adları kullanarak, web sitelerine bağlanmasını mümkün kılan yapının ismi ise; Alan Adı Sistemi (DNS).  

DNS, telefon rehberinin akıllı telefonlarda yönetilme biçimine benzetilebilir. xxx.xx.191.201 gibi bir IP adresini hatırlamak yerine, www.lostar.com.tr kullanılması daha akılda kalıcı. Tek tek telefon numaralarını hatırlamak yerine, numaralara karşılık atamış olduğumuz ad ve soyadı ile kolayca arama gerçekleştirdiğimizi hayal edebiliriz. Kısaca DNS IP adresini alan adına, alan adını ise IP adresine dönüştüren bir yapıya verilen isimdir. 

DNS Nasıl Çalışır? 

www.lostar.com.tr sitemizi ziyaret etmek istediğimizi düşünelim.  

1. Tarayıcımızın adres çubuğuna www.lostar.com.tr yazdığımızda web sitenin IP adresinin tespit edilmesi için bir DNS sorgusu gönderilir. Bu istek ile ilk olarak bilgisayarımızın DNS önbelleğinde bulunan DNS kayıtlarına bakılır ve eğer kayıtlar arasında lostar.com.tr adresine karşılık gelen bir IP adresi varsa diğer bütün adımlar atlanarak direkt olarak www.lostar.com.tr adresine yönlendirilme işlemi gerçekleşir. 

2. DNS önbelleğimizde kayıt bulunmazsa sorgu yerel DNS sunucumuza gönderilir. Bu genelde internet sağlayıcımızın sunucuları olur ve bunlara “çözümleyici” adı verilmektedir. 

3. Çözümleyicide de DNS kaydı bulunmaz ise sorgu DNS kayıtlarını bulmak için “Root Name Server” diye isimlendirilen başka bir sunucuya yönlendirilir. Root Name Server’lar dünya çapında DNS verilerinin depolanmasından ve sistemin sorunsuz bir şekilde çalışmasından sorumlu sunuculardır. DNS kaydı Root Name Server tarafından bulunduktan sonra bilgisayarımıza geri döner ve bilgisayarımız tarafından DNS önbelleğine alınır. 

4. DNS kayıtları bulunduğunda web sitenin barındırıldığı sunucunun IP adresi ile bağlantı kurulur. 

DNS Güvenlik Açıkları 

Her sistem gibi DNS üzerinde de güvenlik açıkları bulunmaktadır. Şimdi DNS sunucularına yapılan önemli saldırıların bazılarını gözden geçireceğiz. 

DNS Zone Transfer Zafiyeti 

DNS sunucuları bazı durumlarda AXFR protokolü üzerinden birbirleri ile DNS kayıtlarını paylaşabilmektedir. DNS kayıtlarının paylaşılmasının iki temel sebebi vardır. Biri yük dengeleme diğeri ise hata toleransı dediğimiz yani bir sunucunun hizmet veremez duruma gelmesi anında öteki sunucunun işlemleri yürütmesini sağlamaktır. Eğer konfigürasyon eksikliği ile yetkisiz kişilerin DNS Zone Transfer yapmasına izin verilirse, DNS sunucusuna girilmiş tüm adres kayıtlarına erişim söz konusu olabilir. Böylece saldırganlar DNS kaydı bulunan sistemler hakkında bilgi sahibi olabilirler.  

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. Bu güvenlik açığının oluşmasını önlemek için, DNS sunucusunun yalnızca güvenilen IP adreslerinden DNS Zone Transfer izni verecek şekilde yapılandırılması gerekir.  

DNS Önbellek Zehirlenmesi 

DNS önbellek zehirlenmesi, DNS önbelleğine yanlış veya bilerek bilgi girme eylemidir, böylece DNS sorguları yanlış bir yanıt döndürür ve kullanıcılar yanlış web sitelerine yönlendirilir. Örneğin; bir saldırganın bir DNS sunucusunun denetimini ele geçirdiğini düşünsek, önbellek üzerinden Lostar.com.tr adresinin IP adresini, kendi oluşturmuş olduğu IP adresi ile değiştirdiğinde kullanıcıları Lostar.com.tr yerine kendi oluşturduğu siteye yönlendirebilmesi söz konusu olabilir. DNS sunucuları TCP yerine UDP protokolü kullandığı ve hâlihazırda UDP protokolü için herhangi bir doğrulama yöntemi de bulunmadığı için bu saldırılar çok etkili olabilmektedir. 

DNS önbellek zehirlenmesinin çözüm yollarından birisi DNSSEC kullanmaktır. DNSSEC kuruluşların DNS kayıtlarını ortak anahtar şifrelemesi kullanarak imzalanmasına izin vererek, bilgisayarınızın bir DNS kaydına güvenilip güvenilmeyeceğini ve yanlış bir adrese yönlendirilip yönlendirilmediğini kontrol eder. 

DNS Amplification Attacks 

DNS sunucusunun yapısını incelediğimizde dönen cevapların boyutlarının, DNS isteklerine göre daha büyük olduğunu görürüz. Bu saldırı tipi ile DNS sunucuları devre dışı bırakılabilmektedir. Örneğin, bir DNS sunucusuna 100 byte’lik bir istek gönderdiğimizde bize dönecek cevap 1000 byte olabilmektedir. Saldırgan DNS isteklerini, hedefin IP adresinden geliyormuş gibi gösterebilir. DNS yapısı gereği 100 byte’lik isteklerin cevapları 1000 byte boyutuna ulaşır ve DNS sunucusu cevapları hedefin IP adresine göndermeye başlar. Bu şekilde hedefin bant genişliği doldurularak ve DNS sunucusu hizmet veremeyecek duruma getirilebilir. 

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. 

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; kamp.lostarguvenlik.com subdomainin DNS sunucusu üzerinde CNAME kaydı lostar.com.tr adına kayıtlı olabilir. Belli bir süre sonra lostar.com.tr domainin süresi bitebilir ve bunun üzerine artık lostar.com.tr domaini başkası tarafından satın alınabilir. CNAME kaydı DNS Zone üzerinden silinmediği sürece saldırgan lostar.com.tr domain adını satın aldıktan sonra kamp.lostarguvenlik.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. 

ekran görüntüsü, dizüstü, bilgisayar içeren bir resim

Açıklama otomatik olarak oluşturuldu

Microsoft DNS Sunucuda 17 Yıllık Güvenlik Açığı 

Kısa bir süre önce Check Point güvenlik araştırmacıları tarafından CVE-2020-1350 kodu ile DNS sunucularını etkileyen kritik bir güvenlik açığı yayınladı. Bu güvenlik açığını etkili kılan ise 17 yıldır var olmasıdır. Saldırgan özel olarak oluşturduğu DNS isteklerini hedef DNS sunucusuna göndererek sistem üzerinde yüksek yetki ile uzaktan komut çalıştırabilmektedir. Zararlı yazılımlar bu güvenlik açığını kullanarak sistemlere sızabiliyor ve verileri şifreleyebiliyor. Tahmini 140.000 civarı DNS sunucusunun internete açık olduğunu düşündüğümüzde saldırının boyutunun ne kadar büyük olabileceğini tahmin edebilirsiniz.  

Bu güvenlik açığından etkilenmemek için Windows tarafından yayınlanmış güncellemenin yapılması gereklidir. 

DNS Tünelleme 

DNS üzerinden başka protokollere ait verilerin taşınmasına DNS Tünelleme denir. Örneğin; saldırganlar RDP veya SSH bağlantısını DNS üzerinden yapabilir veya verileri dışarıya çıkartabilir. DNS veri aktarımı için tasarlanmadığından, birçok kuruluş DNS trafiğini kötü amaçlı etkinlik açısından izlemez. Bundan dolayı saldırganların en çok tercih ettiği yöntemlerden biri olabilmektedir. 2016 yılında yapılan araştırmaya göre sızdırılan verilerin %40’nın DNS üzerinden dışarıya çıkartıldığı belirtilmektedir. OilRig, Project Sauron, Feederbot gibi zararlı yazılımlar veriyi dışarı çıkarmak veya komuta sunucusuna bağlanmak için bu tekniği kullanmaktadır.  

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. Ek olarak IBM tarafından sunulan DNS Analyser aracı kullanılabilir.  

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. 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 iyi sıkılaştırılması gereklidir.  

DNS Güvenlik Çözümleri 

DNSSEC nedir? 

İlk zamanlarda çoğu sistemde olduğu gibi DNS sisteminde de güvenliğine çok önem verilememişti. Bu güvenlik eksikliklerin kaynaklı DNS sistemleri hedef alınmaya ve bazı güvenlik açıkları ortaya çıkmaya başladı. Bu güvenlik açıklarının sonucunda ise DNSSEC adında bir güvenlik yapısı geliştirildi.  

DNSSEC nasıl çalışır? 

Amacı verilere gömülü dijital imzaları doğrulayarak istemcileri sahte DNS verilerinden korumaktır. DNSSEC verileri doğrulamak için genel anahtar ve dijital imza kullanır. Mevcut A, CNAME, MX kayıtlarının dışında DNS sunucuna RRSIG ve DNSKEY gibi yeni kayıtlarda ekler. Bu yeni kayıtlar ortak anahtar şifrelemesi olarak bilinen bir yöntem kullanılarak etki alanını dijital olarak imzalamak için kullanılır. İmzalı bir ad sunucusu (nameserver) her bölge için ortak (public) ve özel (private) anahtara sahiptir. Birisi istekte bulunduğunda, özel anahtar ile veriyi şifreler ve alıcıya gönderir. Alıcı açık anahtar ile şifreyi çözümleyerek verinin içeriğine ulaşır. Üçüncü bir kişi araya girip istekleri değiştirmek isterse özel anahtar ile veriyi şifreleyemeyeceği için paketi şifrelemeden gönderecektir. Alıcı ortak anahtar ile veriyi açmak istediğinde sorunla karşılaşacaktır ve böylece gelen verinin sahte olduğunu anlayabilecektir.  

Ek olarak AntiDDoS, güvenlik duvarı gibi güvenlik çözümleri kullanılarak yukarıdaki bahsetmiş olduğumuz saldırıların önüne geçilebilir.