Banjir SYN adalah bentuk serangan DoS di mana penyerang mengirimkan serangkaian permintaan SYN
ke server target dalam upaya untuk menggunakan sumber daya server yang cukup untuk membuat sistem tidak responsif terhadap lalu lintas yang sah [1] .
Permintaan
SYN
dan paketSYN
adalah hal yang sama
Serangan banjir SYN bekerja dengan memanfaatkan proses jabat tangan koneksi TCP. Dalam kondisi normal, TCP menunjukkan tiga proses berbeda untuk membuat koneksi (Gambar 1a).
SYN
( sinkronisasi ) ke server.SYN-ACK
, untuk ACK
( mengakui ) komunikasi.ACK
untuk mengakui penerimaan paket dari server dan koneksi dibuat.Setelah menyelesaikan urutan pengiriman dan penerimaan paket ini, koneksi TCP terbuka dan dapat mengirim dan menerima data. Ini disebut jabat tangan tiga arah TCP. Teknik ini merupakan dasar dari setiap koneksi yang dibuat menggunakan TCP.
Untuk membuat DoS, penyerang mengeksploitasi fakta bahwa setelah paket SYN
awal diterima, server akan merespons dengan satu atau lebih paket SYN-ACK
dan menunggu langkah terakhir dalam jabat tangan. Cloudflare [2] menjelaskan cara kerjanya (Gambar 1b):
SYN
dalam jumlah besar ke server target, seringkali dengan alamat IP palsu.ACK
terakhir, yang tidak pernah sampai, penyerang terus mengirimkan lebih banyak paket SYN
. Kedatangan setiap paket SYN
baru menyebabkan server untuk sementara waktu mempertahankan koneksi port terbuka baru untuk jangka waktu tertentu, dan setelah semua port yang tersedia telah digunakan, server tidak dapat berfungsi secara normal. Serangan pada repositori ini dilakukan di VM. Dibutuhkan tiga mesin untuk melakukan serangan tersebut. Satu mesin digunakan sebagai penyerang , mesin lain digunakan sebagai korban (yaitu server), dan mesin ketiga digunakan sebagai pengamat (yaitu klien).
Untuk menyiapkan serangan, tiga VM dapat disiapkan di komputer host yang sama. Alternatifnya, dua VM dapat diatur pada komputer host dengan mesin host itu sendiri bertindak sebagai komputer ketiga.
Serangan ini diterapkan dengan asumsi bahwa penyerang berada di jaringan fisik yang sama dengan korban - sehingga menyederhanakan tugas menentukan nomor urut TCP dan nomor port sumber. Alat sniffer dapat digunakan untuk mengumpulkan informasi yang diperlukan.
Serangan pada repositori ini dilakukan menggunakan alat netwox
. Kemudian, alat sniffer seperti Wireshark [3] digunakan untuk menangkap paket penyerang. Saat serangan sedang berlangsung, netstat -na
dijalankan pada mesin korban untuk membandingkan hasilnya dengan sebelum serangan.
# check the size of the queue for holding half-open connections
sudo sysctl -q net.ipv4.tcp_max_syn_backlog
# check the current usage of the queue;
# i.e., the number of half-open connections associated with some listening port
netstat -na
# one netwox tool that may be useful is tool number 76: synflood
netwox 76 --help
kue SYN:
Serangan pada repositori ini dilakukan dengan memanipulasi cookie SYN.
Penggunaan cookie SYN memungkinkan server menghindari terputusnya koneksi ketika antrian SYN terisi. Daripada menyimpan koneksi tambahan, entri antrian SYN dikodekan ke dalam nomor urut yang dikirim dalam respons SYN-ACK. Jika server kemudian menerima respons ACK berikutnya dari klien dengan nomor urut yang bertambah, server dapat merekonstruksi entri antrian SYN menggunakan informasi yang dikodekan dalam nomor urut TCP dan melanjutkan koneksi seperti biasa.
Meskipun upaya mitigasi ini menghilangkan beberapa informasi tentang koneksi TCP, hal ini lebih baik daripada membiarkan DoS menimpa pengguna yang sah sebagai akibat dari serangan.
Cookie SYN dibuat oleh DJ Bernstein [4] sebagai respons langsung terhadap banjir SYN.
Gunakan perintah sysctl
untuk menghidupkan/mematikan mekanisme cookie SYN:
sudo sysctl -a | grep cookie # Display the SYN cookie flag
sudo sysctl -w net.ipv4.tcp_syncookies=0 # turn off SYN cookie
sudo sysctl -w net.ipv4.tcp_syncookies=1 # turn on SYN cookie
Cookie SYN adalah salah satu dari banyak tindakan penanggulangan yang dapat diterapkan untuk menghentikan banjir SYN. Mitigasi lainnya termasuk meningkatkan ukuran maksimum antrian, mengurangi timer SYN-RECEIVED
, dan mendaur ulang koneksi TCP setengah terbuka yang tertua.
^ "CERT Advisory CA-1996-21 TCP SYN Flooding dan Serangan Spoofing IP" Universitas Carnegie Mellon
^ "Serangan Banjir SYN" Cloudflare
^ "Tentang Wireshark" Yayasan Wireshark
^ "Kue SYN" DJ Bernstein
Terima kasih atas minat Anda, proyek ini menyenangkan dan berwawasan luas!