Birincisi, bu tür bir saldırı (esas olarak) başlığınızın da belirttiği gibi DNS'nin kendisini hedeflemez. Elbette DNS sunucularında bazı ek yükler yaratacaktır, ancak asıl amaç başka birini DDoS yapmaktır. Kötü sunucu yapılandırması durumu daha da kötüleştirebilir, ancak sonunda bu sorun DNS ve UDP'nin tasarımında ve aslında herhangi bir durum bilgisi olmayan iletişim protokolünün doğasında vardır.
Temel olarak şu şekilde çalışır: Saldırgan, (DNS) sunucusuna normal (DNS) sorguları gönderir. Bu sorgular, sanki hedef sisteminden geliyormuş gibi görünmeye zorlanır. DNS sunucusu şimdi soruyu yanıtlar ve yanıtı iddia edilen kökenine geri gönderir - kurban. Bu yüzden buna yansıma saldırısı denir .
Bu mümkündür, çünkü vatansız iletişimin kaynağını (UDP üzerinden DNS olarak) bir kartpostaldaki gönderen adresine güvenebileceğiniz kadar doğrulayabilirsiniz. Sunucunun, bir sorgunun meşru veya böyle bir saldırının parçası olup olmadığına karar vermesinin bir yolu yoktur. DNS, buradaki en popüler protokoldür, çünkü etrafında çok sayıda sunucu vardır ve bunu kullanmak için çok fazla teknik bilgiye veya özel donanıma ihtiyacınız yoktur.
İşleri daha da kötüleştirmek (ve saldırganlık açısından verimli hale getirmek) için amplifikasyon kısmına bakın. Saldırganın trafiğinin sonuçta ortaya çıkan trafiğe eşit olması çok fazla zarar vermez. Saldırganın tek yararı, adresinin DNS sunucusunun arkasında gizlenmesidir. Gönderen adresini doğrudan taklit edebilirdi, DNS üzerinden yeniden yönlendirmeye gerek kalmayacaktı. Ancak DNS yanıt veriyor ve bu da DNS'nin bu kadar popüler olmasının bir başka noktası da sorudan çok daha büyük olabilir . Kullanılan kesin sorgulara bağlı olarak bu konuda farklı sayılar bulabilirsiniz, ancak sunucu özyinelemeli sorgular gerçekleştirecek kadar kolaysa , 1: 60'a kadar çıkabilir.senin için. Bu nedenle saldırganın çok sayıda kötü amaçlı trafik üretmesi için kontrolü altında çok sayıda makineye ihtiyacı yoktur.
Halka açık internette yüzlerce ve binlerce "açık" DNS sunucusunu kolayca bulabildiğiniz için, bildiği her bir açık DNS sunucusu altmış kat artırılmış sorgularını hedefe altmış katlı sorgularını yansıtacaksa, bir saldırganın ne kadar az iş yapması gerektiğine dair hızlı matematik yapabilirsiniz. Başlangıçta söylediğim gibi, buna karşı önlem için gerçekten iyi bir yol yoktur. Doğal olarak, birçok DNS sunucusu, yanlış yapılandırma nedeniyle, olmamasına rağmen herkese açıktır. Ancak açık olması gereken çok sayıda açık sunucu var, çünkü tam olarak amaçları bu.
Bir isteğin bir saldırının parçası olup olmadığını söyleyemezsiniz, ancak tek seçeneğiniz artık sunucuyu çalıştırmamaktır. Hız sınırlaması ve diğer oyuncaklarla uğraşabilirsiniz, ancak bundan tamamen kurtulamazsınız. Eğlenmek için DNS sağlıyorsanız, isteklerin kaynak IP'sini kara listeye alabilirsiniz. Ancak daha büyük bir ölçekte olursanız, bu mağdura daha da zarar verir. Unutmayın, DNS sunucusunda görebileceğiniz tek şey kurbanın adresidir. Şirketinizin sağlayıcınızın DNS'si tarafından saldırıya uğradığını ve sağlayıcınızın şirketiniz için DNS hizmetini kesmeye karar verdiğini düşünün. Saldırgan bunu servis reddi ile ilgili bazilyon bonus puanı olarak değerlendirebilir .
Her neyse, bu saldırılar gece gündüz gerçekleşiyor ve internetin "arka plan gürültüsü" olarak kabul ediliyor. Herkese açık (özyinelemeli) bir DNS sunucusu kurarsanız, rastgele saldırılara katılmanız çok uzun sürmez. Tabii ki bazen büyük altyapılar (dns kök sunucuları gibi) çoğaltmak için yanlış kullanıldığında işler gerçekten kötüleşir, ancak bu durumlarda saldırı "normal" seviyelere inene kadar proaktif karşı önlemler personell tarafından alınır.
Şimdiye kadar öğretme. Sorunuzu cevaplamak için sonunda:
Sunucunuzun kısıtlama olmadan sorguları yanıtlaması durumunda savunmasız olduğunu biliyorsunuz. Dönemi. Yinelemeli sorgular sunuyorsanız, sunucunuz saldırgan için belirtilen 1:60 oranını oluşturabilir. Sadece özyinelemesiz hizmet veriyorsa o kadar da kötü değil, ama yine de ...
Yani...
- gerçekten herkese açık bir DNS sunucusu çalıştırmanız gerektiğinden emin olun
- Gerekirse, BIND
allow-recursion
ve allow-query
yönergelerine bir göz atın
- DNS sunucunuz kendi bölgeniz için yetkili olacaksa ,
allow-recursion
"none" olarak ayarlanmış hiçbir özyineleme gerekmez .
- diğer etki alanları için bir çözümleyici çalıştırmak istiyorsanız , izin verilen kullanıcıları sorgular ve yinelemeli sorgular için kısıtlayın. Bahsedilen yönergelerde IP adreslerini, ağları veya erişim listelerini tanımlayabilirsiniz
- DNS trafiğini yalnızca BIND'de değil, sistem düzeyinde de sınırlamayı düşünün . Çok basit bir örnek olarak, bu iptables kuralları her IP adresinden dakikada 10'dan fazla sorguya izin vermeyecektir:
.
iptables -A INPUT -p udp --dport 53 --set --name dnslimit
iptables -A INPUT -p udp --dport 53 -m recent --update --seconds 60 --hitcount 11 --name dnslimit -j DROP
Şimdi, bu noktaları göz önünde bulundurarak, gitmek için iyi olmalısınız. Sunucunuzda hala kötü niyetli trafik olabilir, ancak iyi gecelerin uykusunu alacak miktarlarda olmayabilir.