DDoS altındayım. Ne yapabilirim?


179

Bu DoS ve DDoS azaltma hakkında Kanonik bir Soru .

Bugün barındırdığım bir web sitesinde büyük bir trafik artışı buldum; Saniyede binlerce bağlantı alıyorum ve 100Mbps kullanılabilir bant genişliğimin hepsini kullanıyorum. Siteme hiç kimse erişemiyor, çünkü bütün istekler zaman aşımına uğradı ve hatta SSH'de zaman aşımına uğradığı için sunucuya bile giriş yapamıyorum! Bu birkaç kez daha önce oldu ve her seferinde birkaç saat sürdü ve kendi kendine gitti.

Zaman zaman, web sitemin başka belirgin ancak ilgili bir sorunu var: Sunucumun yük ortalaması (genellikle .25 civarında) 20 veya daha fazla roket taşıyor ve hiç kimse siteme diğer dava ile aynı şekilde erişemiyor. Aynı zamanda birkaç saat sonra gider.

Sunucumu yeniden başlatmak yardımcı olmuyor; sitemi tekrar erişilebilir kılmak için ne yapabilirim ve neler oluyor?

İlgili olarak, bir ya da iki gün boyunca, hizmetime her başladığımda, belirli bir IP adresinden bir bağlantı aldığını ve ardından çöktügünü buldum. Tekrar başlattığımda, bu tekrar oldu ve tekrar düştü. Bu nasıl benzer ve bu konuda ne yapabilirim?


Yanıtlar:


191

Bir hizmet reddi saldırısı yaşıyorsunuz. Birden fazla ağdan gelen trafiği görürseniz (farklı alt ağlarda farklı IP'ler) dağıtılmış bir hizmet reddi (DDoS); Hepsi aynı yerden geliyorsa, eski bir DoS'unuz var. Yapabiliyorsanız, kontrol etmek yararlı olabilir; kontrol etmek için netstat kullanın. Bunu yapmak zor olsa da.

Hizmet reddi genellikle birkaç kategoriye ayrılır: trafik temelli ve yük temelli. Son ürün (çökme servisi ile) istismar tabanlı DoS ve oldukça farklı.

Ne tür bir saldırı olduğunu tespit etmeye çalışıyorsanız, biraz trafik çekmek isteyebilirsiniz (wireshark, tcpdump veya libpcap kullanarak). Mümkünse, aynı zamanda muhtemelen oldukça fazla trafik çekeceğinizin farkında olmalısınız.

Sık sık, bunlar botnet'lerden gelecektir (teklif verecekleri bazı saldırganların merkezi kontrolü altında ele geçirilen ana bilgisayar ağları). Bu, saldırganın, izlerini korurken, farklı ağlarda çok sayıda farklı ana bilgisayarın size saldırması için yukarı akış bant genişliğini (çok ucuza) edinmesi için iyi bir yoldur. Alçak Uydu İyon Topu bir botnet bir örneğidir (yerine isteğe bağlı olmasına rağmen zararlı türevi); Zeus daha tipik bir şey.

Trafik tabanlı

Trafik tabanlı bir DoS altındaysanız , sunucunuza Internet bağlantısının tamamen doymuş olduğu çok fazla trafik olduğunu görüyorsunuz . Sunucunuzu başka bir yerden pinglerken yüksek bir paket kaybı oranı vardır ve (kullanımdaki yönlendirme yöntemlerine bağlı olarak) bazen gerçekten de yüksek gecikme süresi görürsünüz (ping yüksek). Bu tür bir saldırı genellikle bir DDoS'dir.

Bu gerçekten "yüksek" bir saldırı olmasına rağmen, ne olduğu çok açık olsa da, bir sunucu yöneticisinin hafifletmesi zordur (ve paylaşılan bir barındırma kullanıcısı için hafiflemesi imkansızdır). ISS'nizden yardıma ihtiyacınız olacak; DDoS altında olduğunuzu ve size yardımcı olabileceklerini bildirin.

Ancak, çoğu ISS ve transit sağlayıcıları proaktif olarak neler olduğunu fark edecek ve sunucunuz için bir kara delik rotası yayınlayacaktır . Bunun anlamı, sunucunuza mümkün olan en düşük maliyetle bir rota yayınlamalarıdır 0.0.0.0: İnternet üzerinden artık trafiğe açılmıyorlar. Bu yollar tipik olarak / 32 lerdir ve sonunda kaldırılırlar. Bu size hiç yardımcı olmuyor; amaç, ISS'nin şebekesini su baskınından korumaktır. Bu süre boyunca sunucunuz İnternet erişimini etkili bir şekilde kaybedecektir.

ISS'nizin (veya siz de kendi AS'niz varsa) yardım edebilmesinin tek yolu, olası DDoS trafiğini algılayan ve hız sınırlayan akıllı trafik şekillendiricileri kullanıyorlarsa. Herkesin bu teknolojiye sahip değil. Ancak, trafik bir veya iki ağdan veya bir ana bilgisayardan geliyorsa, önünüzdeki trafiği de engelleyebilir.

Kısacası, bu sorun hakkında yapabileceğiniz çok az şey var. En iyi uzun vadeli çözüm, hizmetlerinizi İnternet üzerinde ayrı ayrı ve aynı anda DDoSed olması gereken birçok farklı yerde barındırmak ve DDoS'yi çok daha pahalı hale getirmektir. Bunun için stratejiler korumanız gereken hizmete bağlıdır; DNS, birden çok yetkili ad sunucusu, yedek MX kaydına ve posta değiştiricisine sahip SMTP ve yuvarlak DNS veya çoklu ana bilgisayara sahip HTTP ile korunabilir (ancak, bu süre boyunca bazı bozulmalar göze çarpıyor olabilir).

Yük dengeleyici nadiren bu soruna etkili bir çözümdür, çünkü yük dengeleyicisinin kendisi aynı soruna tabidir ve sadece bir tıkanıklık yaratır. IPTable'lar veya diğer güvenlik duvarı kuralları işe yaramaz çünkü sorun borunuzun doymuş olmasıdır. Bağlantılar güvenlik duvarınız tarafından göründüğünde, zaten çok geç ; Sitenize bant genişliği tüketildi. Bağlantılarla ne yaptığınız önemli değil; Gelen trafik miktarı normale döndüğü zaman saldırı hafifletilir veya biter.

Bunu yapabiliyorsanız, Akamai, Limelight ve CDN77 gibi bir içerik dağıtım ağı (CDN) kullanmayı düşünün veya CloudFlare veya Prolexic gibi bir DDoS temizleme servisi kullanın. Bu hizmetler, bu tür saldırıları hafifletmek için aktif önlemler almakta ve aynı zamanda, pek çok farklı yerde, onları silmenin genellikle mümkün olmadığı pek çok bant genişliği bulunmaktadır.

CloudFlare (veya başka bir CDN / proxy) kullanmaya karar verirseniz, sunucunuzun IP adresini gizlemeyi unutmayın. Bir saldırgan IP'yi bulursa, sunucunuzu doğrudan CloudFlare'yi atlayarak doğrudan DDoS yapabilir. IP'yi gizlemek için sunucunuz güvenli olmadıkça asla diğer sunucularla / kullanıcılarla doğrudan iletişim kurmamalıdır. Örneğin, sunucunuz doğrudan kullanıcılara e-posta göndermemelidir. CDN'de tüm içeriğinizi barındırıyorsanız ve kendi sunucunuz yoksa, bu geçerli değildir.

Ayrıca, bazı VPS ve barındırma sağlayıcıları bu saldırıları diğerlerinden daha hafifletmekte daha iyidir. Genel olarak, ne kadar büyük olursa, o kadar iyi olurlar; Çok iyi eşlenmiş ve çok fazla bant genişliğine sahip bir sağlayıcı doğal olarak daha dayanıklı olacak ve aktif ve tamamen çalışan bir ağ operasyon ekibine sahip bir kişi daha hızlı tepki verebilecek.

Yük tabanlı

Yüke dayalı bir DDoS yaşıyorsanız, yük ortalamasının anormal derecede yüksek olduğunu (veya platformunuza ve özelliklere bağlı olarak CPU, RAM veya disk kullanımı) fark edersiniz. Sunucu faydalı bir şey yapmıyor gibi görünse de çok meşgul. Genellikle, günlüklerde olağandışı koşulları gösteren çok miktarda giriş olacaktır. Çoğu zaman bu, pek çok farklı yerden gelmiyor ve bir DDoS, ama mutlaka böyle değil. Çok fazla farklı ev sahibi olmak zorunda bile değilsiniz .

Bu saldırı, servisinizi çok pahalı şeyler yapmanıza dayanıyor. Bu, çok sayıda TCP bağlantısı açmanız ve sizi durumlarını korumanıza zorlamak ya da hizmetinize aşırı büyük ya da çok sayıda dosya yüklemek veya belki de gerçekten pahalı aramalar yapmak ya da gerçekten kullanması pahalı bir şey yapmak gibi bir şey olabilir. Trafik, planladığınız ve üstesinden gelebileceğiniz sınırlar dahilindedir, ancak yapılan isteklerin çoğu bu kadarını yerine getirmek için çok pahalıdır .

Birincisi, bu tür bir saldırının mümkün olduğu genellikle bir yapılandırma sorunu veya hatayı gösterir.Hizmetinizde Örneğin, aşırı ayrıntılı günlük kaydı açık olabilir ve günlükleri yazması çok yavaş olan bir şeyde depolar olabilir. Birisi bunu fark ederse ve bol miktarda günlük yazıp diske yazmanıza neden olan bir çok şey yaparsa, sunucunuz sürünmeye yavaşlar. Yazılımınız ayrıca belirli giriş durumları için son derece verimsiz bir şey yapıyor olabilir; Sebepler, programlar kadar çoktur, ancak iki örnek, hizmetinizin, aksi halde bitmiş bir oturumu kapatmamasına ve bunun bir çocuk sürecini doğurup bırakmasına neden olan bir durum olabilir. Sonunda devletle olan onbinlerce açık bağlantı veya on binlerce alt sürecin sonu gelirse, başınız belaya girer.

Yapabileceğiniz ilk şey , trafiği azaltmak için güvenlik duvarı kullanmaktır . Bu her zaman mümkün değildir, ancak gelen trafikte bulabileceğiniz bir özellik varsa (trafik hafif ise tcpdump bunun için iyi olabilir), güvenlik duvarına düşebilir ve artık sorun çıkarmaz. Yapılacak diğer şey, hizmetinizdeki hatayı düzeltmektir (satıcıyla iletişim kurun ve uzun bir destek deneyimine hazır olun).

Ancak, bir yapılandırma sorunu varsa, buradan başlayın . Üretim sistemlerinde günlüğe kaydetmeyi makul bir seviyeye düşürün (programa bağlı olarak bu genellikle varsayılandır ve genellikle "hata ayıklama" ve "ayrıntılı" günlük düzeylerinin kapalı olduğundan emin olmanızı gerektirir; ince detay, günlüğünüz çok ayrıntılı. Ek olarak, alt süreci kontrol et ve talep sınırlarını , muhtemelen gelen talepleri, IP başına bağlantıları ve izin verilen alt süreç sayısını azaltma .

Sunucunuz için ne kadar iyi yapılandırılmış ve o kadar iyi bir hazırlık yapıldığını söylemeye gerek yok, bu tür bir saldırı daha zor olacak. Özellikle RAM ve CPU ile cimri olmaktan kaçının. Arka uç veritabanları ve disk depolama gibi şeylere bağlantılarınızın hızlı ve güvenilir olduğundan emin olun.

Exploit tabanlı

Hizmetiniz, ulaştıktan sonra gizlice hızla çöküyorsa , özellikle de çökmeden önce gelen ve istek atipik olan veya beklenen kullanım örnekleriyle uyuşmayan bir istek modeli kurabilirseniz, bir istismara dayalı DoS yaşıyor olabilirsiniz. Bu, yalnızca bir ana bilgisayardan (hemen hemen her türlü internet bağlantısına sahip) veya birçok ana bilgisayardan gelebilir.

Bu, birçok bakımdan yüke dayalı bir DoS'a benzer ve temelde aynı nedenlere ve azaltmalara sahiptir. Tek fark, bu durumda, hatanın sunucunuzun israf edilmesine değil, ölmesine neden olmasıdır. Saldırgan, genellikle sıfırdan parazite neden olan ya da hizmetinizde bir şeye neden olan bozuk girdi gibi uzaktan kilitlenme güvenlik açığı kullanıyor.

Bunu yetkisiz bir uzaktan erişim saldırısına benzer şekilde yapın. Kaynak ana bilgisayarlara karşı güvenlik duvarı ve sabitlenebilirlerse, trafik türüne karşı güvenlik duvarı . Varsa, doğrulayıcı proxy'ler kullanın . Adli kanıtlar toplayın (trafiğin bir kısmını yakalamaya çalışın), satıcıya bir hata bileti gönderin ve kökene karşı suistimal şikayeti (veya yasal şikayet) göndermeyi düşünün.

Bir saldırı tespit edilebilirse, bu saldırıların gerçekleştirilmesi oldukça ucuzdur ve çok güçlü olabilirler, aynı zamanda izlenmesi ve durdurulması da oldukça kolaydır. Bununla birlikte, trafik bazlı DDoS'a karşı faydalı olan teknikler, istismara dayalı DoS'a karşı genellikle işe yaramaz.


1
Son paragrafınıza gelince, Peki ya suistimal temelli D DoS alırsanız ? Nasıl takip edip durdurabilirsin?
Pacerier

8

Eğer bir kuruluşsanız, birçok seçeneğiniz vardır. Benim gibi küçük bir adamsanız, küçük bir web sitesine hizmet etmek için bir VPS veya özel bir sunucu kiralamak, maliyeti hızla yasaklayabilir.

Deneyimlerime göre, çoğu özel ve VPS sağlayıcısının yalnızca sunucunuz için özel güvenlik duvarı kuralları oluşturmayacağına inanıyorum. Ancak günümüzde, birkaç seçeneğiniz var.

CDN

Bir web sunucusu kullanıyorsanız, CloudFlare veya Amazon CloudFront gibi bir CDN'nin arkasına koymayı düşünün.

CDN'ler pahalıdır. Maliyeti kontrol altında tutmak için büyük dosyaları (büyük görüntüler, ses, video) CDN yerine doğrudan sunucunuzdan sunun. Ancak, bu, sunucunuzun IP adresini saldırganlara maruz bırakabilir.

Özel bulut

Özel bulutlar genellikle pahalı şirket çözümleridir, ancak Amazon VPC'nin kurulması hiçbir şeyin yanındadır. Bununla birlikte, Amazon'un genel olarak bant genişliği pahalıdır. Bunu karşılayabiliyorsanız, Amazon VPC'sinin Güvenlik Grubu ve Ağ ACL'sini, örneğinize ulaşmadan trafiği engellemek üzere ayarlayabilirsiniz. TCP sunucusu portu dışındaki tüm portları engellemelisiniz.

Bir saldırganın hala TCP sunucu portuna saldırabileceğini unutmayın. Eğer bir web sunucusuysa, bloke edici olmayan IO kullanan ve çok sayıda bağlantıyı idare edebilen nginx gibi bir şey kullanmayı düşünün. Bunun ötesinde, sunucu yazılımının en son sürümünü çalıştırmanızı sağlamanın yanında yapabileceğiniz pek bir şey yoktur.

TCP Bağlantı Noktanıza Saldırıldığında Ve Diğer Her Şey Başarısız Olduğunda

Bu, WebSocket, medya içeriği / akış sunucuları gibi bir CDN'nin arkasına gizlenemeyen web dışı sunucular için geçerli olan bir çözüm. CloudFlare, WebSocket özelliğini destekler, ancak şu anda yalnızca şirket için.

Hedef, TCP dinleme bağlantı noktanızı bir botnet'in tutamayacağı kadar hızlı bir şekilde değiştirmektir, her 10 saniyede bir. Bu, bağlantı noktası dolaşımını gerçekleştiren basit bir proxy programı kullanılarak gerçekleştirilir. Bağlantı noktalarının sırası sözde rasgele, ancak sunucu saatine göre yapılmalıdır. Sunucu zamanını ve portunu hesaplama algoritması, istemci javascript / flash kodunuzda gizli olmalıdır. Program ayrıca, dinleme portunu değiştirirken güvenlik duvarını da değiştirmelidir ve güvenlik duvarının durum bilgisi olması gerekir. Birisi ilgileniyorsa, Amazon ile çalışan node.js betiğimi GitHub'a yükleyeceğim.


4

Etki alanınızı kısa bir süre için 0.0.0.0 gibi bir kara deliğe gidecek şekilde değiştirin.

Sunucunuzla konuşun, sunucuya erişmenin geçici bir yolu olarak başka bir IP adresi verebileceklerini veya sunucunun uzak konsol erişimine sahip olup olmadıklarını (önünde oturuyormuş gibi) bulunup bulunmadıklarını öğrenin ve sağlayın. Buradan, tek bir IP adresi olup olmadığını görebilirsiniz ve siteden veya dağıtılmış bir saldırıdan engelleyebilirsiniz.


3
DNS’i böyle değiştirmek, maddi durumdan daha fazla zarar verebilir. İlk başta A kaydının TTL’sini düşürürdüm, ancak IP adresini değiştirmeden bırak - yeni bir IP adresini işaret edene kadar.
kasperd

1

DDoS saldırısı altındaysanız, ISS'nize en çok yardım edebilir, ancak DDoS koruması yoksa, saldırı duruncaya kadar hizmet dışı kalma ihtimaliniz çok yüksektir. Genellikle saldırıya uğramış ip adresini görürler ve ağı yukarı yöneltici üzerinde boş bırakırlar. Çok fazla trafiğiniz yoksa, DDoS koruması için trafiğinizin yönlendirildiği, filtrelendiği ve sunucunuza geri gönderildiği birçok çevrimiçi hizmet vardır.


-1

Daha önce de aynı durum söz konusu. Aşağıda yaptığımız şey bu.

İlk önce, ağ kablosunu sunucunuzdan çıkarın. Şimdi, performans izleyiciye ve görev yöneticisine bakarak, sunucu hizmetlerinizin normal davranışa döndüğünü kontrol edin. Değilse, sunucunuzun temizlendiğinden emin olmak için sunucunuzu kötü amaçlı yazılımlarla tarayın. Bu adım genellikle bağlantınız kesilen sunucunuzun tekrar normale dönmesini sağlar.

Sonra, yerinde bir güvenlik duvarı var mı? Eğer öyleyse, aboneliği yenildiniz mi? Güvenlik duvarında IPS izinsiz giriş özelliğini etkinleştirdiğinizden emin olun. Sadece güvenlik duvarı aboneliğini yenileyerek DDOS saldırımızı çözdü.

Güvenlik aboneliğini (örneğin güvenlik duvarı veya anti virüs) yenilememiz gerektiğini ve hafifçe almamamız gerektiğini öğrendik. DDOS saldırısı her gün oluyor ve küçük işletmelerde de olabilir. Bu yardımcı olur umarım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.