DoS ile Mücadele

2009 yılından bu yana “Bilgi güçtür ve paylaşıldıkça artar!” sloganıyla siber güvenlik alanına meraklılar için özveriyle yaşatmaya çalıştığım blogumun bundan yıllar yıllar önce bir DDoS saldırısı ile karşı karşıya kaldığını ve daha sonrasında blogumu Cloudflare arkasına taşıdığımı anımsıyorum. Son birkaç yıldır ise DDoS ve DoS benzeri bir saldırı ile karşılaşmamış olmanın verdiği rehavet ile ne işletim sistemi üzerinde OSSEC gibi bir HIDS‘i, ne Cloudflare, ne WordPress ne de Nginx üzerinde bu tür saldırılara karşı (Wordfence rate limiting, modsecurity vs.) bir koruma özelliğini devreye almamıştım.

15 Temmuz 2018 tarihinde blogumu ziyaret etmeye çalıştığımda web sunucusunun geç yanıt verdiğini farkettim. “Acaba bu defa neyi bozdum ?” diye kendi kendime homurdandıktan hemen sonra ssh ile sunucuma bağlandığımda herhangi bir yavaşlık farketmedim. Web sunucusundaki yavaşlığın uygulama katmanı ve/veya veritabanı ile ilgili olduğunu düşünerek top komutunu bile çalıştırmadan direk web sunucusunun erişim kayıtlarına (access.log) göz attığımda, 14 Temmuz saat 14:03 itibariyle bloguma rastgele parametreler içeren çok sayıda istekte bulunulduğunu farkettim. (HTTP DoS)

HTTP DoS

HTTP DoS saldırısını gerçekleştiren kaynak ip adreslerine bakıp, Cloudflare’in ip adreslerini gördüğümde, rehavetin bedelinden çıkardığım ilk ders (lessons learned) Cloudflare’e yapılan istekleri web sunucuma göndermek (CF-Connecting-IP başlığı) oldu. :) Bir yandan saldırının tam olarak hangi ülkeden kaynaklandığını öğrenmek için Cloudflare’in Analytics sayfasındaki tehdit haritasına baktığımda DoS saldırısının Rusya‘dan yapıldığını öğrendim. (Bu cümleyi yazdıktan sonra nedense aklıma Red Alert 2’deki Tanya geldi. :))

HTTP DoS
HTTP DoS
HTTP DoS

Ben bu araştırmaları yaparken bir yandan DoS saldırısı devam ettiği için saldırıları durdurmak için Cloudflare’in panelinden Under Attack özelliğini aktif hale getirdim ve saldırı anında etkisiz hale geldi. Akabinde saldırı ile ilgili istatistiki bilgiler toplamak için öncelikle komut satırından ardından da SolarWinds‘in Loggly isimli web uygulamasından faydalandım. Loggly dışında çevrimdışı analiz için de bir yandan Apache Logs Viewer aracının çıktılarını inceledim. Analiz sonucuna göre ~24 saatte bloguma yaklaşık ~150.000 istek yapılmış ve bunlardan ~60.000 tanesi (502 HTTP Status) blogumu erişilemez hale getirmişti.

HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS

DoS saldırısı ile ilgili olarak, erişim kayıtları (access.log) üzerinden elde ettiğim bilgilere istinaden yapmış olduğum araştırmalar sonucunda birbirine benzeyen 3 farklı Python aracı (hulk.py , doser.py , attack.py) dikkatimi çekti. Bu araçların kaynak kodları ile bloguma yapılan DoS saldırısını karşılaştırdığımda, gelen isteklerin POST isteği olması sebebiyle doser.py aracı ile bu saldırının gerçekleştirildiği fikri ağır basmış oldu.

HTTP DoS
HTTP DoS
HTTP DoS

Blogumun WordPress yönetici paneline de göz gezdirdiğimde, Aranılan Terimler kısmındaki i_love_brother_This_is_not_an_attack_This_is_a_test arama terimi dikkatimi çekti. Bu terim ile ilgili göndermiş olduğum bir tweete yapılan yorumda da olduğu gibi, blogumun DDoS testlerinde akla ilk gelen blog olabileceğini de dikkate alarak Cloudflare’in yönetim paneli üzerinden Rusya ip adreslerini engelledim.

HTTP DoS

17 Temmuz tarihinde yapılan kısa süreli benzer bir saldırıda bu defa kaynak IP adreslerini görebildiğim için DoS saldırısının Fransa’da bulunan bir ip adresinden (51.254.122.14) gerçekleştirildiğini gördüm ve bu sefer de Fransa ip adreslerini Cloudflare’in yönetim paneli üzerinden engelledim.

HTTP DoS
HTTP DoS
HTTP DoS

23 Temmuz tarihinde yapılan yeni bir DoS saldırısında bu defa blogumun arama sayfasına çok sayıda i_love_you_brother arama terimi gönderdildiğini gördüm. Bu defa kaynak IP adresini (31.223.24.59) görebildiğim için IP adresinin kayıt bilgilerine baktığımda bu defa saldırının Türkiye’den yapıldığını gördüm.

HTTP DoS
HTTP DoS

Bana olan sevgisini sele dönüştürme konusunda ısrarcı olan bu Rus kardeşim ile sistematik olarak mücadele edebilmek ve benzer durumlarla mücadele etmek durumunda kalanlara yol gösterme adına çeşitli araçlardan faydalanmaya karar verdim.

İlk olarak gerçekleştirilen genel DoS saldırılarından hızlıca haberdar olabilmek için OSSEC HIDS yazılımını işletim sistemine kurdum. Buna ilaveten bu saldırıyı tespit edebilmek için de özel olarak bir kural hazırlayıp bu kuralı /var/ossec/rules/http_dos_rules.xml adı altında kaydettikten sonra kuralı içeren dosyayı da /var/ossec/etc/ossec.conf dosyasına kaydettim. ossec-logtest aracı ile de kuralın düzgün çalıştığını kontrol ettikten sonra OSSEC’i yeniden başlatıp attack.py ile bloguma ufak bir DoS saldırısı gerçekleştirdim. Saldırı sonucunda OSSEC başarıyla bu saldırıyı tespit edip beni e-posta ile hemen uyardı.

HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS

OSSEC HIDS ile benim sevgi dolu Rus kardeşimin DoS saldırısını tespit etmek yeterli olmayacağı için fail2ban aracı ile bu iki tür DoS saldırısını tespit eden özel bir kural yazıp, bu yazıda da belirtildiği şekilde Cloudflare API‘si üzerinden saldırganın ip adresini yasaklayan betikten faydalandım. Hazırladığım kuralı kontrol etmek için fail2ban-regex aracından faydalandıktan sonra attack.py ile bloguma saldırarak Cloudflare tarafından ip adresimin başarıyla yasaklandığını gördüm ve Rus kardeşimin yeni saldırıları için kedi fare oyunundaki yerimi sağlamlaştırdım. :)

HTTP DoS
HTTP DoS
HTTP DoS
HTTP DoS

Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

image_pdfShow this post in PDF formatimage_printPrint this page
11 comments
  1. Benim anlamadığım zaten cloudflare kullanıyorsanız
    zaten ip adresin ortada olmaz proxy altındasın.
    Neden fail2ban gibi uygulamalara ihtiyaç duydunuz?
    Ayrıca cf altında olduğunuzda nasıl Layer4 yapabiliyor?
    Siz cfde proxy kapalı mı çalışıyorsunuz?

    1. Web uygulamasına yönelik, Layer 7’de gerçekleştiği için atak, istekler dar boğaza yol açıyordu dolayısıyla gerçek ip adresini bilmesine gerek yok.

  2. Güzel bir yazı olmuş elinize sağlık. Rus hayranınız yeni saldırı gerçekleştirdi mi? :D

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

Profilime Kim Baktı?

If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
Read More