Bu yazımda sunuculara brute force attack ve sql injection gibi yöntemler ile sızmaya çalışan kullanıcıları tespit etmek için kullandığım yöntemi sizinle paylaşacağım.
Bu yöntem sayesinde sunucu güvenliğini arttırıp aylık olarak bana atanmış bandwidth’ten tasaruf edebiliyorum. En önemlisi ise sunucunun sürekli ataklara cevap vermesini engelleyip gerçek isteklere cevap verme süresini arttırıyorum.
Öncelikle bu saldırıları anlamak için Python ile sunucunun log dosyalarını okuyup veritabanına kaydeden bir script hazırladım. Bu script sayesinde logları istediğim şekilde parse edip anlamlı hale getirebiliyorum.
Veritabanına kaydettiğim logları Metabase uygulamasını kullanarak görselleştiriyorum.
Aşağıdaki görselde sunucuya gelen isteklerin sayısını görebilirsiniz. Bu görsel 15 günlük trafiği göstermektedir.
Bu görselde tüm trafik gösterilmektedir. Görüldüğü üzere gece 12-01 arasında anormal bir artış görünmektedir. Tabi bu trafiğik normal olabilir. Anormal istekler trafiğin yüksek olduğu saatlerde olacak diye bir şey söz konusu değil. Günün o saatinde trafiği arttıracak reklam verilmiş olabilir. Anormal istekleri çektiğimizde bunu anlayacağız.
Anormal istekleri görüntülediğimizde aşağıdaki gibi bir grafik çıkmaktadır. Bu grafik sunucuya yapılan isteği ve bu isteğin sunucu tarafında bir karşılığı olmadığını göstermektedir.
Gördüğünüz gibi 20:11 sularında toplamda anormal 700 istek gönderilmiş. Bu iki grafiği birleştirdiğimizde farklı zamanlarda atak yapıldığı sonucuna varabiliriz. (Her renk farklı günü göstermektedir) Atak yapılan zamanları aşağıdaki gibi işaretleye biliriz.
Bu da demek oluyor ki saldırı zamanı her gün bir önceki güne göre 1 er saat ileriye atılıyor.
Anormal isteklerli kullanıcı bazında görselleştirdiğimiz zaman aşağıdaki gibi bir grafik çıkmaktadır.
Gördüğünüz gibi ortalama 4 günde bir farklı iplerden ve 1 er saat öteleyerek sunucuya anormal istekler yapılıyor. Bir ip’yi ele aldığımızda yapılan istekler aşağıdaki gibidir. Bu konudaki çıkarımlarımız tutarlı olmuş oldu 🙂
Ataklardan korunmak için kullandığım yöntemleri başka bir blog yazımda ele alacağım.
Bu tür analizleri firmalarda yapmaktayım. Eğer sizin de bu tür analizlere ihtiyacınız varsa (kesinlikle vardır 🙂 ) benimle iletişime geçebilirsiniz.