YildizTurk
Yeni Üye
- Katılım
- 22 Ara 2015
- Mesajlar
- 71
- Tepkime puanı
- 0
- Puanları
- 0
TCP Oturum başlatma
Web sayfalarını gezmek için kullanılan http üzerinden örnek vermek gerekirse bir web sayfasına
ulaşıp içeriğini görebilmemiz için öncelikle TCP oturumunun kurulması(3 lü el sıkışma) gerekir. Bu
adım tamamlandıktan sonra web sayfasının içeriğini görüntüleyecek komutlar sisteme gönderilir.
veren bir TCP portu
açıksa kendisine gelen SYN paketine karşılık olarak ACK+SYN paketi döner.
Dönen paketlerden ACK(onay paketi), SYN ise hizmet veren tarafın istek başlatma paketidir.
Port kapalıysa RST döner, SYNflood saldırısının başarılı olabilmesi için portun açık ve dinlemede
(LISTEN mod)olması gerekir.
Oturum başlangıcında portun alabileceği durumlar
SYN_SEND : Hedef sistemle TCP bağlantısı oluşturma adımının ilkidir. Kısaca SYN bayraklı paket
gönderilip buna karşılık cevap bekleme zamanında portun alacağı durum.
SYN_RECEIVED: Hedef sistem portu bağlantı kurulması için gerekli ilk adım olan SYN paketini
almıştır ve cevap olarak SYN+ACK dönmüştür, karşı taraftan son ACK paketi gelene kadar bu
pozisyonda bekler.
ESTABLISHED: son ACK paketi de gelmiş ve 3 lü el sıkışma tamamlanmış artık taraflar veri transferi
yapabilir durumdadır.
LISTEN: O portun bağlantı kabul eder olduğunu belirtir.
Gelen bir SYN paketine kaç kere SYN+ACK döner ve dönen her cevap kaç byte’dir?
Ortalama bir TCP başlığı 60 Byte, buna dönen SYN+ACK cevabı da 60 Byte civarı olacaktır ve
yapılandırılışına göre SYN paketini alan sistem son ACK paketini alana kadar 5-6 kere SYN+ACK
paketini tekrar gönderir ki bu da ortalama 3 dakika tutar.
LISTEN durumunda olan bir TCP portuna SYN paketi geldiğinde SYN_RECEIVED durumuna geçer ve
son ACK paketi gelene kadar verileri bir veriyapısında tutar. Bu veriyapısı TCB(Transmission Control
Block) olarak adlandırılır. İşletim sistemlerine göre TCB değeri değişkenlik gösterse de ortalama olarak
sistemden 280-1300 byte arası bellek kullanır (Üçlü el sıkışma tamamlanana kadar bir SYN
paketininin sistemden kullandığı bellek miktarı )
İşletim sistemleri gelecek fazla isteklerden kaynaklanacak bellek yetmezliğini önleme amaçlı
TCB’lerin tutacağı max bellek miktarını sınırlandırırlar.
SynFlood Nasıl Gerçekleşir?
Syn Flood saldırısı basitce açık bir porta hedef sistemin kapasitesinden fazla gönderilecek SYN
paketleriyle gerçekleştirilir. Buradaki “kapasite” tanımı önemlidir. Teknik olarak bu kapasiteye
Backlog Queue denilmektedir.
Backlog queue kavramı
İşletim sistemleri aldığı her SYN paketine karşılık üçlü el sıkışmanın tamamlanacağı ana kadar
bellekten bir alan kullanırlar, bu alan TCB olarak adlandırılır ve bu alanların toplamı backlog queue
olarak adlandırılır.
Başka bir ifadeyle işletim sisteminin half-open olarak ne kadar bağlantı tutabileceğini backlog queue
veriyapısı belirler. Bu değer her işletim sisteminde vardır ve ön tanımlı olarak düşük bir değerdir(256
gibi). SYNFlood saldırılarında bu değer arttırılarak saldırıya karşı ek önlem alınabilir.
Synflood saldırılarında tüm mesele backlog queue’nin dolması ve yeni gelen bağlantıların
reddedilmesidir. Backlog queue değerinin büyük olması demek daha fazla half-open(SYN paketi)
bağlantı kabul edebilmek demektir.
Backlog queue dolmasıyla birlikte işletim sistemi yeni bağlantı kabul edemez ve bu esnada sunucuya
bağlanmaya çalışanlar bağlanamazlar ki bu da SYN Flood saldırısına denk gelir.
Web sayfalarını gezmek için kullanılan http üzerinden örnek vermek gerekirse bir web sayfasına
ulaşıp içeriğini görebilmemiz için öncelikle TCP oturumunun kurulması(3 lü el sıkışma) gerekir. Bu
adım tamamlandıktan sonra web sayfasının içeriğini görüntüleyecek komutlar sisteme gönderilir.
veren bir TCP portu
açıksa kendisine gelen SYN paketine karşılık olarak ACK+SYN paketi döner.
Dönen paketlerden ACK(onay paketi), SYN ise hizmet veren tarafın istek başlatma paketidir.
Port kapalıysa RST döner, SYNflood saldırısının başarılı olabilmesi için portun açık ve dinlemede
(LISTEN mod)olması gerekir.
Oturum başlangıcında portun alabileceği durumlar
SYN_SEND : Hedef sistemle TCP bağlantısı oluşturma adımının ilkidir. Kısaca SYN bayraklı paket
gönderilip buna karşılık cevap bekleme zamanında portun alacağı durum.
SYN_RECEIVED: Hedef sistem portu bağlantı kurulması için gerekli ilk adım olan SYN paketini
almıştır ve cevap olarak SYN+ACK dönmüştür, karşı taraftan son ACK paketi gelene kadar bu
pozisyonda bekler.
ESTABLISHED: son ACK paketi de gelmiş ve 3 lü el sıkışma tamamlanmış artık taraflar veri transferi
yapabilir durumdadır.
LISTEN: O portun bağlantı kabul eder olduğunu belirtir.
Gelen bir SYN paketine kaç kere SYN+ACK döner ve dönen her cevap kaç byte’dir?
Ortalama bir TCP başlığı 60 Byte, buna dönen SYN+ACK cevabı da 60 Byte civarı olacaktır ve
yapılandırılışına göre SYN paketini alan sistem son ACK paketini alana kadar 5-6 kere SYN+ACK
paketini tekrar gönderir ki bu da ortalama 3 dakika tutar.
LISTEN durumunda olan bir TCP portuna SYN paketi geldiğinde SYN_RECEIVED durumuna geçer ve
son ACK paketi gelene kadar verileri bir veriyapısında tutar. Bu veriyapısı TCB(Transmission Control
Block) olarak adlandırılır. İşletim sistemlerine göre TCB değeri değişkenlik gösterse de ortalama olarak
sistemden 280-1300 byte arası bellek kullanır (Üçlü el sıkışma tamamlanana kadar bir SYN
paketininin sistemden kullandığı bellek miktarı )
İşletim sistemleri gelecek fazla isteklerden kaynaklanacak bellek yetmezliğini önleme amaçlı
TCB’lerin tutacağı max bellek miktarını sınırlandırırlar.
SynFlood Nasıl Gerçekleşir?
Syn Flood saldırısı basitce açık bir porta hedef sistemin kapasitesinden fazla gönderilecek SYN
paketleriyle gerçekleştirilir. Buradaki “kapasite” tanımı önemlidir. Teknik olarak bu kapasiteye
Backlog Queue denilmektedir.
Backlog queue kavramı
İşletim sistemleri aldığı her SYN paketine karşılık üçlü el sıkışmanın tamamlanacağı ana kadar
bellekten bir alan kullanırlar, bu alan TCB olarak adlandırılır ve bu alanların toplamı backlog queue
olarak adlandırılır.
Başka bir ifadeyle işletim sisteminin half-open olarak ne kadar bağlantı tutabileceğini backlog queue
veriyapısı belirler. Bu değer her işletim sisteminde vardır ve ön tanımlı olarak düşük bir değerdir(256
gibi). SYNFlood saldırılarında bu değer arttırılarak saldırıya karşı ek önlem alınabilir.
Synflood saldırılarında tüm mesele backlog queue’nin dolması ve yeni gelen bağlantıların
reddedilmesidir. Backlog queue değerinin büyük olması demek daha fazla half-open(SYN paketi)
bağlantı kabul edebilmek demektir.
Backlog queue dolmasıyla birlikte işletim sistemi yeni bağlantı kabul edemez ve bu esnada sunucuya
bağlanmaya çalışanlar bağlanamazlar ki bu da SYN Flood saldırısına denk gelir.