Sık sık yapılan DDOS saldırılarına karşı nasıl savunma yapılır?

Yazar | Awen

Baş Editör | Guo Rui

Mayıs 2016'da, suçlu hackerlar dünya çapında birden fazla banka web sitesine karşı bir dizi DDoS saldırısı başlattı. Sonuç olarak, Ürdün, Güney Kore ve Monako gibi merkez bankalarının ağ sistemleri yarım saat boyunca felç oldu ve normal operasyonlarını gerçekleştiremedi.

Kasım 2016'da, Rusya'daki beş ana banka iki günlük bir DDoS saldırısına uğradı. 30 ülkeden 24.000 bilgisayar Zombi İnternet güçlü DDOS saldırıları başlatmaya devam ediyor.

Nisan 2017'nin başında, Jiangsu Eyaletindeki bir İnternet şirketinin sunucusu, DDoS trafiği tarafından sık sık saldırıya uğradı, bu da sunucuya bağlı birden fazla web sitesinin normal şekilde çalışmamasına ve ciddi kayıplara neden oldu.

Mart 2018'de Github, şimdiye kadar kaydedilen en büyük DDoS saldırısına uğradı. Saldırgan, küçük baytlı UDP tabanlı paket isteklerini, genel İnternet aracılığıyla yanlış yapılandırılmış memcached sunucuya gönderir. Buna karşılık, memcached sunucusu, Github'a çok sayıda orantısız yanıt göndererek büyük ölçekli bir DDoS saldırısı oluşturur.

Eylül 2019'un başında, Pekin Belediye Asayiş Bürosu Siber Güvenlik Kolordusu (bundan böyle "Ağ Güvenlik Birlikleri" olarak anılacaktır), "dağıtılmış hizmet engelleme saldırıları" gibi yasa dışı suçlara karşı ülke çapında özel bir kampanya başlattı. Üç ay içinde, Siber Güvenlik Birliği ülke çapında suçlu zanlıları tutukladı3 79 Ad, Pekin'deki 7268 ana bilgisayar temizlendi.

......

DDOS saldırısı nedir?

Mesela aynı anda 100 kişiyi ağırlayabilecek bir lokanta açtım, bir rakibim de karşı kapıda bir lokanta açtı, yarışmacı bu restorana yemek yemeden ve içmeden oturmak için 300 kişi tuttu. Restoran Dangdang ile dolu ve normal çalışamıyor. Bilgisayardaki bu tezahür hizmet reddi dağıtılmış. Bilgisayar sisteminde, ağ protokollerinde ve işletim sistemlerinde bazı eksiklikler kullanır ve ağ saldırılarını gerçekleştirmek için aldatma ve kamuflaj stratejileri kullanır, böylece web sitesi sunucusuna yanıt gerektiren, ağ bant genişliğini veya sistem kaynaklarını tüketen ve ağın veya sistemin aşırı yüklenmesine neden olan büyük miktarda bilgi akınına uğrar. Felç gelince ve normal ağ hizmetleri sağlamayı bırakın.

Dağıtılmış Hizmet Reddi saldırısı (İngilizce, Dağıtılmış Hizmet Reddi anlamına gelir, kısaca DDoS), farklı konumlarda birden çok saldırganın aynı anda bir veya birkaç hedefe saldırılar başlatması veya bir saldırganın farklı konumlarda bulunan birden fazla makineyi kontrol etmesi anlamına gelir. Ve bu makineleri kurbanlara aynı anda saldırmak için kullanın.

Bir saldırı sırasında, kaynak IP adresi sahte olabilir. Genellikle, saldırgan bir DDOS saldırısı başlatmadan önce binlerce savunmasız bilgisayarı kontrol eder. Bu bilgisayarlara "broiler" denir. İzinsiz giren kişi bunları kullanır. "Broker" aynı anda hedef makineye eşzamanlı talepler başlatarak hedef makinenin sistem kaynaklarının anında dolmasına ve normal olarak dış dünyaya hizmet sağlayamamasına neden olur.

Tek bir ana bilgisayar tarafından başlatılan bir DoS saldırısıyla karşılaştırıldığında, dağıtılmış bir hizmet reddi saldırısı DDoS, saldırı süreciyle birlikte işgal edilen ve yüklenen yüzlerce hatta binlerce ana bilgisayar tarafından eşzamanlı olarak başlatılan bir grup davranışıdır.

Saldırı yöntemi

SYN Flood saldırısı

SYN Flood saldırısı, mevcut ağdaki en yaygın DDoS saldırısıdır ve TCP protokolünün uygulanmasındaki bir kusurdan yararlanır. Ağ hizmetinin bulunduğu bağlantı noktasına sahte kaynak adresli çok sayıda saldırı paketi gönderilerek, hedef sunucudaki yarı açık bağlantı kuyruğu doldurulabilir ve böylece diğer meşru kullanıcıların erişmesi engellenebilir.

Hepimizin bildiği gibi, TCP'de bir bağlantı kurmak için üç yönlü bir el sıkışma gereklidir ve iletişimdeki iki tarafın Tam Açık durumuna girmeden önce en az üç başarılı bilgi alışverişinden geçmesi gerekir. Normal bir bağlantı kurulması aşağıdaki adımları gerektirir:

  • İlk olarak, istemci bağlantıyı başlatmak için sunucuya bir SYN paketi gönderir;

  • Sunucu, iletişimi onaylamak için ilk pakete ve SYN / ACK paketine yanıt verir;

  • Son olarak, istemci sunucudan alınan paketi onaylamak için bir ACK paketi döndürür. Bu veri paketi gönderme ve alma sırası tamamlandıktan sonra, TCP bağlantısı açılır ve veri gönderilip alınabilir.

Saldırgan, TCP el sıkışma mekanizmasını kullanır.İlk SYN paketini aldıktan sonra, sunucu bir veya daha fazla SYN / ACK paketi ile yanıt verir ve el sıkışmadaki son adımı bekler. Bu nasıl çalışır:

  • Saldırgan, genellikle aldatıcı bir IP adresi kullanarak hedef sunucuya çok sayıda SYN paketi gönderir.

  • Sunucu, her bağlantı isteğine yanıt verir ve açık bağlantı noktalarını yanıt almaya hazır bırakır.

  • Sunucu hiçbir zaman ulaşmayan son ACK paketini beklerken, saldırgan daha fazla SYN paketi göndermeye devam eder. Her yeni SYN paketinin gelmesi, sunucunun belirli bir süre için yeni bir açık bağlantı noktası bağlantısını geçici olarak sürdürmesine neden olur Tüm kullanılabilir bağlantı noktaları kullanıldığında, sunucu normal şekilde çalışamaz.

Sunucunun bağlantısı kesildiğinde ancak bağlantının diğer ucundaki makine bağlı olmadığında, bağlantı yarı açık kabul edilir. Bu tür DDoS saldırısında, hedef sunucu açık bağlantıları bırakmaya devam eder, her bağlantının zaman aşımına uğramasını bekler ve ardından bağlantı noktası tekrar kullanılabilir hale gelir. Sonuç, bu saldırının "yarı açık saldırı" olarak kabul edilebilmesidir.

UDP Sel saldırısı

UDP Flood, giderek yaygınlaşan, akış tabanlı bir DDoS saldırısıdır ve ilkesi çok basittir. Yaygın bir durum, DNS sunucusuna, Radius kimlik doğrulama sunucusuna ve video akışı sunucusuna saldırmak için çok sayıda UDP paketi kullanmaktır. UDP protokolü bağlantısız bir hizmet olduğundan, bir UDP Flood saldırısında saldırgan sahte kaynak IP adreslerine sahip çok sayıda küçük UDP paketi gönderebilir.

ICMP Flood saldırısı

ICMP Flood saldırısı, sunucuya daha büyük bir yük getirmek için büyük trafik kullanan ve sunucunun normal hizmetini etkileyen trafik tabanlı bir saldırı yöntemidir. Çünkü birçok güvenlik duvarı şu anda ICMP paketlerini doğrudan filtreliyor. Bu nedenle, ICMP Taşkınının sıklığı düşüktür.

Bağlantı Sel saldırısı

Bağlantı Flood, büyük bant genişliğine sahip ağ hizmetlerini etkilemek için küçük trafik kullanan tipik bir saldırı yöntemidir.Bu saldırının prensibi, sunucuyla çok sayıda bağlantı başlatmak için gerçek IP adreslerini kullanmaktır. Buna ek olarak, bağlantı kurulduktan sonra uzun süre serbest bırakılmaz, bu da sunucunun kaynaklarını işgal eder, bu da sunucuda çok fazla bağlantı kalmasına (WAIT durumu), verimliliğin azalmasına ve hatta diğer istemciler tarafından başlatılan bağlantılara yanıt veremeyen kaynakların tükenmesine neden olur.

HTTP Saldırı al

Bu saldırı esas olarak ASP, JSP, PHP, CGI, vb. Gibi komut dosyası programlarını hedef alır. Sunucuyla normal bir TCP bağlantısı kurarak ve çok sayıda veritabanı kaynağı kullanan komut dosyası programlarına sürekli olarak sorgular ve listeler göndererek karakterize edilir. Bu tür saldırının özelliği, sıradan güvenlik duvarı korumasını atlayabilmesi ve Proxy proxy aracılığıyla saldırıya uğrayabilmesidir.Dezavantaj, statik sayfalara saldıran web sitesinin etkili olmaması ve saldırganın IP adresini açığa çıkarmasıdır.

UDP DNS Sorgusu Sel saldırısı

UDP DNS Sorgu Seli saldırısında kullanılan yöntem, saldırıya uğrayan sunucuya çok sayıda alan adı çözümleme isteği göndermektir.Genellikle çözüm için istenen alan adı rastgele oluşturulur veya ağ dünyasında bulunmayan bir alan adıdır. Alan adı çözümleme süreci sunucuya çok fazla yük bindirir Alan adı çözümleme isteği saniyede belirli bir yıldız sayısını aşarsa, DNS sunucusunun alan adı zaman aşımını çözmesine neden olur.

DDOS önleme

Linux'un yerleşik güvenlik duvarı aracılığıyla saldırıları önleyin

DDOS SYN Flood saldırısını örnek olarak ele alırsak, onu korumak için sistemin yerleşik iptables güvenlik duvarını kullanabiliriz.

İlk yöntem, saldırı kaynağı IP'sini yasaklamaktır, ancak genellikle saldırı kaynağı birden fazla IP'dir, bu yöntem korumada nispeten zayıftır.

$ iptables -I GİRİŞ -s 192.168.0.2 -p tcp -j REDDET

İkinci yol, eşzamanlı eşzamanlı sürelerin sayısını ve aynı IP'ye yeni bağlantıların sayısını sınırlamaktır.

# Eşzamanlılığı saniyede 1 kez sınırlayın

$ iptables -A GİRİŞ -p tcp --syn -m sınırı --sınır 1 / s -j KABUL

# Tek bir IP tarafından 60 saniyede kurulan yeni bağlantıların sayısını 10 ile sınırlayın

$ iptables -I INPUT -p tcp --dport 80 --syn -m son --name SYN_FLOOD --update --seconds 60 --hitcount 10 -j REDDET

Ancak çok fazla saldırı kaynağı varsa, durdurmak aslında zordur. SYN Flood, SYN_RECV durumundaki bağlantıların önemli ölçüde artmasına neden olur. 1024 gibi yarı bağlantı kapasitesini ayarlayabilirsiniz.

$ sysctl -w net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_max_syn_backlog = 1024

Buna ek olarak, her SYN_RECV başarısız olursa, çekirdek otomatik olarak yeniden deneyecek, varsayılan 5 kezdir ve 1 olarak değiştirilebilir.

$ sysctl -w net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_synack_retries = 1

Ek olarak, TCP SYN Çerezleri, SYN Flood saldırılarına karşı savunma için özel bir yöntemdir ve ilkesi bağlantı bilgilerine (kaynak adresi, kaynak bağlantı noktası, hedef adres, hedef bağlantı noktası vb. Dahil) ve bir şifreleme çekirdeğine (sistem başlatma zamanı gibi) dayanır. Bir karma değer (SHA1), bu karma değer çerez olarak adlandırılır.

Bu çerez, SYN + ACK paketini yanıtlamak ve bağlantı durumunu serbest bırakmak için sıra numarası olarak kullanılır. İstemci, üç yollu el sıkışmasının son ACK'sını gönderdikten sonra, sunucu karma değerini yeniden hesaplayacak ve TCP bağlantı durumuna girmeden önce en son döndürülen SYN + ACK'nın dönüş paketi olduğunu onaylayacaktır. Bu nedenle, SYN Çerezlerini etkinleştirdikten sonra, yarı açık bağlantı durumunu sürdürmeye gerek yoktur ve bu nedenle yarı açık bağlantıların sayısında herhangi bir kısıtlama yoktur.

TCP eşzamanlamalarını etkinleştirdikten sonra, net.ipv4.tcp_max_syn_backlog çekirdek seçeneğinin geçersiz olduğunu unutmayın. Aşağıdaki şekillerde açılabilir:

$ sysctl -w net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_syncookies = 1

Ağla ilgili çekirdek parametrelerini optimize edin

Bir saldırı ile karşılaştığınızda, istek sayısı daha fazla olacaktır ve TIME. WAIT durumunda çok sayıda bağlantı görebilirsiniz.

linux görünümü tcp durum komutu :

  • netstat -nat TCP durumunun sayısını görüntüler;

  • lsof -i: port, soketin açılma durumunu algılayabilir;

  • sar -n SOCK tcp tarafından oluşturulan bağlantıların sayısını görüntüler;

  • tcpdump -iany tcp bağlantı noktası 6000, tcp bağlantı noktası 6000 üzerindeki paketleri yakalar.

# netstat -ant

Aktif İnternet bağlantıları (sunucular ve kurulmuş)

Proto Recv-Q Send-Q Yerel A gg ress Yabancı A gg ress Durum

tcp 00 0.0.0.0:220.0.0.0:* DİNLE

tcp 00 127.0.0.1:250.0.0.0:* DİNLE

tcp 00 192.168.10.58:2213. 136 . 182 . 140 : 23107 TIME_WAIT

tcp 048192.168.10.58:2213. 136 . 182 . 140 : 61282 TIME_WAIT

tcp60 0 ::: 22 ::: * DİNLE

tcp60 0 :: 1: 25 ::: * DİNLE

TCP durumu ve açıklaması:

Durum açıklaması LISTEN, bağlantı talebini gönderdikten ve uzak uç noktadan onay bekledikten sonra, SYN_SENT uzak TCP uygulamasından gelen isteği bekler. İlk TCP el sıkışmasından sonra istemcinin durumu SYN-RECEIVED oldu Uç nokta bağlantı talebini aldı ve onay gönderdi. Uç nokta, nihai onay için bekliyor. İkinci TCP el sıkışmasından sonra sunucunun KURULUŞ durumu, bağlantının kurulduğunu gösterir. Bu, bağlantı veri aktarım aşamasının normal durumudur FIN_WAIT_1 Uzak TCP'den sonlandırma talebinin veya sonlandırma talebinin onayının beklenmesi FIN_WAIT_2 Bu uç nokta, sonlandırma talebini gönderdikten sonra, uzak TCP'den bağlantı sonlandırma talebini bekleyin CLOSE_WAIT Uç nokta, uzak uç noktadan sonlandırma talebini aldı Bu TCP, yerel uygulamanın bağlantı sonlandırma isteğini bekliyor. KAPATMA uzak TCP'den bağlantı sonlandırma isteğinin onaylanmasını bekliyor. LAST_ACK Uzak TCP'ye gönderilen bağlantı sonlandırma isteğinin onaylanması bekleniyor. TIME_WAIT Uzak TCP'nin bunu almasını sağlamak için yeterli süre bekleniyor Bağlantı sonlandırma talebinin onayı

Çok fazla bellek ve bağlantı noktası kaynağı tüketirler. Şu anda, aşağıdaki önlemleri almak gibi TIME_WAIT durumuyla ilgili çekirdek seçeneklerini optimize edebiliriz:

  • TIME_WAIT durumu net.ipv4.tcp_max_tw_buckets'teki bağlantı sayısını artırın ve net.netfilter.nf_conntrack_max bağlantı izleme tablosunun boyutunu artırın.

  • Sistemin işgal ettikleri kaynakları mümkün olan en kısa sürede serbest bırakmasına izin vermek için net.ipv4.tcp_fin_timeout ve net.netfilter.nf_conntrack_tcp_timeout_time_wait'i azaltın.

  • Bağlantı noktasının yeniden kullanımını etkinleştirin net.ipv4.tcp_tw_reuse. Bu şekilde, TIME_WAIT durumu tarafından kullanılan bağlantı noktası yeni bağlantıda da kullanılabilir.

  • Yerel bağlantı noktası net.ipv4.ip_local_port_range aralığını artırın. Bu, daha fazla bağlantıyı destekleyebilir ve genel eşzamanlılığı iyileştirebilir.

  • Maksimum dosya tanımlayıcı sayısını artırın. İşlem ve sistem için sırasıyla maksimum dosya tanımlayıcı sayısını artırmak için fs.nr_open ve fs.file-max'ı kullanabilir veya uygulama için maksimum dosya tanımlayıcı sayısını ayarlamak için uygulamanın systemd yapılandırma dosyasında LimitNOFILE'ı yapılandırabilirsiniz.

Profesyonel trafik temizleme sistemi ile DDOS saldırılarını önleyin

Trafik temizleme hizmeti, başlattığı DOS / DDOS saldırılarına karşı izlemeyi, uyarmayı ve korumayı amaçlayan bir tür ağ güvenlik hizmetidir. Normal işleri etkilememe öncülüğünde, anormal trafiği temizleyin. Olağandışı trafiği analiz edip filtreleyecek, kapı dışındaki anormal saldırı trafiğini engelleyecek ve normal istekler için hizmetler sağlayacaktır.

Genel olarak, bu tür sistemler uzman hizmet sağlayıcıları tarafından sağlanır ve çoğu, 10 Gpbs ila 100 Gpbs arasında koruma kapasitesi sağlar.

Hala gözlemci modunu nasıl yazacağını bilmediğini duydum?
önceki
Bahar Şenliği sırasında kör randevu için bir zorunluluk olan kendi veri kablosuna sahip mini dijital ekranlı güç bankası
Sonraki
GitHub Eylemi riskli
Tencent "şiddetli işten çıkarmalara" yanıt verdi; Xiaomi, Changcheng'in Lenovo ile rekabet etmeme hükmü imzaladığını reddediyor; NumPy 1.16.6 yayınlandı | Geek Manşetleri
2020'de yapay zeka çukuruna girmenin en iyi zamanı neden?
Neden birçok programcı mimarlara geçmiyor?
Dharma Akademisi'nin En İyi On Teknoloji Trendi Yayınlandı: 2020 aynı değil
Eğik çizgi programcısı olmak için başka ne elde edersiniz?
Son on yıldaki veritabanı trendlerine genel bakış! Saklama ve hesaplamanın ayrılması, ACID'nin tam iadesi ...
Aşamalı web uygulamaları mobil geliştirmenin geleceği mi?
Zor iş ilerleme! İlerlemeyi sürdürenler ne kadar korkunç?
WeChat "QR Kodunu Tara", patent ihlali nedeniyle dava açıldı; Apple "iOS 13 sık uygulama konumlandırma hatırlatmalarına" yanıt verdi; Python 2 kullanımdan kaldırıldı | Geek Headlines
Karantina süresi dolduktan sonra 6 kişi ücretlerinden kaçarak Laoshan Yangkou manzaralı noktaya döndü! Birisi dinlenirken sigara içiyor
Mini Programların bir gizlilik politikasına ihtiyacı var mı? Tianjin, beş uygulamanın gizlilik politikasına sahip olmadığını ve yarısından fazlasının küçük programlar olduğunu bildirdi
To Top