DNS Güvenliği

DNS Güvenlik Zaafiyetleri

DNS çok önemli bir protokol olduğu için yaygın kullanılan DNS sunucu yazılımları, hem güvenlik uzmanları hem de hackerlar tarafından sık sık incelenir ve bulunan güvenlik zafiyetleri yayınlanır.

Genel olarak DNS sunucularda bulunan güvenlik zafiyetlerini üç kategoride incelenebilir:

  • DNS sunucunun çalışmasını durdurabilecek zafiyetler
  • DNS sunucunun güvenliğini sıkıntıya sokacak zafiyetler
  • DNS sunucuyu kullanan istemcilerin güvenliğini sıkıntıya sokabilecek zafiyetler

DNS Güvenlik Tehditleri

Aşağıda, saldırganların DNS altyapısını tehdit ettikleri genel yöntemler verilmektedir:

Footprinting: Bir saldırganın DNS zone verilerini elde etme işlemidir; bu şekilde saldırgan, hassas ağ kaynaklarının DNS etki alanı adlarını, bilgisayar adlarını ve IP adreslerini elde edebilir. Saldırgan genelde bir ağın topolojisini çıkarmak veya alanını tutmak için bu DNS verilerini kullanarak saldırıya geçer. DNS etki alanı ve bilgisayar adları, bir etki alanı veya bilgisayarın işlevini veya konumunu gösterir. Saldırgan, ağdaki etki alanlarının ve bilgisayarların işlevini veya konumunu öğrenmek için bu DNS ilkesinden yararlanır.

Denial of Service: Saldırganın özyinelemeli (recursive) saldırılarla ağdaki bir veya birden çok DNS sunucusunu isteklere cevap veremez hale getirme girişimidir. Sorgularla taşmış bir DNS sunucusunda CPU kullanımı sonuçta en yüksek düzeye ulaşır ve DNS hizmeti kullanılamaz hale gelir. Ağda tam olarak çalışan bir DNS olmadan, ağ kullanıcıları, DNS üzerinden öğrenilen ağ hizmetlerini kullanamaz.

Data Modification: DNS’ i kullanarak ağda alan tutmuş olan bir saldırganın, kendi oluşturduğu IP paketlerinde geçerli IP adreslerini kullanarak, bu paketlere ağdaki geçerli bir IP adresinden gelmiş görüntüsü verme girişimidir. Buna genel olarak IP aldatma denir. Saldırgan, geçerli bir IP adresiyle (alt ağın IP adresi aralığı içindeki bir IP adresi) ağa erişim sağlayarak verileri yok edebilir veya başka saldırılar düzenleyebilir.

Redireciton: Saldırganın, DNS adlarına ilişkin sorguları kendi denetimi altındaki sunuculara yeniden yönlendirmesidir. Yeniden yönlendirme yöntemlerinden biri, DNS’in DNS önbelleğini hatalı DNS verileriyle kirletme ve böylece gelecekteki sorguları saldırganın denetimindeki sunuculara yönlendirebilme girişimidir. Örneğin, başlangıçta xxx.abc.com için bir sorgu yapıldıysa ve yanıtı, abc.com etki alanının dışındaki bir ad için (zararlikullanici.com gibi) bir kayıt sağladıysa, DNS, o ada ilişkin sorguyu çözümlemek üzere zararlikullanici.com için önbelleğe alınan verileri kullanır. Güvenli olmayan dinamik güncelleştirmelerde olduğu gibi bir saldırganın, DNS verilerine yazma erişimi olduğunda yeniden yönlendirme gerçekleştirilebilir.

Windows DNS Hizmetini Güvenli Hale Getirme

Windows, DNS hizmeti yukarıda verilen DNS tehditlerine karşı koyabilmek için güvenli bir şekilde yapılandırılabilir. Windows DNS hizmetinin güvenliğinin arttırılması beş ana alanda uygulanacak tedbirler ile sağlanabilmektedir.

aaa

DNS Sunucusunun Konumlandırılması

DNS tehditlerine karşı uygulanabilecek ilk adım DNS sunucularının kurum ağı içindeki yerleşimi ile ilgilidir.

DNS dağıtımı tasarlanırken aşağıdaki güvenlik prensiplerine dikkat edilmesi gerekmektedir:

  • Ağdaki bilgisayarların internetteki adları çözümlemesi gerekmiyorsa, internetle DNS iletişiminin kaldırılması
  • Kurum DNS’lerinin , iç DNS (güvenlik duvarının arkasındaki ) ve dış DNS (güvenlik duvarının önündeki) olarak ayrılması
  • İç DNS ad alanının iç DNS’de, dış DNS ad alanının internete açık dış DNS’lerde barındırılması
  • Güvenlik duvarının, dış DNS ile tek bir iç DNS arasında sadece UDP ve TCP 53. port iletişimine izin verecek şekilde yapılandırılması

DNS Sunucu Hizmeti Güvenliği

DNS hizmetini veren DNS’lerin, güvenliğinin sağlanması için aşağıdaki güvenlik prensiplerine dikkat edilmesi gerekmektedir:

Arabirimler: Default olarak, birden çok ağa bağlı bilgisayarda çalışan DNS hizmeti, IP adreslerinin tümünü kullanarak DNS sorgularını dinlemek üzere yapılandırılır. DNS hizmetinin dinlediği IP adresini, DNS istemcilerinin tercih edilen DNS sunucusu olarak kullandıkları IP adresi ile sınırlanması gerekmektedir. Bu durumda, örneğin iki adet ağ arabirimine sahip bir DNS sunucusu sadece DNS istemcilerinin bulunduğu ağa bağlı olan arabiriminden gelen DNS sorgularına cevap verecektir.

Önbelleğin Korunması: Default olarak DNS hizmeti, DNS sorgu yanıtları yetkisiz veya bozuk veriler içerdiğinde ortaya çıkan önbellek kirlenmesine karşı korunur. “Önbelleği kirlenmeye karşı güvence altına al” (Secure cache against pollution) seçeneği, bir saldırganın, DNS sunucusunun önbelleğini DNS sunucusunun istemediği kaynak kayıtlarıyla kirletmesini önler. Bu ayarın değiştirilmesi, DNS hizmetinin sağladığı yanıtların güvenilirliğini azaltır.

Özyineleme (Recursion): DNS sorguları bir dizi farklı yöntemle çözümlenir. İstemci, bazen, bir sorguyu önceki bir sorgudan elde ettiği önbellekteki bilgileri kullanarak yerel olarak yanıtlayabilir. DNS sunucusu, sorguyu yanıtlamak için önbelleğe aldığı kaynak kaydı (RR) bilgilerini kullanabilir. DNS sunucusu, sorgulanan kayıt önbellekte bulunmadığı zaman adı tam olarak çözümlemek için, istekte bulunan istemci adına diğer DNS sunucularını da (kök DNS sunucuları) sorgulayabilir veya onlara başvurabilir, daha sonra da istemciye yanıt gönderebilir. Bu işlem “özyineleme” (recursion) olarak bilinir. Default olarak, DNS hizmeti için özyineleme devre dışı değildir. Bu da DNS sunucusunun, DNS istemci sorgularını ona ileten DNS istemcileri ve DNS sunucuları için özyinelemeli sorgular gerçekleştirmesine olanak verir. Özyineleme, saldırganlar tarafından DNS sunucusu servis dışı bırakmak için kullanılabilir; dolayısıyla, ağdaki bir DNS sunucusunun, özyinelemeli sorguları alması amaçlanmıyorsa, özyineleme devre dışı bırakılmalıdır.

Kök ipuçları (Root Hints): DNS altyapınızda bir iç DNS kökünüz varsa, iç DNS sunucularının kök ipuçlarını, internet kök etki alanını barındıran DNS sunucularını değil, yalnızca kök etki alanınızı barındıran DNS sunucusunu gösterecek şekilde yapılandırılmalıdır.

Eski DNS Kaynak Kayıtları: Kullanılamayan ve belli bir süreden uzun zaman güncellenmeyen DNS kaynak kayıtları bir takım sorunlara yol açabilir. Fazla sayıda kullanılmayan DNS kaynak kayıt bilgisi DNS sunucunun disk alanını doldurup, uzun süren zone transferine yol açabilir. DNS sunucular kullanılmayan kaynak kayıtları için yapılan sorgulara cevap vererek istemcilerin isim çözümleme sorunu yaşamalarına yol açabilir. Kullanılmayan DNS kaynak kayıt bilgileri DNS sunucuda zamanla birikerek sorgulara cevap verme hızını düşürebilir ve performans sorunu yaşanmasına neden olabilir. Bunu engellemek için DNS sunucusu, eski DNS kaynak kayıtlarını belli bir süre sonunda otomatik olarak temizleyecek şekilde yapılandırılmalıdır.

Olay Kayıtları: Windows DNS sunucularda gerçekleşen olayların kayıtlarını tutmak için iki tip kayıt tanımlanmaktadır. Bunlar “Olay Günlüğü Kayıtları” (event logging) ve “Hata Ayıklama Kayıtları” (debug logging) dır. Olay günlüğü kayıtları DNS sunuculardaki hata ve uyarıları bildirir. Hata ayıklama kayıtları ile ise DNS sunucudan çıkan ve DNS sunucuya giren bütün paketleri ayrıntıları olarak kaydeder. Hata ayıklama kayıtlarında DNS sunucuda en az yapılan sorguların/alan transferlerinin (queries/transfers), güncellemelerin (updates) ve bildirimlerin (notification) kayıtları ayrıntılı seçenekler kullanılarak tutulmalıdır.

Erişim Kontrol Listeleri: Etki alanı kontrolcülerinde çalışan DNS sunucularında isteğe bağlı erişim kontrol listelerinin (DACL) güvenlik ihlallerine yol açmayacak şekilde yapılandırılması gerekmektedir. Bu erişim kontrol listeleri, Aktif Dizin kullanıcılarına ve DNS Sunucusu hizmetini yöneten gruplara ilişkin izinleri denetlenmesine imkân sağlar. Ayrıcalıklı haklar sadece yönetimden sorumlu yetkili gruplara veya kullanıcılara verilmelidir.

Dosya Sistemi: Windows işletim sistemini çalıştıran DNS sunucuları için her zaman NTFS dosya sistemi kullanılmalıdır. NTFS dosya sistemi, FAT ve FAT32’den daha güvenli bir dosya sistemidir ve etki alanları, kullanıcı hesapları ve diğer önemli güvenlik özellikleri için gereken özellikler de sağlamaktadır.

DNS Alanların (Zone) Güvenliği

Windows DNS hizmetinin güvenliğini sağlamada DNS alanlarının güvenli yapılandırılmış olması önemli rol oynar. Aşağıdaki DNS alanı (DNS Zone) yapılandırma seçenekleri hem standart, hem de Aktif Dizin ile tümleşik DNS alanlarının güvenliğini etkiler.

Aktif Dizin Tümleşik(Active Directory Integrated) DNS: Aktif Dizinin en temel özelliklerinden bir tanesi de DNS ile tümleşik bir halde çalışacak şekilde tasarlanmış olmasıdır. Aktif dizin ile tümleşik DNS sayesinde DNS alanları Aktif Dizin veri tabanında saklanır. DNS zoneları etki alanındaki bilgisayarlara ait Hostname-IP adresi tablolarının tutulduğu isim çözümlemelerinin yapılmasını sağlayan veri tabanı dosyası olarak tanımlanabilir. Aktif dizin ile DNS’ in entegre olması bu veri tabanının Aktif dizine ait bilgi veri tabanında tutulmasını sağlar. Yani DNS zoneları da Aktif dizinde birer nesne olarak saklanır. Bu durum DNS’ in güvenliğini önemli ölçüde arttıran bir yapı sunmaktadır. Aktif dizinin gelişmiş güvenlik özellikleri kullanılarak DNS alanlarına yetkisiz kişilerce erişilmesi engellenmiş olur. Ayrıca diğer Aktif dizin nesnelerinde olduğu gibi DNS zonelarındaki kaynak kayıtları da replikasyonlar ile etki alanında bulunan tüm Domain Controller-DC üzerinde birebir aynı olacak şekilde tutulur. DC, belli aralıklarla kendi aralarında senkronize olması (AD replikasyon) ile gerçekleştirilen bu durum olası bir hata sonucu oluşabilecek kritik veri kaybının da önüne geçilmesini sağlar.

Güvenli Dinamik Güncellemeler (Secure Dynamic Updates): Dinamik güncelleme, bir değişiklik olduğunda DNS istemci bilgisayarlarının kendi kaynak kayıtlarını bir DNS sunucusuna kaydetmesini ve dinamik olarak güncelleştirmesini sağlar. Bu, özellikle sık sık taşınan veya yer değiştiren ve IP adresi almak için DHCP kullanan istemcilerde, bölge kayıtlarının el ile yönetilmesi gereksinimini azaltır. Default olarak, Dinamik güncelleştirmeler ayarı, dinamik güncelleştirmelere izin verecek şekilde yapılandırılmaz. Bu, DNS zonelarını bir saldırganın güncelleştirme yapmasını önlediği için en güvenli ayardır, ancak bu ayar, (güvenli olmayan) dinamik güncelleştirmenin yönetim açısından sağladığı olanaklardan yararlanmanızı da önler. Bilgisayarların DNS verilerini güvenli biçimde güncelleştirmesini sağlamak için, DNS zonelarını Aktif Dizinde depolanması gerekmektedir. Güvenli dinamik güncelleme özelliği yetkisiz kişilerce veya yetkisiz kaynaklardan DNS isim alanı dosyalarına yanıltıcı veya yanlış bilgi girilerek DNS’ e yapılabilecek saldırıları önleyen bir özelliktir. Bu özellik etkinleştirilerek yetkisiz kullanıcıların (host), yani etki alanı dışından bilgisayarların, DNS üzerinde DNS bilgisi güncelleme işlemi yapamaması sağlanmalıdır.

Erişim Kontrol Listeleri: DNS sunucularda olduğu gibi Aktif Dizinde depolanan DNS zoneları da isteğe bağlı erişim kontrol listeleri (DACL) kullanılarak yönetilirler. Erişim kontrol listeleri DNS zonelarına ait alan dosyaları üzerinde kullanıcıların ve grupların sahip olduğu izinleri yapılandırmaya olanak verir. Ayrıcalıklı haklar sadece yönetimden sorumlu yetkili gruplara veya kullanıcılara verilmelidir.

Alan Transferlerinde Sınırlama: Alan transferi, DNS isim alanına ait tüm bilginin DNS sunucudan bir başka bilgisayara aktarılmasıdır. Yetkisiz kullanıcılar tarafından yapılacak zone transferleri etki alanında bulunan tüm bilgisayarların isim ve IP adreslerinin yetkisiz kişilerin eline geçmesi anlamına gelmektedir. Bu durum kötü niyetli kişilere network hakkında önemli ölçüde bilgi sağlar. Hangi bilgisayarın hangi IP adresine sahip olduğunu bilmek saldırıların daha kolay gerçekleştirilmesine yol açar. Bu sebeple zone transferleri ya tamamen kapatılmalı veya sadece belirli kullanıcıların zone transferi yapmasına izin verilmelidir. Default olarak, DNS Sunucusu hizmeti, yalnızca zone bilgilerinin bir alanın ad sunucusu (NS) kaynak kayıtlarında listelenen sunuculara aktarılmasına izin verir.

Alan Temsilcisi: DNS etki alanı adları için, ayrıca yönetilen DNS sunucularında barındırılan zonelara temsilci seçip seçmeme konusunda karar verirken, birden çok kişiye ağınıza ilişkin DNS verilerini yönetme becerisi vermenin güvenlik açısından etkilerini göz önünde bulundurmak gerekir. DNS alanı temsilcisi, tüm DNS verileri için tek bir yetkili DNS sunucusuna sahip olmanın güvenlik açısından yararları ile DNS ad alanınızın sorumluluğunu ayrı yöneticilere dağıtmanın yönetim açısından yararları arasında bir uyuşmazlığı içerir. Bu konu, özel bir DNS ad alanının üst düzey etki alanları için temsilci seçerken önemlidir, çünkü bu etki alanları çok duyarlı DNS verileri içerir.

DNS Kaynak Kayıtları Güvenliği

Aktif dizinde depolanan DNS kaynak kayıtlarına ait isteğe bağlı erişim kontrol listelerini (DACL) yetkisiz erişime izin vermeyecek şekilde yönetmek gerekmektedir. DACL, DNS kaynak kayıtlarına erişebilen Aktif Dizin kullanıcı ve gruplarının izinlerini denetlemeye olanak sağlar. Ağda DNS sunucuya erişen her bilgisayarın isim sorgulaması yapabilmesi için tüm kaynak kayıtlarının erişim kontrol listesinde (Everyoneread)” hakkı verilmiş olması gerekmektedir. Güvenlik açısından ayrıcalıklı haklar sadece yönetimden sorumlu yetkili gruplara veya kullanıcılara verilmelidir.

DNS İstemci Güvenliği

DNS hizmetini veren sunucu gibi DNS servisinden faydalanan istemcilerin de güvenliği önemlidir. Saldırganlar DNS hizmeti ile ilgili istemcileri yanıltarak veya yönlendirerek farklı tiplerde saldırılarda bulunabilirler. Bunun önüne geçmek için DNS istemcilerinin ağdaki yetkili DNS sunucudan hizmet aldığında emin olunmalıdır. 

Statik IP Adresli DNS Sunucu: Mümkün olan her durumda, bir DNS istemcisinin kullandığı “Prefered DNS Server, Alternate DNS Server”, statik IP adresleri kullanılmalıdır. DNS istemciler IP adreslerini bir DHCP sunucudan alıyorsa, kullanacakları DNS sunucusu adresleri DHCP sunucusunda yapılandırılabilir. Böylelikle istemciler IP adreslerini otomatik olarak DHCP sunucudan aldıkları gibi, DNS sunucularını da DHCP sunucudan öğrenirler. DNS istemcilerini Prefered DNS Server ve Alternate DNS Server için statik IP adresleri ile yapılandırarak, istemcilerin başka bir bilgisayarı DNS sunucu olarak kabul etmesi ile gerçekleşebilecek olası bir saldırı ortadan kaldırılabilir.

DNS İstemcilerini Kısıtlama: Bir DNS sunucusu yalnızca belirli IP adreslerini dinlemek üzere yapılandırılırsa, yalnızca bu IP adreslerini kullanmak üzere yapılandırılan DNS istemcileri DNS sunucusu ile bağlantı kurabilir. Bu sayede başka ağa ait istemcilerin DNS sunucusuna erişmeleri engellenecektir.

DNS Protokolünde IP Sahteciliği (IP Spoofing)

DNS, UDP tabanlı bir protokol olduğu için hem DNS istekleri hem de DNS cevaplarında kullanılan IP adresleri istenildiği gibi belirlenebilir. IP spoofing yapılabiliyor olması demek hem DNS isteklerinin hem de cevaplarının sahte olabileceği anlamına gelmektedir. Sahte DNS isteği üretmeyi engelleyecek herhangi bir yöntem bulunmamaktadır (URPF hariç). UDP katmanında IP spoofing için bir önlem olmaması nedeniyle DNS, IP sahteciliğini önlemek için uygulama seviyesinde iki temel önlem almıştır. Bu önlemlerden ilki DNS TXID başlık bilgisinin random olması diğeri de kaynak port numarasının random olarak belirlenmesidir.

DNS ve TCP İlişkisi

DNS paketleri 512 byte’ı geçmediği müddetçe UDP üzerinden taşınabilir. 512 byte’ı aşan DNS cevapları UDP üzerinden taşınamayacağı için TCP kullanılır (EDNS hariç). Cevabın 512 Byte’dan fazla olduğu ve TCP üzerinden taşınması gerektiğini istemci, DNS paketine (dönen DNS paketi) ait başlık bilgisine bakarak anlamaktadır. DNS paketinde “Truncated=1” olması durumunda DNS isteğinde bulunan aynı isteği TCP/53 üzerinden yapmayı deneyecektir.

EDNS destekli DNS sunucularda DNS cevapları yaklaşık 4000 Byte olabilir.

NOT: Çoğu DNS sunucu TCP/53’e kapalı olduğu için bu tip isteklere cevap vermeyecektir. DNS sunucu üzerinde TCP/53’ün açık olup olmadığı bu porta gönderilecek SYN paketlerine SYN/ACK cevabının dönmesi ile anlaşılabilir.

DNS sunucu üzerinde TCP/3 portu açık ise bu porta yönelik SYN Flood, TCP Connection Flood tipinde DDoS atakları gerçekleştirilebilir. DNS sunucu önünde SYN Cookie, SYN Proxy ya da benzeri bir koruma sistemi yoksa DNS sunucu kısa sürede hizmet veremez hale gelecektir.

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