DNS Nedir, DNS Sunucularına Yapılan Saldırılar Nelerdir?

Merhaba arkadaşlar, kısa süre önce Check Point araştırmacıları tarafından 17 yıldır var olan bir güvenlik açığı keşfedilmişti. Bu güvenlik açığı ile DNS sunucuları üzerinde daha çok durulmaya başlandı. Burada sizlere DNS nedir, DNS’e karşı yapılan saldırılar nelerdir ve bunlara karşı sunucunuzu nasıl koruyacağınıza dair elimden geldiğince bir şeyler yazmaya çalıştım.

DNS Nedir?

İnternet devasa bir bilgisayar ağıdır. İnternete bağlı her cihaza, diğer bilgisayarların tanımlamasına yardımcı olan benzersiz bir IP adresi atanır. IP adresi, üç nokta ile oktetlere ayrılmış sayı dizesidir (Örneğin; 94.138.202.202). Alan Adı Sistemi (DNS); kullanıcıların nümerik IP adresleri yerine İnternet Alan Adları kullanarak, web sitelerine bağlanmasını mümkün kılan yapıdır. 94.138.202.202 gibi bir IP adresini hatırlamak yerine, okankurtulus.com.tr kullanılması daha akılda kalıcıdır. DNS, telefon rehberinin akıllı telefonlarda yönetilme biçimine benzetilebilir. Tek tek telefon numaralarını hatırlamak yerine, numaralara karşılık atamış olduğumuz ad ve soy ad ile kolayca arama gerçekleştirebiliriz. Kısaca DNS IP adresini alan adına, alan adını ise IP adresine dönüştüren bir yapıdır.

DNS Nasıl Çalışır?

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

  1. Tarayıcımızı açarız ve adres çubuğuna www.okankurtulus.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 okankurtulus.com.tr adresine karşılık gelen bir IP adresi varsa diğer bütün adımlar atlanarak direkt olarak www.okankurtulus.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 bir DNS sunucusunun denetimini ele geçirdi. Önbellek üzerinden okankurtulus.com.tr adresinin IP adresini, kendi oluşturmuş olduğu IP adresi ile değiştirerek kullanıcıları okankurtulus.com.tr yerine kendi oluşturduğu siteye yönlendirebilir. DNS sunucuları TCP yerine UDP protokolü kullandığından ve şu anda UDP için herhangi bir doğrulama yöntemi bulunmadığından 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 Saldırısı

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 sunucusunun bu yapısı kullanılarak DNS sunucuları devre dışı bırakılabilmektedir. Örneğin, biz 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 doldurulur ve DNS sunucusu hizmet veremeyecek duruma getirilebilir. Hatta yakın bir zamanda Vodafone, Garanti Bankası gibi yerlerde görebilmiştik

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

Bu güvenlik açığından korunmak için otomatize 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.

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

Bilgi toplama aşamasında DNS enumeration en kritik adımlardan biridir. DNS Enumeration, bir web sitesinin veya ana bilgisayarın DNS sunucusunu sorgulayarak mümkün olduğunca fazla bilgi toplamak için kullanılan 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.

Leave a Reply

Your email address will not be published. Required fields are marked *