Bir Hacker Nasıl Yavaşlatılır


17

Hindistan, Delhi'de bazı senaryo çocukları sitemizi dün geceden beri hacklemeye çalışıyor. Sunucumuzun taleplerini büyük iç içe döngüler halinde yapan ve güneşin altındaki her şeyi deneyen bir tarayıcı komut dosyası yazdı.

Hiçbir yere ulaşmıyor ve temel savunmamızı bile geçemiyor (ama günlük dosyalarımızı dolduruyor).

403 UnauthorizedHemen geldikleri anda isteklerine bir geri gönderiyoruz , ancak isteklerini ne kadar hızlı engellersek, senaryosu o kadar hızlı çalışır.

403 yanıtını geri göndermeden önce bir çeşit "gecikme" sunmak istiyoruz. Daha uzun, daha iyi.

Soru: Sitenin geri kalanını etkilemeden saldırı girişimlerini nasıl erteleyebiliriz?

  • İş parçacığında bir Uyku (15000) diğer site ziyaretçileri için kötü bir haber olacağını varsayıyorum.
  • Sadece onun için yeni bir iplik açmak aşırıya kaçmış gibi görünüyor.
  • Gecikmeli yanıt göndermenin başka bir yolu var mı?
  • Tarayıcısını ne kadar beklemeye zorlayabiliriz? Sanırım 403 Unauthorizedhatayı alırsa ya da sonunda zaman aşımına uğramam umurumda değil , bu yüzden muhtemelen belirsiz / sonsuz bir bekleme bile yapabiliriz.

36
Güvenlik duvarınızı IP adresinden gelen trafiği düşürecek şekilde yapılandıramazsınız mı? Bu sorun, ağ düzeyinde uygulama düzeyinden daha iyi çözülebilir. Trafiği düşürmek, bağlantı isteği zaman aşımına uğrayana kadar orada oturması gerektiği anlamına gelir. Ve hiç cevap vermemek, "yetkisiz" yanıtları geri vermekten çok daha etkilidir, çünkü ona etkili bir şekilde teftiş edecek hiçbir bilgi vermez.
cdhowie

3
Neden sadece ipini engellemiyorsun?
Hogan

2
Sunucunuzu fişten çekin.
Sayed Ibrahim Hashimi

Cevabıma bak - bu standart bir şey, daha önce bazı saldırı tespit sistemine işaret eden bir cevap alamadığına şaşırdım.
mantıksızlık

@Sayed, sunucunuzun fişini çekmek yapabileceğiniz en kötü şeylerden biridir. DoSing'in yanı sıra security.stackexchange.com/q/181/33
AviD

Yanıtlar:


37

Web sunucunuzun önünde bir yerde ayrı bir güvenlik duvarı olmalıdır. Buradaki isteklerin sunucunuza ulaşmasını engellemek istiyorsunuz, böylece IP'si söz konusu olduğunda sunucunuz artık mevcut değil.


1
Merhaba Joel, bu "kabul edilen" cevap, ancak soru StackOverflow'dan aktarıldığından, aslında kabul etme yetkim yok gibi görünüyor. Cevabınızı +1 verdim. Sadece yapacağım şey bu.
Flipster

2
@flip adınızı ve ardından sağdaki sayfanın altındaki 'hesaplar' bağlantısını tıklayın. Bu, bunu yeniden yığın taşması hesabınızla ilişkilendirmenize ve sorunun sahipliğini yeniden kazanmanıza olanak tanır.
Joel Coel

1
ancak bunu otomatik olarak da yapmak istersiniz - bu tür durumları duruma göre ele almanın bir anlamı yoktur. (Cevabımı bakınız)
unreason

5

Çeşitli filtrelere, peteklere ve diğer mekanizmalara bağlı olarak bunu sizin için otomatik olarak yapacak büyük ve küçük gerçek saldırı tespit sistemleri vardır.

Örneğin , günlüklerin analizine dayalı eylemler gerçekleştirecek şekilde yapılandırılabilen fail2ban'a bakın .

Bu şekilde

  • sitenizin diğer kullanıcılarını etkilemeden bir saldırının geldiği tek IP adresini kolayca filtreleyin
  • günlükleri analiz etmek için kendi normal ifadenizi yazabilirsiniz
  • kendi eylemlerinizi tanımlayabilirsiniz (yasak yerine gaz vb.)

Başka ve daha büyük araçlar var, wikipedia ile ilgili bölüme de bakınız.

Sorunuz asp.net olarak işaretlendiğinden, sunucu platformunuzun pencereler olduğunu varsayıyorum. Yine de, linux güvenlik duvarı kullanmak bir seçenekse, yukarıdakileri deneyebilirsiniz

  • WAN ve sunucunuz arasında bir linux güvenlik duvarı yerleştirin
  • güvenlik duvarı makinesine IIS günlüklerinize erişme
  • analiz etmek için normal ifade yaz
  • yasaklamak için mevcut şablonlara takın

Bu tür güvenlik duvarı son derece mütevazı bir donanımda çalıştırılabilir - çok iyi bağlantı bant genişlikleri için linksys yönlendiricileri ( buraya bakın ) gibi bir şey düşünün .


4

Belirli bir IP adresinden veya adres bloğundan geliyorlarsa, kara delikli bir rota eklemek isteyebilirsiniz:

ip ro add blackhole 10.69.96.0/24
ip ro flush cache

Bunu bir iptables kuralı kullanarak da yapabilirsiniz, ancak iptables kurallarının doğrusal olarak geçildiğinin farkına varın, bu nedenle, gelen her miscreant için iptables kuralları eklemeye başlarsanız, çok fazla CPU yemeye başlayabilirsiniz. Yönlendirme tabloları çok sayıda girişi işlemek için optimize edilmiştir. Örneğin, kutularımdan birinin yönlendirme tablosunda 350K girişi var, sorun yok. Ama 3K iptables kuralları olsaydı kutu neredeyse kesinlikle düşecekti.

Uygulamanızın bu bağlantılarda birkaç saniye uyuduğu bir şey yapmaya çalışırsanız, meşru isteklerin herhangi bir kaynak alamayacağı kadar kaynak bağlayabilirsiniz.


1
+1. Bu durumda netfilter ile yönlendirme arasındaki göreli etkinlik hakkındaki bilgilerinizi beğendim. yetenekli iptablesbir çekirdekte ipsetçok sayıda IP adresi listesiyle çok etkili bir şekilde eşleşebilir, ancak ipsetçekirdeklerinde hiçbir büyük dağıtım etkinleştirilmez .
Steven Pazartesi

İyi bir nokta, ipset, bu tür şeyler için yararlı gibi görünen bir şeydir, ancak sadece mevcut değildir. Daha genel bir iptables optimizer olan nf-hipac adında başka bir sistem var, ancak posta listesindeki ve son sürümdeki son gönderi 2005'ten.
Sean Reifschneider

3

Sen do not yanlış onu yavaşlatan senin ipler bu kişinin istekleri hizmet 'meşgul' olacak çünkü bir DoS saldırısı altında sanki aşağı sitenizi alacak çünkü onu yavaşlatmak istiyorum. Yapmak istediğiniz şey IP'sini engellemek ve onunla yapılmasıdır. Bunu yapan kişiyi yemlemek için hiçbir neden yoktur.


2

Aradığın şey Apache modül mod_evaisve.

Debian tabanlı dağıtımlarda şunu kullanarak yükleyin:

apt-get install libapache2-mod-evasive

CentOS / RHEL

yum install mod_evasive

mod_evasive, Apache'ye gelen istekleri takip eder ve eşik değerini geçen iptables kullanarak IP'yi yasaklar. Binlerce farklı IP'ye sahip büyük bir botnet tarafından hedeflendiğinizde HTTP tabanlı DoS saldırılarına ve hatta Dağıtılmış DoS saldırılarına karşı mükemmel bir araçtır.

Ayrı bir arka plan programı olarak değil, çalışma zamanı sırasında yüklenen bir Apache modülü olarak çalışır.

Bununla birlikte, büyük bir botnet kontrolüne sahip akıllı bir saldırgan, botnet'teki her zombi tarafından gönderilen istekleri zamanlayarak web sunucunuzu aşağıya çekebilir, böylece IP'nin hiçbiri eşik değerini geçemez.

Bu durumda, anormallik tabanlı IDS kullanmanız ve muhtemelen sistemi kendiniz eğitmeniz gerekir. Ancak, gerçek büyük düşmanlarınız veya şirket gündemine sahip biri olmadığınız sürece bunun gerçekleşmesi pek olası değildir.


0

Linux kullanıyorsanız, adamı büyük gecikmelerle 1 bayt / s sevecek şekilde sınırlamak için iptables kullanın ve bir istek almak için sonsuza dek sürmesini sağlayın . Dağıtılmışsa, bu pek yardımcı olmaz.

Windows'ta nasıl yapacağınızdan emin değilim, ancak yönlendiricinizde veya donanım güvenlik duvarınızda bazı benzer seçenekler bulabilirsiniz.

EDIT: Yukarıda kabul, bu daha çok bir sunucu hatası sorusu gibi.


2
Bu teknik bazen DDoS saldırılarında - saldırgan tarafından kullanılır. Bunu sunucuda yapmak biraz ters etki yaratır. <_ <
p-statik

DDoS saldırılarında kullanıldığını söylemek gerçekten doğru değil - bu tür bir etki DDoS saldırılarının amacıdır . Bunu sunucuda / güvenlik duvarında yapmak, ancak sadece bilgisayarlara saldırmak için tek gerçek savunmadır (AFAIK).
mantıksızlık

0

Adamın IP adresinin oldukça sabit olması durumunda, özel bir HttpModule oluşturabilir, web.config dosyasındaki bir değişiklikle bağlayabilir ve bu IP adresi olarak tanındığında bir gecikme yaşayabilirsiniz. Ya da ona 404 kod geri gönderebilir veya başka bir yere yönlendirmesini sağlayabilirsiniz.


0

Hindistan'da olduklarını biliyorsun. Sitenizde, akış duruncaya kadar tüm IP aralıklarını güvenlik duvarı düzeyinde kademeli olarak engellemeyi engelleyecek önemli Hint kullanıcıları var mı? Kesinlikle sağlam bir çözüm değildir, ancak sadece tipik bir 'senaryo çocuğuyla' uğraşıyorsanız, onları cesaretlendirmek ve başka bir hedefe göndermek yeterli olacaktır.

Daha da iyisi, bir IP'den geliyorsa, kendi hizmet reddi saldırınızla cevap verebilirsiniz :)


bu bir çözüm değil, jöle baltayla kesiyor. Ve b, ddos ​​isnt gerçekten iyi bir öneri (olsa ben şaka yapıyorum asume), bir neden yok) smth illagel yapmak b) sunucunuza daha fazla yük koymak!
Trufa

0

Aldığınız yanıta ek olarak, belgelerinizi (günlükler, izler) kaydetmek ve bunları servis sağlayıcınıza vermek isteyeceksiniz. Bu, olay sırasında en etkili olanıdır, çünkü sağlayıcınız bu saldırıya şahit olabilir. Tedbirlerinizde başarılı olsanız bile, daha fazla denemeyi azaltmanız önemlidir ve sağlayıcınızın saldırganın servis sağlayıcısına bir talebi iletmesine yardımcı olur; tartışmasız en etkili eylem, saldırganın sağlayıcısının, tanımlanan saldırgan olan müşterisine hizmet vermeyi reddetmesidir.


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.