SYN Flood Saldırısı Ve Wireshark Analizi
Bilgisayar ağları günümüzde hayati öneme sahip bir bileşen haline gelmiştir. Ancak, bu ağlar üzerindeki saldırılar da giderek karmaşıklaşmaktadır. Bu saldırı türlerinden biri olan SYN flood saldırıları, özellikle TCP/IP protokolünü kullanan sistemler üzerinde ciddi zararlara neden olabilir. SYN flood saldırıları, ağ kaynaklarını tüketerek hizmet kesintilerine yol açar ve güvenlik açıklarından faydalanarak sistemlere zarar verebilir. Bu nedenle, SYN flood saldırılarını tespit etmek ve analiz etmek, ağ güvenliği uzmanlarının öncelikli görevlerinden biridir.
Bu makalede, SYN flood saldırılarının tespiti ve analizi üzerine odaklanacağız. İlk olarak, SYN flood saldırılarının ne olduğunu, nasıl gerçekleştiğini ve potansiyel zararlarını anlatacağız. Ardından, SYN flood saldırılarını tespit etmek için kullanılan yöntemleri inceleyeceğiz. Bu yöntemler arasında ağ trafiği analizi, anomalilerin izlenmesi ve saldırı tespit sistemlerinin kullanımı gibi teknikler bulunmaktadır. Son olarak, SYN flood saldırılarını analiz etmek ve saldırıya karşı savunma stratejileri geliştirmek için hangi araçların kullanılabileceğini tartışacağız. Bu makale, ağ güvenliği uzmanlarının SYN flood saldırılarına karşı daha etkili bir savunma stratejisi oluşturmalarına yardımcı olmayı amaçlamaktadır.
1. SYN Flood
Bir web sunucu kaynaklarını tüketerek ve trafik oluşturarak sunucu kullanılamaz hale getirmeyi amaçlayan bir hizmet reddi (DDoS) saldırısıdır.
TCP SYN saldırısı, TCP protokolündeki bir güvenlik açığından yararlanan bir tür hizmet reddi (DoS) saldırısıdır. Saldırı, hedef sunucuya çok sayıda SYN paketi göndererek çalışır. Bu SYN paketleri eksiktir ve sunucu her birine bir SYN-ACK paketiyle yanıt verecektir. Saldırgan TCP bağlantısını asla tamamlamaz ve sonunda sunucunun kaynakları tükenir ve kullanılamaz hale gelir.
1.1.1. Ortam:
● İnternet bağlantısı olan bir bilgisayar
● Bir TCP SYN saldırı aracı (örneğin, Hping3, Ncat)
● Hedef sunucunun IP adresi
1.1.2. Yapılacaklar:
● TCP SYN saldırısı
● Saldırı tespiti
1.1.3. Adımlar:
- TCP SYN Flood saldırı araçlarını açıp aktif hale getirme.
- Hedef sunucunun IP adresine gönderilecek SYN paketlerinin sayısını ayarladıktan sonra saldırıyı başlatama.
- Wireshark ile saldırı sonucunu tespit ettikten sonra hedef sunucunun güvenlik duvarlarını aktifleştirerek saldırıyı engelleme.
2. SYN Flood Saldırısı
TCP SYN Flood saldırısı TCP’nin handshake yollarından yararlanmayı amaçlamaktadır. Handshake üç adımdan oluşur:
- İstemci sunucuya bağlantı oluşturmak için bir SYN mesajı gönderir.
- Sunucu istemciye cevap olarak bir SYN-ACK göndererek isteği onaylar.
- İstemci bir ACK ile yanıt vererek bağlantı başlatır.
Bir TCP SYN Flood saldırısı sunucuya bir dizi SYN isteği gönderir. Ancak son ACK’yı bilerek göndermekten kaçınır. Bu sunucunun gelmeyeceğine bilmediği için yanıtı beklemesine dolayından yarı açık bağlantıların her birine için kaynak tüketir.
3. SYN Flood Saldırı Türleri
Spoofed: istemci sunucuya gelen SYN paketleri IP adresini taklit ederek.
Direct: saldırgan saldırı için gerçek IP adresi tek kaynaklı bir cihaz kullanır.
Distributed: kötü amaçlı paketlerin kaynağını yayan birçok cihaza roobot kullanır.
4. SYN Saldırılarını Azaltma Teknikleri
Filtreleme: filtreleme kuralları oluşturma, kötü amaçlı IP adreslerine ve SYN isteklerini engelleme.
Artan biriktirme: sunucular daha sayıda SYN isteğini işleyebilir.
SYN-RECEIVED zamanlayıcıyı azaltıma: Sunucunun bir SYN-ACK gönderdikten sonra ACK bekleme süresi azaltmak
SYN Önbelleği: Sunucuya gelen SYN isteğine yüksek sayıda ayırmak yerine, istek hakkında daha az miktarda bilgi depolamak için önbellek kullanma.
5. Test Ortamının Oluşturulması
Saldırı test ortamını oluşturmak için Vmware programını yüklememiz gerekmektedir. Program üzerinden 2 adet sanal sunucu oluşturup içerisine Kali Linux işletim sistemini yüklememiz gerekmektedir.
İki sanal makinelerin kendi ip adresleri öğrenmek için ip a komutu kullanıldı.
Şekil 2 1.Sanal sunucunun ip bilgileri
İki sanal makine arasında bağlantı olup olmadığını kontrol edebilmek için birbirlerine ping atıyoruz.
5.1. Saldırı İçin Bilgi Toplama
5.2. Attack Aşamaları
Çoğu durumda, saldırganlar rastgele IP adreslerini taklit etmek için hping veya başka bir araç kullanır; bu nedenle, biz buna odaklanacağız.
5.2.1. Nmap
Bağlantı Noktası Tarama: Nmap, hedef sistemdeki açık bağlantı noktalarını taraması. TCP, SYN ve UDP içeren çeşitli tarama türlerini destekler. Bağlantı noktası taraması, bir sistem üzerinde çalışan hizmetleri ve olası güvenlik açıklarını anlamak için çok önemlidir.
5.2.2. Scan
Saldırganın SYN saldırısı sırasında bağlantı noktalarını taramayı seçmesinin bir nedeni, hedef sistemdeki açık bağlantı noktalarını belirlemektir. Saldırgan, çeşitli portlara SYN paketleri göndererek hedef sistemin verdiği tepkilere gözlemleyebilir. Bir port açıksa, hedef sistem bir bağlantı kurmaya istekli olduğunu belirten bir SYN-ACK ile yanıt verebilir. Bir bağlantı noktası kapalıysa, hedef sistem farklı türde bir paketle yanıt verebilir.
5.3. Saldırının Gerçekleştirilmesi
Aşağıdaki satır, SYN Flood saldırısını başlatmamızı ve hedefimize (192.168.248.129) yönlendirmeyi sağlar.
-c gönderilecek paket sayısı belirler -rand-source random source adress
-d data hacmi belirler -p hangi porta paketleri gönderecek
5.4. Saldırı tespiti
Aşağıdaki filtreyi kullanarak herhangi bir bildirim olmadan SYN paketlerini filtreleyebiliriz.
tcp.flags.syn == 1 and tcp.flags.ack == 0
— rand-source: komutu kullanıldığı için gönderici ip address random bir şekilde değişir
SYN flood saldırı esnasında ack=1 göndermediğine kontrol etmek için tcp.flags.syn == 1 and tcp.flags.ack == 1 kullandık
5.5. Farklı Saldırı Örneği
6. Gerçek Ortam
Saldırının gerçek ortamda gerçekleştirebilmek için 2 bilgisayara ihtiyacımız var. Saldırı yapacak bilgisayar işletim sistemi kali linux, saldırı yapılacak bilgisayarın işletim sisteminde ise Windows 10 bulunmaktadır.
6.1. Saldırıyı Gerçekleştirme
Aşağıdaki satır, SYN Flood saldırısını başlatmamızı ve hedefimize (192.168.1.104) yönlendirmeyi sağlar.
-c gönderilecek paket sayısı belirler -d data hacmi belirler -p hangi porta paketleri gönderecek
6.2. Saldırının Tespiti
Aşağıdaki filtreyi kullanarak herhangi bir bildirim olmadan SYN paketlerini filtreleyebiliriz.
tcp.flags.syn == 1 and tcp.flags.ack == 0
— rand-source: komutu kullanıldığı için gönderici ip address random bir şekilde değişirs
Şekil 15 saldırı yapılan bilgisayardan saldırının tespiti