Basitçe hedeflenen sisteme bir ping seli (ping flood) göndermek, DoS saldırısı gerçekleştirmenin en temel ve en ilkel yöntemidir. Daha karmaşık yöntemlerde belirli paket türleri kullanılır. DOS saldırısının popüler bir sürümü olan SYN Flood sıklıkla kullanılır.
TCP protokolü kullanılarak istemci ve sunucu arasında bir oturum başlatıldığında, oturumu oluşturan “üçlü el sıkışması” iletileri sunucu belleğinde küçük bir arabellek alanı ayrılır. Oturumu oluşturan paketler, ileti alışverişindeki diziyi tanımlayan bir SYN alanı içerir.
SYN Flood saldırıları ise bu süreci bozmayı amaçlar.
Bir saldırgan çok sayıda bağlantı isteğini çok hızlı bir şekilde gönderir ve sunucu tarafında her paket için küçük bir alan ayrılmaya başlar. Ardından çok fazla paket gelmesi ile limitler dolar ve sunucu yanıt veremez hale gelir.
Başka bir deyişle, saldırgan bir bağlantı ister, ancak bağlantı dizisinin geri kalanını hiçbir zaman tamamlamaz.
Bu durum sunucudaki bağlantıları yarı açık bırakma etkisine sahiptir ve bunlar için birer arabellek yer ayrılmıştır. Elbette ki ayrılan bu alanlar diğer uygulamalar tarafından kullanılamaz. Her ne kadar tampondaki paket belirli bir süre sonra (yaklaşık üç dakika) cevap verilmezse bırakılır. Pratikte ise bu bağlantı taleplerinin çoğunun bir anda gelişi ve etkisi ile, bir oturumda meşru taleplerinin cevaplanmasını zorlaştırmaktır.
SYN Flood saldırıları, mevcut sunucu kaynaklarını tüketerek meşru trafiğe kapatmayı amaçlayan önemli bir DDOS saldırısıdır.
Saldırgan, ilk bağlantı isteği (SYN) paketlerini tekrar tekrar göndererek, hedef makinesindeki tüm kullanılabilir bağlantı noktalarını doldurabilir ve hedeflenen aygıtın trafiğe yavaş bir şekilde yanıt vermesine veya hiç yanıt vermemesine neden olacaktır.
SYN FLOOD Saldırısı Nasıl Çalışır?
SYN flood saldırıları, bir TCP bağlantısının üçlü el sıkışma sürecini kötü niyetli olarak kullanır. TCP bağlantı iletişimi üçlü el sıkışma ve güvenli bağlantıyı amaçlamaktadır. Normal koşullar altında, TCP bağlantısı, bir bağlantı kurmak için üç farklı işlem sergiler.
- İlk olarak, istemci bağlantıyı başlatmak için sunucuya bir SYN paketi gönderir.
- İkinci adımda sunucu daha sonra iletişimi onaylamak için bu ilk pakete bir SYN / ACK paketi ile yanıt verir.
- Üçüncü adımda ise istemci, paketin sunucudan alındığını onaylamak için bir ACK paketi döndürür. Bu paket gönderme ve alma sırasını tamamladıktan sonra, TCP bağlantısı açılır ve veri gönderip alınabilir.
Siber saldırgan, hizmet reddi oluşturmak için, ilk SYN paketi alındıktan sonra sunucunun bir veya daha fazla SYN / ACK paketi ile yanıt vereceği ve el sıkışmanın son adımını beklemez. Bu noktada sunucuda bir hafıza alanı bağlantı süresi dolana dek kilitlenir.
SYN FLOOD İşleyiş Şekli
- Saldırgan, hedeflenen sunucuya genellikle sahte IP adresleriyle çok yüksek hacimde SYN paketleri gönderir.
- Sunucu daha sonra bağlantı isteklerinin her birine yanıt verir ve yanıtı almaya hazır bir açık bağlantı noktası bırakır.
- Sunucu hiçbir zaman ulaşmayan son ACK paketini beklerken, saldırgan daha fazla SYN paketi göndermeye devam eder.
- Her yeni SYN paketinin gelişi, sunucunun belirli bir süre için yeniden bir açık bir bağlantı noktasını geçici olarak sürdürmesine neden olur ve tüm kullanılabilir bağlantı noktaları tüketildikten sonra sunucu kilitlenmeye ve hizmet verememeye başlar.
Ağ iletişiminde, sunucu bir bağlantıyı açık bıraktığında ve bağlantının diğer tarafındaki cevap verecek makine olmadığında, bağlantı yarı açık kabul edilir. Bu tür DDOS saldırısında, hedeflenen sunucu sürekli olarak açık bağlantıları terk eder ve bağlantı noktaları tekrar kullanılabilir hale gelmeden önce bağlantının zaman aşımına uğramasını bekler. Sonuç olarak bu tür saldırıların “yarı açık saldırı” olarak kabul edilir.
Bir SYN saldırısı üç farklı şekilde meydana gelebilir:
Doğrudan saldırı: Bağlantı isteğinde bulunan IP adresinin sahte olmadığı bir SYN saldırısı, doğrudan saldırı olarak tanımlanır. Bu saldırıda, saldırgan IP adresini hiçbir şekilde gizlemez. Siber saldırganın, saldırıyı oluşturmak için gerçek bir IP adresine sahip tek bir kaynak aygıtı kullanması sonucunda, keşif ve azaltmaya karşı oldukça savunmasız kalacaktır.
Korunma yönteminde dışarı giden paketleri durduran veya gelen SYN-ACK paketlerini kötü niyetli kullanıcının makinesine ulaşmadan önce filtreleyen kurallar kullanılır. Pratikte bu yöntem nadiren kullanılır, çünkü azaltma oldukça basit bir şekilde yapılmaktadır. Saldırgan, Mirai botnet gibi bir ağ kullanıyorsa, virüs bulaşmış cihazın IP’sini maskelemekle ilgilenmez. Bu noktada bu gibi saldırılarda sıklıkla botnetler kullanılmaktadır.
Sahte Saldırı: Kötü niyetli bir kullanıcı, azaltma çabalarını engellemek ve kimliğinin keşfedilmesini daha zor hale getirmek için gönderdiği her SYN paketindeki IP adresini de taklit edebilir. Paketler sahte olabilirken, bu paketler potansiyel olarak kaynaklarına kadar izlenebilir. Bu tür bir araştırma işi yapmak zordur, ancak imkansız değildir. Özellikle İnternet servis sağlayıcıları (ISS’ler) yardım etmeye istekliyse çok daha kolay hale gelir.
Dağıtılmış Saldırılar: Botnet kullanılarak bir saldırı oluşturulursa, saldırıyı kaynağına kadar izleme olasılığı düşüktür. Ek bir gizleme yöntemi olarak bir saldırgan, dağıtılmış her cihaza paket gönderdiği IP adreslerini de taklit ettirebilir. Saldırgan, Mirai botnet gibi bir botnet kullanıyorsa, doğrudan saldırılarda olduğu gibi virüs bulaşmış cihazın IP’sini maskelemekle de ilgilenmez.
SYN Flood Saldırıları Nasıl Azaltılır?
SYN Flood saldırıları siber güvenlik uzmanları için alışıla gelmiş ve uzun bir süredir tecrübe edinilen bir saldırı türüdür. Bu noktada bir dizi saldırı etkisini azaltma tedbiri kullanılır.
İş Kuyruğunu Artırmak
Her işletim sistemi varsayılan olarak belirli sayıda yarı açık bağlantıya sahiptir. Yüksek hacimde gelebilen bir SYN Flood saldırısına karşı bu varsayılan değeri artırmak her zaman faydalı olacaktır. Maksimum birikim sağlayacak olan iş kuyruğu sayesinde gelen yeni isteklere yer açmak için de ek bellek kaynağı olması gerekmektedir. Sistem artan kuyruğa karşın yeterli belleğe sahip değilse elbette ki sistem performansı bu noktada olumsuz etkilenecek ve siber saldırgan yine amacına ulaşmış olacaktır. Yine de sıkça kullanılan ve SYN Flood etkisini azaltan önemli bir koruma, iş kuyruğunu artırmaktır.
Önceki Yarı Açık TCP Bağlantılarını Geri Dönüştürmek
Bir diğer SYN Flood azaltma tekniği de oluşturulan birikim kuyruğu listesi dolduktan sonra önceki yarı açık bağlantıların üstüne yazdırmaktır. Bu sayede bellek verimli olarak kullanılabilir. Elbette ki bu durum meşru bağlantılar ile saldırı vektörlerini ayıramayacağımız için bir kısım gerçek istekleri de sonlandırmış olacaktır. Ancak bu savunma yöntemi sürekli artan SYN Flood karşısında iş listesinde bekleyen kuyruk arttıkça başarısız olacaktır.
SYN Çerezleri Kullanmak
Bu yöntemle sunucu tarafında bir çerez oluşturularak kullanıcıya gönderilir. Bekleme listesi yani iş kuyruğu dolduğu zaman bağlantıların kesilme riskini önlemek için kullanılır. Sunucu her bağlantı isteğine SYN-ACK paketi ile cevap verir. Daha sonra SYN isteğini biriktirme listesinden yani iş kuyruğundan kaldırır. Bağlantı noktası ise açık bırakılarak yeni bağlantı kurmaya hazır hale getirilir.
Bu yöntemde bağlantı isteği meşru ise son bir ACK paketi istemci makineden sunucuya geri gider. Sunucu da kuyruk listesini yeniden oluşturur. Elbette ki gelen istekler için iş kuyruğunu azaltma çabasıdır. Kullanılan bu yöntemde TCP bağlantısıyla ilgili bazı bilgiler kaybedilir ve saldırı sonunda yasal kullanıcıların sunucuya erişimi başarılı bir şekilde sağlanmış olur.