Resim 1. Güvenlik çözümü ( FW / IPS ) hedef sunucu imiş gibi istemciden gelen iletişim isteklerini karşılar. İletişim isteği spoofed yani sahte bir kaynaktan gelmiyorsa şayet ve güvenlik çözümü istemciyle 3 yollu el sıkışmayı (3-way-handshake) tamamlayabildiyse bu isteği bu defa istemci imiş gibi sunucuya iletir, bir başka deyişle 3-way-handshake i tekrar eder (replay). Daha sonra istemci ve sunucu arasındaki veri iletişmi, kurulan bu bağlantı üzerinden devam eder.İstek spoofed Ip adresinden geliyorsa güvenlik çözümünün SYN-ACK bayraklı paketi ACK bayraklı paketle cevaplanmayacaktır,dolayısıyla istek sunucuya iletilmeyecektir. Sunucu da olan bitenden habersiz mutlu mesut çalışmaya devam eder.
Bildiğiniz ya da bildiğinizi umduğum gibi UDP'den farklı olarak TCP iletişimin kontrol altında olduğu bir prokol ve bu kontrol de Sequence Number, Acknowledgement Number, Window, Checksum gibi TCP headerlarla sağlanıyor. Alış verişi yapılan paketler özellikle Sequence ve Acknowledgement sayılarına göre sıraya konuyor, alınmadıysa tekrar gönderilmesi isteniyor ya da paket değerlendirilmeye alınmıyor. 3-way handshake sırasında her iki ucun oluşturduğu Sequence number dediğimiz değer ise tahmin edilemez olmalı aksi halde protokol yeni tehditlere ve saldırılara açık hale gelir ( ki geçmişte bu zaafiyetin kullanıldığı saldırı teknikleri de geliştirilmiştir bkz TCP Sequence Number Prediction ve TCP Reset Attacks ).
Birinci 3-way-handshake de güvenlik çözümü, sunucu imiş gibi davranırken kendince bir sequence number üretir ve handshake'i bu sequence number ile tamamlar. İkinci 3-way-handshake'de ise sunucu kendince bir sequence number üretecektir.Anlaşılması gereken istemci ve güvenlik çözümü arasındaki birinci 3-way-handshake sonunda güvenlik çözümünün üreteceği Sequence sayısı ile güvenlik çözümü ve sunucu arasındaki ikinci 3-way-handshake sonunda sunucunun üreteceği Sequence sayısının birbirinden farklı olacağı (bakınız bir önceki paragraf), sunucunun ürettiği gerçek Sequence numarasını ve sunucu Receive Buffer boyutunu (Window Size) bilmeden istemcinin sunucu ile nasıl iletişim kuracağı.
Resim 2
Resim 2'de gösterildiği gibi istemci ve sunucu, kendileriyle yapılan 3-yollu-el sıkışma sonucunda üretilen Sequence numaralarıyla doğrudan iletişim kuramazlar. Bunu yapmaya çalıştıklarında Sequence numaraları uyuşmazlık göstereceği için karşılıklı birbirlerinin paketlerini - herhangi bir iletişimin parçası olmadığı düşüncesiyle - kabul etmezler ve binbir zahmetle kurulan iletişim 3-yollu el sıkışmanın hemen sonrasında kesilir.
Bu problemin çözümü ve cevabı yine güvenlik çözümünde saklı, Syn-Proxy mekanizmasında alışverişi yapılan paketler aslında Resim 3'de gösterildiği gibi;
Resim 3. Syn-Proxy korumasında HTTP erişimi
Syn-Cookie mekanizmasını çeşitli Linux işletim sistemlerinde de görebilirsiniz ama Syn-Proxy yapısı gereği sadece Firewall ve IPS gibi güvenlik çözümlerinde kullanıldığında etkili olabilen bir yöntemdir. Bir sonraki muhtemelen Syn-Cookie hakkında olur, ya da olmayabilir de :)
Hiç yorum yok:
Yorum Gönder