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.
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.
- Kullanıcı erişmek istediği sunucuya bir SYN paketi gönderir. (Paket rastgele üretilmiş bir sıra numarasıyla gönderir.)
- 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.)
- 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.
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.
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.
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.
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.
22.11.2022
Yorumlar
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.
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.
Güzel bir paylaşım teşekkürler, yazılarınızın devamını bekliyoruz.