Koneksi normal antara pengguna (Alice) dan server. Jabat tangan tiga arah dilakukan dengan benar.
SYN Flood. Penyerang (Mallory) mengirimkan beberapa paket tetapi tidak mengirim "ACK" kembali ke server. Karena itu, koneksi setengah terbuka dan menghabiskan sumber daya server. Alice, pengguna yang sah, mencoba untuk terhubung tetapi server menolak untuk membuka koneksi yang mengakibatkan penolakan layanan.
Sebuah **SYN flood** adalah bentuk serangan penolakan layanan di mana penyerang dengan cepat memulai koneksi ke server tanpa menyelesaikan koneksi. Server harus menghabiskan sumber daya menunggu koneksi yang setengah terbuka, yang dapat menghabiskan sumber daya yang cukup untuk membuat sistem tidak responsif terhadap lalu lintas yang sah.

Paket yang dikirimkan penyerang adalah paket `SYN`, bagian dari jabat tangan tiga arah TCP yang digunakan untuk membuat sambungan.

Detail teknis
-------------

Ketika klien mencoba untuk memulai koneksi TCP ke server, klien dan server bertukar serangkaian pesan yang biasanya berjalan seperti ini:

1. Klien meminta koneksi dengan mengirimkan pesan `SYN` (*synchronize*) ke server.
2. Server *menerima* permintaan ini dengan mengirim kembali `SYN-ACK` ke klien.
3. Klien menanggapi dengan `ACK`, dan sambungan dibuat.

Ini disebut jabat tangan tiga arah TCP, dan merupakan fondasi untuk setiap koneksi yang dibuat menggunakan protokol TCP.

Sebuah serangan SYN flood bekerja dengan tidak menanggapi server dengan kode `ACK` yang diharapkan. Klien jahat bisa saja tidak mengirim `ACK` yang diharapkan, atau dengan spoofing alamat IP sumber di `SYN`, menyebabkan server mengirim `SYN-ACK` ke alamat IP yang dipalsukan – yang tidak akan mengirim `ACK` karena itu "tahu" bahwa ia tidak pernah mengirim `SYN`.

Server akan menunggu pemberitahuan untuk beberapa waktu, karena kemacetan jaringan sederhana juga bisa menjadi penyebab `ACK` hilang. Namun, dalam sebuah serangan, *koneksi setengah terbuka* yang dibuat oleh klien jahat mengikat sumber daya di server dan pada akhirnya dapat melebihi sumber daya yang tersedia di server. Pada titik itu, server tidak dapat terhubung ke klien mana pun, baik yang sah atau tidak. Ini secara efektif menolak layanan kepada klien yang sah. Beberapa sistem juga dapat mengalami kegagalan fungsi atau crash ketika fungsi sistem operasi lain kekurangan sumber daya dengan cara ini.

Penanggulangan
--------------

Ada beberapa cara yang dapat dilakukan untuk mencegah dan mengurangi efek dari ''SYN Flooding'', yakni sebagai berikut:

* Meningkatkan ukuran buffer koneksi TCP untuk meningkatkan jumlah percobaan pembuatan koneksi yang dapat dilakukan secara simultan. Hal ini memang menjadi solusi sementara, karena penyerang juga mungkin meningkatkan ukuran paket SYN yang ia kirimkan untuk memenuhi buffer tersebut.
* Mengurangi nilai waktu kapan sebuah percobaan pembuatan koneksi TCP menjadi "timed-out". Hal ini juga menjadi solusi sementara, apalagi jika jaringan di mana sistem berada sangat sibuk atau lambat.
* Mengimplementasikan penapisan paket yang masuk ke dalam router, sehingga memblokir semua serangan yang menggunakan alamat palsu. Hal ini juga menjadi solusi sementara, karena tidak semua ISP mengimplementasikan fitur seperti ini.
* Memantau *firewall* dan mengonfigurasikannya untuk memblokir serangan *SYN flood* ketika hal tersebut terjadi. Pendekatan ini merupakan pendekatan yang sering dilakukan oleh banyak organisasi, apalagi jika ditambah dengan *Intrusion Prevention System* (IPS), meski hal ini membutuhkan kejelian dari seorang administrator jaringan untuk memantau catatan (*log*) dari IPS dan *firewall* yang ia atur. Bahkan, dengan kedua perangkat tersebut, klien-klien yang valid dapat ditolaknya karena konfigurasi yang tidak benar.

Ada sejumlah tindakan pencegahan terkenal yang terdaftar di RFC 4987 termasuk:

1. Penyaringan
2. Meningkatkan backlog
3. Mengurangi timer SYN-RECEIVED
4. Mendaur ulang TCP setengah terbuka terlama
5. Cache SYN
6. SYN cookies
7. Pendekatan Hybrid
8. Tembok api dan proxy

Lihat pula
----------

* Serangan Denial-of-service
* Serangan Fraggle
* Internet Control Message Protocol
* Spoofing alamat IP
* Ping flood
* Serangan smurf
* Serangan UDP flood

Referensi
---------

1. ↑  "CERT Advisory CA-1996-21 TCP SYN Flooding and IP Spoofing Attacks". *Carnegie Mellon University Software Engineering Institute*. Diarsipkan dari versi asli (PDF) tanggal 2000-12-14. Diakses tanggal 18 September 2019.  Parameter `|url-status=` yang tidak diketahui akan diabaikan (bantuan)
2. ↑  New York's Panix Service Is Crippled by Hacker Attack, New York Times, September 14, 1996
3. ↑  "What is a DDoS Attack?". *Cloudflare.com*. Cloudflare. Diakses tanggal 4 May 2020.

Pranala luar
------------

* Penasihat CERT resmi tentang Serangan SYN