Altyapı Güvenliği

TCP SYN ve TCP SYN/ACK DDoS Saldırıları

DDoS (Distributed Denial of Service) saldırısı, hedeflenen bir sunucu veya servisi gerçek kullanıcılar tarafından erişilemez hale getirmek amacıyla yapılan siber saldırılar olarak tanımlanır.

Oğuz Erdoğan |

22.11.2022

DDoS saldırılarında, binlerce IP kullanılarak hedef alınan sisteme sahte istekler yapılır. Yapılan bu  sahte istekler, hedef alınan sistemin kaynak ve kapasitesinin çok üzerinde bir trafik oluşturur. Böylece  sistem gerçek kullanıcı isteklerine cevap veremez duruma gelir.

 

DDoS saldırıları birçok farklı şekilde yapılabilir. Bu yazımızda en yaygın olarak yapılan DDoS  saldırılarından olan TCP temelli TCP SYN ve TCP SYN/ACK saldırılarından bahsedeceğim.

 

Bir DDoS saldırısını başarılı bir şekilde engelleyebilmek için saldırının çeşidini, nasıl ve ne amaçla  yapıldığını bilmek önemlidir. Yazımızda TCP SYN ve TCP SYN/ACK saldırılarından bahsederken en  temel şekilde öncelikle bu saldırıların nasıl yapıldığına değinip sonrasında nasıl engelleneceğini  anlatacağım.

 

TCP SYN ve SYN/ACK saldırılarının nasıl yapıldığını anlamak için öncelikle TCP’nin kısaca ne olduğunu  ve nasıl bağlantı kurulduğunu hatırlayalım.

 

TCP, uygulama protokollerinin (HTTP, HTTPS, FTP, SSH, SMTP gibi) ve kullanıcı cihazlarının (telefon,  bilgisayar, sunucu gibi) bir ağ üzerinden kayıpsız ve güvenli bir şekilde veri alışverişini gerçekleştirmelerini sağlayan bir iletişim protokolüdür. Örneğin, mobil cihazınızdan bir internet  sitesini ziyaret ettiğinizde ya da bilgisayarınızdan uzaktaki bir sunucuya bağlandığınızda TCP kullanılır. Veri alışverişi gerçekleştirilmeden önce iki sistem arasında “3-way handshake” adı verilen bir TCP  bağlantısı kurulur. Eğer bağlantı başarılı bir şekilde kurulabilirse sistemler arasında veri alışverişi başlar.

 

GY

 

  1. Kullanıcı erişmek istediği sunucuya bir SYN paketi gönderir. (Paket rastgele üretilmiş bir sıra  numarasıyla gönderir.)
  2. Sunucu aldığı SYN paketine karşılık kullanıcıya bir SYN/ACK paketi gönderir. (Gönderilen SYN/ACK paketin sıra numarası rastgele üretilmiş bir sayıdır. ACK numarası ise kendisine  gelen SYN paketinin sıra numarasının 1 fazlasıdır.)
  3. Kullanıcı, sunucudan aldığı SYN/ACK paketine cevap olarak bir ACK paketi gönderir. (Gönderilen paketin sıra numarası, kendisine gelen SYN/ACK paketindeki ACK numarasının  aynısıdır. ACK numarası ise kendisine gelen SYN/ACK paketindeki sıra numarasının 1  fazlasıdır.)

 

Bahsedilen paket alışverişlerinin örnek bir wireshark çıktısı üzerinden örneği aşağıdaki gibidir.

 

GY

 

Yazımızda kullandığımız gösterimler ise şu şekildedir;

 

  • Saldıran: DDoS saldırısını yapan kişi.
  • Gerçek kullanıcı: Sunucuya ya da servise erişmesi gereken kullanıcılar.
  • Sunucu: Saldırı yapılan sistem.
  • DDoS saldırı önleme cihazı: Yapılan saldırıların engellendiği cihaz.

 

Buraya kadar olan kısımlarda temel kavramları hatırladıktan sonra artık TCP SYN ve SYN/ACK  saldırılarından bahsedebiliriz.

 

TCP SYN Saldırısı

 

Saldıran hedef aldığı sunucuya SYN paketi gönderir. Sunucu, TCP çalışma mantığı gereği kendisine  gelen her SYN paketine SYN/ACK paketiyle dönüş yapar ve bağlantı kurulabilmesi için kendisine ACK  paketi gelmesini bekler. Fakat saldıranın amacı bağlantı kurmak değil sunucu kaynaklarını yormak ve  kapasiteyi doldurmaktır. Saldıran, ACK paketi göndermek yerine binlerce IP ile SYN paketleri  göndermeye devam eder. Sunucunun kaynakları dolmaya başladığında kendisine gelen SYN  paketlerine SYN/ACK cevabı verememeye başlar. Saldıran tarafından gönderilen SYN paketlerinin  oluşturduğu trafik de sunucunun bulunduğu internet hat kapasitesinin üzerine çıkar. Bu şekilde artık  sunucu gerçek kullanıcılar tarafından erişilemez hale gelir.

 

GY

 

TCP SYN/ACK Saldırısı

 

SYN/ACK saldırıları SYN saldırılardan daha karmaşık bir DDoS saldırı çeşididir. SYN/ACK saldırılarında  saldıran, internette bulunan başka sunucuları kullanarak hedef aldığı sunucuya DDoS saldırısını  düzenler.

 

Bu saldırıyı bir örnek üzerinden anlatalım;

 

Sunucu-1: Hedef sunucudur. IP adresi 1.1.1.1 olsun.
Sunucu-2: Hedef sunucuya düzenlenecek SYN/ACK saldırısı için kullanılan internette bulunan  sunucudur. IP adresi 2.2.2.2 olsun.

 

Saldıran Sunucu-2’ye bir SYN paketi gönderir. Bu SYN paketi içerisinde kaynak ve hedef IP’yi aşağıdaki  gibi belirler.

 

Kaynak IP: 1.1.1.1
Hedef IP: 2.2.2.2

 

Sunucu-2 kendisine gelen SYN paketine bakar ve kaynak IP olarak 1.1.1.1 olarak gördüğü için  kendisine gelen bu paketin Sunucu-1 tarafından gönderildiğini düşünür. SYN/ACK cevabını Sunucu-1’e  döner.

 

Bu yöntem ile Sunucu-1 çok sayıda SYN/ACK paketi alır. Sunucu-1’in kaynak ve kapasitesi dolmaya  başlar ve gerçek kullanıcılar tarafından erişilemez hale gelir.

 

Saldıran, internette bulunan bir sunucuya çok sayıda SYN paketi gönderebilir. Bu durumda hedef  aldığı sunucuya bir SYN/ACK saldırısı yaparken eş zamanlı olarak internette bulunan bazı diğer  sunuculara SYN saldırısı da düzenlemiş olur. Fakat internette bulunan sunucuya yapılan SYN saldırısı  engellenebilirse saldıranın hedef aldığı sunucuya düzenlemeyi planladığı SYN/ACK saldırısı başarısız  olur. Bu yüzden çoğu zaman saldıran, internette bulunan diğer sunuculara az sayıda SYN paketi  gönderip SYN paketi gönderdiği sunucu sayısını arttırarak yüksek hacimli trafik elde etmeye çalışır.

 

GY

 

TCP SYN ve SYN/ACK Saldırılarını Engelleme Yöntemleri

 

DDoS saldırı önleme cihazları, yapılan DDoS saldırılarını engelleyebilmek ve bu sırada gerçek  kullanıcıların sisteme başarılı bir şekilde erişmesini sağlayabilmek amacıyla kullanılan cihazlardır.

 

Bu cihazlar bir DDoS saldırısı sırasında hedef alınan sunucuya gelen tüm paketleri, cihaz üzerinde özel  olarak belirlenmiş konfigürasyonlar ile birlikte inceler. Saldıran tarafından doğrudan ya da dolaylı  şekilde gönderilmiş paketler ile gerçek kullanıcılar tarafından gönderilmiş paketleri ayırt eder.  Saldıran tarafından gönderilmiş paketleri keserken gerçek kullanıcı paketlerinin sunucuya başarılı bir  şekilde iletilmesini sağlar.

 

GY

 

TCP SYN ve SYN/ACK saldırıları için DDoS saldırı önleme cihazları birçok yöntem kullanabilir. Fakat bu  yazımızda en yaygın ve temel olarak kullanılan TCP SYN Authentication özelliğinden bahsedeceğim.

 

TCP SYN Authentication

 

TCP SYN Authentication özelliği, korumaya aldığı sunucuya gelen paketler üzerinde bir kimlik  doğrulaması yapar. Bu aşamayı başarılı bir şekilde atlatan kullanıcı paketleri sunucuya iletilirken bu  aşamada başarısız olan paketler sunucuya iletilmez ve cihaz üzerinde kesilir.

 

DDoS saldırı önleme cihazına gelen paket bir SYN paketi ise;

 

  • DDoS saldırı önleme cihazı istek sanki kendisine yapılıyormuş gibi sunucunun önüne geçer ve  TCP bağlantısını kendi kurmak ister.
  • Gelen SYN paketine, DDoS saldırı önleme cihazı SYN-ACK paketi ile cevap döner ve kullanıcı  tarafından ACK paketi gelmesini bekler.
  • Kullanıcı tarafından ACK paketi doğru bir şekilde gelirse DDoS saldırı önleme cihazı bunu  gerçek bir kullanıcı olarak sınıflandırır. RST-ACK paketi göndererek kullanıcıdan yeni bir SYN  paketi gelmesini ister ve aradan çekilir. Böylece kimlik doğrulama süreci tamamlanmış olur ve  kullanıcının göndereceği paketler, DDoS saldırı önleme cihazından kesilmeden sunucuya iletir.
  • Saldıran, DDoS saldırı önleme cihazının beklediği ACK paketini göndermek yerine sürekli SYN  paketi göndereceği için kimlik doğrulama sürecini başarılı bir şekilde tamamlayamaz.  Saldıranın gönderdiği tüm paketler cihaz üzerinde kesilir.

 

DDoS saldırı önleme cihazına gelen paket bir SYN/ACK paketi ise;

 

Bir DDoS saldırısı sırasında sunucu içerisinde bulunan bir kullanıcı internete doğru bir istek yapabilir.  Örneğin sunucu içerisindeki bir kullanıcı bir web sayfasını ziyaret etmek isteyebilir. TCP bağlantısının  kurulabilmesi için, kullanıcı web sayfasına bir SYN isteği gönderir. Web sayfası bir SYN/ACK cevabı  döner ve kullanıcı son olarak ACK cevabını iletir. Bu şekilde başarılı bir bağlantı kurulduktan sonra  kullanıcı web sayfasında gezinebilir.

 

DDoS saldırı önleme cihazı bu aşamada kendisine gelen SYN/ACK paketini incelerken bu paketin,  sunucunun web sayfasına doğru gönderdiği bir SYN isteğine gelen bir cevap mı yoksa saldıran  tarafından internette bulunan bir sunucu kullanılarak yapılan bir saldırıdan gelen SYN/ACK paketi mi  olduğunu tespit etmeye çalışır. DDoS saldırı önleme cihazının görevi, saldıran tarafından gönderilen  SYN/ACK paketlerini keserken sunucu içerisindeki bir kullanıcının web sayfasına doğru yapmış olduğu  TCP bağlantı isteklerinin dönüş paketlerini başarılı bir şekilde sunucuya iletmektir.

 

  • DDoS saldırı önleme cihazı istek sanki kendisine yapılıyormuş gibi sunucunun önüne geçer.
  • Gelen SYN/ACK paketine herhangi bir müdahale yapmadan sunucuya iletir. Bu sırada bu  paketin sıra numarasını kaydeder.
  • Eğer bu SYN/ACK paketi sunucu tarafından başlatılmış bir istek ise sunucu bu pakete ACK  cevabı döner. Bir sonraki pakette artık web sayfasından bir veri paketi gelir. DDoS saldırı  önleme cihazı eğer bu veri paketini incelediğinde sıra numaraları düzgünse bunu gerçek bir  istek olarak sınıflandırır ve sunucunun internet erişimine müdahale etmez.
  • Eğer bir veri paketi gelmiyorsa DDoS saldırı önleme cihazı bunun bir saldırı olduğunu tespit  eder ve artık bu paketleri sunucuya iletmez.

 

TCP SYN Authentication yönteminin bahsedilen bu çalışma prensibiyle SYN ve SYN/ACK saldırıları  engellenir.

 

Bu yazımızda temel olarak bir TCP SYN ve TCP SYN/ACK saldırılarının amacını, nasıl yapıldığını ve nasıl  engellenebileceğinden bahsettik.

 

Bir sonraki DDoS saldırı çeşidinde görüşmek üzere.

Oğuz Erdoğan |

22.11.2022

Yorumlar

EMRE BAYKOZ
29.11.2022 - 12:00

Güzel bir paylaşım teşekkürler, yazılarınızın devamını bekliyoruz.

Talha Koç
29.11.2022 - 06:10

Bu yalın ve güzel anlatım için çok teşekkürler. DDoS koruma cihazlarının çalışma mekanizması ile ilgili ciddi bir bilgi sahibi olduk. 

Gamze Nurluoğlu
01.12.2022 - 10:36

Siber saldırıların sistematiğini temelden anlatan bir yazı olmuş. Alan dışı olan ve aslında öğrenmek, bilgi edinmek isteyen kişiler için bu tarz temel anlatımlı yazılar çok değerli. Çok teşekkürler paylaşım için.