Botnet Saldırısından Korunma Yolları
Botnet saldırısı, çözümü en zor saldırı türüdür. Çünkü botnet ile birlikte trojan bulaşan bilgisayarlar sizin sitenize yoğun bir ziyaret gerçekleştirerek, sunucunuzu kilitlemeye yönelik bir girişimdi bulunurlar. Çoğu zaman buna ortak olan bilgisayar sahipleri (zombie olarak adlandırılır) trojan bulaşarak böyle bir girişimde bulunduklarının farkında değildirler. Örnek olarak, bir sohbet sunucusu binlerce ziyaretçisine trojanbulaştırdıysa, kolaylıkla istenilen komutlar verilerek bu zombie bilgisayarlar yönlendirilebilmektedir.
Kullanıcıların yoğun girişi olarak görülen botnet saldırısı, sunucu gözünde normal ziyaretçiden farksızdırlar. Ancak çok sayıda bilgisayarın, sık girişileri sunucuyu zora sokarak siteye ulaşılmasını engellemektedir.
enghost.org ilk botnet saldırısını 1 – 2 Aralık tarihlerinde aldı. Bu konuda hiçbir tecrübe olmadığı için, site 2 gün kapalı kaldı, Google botlarının da siteye ulaşaması durumuyla site 3 gün arama motorlarından silindi. Saldırıyı giderdikten sonraki gün arama motorlarında gözükmeye başladı. Saldırı süresi ve sıklığı uzadıkça, arama motorlarının bu hatayı telafi etmesi de giderek zorlaşmaktadır. Dolayısıyla uzun süreli saldırılardan, geri dönüşü olmayacak şekilde sıralama kayıplarınız olabilir.
Öncelikle sunucu seçiminde dikkat etmeniz gereken 2 önemli unsur bulunmaktadır.
1.Litespeed kullanımı : Litespeed sunucu hızını kullandığı özel teklikle maksimum düzeylere çıkaran bir sunucu eklentisidir. Bu eklenti kurulu olan sunucuları satın aldığınız da, sunucu kilitlenmesi hihtimali en aza indirgenebilecektir.
2. Firewall kullanımı : Firewall, saldırılara karşı etkili bir güvenlik duvarıdır. Hangi sunucunun firewallkullanıp kullanmadığını bir tüketici olarak bilmemiz zor olabilir. Bu sebeple satn almadan önce sormanız gereken ikinci özellik sunucunun firewall kullanıp kullanmaması olmalıdır.
Botnet diğer adıyla ddos saldırılarını önlemenin yolları,
1. Hedef Şaşırtma : Botnet saldırıları genellikle sitelerin ana dizinlerindeki index dosyası hedef alınarak yapılmaktadır. Çünkü bu şekilde daha etkili bir saldırı yapmış olurlar. Bu sebeple index.php (özellikle wordpress siteleri) dosyasının hedef olmaktan çıkması gerekir. Bunun için sitenin farklı uzantıda bir index dosyasını çağırmasını sağlıyoruz. Site Anasayfasının kaynak kodunu tamamiyle kopyalayarak index.html isminde yeni bir dosya içerisine ekleyerek sunucuya atıyoruz. Bunu yaptığımızda saldırı hedefi index.php olarak devam ederken, site anasayfası index.html den açılmaktadır. Html statik bir sayfa olduğu için, saldırı devam etmesine rağmen daha hızlı sitenin açıldığını görebileceksiniz.
Html klasörünü oluşturmakla birlikte index.php nin ismini değiştirirseniz, alt sayfalara ulaşılamama hatası alırsınız. Çünkü sitenin tüm sayfaları index.php üzerindeki sorgulardan oluşmaktadır. Bu sebeple anasayfa index.html den çalışırken, alt sayfalar da index.php üzerinden açılmaktadır.
Bir botnet saldırısında, saldırının ne zaman biteceğini hiçbir zaman kestiremezsiniz. Anasayfayı html olarak ayarladığınız, sürekli güncellemeniz zor olacağı için mutlaka yine dinamik yapıya dönmeniz gerekmektedir. Dolayısıyla index.html kullanmak sadece geçici bir çözümdür. Arama motorları ve botların siteye ulaşabilmelerini sağlamak adına yapacağınız ilk uygulama olmalıdır. Bundan sonrası için daha kalıcı çözümler bulmanız gerekmektedir. Kalıcı çözümler için de aşağıdaki taktikleri uygulamanız gerekir.
2. İp ve Browser engelleme : Botnet saldırısına iştirak eden zombie bilgisayarların, normal kullanıcılara göre farkı, siteyi onlarca veya yüzlerce defa sorgulamasıdır. Normal bir ziyaretçi, siteye günde max 3 – 5 kez giriyorsa, zombie bilgisayarlar dakikada onlarca kez girebilmektedir. Bu sebeple yoğun giriş yapan ipleri ve browserları tespit ederek, htaccess ile girişleri engellemeniz gerekir.
2. a. Yoğun ip ve browser girişlerini tespit etme : Sitenize ait cpanele girdikten sonra Raw Access Logs linkine tıklıyoruz. Buradan siteye son zamanlarda giriş yapan ip ve tarayıcılarını listeleyebiliyoruz. Sitenin ziyaretçi sayısına veya botnet saldırısına göre dosyasının boyutu artacaktır. Yaklaşık 15 – 20 mb boyutlarında dosyayı indirdikten sonra herhangi bir text programı ile açıyoruz. Notepad için yük oluşturabilir, bu sebeple notepad2 kullanmanızı tavsiye ediyorum.
Yukarıdaki listede saldırı günlerinde siteye gelen ziyaretçi veya zombielerin ipleri görülmektedir. Bakıldığı zaman bazı iplerin yoğun giriş yaptığı görülür. Tabi bu resim sadece bir kesit, aldığım raporda yaklaşık 2 milyon ip listesi bulunmaktaydı. Üstelik 2 günlük raporda. Bu raporda daima en sondan başlayarak göz gezdirmenizi tavsiye ediyorum.
Resimde görüldüğü gibi, 111.160.70.130 adresi birkaç kez tekrar etmektedir. Ancak bunun yanında 111.160.70.226 gibi bir adres de tekrar ediyoruz. Burada kısıtlamayı yaparken 4 haneyi de dikkate alırsanız sadece 1 zombie engellersiniz, ilk haneyi engellerseniz milyonlarca 111 ipsiyle başlayan girişleri engellersiniz. Tabi bunun yanında normal ziyaretçi de etkilenebilir. Ancak bir süre için bu normal ziyaretçilerden bir kısmının girişini engellemeyi göze almak gerekir. Bunun gibi ben tekrar eden ipleri bulup ilk hanelerini engelledim. Ancak hala yoğunluk olup olmadığını anlamak gerekiyor. Bunu için index.html ismini index1.html olarak değiştirdim. Site bu sefer index.php üzerinden çalışacak ve sitenin açılması uzun sürüyorsa başka iplerden giriş devam ediyor anlamına gelir. Diğer ipleri de bulup engelleyebilirsiniz. Bunun dışında MSIE 6.0; Windows NT 5.1 girişlerini de engellemek büyük rahatlık getirecektir.
2.b. Yoğun ip ve browser girişlerini engelleme : Yoğun giriş yapan ip ve tarayıcıları tespit ettikten sonra aşağıdaki kodları htaccess dosyanıza ekleyerek bu girişleri engellemeniz gerekmektedir.
htaccess ile ip girişi engelleme
order allow,deny
deny from 111.*.*.*
deny from 95.*.*.*
allow from all
htaccess ile tarayıcı girişi engelleme
RewriteCond %{HTTP_USER_AGENT} !^Microsoft\ Internet\ Explorer/[34]\.[0-9]{1,2}
Ekstra htaccess güvenlikleri
# .htaccess dosyasına erişimi engelle
<files .htaccess>
order allow,deny
deny from all
</files>
# sunucu imzasını kaldır
ServerSignature Off
# dosya yükleme boyutunu 10mb ile sınırlandır
LimitRequestBody 10240000
# wpconfig.php dosyasına erişimi engelle
<files wp-config.php>
order allow,deny
deny from all
</files>
# wp-load.php dosyasına erişimi engelle
<files wp-load.php>
order allow,deny
deny from all
</files>
# dizin listelemeyi iptal et
Options All -Indexes
# zararlı botları engelle
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus