Kita mungkin sering Pernah mendengar banjir SYN ? yakni, Tiba-tiba URL atau email kita tidak dapat diakses dengan browser, padahal akses ke server tidak begitu banyak dan webserver berjalan dengan normal, atau sekerika kita tidak dapat mengambil email, dengan muncul pesan error seperti : “server sedang sibuk” dan lain sebagainya. Kalau anda periksa di log server, dan akses ke server tidak banyak maka ada kemungkinan besar anda kena banjir SYN ini.
Banjir data ini sudah pasti akan
sangat mengganggu kinerja server kita. Akibat dari serangan ini, beberapa layanan
server tidak akan bekerja dengan baik bahkan bisa mati.
Istilah
SYN Flood didalam dunia teknologi Apalagi pengguna Linux memang bukan hal baru,
walaupun istilah ini masih terasa asing bagi para pengguna atau user itu
sendiri, SYN Flood merupakan Denial of Service yang memanfaatkan 'loophole'
pada saat pembentukan atau pembuatan koneksi TCP/IP. Kernel Linux terbaru
(2.0.30 dan yang terbaru) telah mempunya opsi konfigurasi untuk mencegah Denial
of Service dengan mencegah atau menolak cracker untuk mengakses sistem.
SYN flooding attack merupakan
istilah teknologi informasi yang mengarah kepada salah satu jenis serangan yang
menggunakan paket SYN. Serangan untuk melumpuhkan koneksi ke sebuah Server
dengan memasukkan paket data yang sangat banyak.
Paket-paket SYN adalah salah satu
jenis paket dalam protocol Transmission
Control Protocol (TCP/IP) yang digunakan untuk membuat koneksi
antara dua host dan dikirimkan oleh host yang hendak membuat koneksi, sebagai
langkah pertama pembuatan koneksi dalam proses “TCP Three-way Handshake“. (wiki)
Skema sebuah serangan SYN Flooding, biasanya penyerang akan
mengirimkan paket-paket SYN ke dalam port-port yang
sedang berada dalam keadaan "Listening"
yang berada dalam host yang
telah ditergetkan. lazimnya, paket-paket
SYN yang dikirimkan berisi alamat sumber yang menunjukkan sistem aktual, tetapi
paket-paket SYN dalam serangan ini biasanya
didesain
sedemikian rupa, sehingga paket-paket tersebut memiliki alamat sumber yang
tidak menunjukkan sistem aktual
dan susah untuk dilacak.
Jumlah
percobaan pembuatan koneksi TCP yang dapat ditampung oleh sebuah host di
dalam buffer biasanya berbeda antara
satu platform dengan platform yang lain, namun jumlahnya
tidak lebih dari beberapa ratus koneksi. Dengan banyak mengirimkan paket SYN ke sebuah port yang berada dalam
keadaan listening yang berada dalam host yang telah ditargetkan, buffer
koneksi yang dialokasikan oleh sistem penerima dapat mengalami “Penumpukkan", dan target pun
menjadi tidak dapat membaca koneksi yang
datang hingga paket SYN yang sebelumnya mengalami gagal ekskusi atau sering dikenal
dengan istilah Time Out. Sistem operasi biasanya dapat
mengalami gagal
proses ketika buffer koneksi kebaniran paket data dan server
mau tidak mau harus di
reset ulang.
Baik restart ulang sistem
operasi ataupun merestart buffer yang
dipenuhi dengan paket SYN yang tidak jelas datangnya yang mengakibatkan
pengguna lain tidak dapat
mengakses layanan-layanan dalam jaringan.
Dalam kondisi normal,
client akan mengirimkan paket data yang berupa SYN untuk menselaraskan diri
kepada server. Kemudian server menerima request dari client dan akan memberikan
jawaban ke client berupa AC (Acknowledgement) sebagai tanda transaksi sudah
dimulai (pengiriman dan penerimaan data), maka sebuah paket SYN akan dikirimkan
lagi ke client.
Biasanya serangan ini
memenuhi server dengan begitu banyak paket SYN, karena saat pengiriman
paket SYN oleh client, server juga akan mengirim paket SYN ACK ke client.
Server akan terus
mencatat dan membuat antrian backlog untuk menunggu respons ACK dari client
yang sudah mengirim paket SYN. Biasanya memori yang disediakan untuk backlog
tadi sangat kecil. Pada saat antrian backlog penuh, sistem tidak merespon
paket TCP SYN lain yang masuk atau bisa dikatakan hang/crash.
Paket TCP SYN ACK
yang masuk diantrian backlog hanya akan dibuang dari backlog pada saat terjadi
time out dari timer TCP yang menandakan bahwa tidak ada respon dari pengirim.
Begitu banyak sambungan port 25 yang
statusnya adalah SYN_RECV, artinya koneksi sudah siap diterima tapi tidak
diteruskan oleh si peminta. Dengan kata lain server kebanjiran permintaan akan
tetapi tidak ada respon dari si penerima. Karena permintaan sambungan mirip
dengan banjir bandang yang datang tiba-tiba, sedangkan kemampuan server untuk
menerima sambungan juga terbatas, maka akhirnya server kebanjiran SYN_RECV.
Akibatnya service yang kebanjiran itu menjadi drop alias tidak bisa menerima
sambungan lagi. Sehingga ketika anda mau mengambil email, maka akan muncul pesan kalau mail server anda sibuk.
Jika serangan menimpa service HTTP,
maka website kita otomatis tidak akan dapat dilihat oleh orang lain karena layanannya
tidak berfungsi. Serangan ini dinamakan SYN Flood. Bagaimana cara menghindari
serangan seperti ?
Biasanya serangan ini terkadang
menggunakan IP palsu alias poofed IP address, maka sulit untuk diblok dengan
iptables, dan salah satu jalan adalah dengan mengeset setting di kernel agar
tidak menerima sambungan yang bertubi-tubi seperti banjir ini.
Langkah-langkah server kita tidak
kebanjiran SYN_RECV.
Aktifkan
setting parameter kernel, TCP syncookies di file
/proc/sys/net/ipv4/tcp_syncookies dengan perintah seperti berikut ini.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
dan
tambahkan setting di file /etc/sysctl.conf seperti berikut ini,
net.ipv4.tcp_syncookies = 1
setelah
itu jalankan perintah di bawah ini, agar TCP syncookies menjadi aktif walaupun
servernya direstart.
/sbin/sysctl -p /etc/sysctl.conf
Anda
dapat memeriksa setting network kernel anda dengan perintah berikut ini.
/sbin/sysctl -a
Untuk mencegah dan mengurangi efek dari SYN
Flooding , Ada beberapa langkah yang dapat
dilakukan, yakni sebagai berikut
:
- Menambah ukuran
buffer koneksi TCP untuk meningkatkan jumlah percobaan pembuatan koneksi
yang dapat dilakukan secara berkelanjutan. Cara ini memang bukan solusi yang permanen
tetapi hanya bersifat sementara, karena bisa jadi penyerang
juga menambah ukuran
paket SYN yang dikirimkan
untuk memenuhi buffer tersebut.
- Pengurangan nilai
waktu kapan sebuah percobaan pembuatan koneksi TCP menjadi "timed-out". Cara ini juga menjadi
solusi sementara, apalagi jika jaringan di mana sistem berada sangat sibuk
atau lambat.
- Mengaplikasikan sistem penapisan paket yang masuk ke
dalam router,
sehingga alamat-alamat
palsu dapat diblokir. Cara inipun hanya bersifat sementara,
karena tidak semua ISP mengaplikasikan fitur seperti ini.
- Pemantauan firewall dan
mengonfigurasikannya untuk memblokir serangan SYN flood ketika
hal tersebut terjadi,
dan cara ini merupakan cara yang umum dilakukan
oleh banyak organisasi
atau perusahan-perusahaan, apalagi jika ditambah
dengan Intrusion
Prevention System (IPS), walaupun cara ini
membutuhkan tingkat
ketelian dari seorang administrator jaringan untuk memantau
catatan (log) dari IPS danfirewall yang diatur.
Bahkan, dengan kedua perangkat tersebut, client client yang validpun dapat ditolak jika
konfigurasi yang
yang digunakan tidak benar.
0 Komentar untuk "SYN FLOOD ATTACK"