[SHARE] Cara mudah mencegah TCP Syn Flood (DoS)
Posted: Thu Feb 25, 2010 6:54 am
HOW IS WORKING :
Ketika para attacker telah kehabisan cara untuk melakukan penyusupan pada suatu Website, jurus pamungkas yg biasa digunakan adalah melakukan DoS (Denial of Service) pada Web Serverx, salah satunya dgn melakukan TCP Syn Flood yg memanfaatkan kelemahan Protocol TCP/IP.
Sejatinya (wkwkwk puitis bgnt ) sebelum terjadi transaksi data antara Client dan Server, terlebih dahulu dilakukan 3 proses penting sebagai pembuka komunikasi, nah ini dikenal sebagai 3 Way Handshake (3 kali jabat tangan, cara inipun jg diterapkan pd saat acara AKAD NIKAH, xixixixi )
Dari gambar di atas dapat dijelaskan sbb :
1. Di awal Client meminta koneksi ke Server dgn mengirimkan paket SYN (SYNchronize).
2. Server yg menerima paket SYN akan menjawab dgn mengirimkan paket SYN+ACK (ACKnowledge) dan kemudian akan menanti sebuah jawaban (hmmm, kyk judul lagu yakzzz) dari Client, yaitu sebuah paket ACK yg nantinya menjadi penutup proses 3 kali jabat tangan tadi. Nah proses menanti sebuah jawaban ini, pada masing2 Sistem Operasi berbeda-beda, misalnya untuk Sistem Operasi Linux masa penantian ini bisa berlangsung hingga 3 menit, jika lewat dari 3 menit proses AKAD NIKAH dianggap BATAL DEMI HUKUM... .
Proses penantian ini masuk dalam antrian BACKLOG dan biasanya jumlah antrian ini dibatasi. misalnya di Sistem Operasi Linux jumlah antrian ini rata-rata Max 256 antrian yg disebut sebagai half-open connections.
3. Sebagai penutup Client akan mengirimkan paket ACK dan kemudian transaksi data dimulai.
Dari proses di atas kemudian muncullah kelemahan, yaitu proses yg terjadi pada tahap 2, dimana Server akan menampung sejumlah antrian koneksi yg menanti konfirmasi akhir dari Client (Paket ACK) utk bisa melanjutkan proses transaksi data. Apa yg terjadi jika BACKLOG dipenuhi dgn antrian koneksi yg sebernarx berasal dari Client yg tdk ada, yg terjadi kemudian adalah Client lain yg benar-benar nyata ingin mengakses Si Server kemudian tdk bisa mengakses dikarenakan Server tdk bisa lagi menerima koneksi krn antrian di BACKLOG sdh penuh.
Dari ide di atas kemudian dibuatlah berbagai tools yg memungkinkan dapat memenuhi BACKLOG dgn koneksi yg kelihatan berasal dari Client nyata tp sebenarnya gak ada. Salah satu teknik yg bisa digunakan adalah IP Spoofing, yaitu melakukan manipulasi IP Sumber pada Header paket data yg dikirim dgn IP Palsu. IP Palsu ini kemudian di generate secara RANDOM dan dalam jumlah yg banyak dgn tujuan BACKLOG pada server akan penuh dan Client lain tdk bisa lg dilayani.
Salah satu tools yg bekerja seperti metode di atas adalah :
http://www.packetstormsecurity.org/DoS/juno.c
HOW TO DETECT :
Cara mudah utk mendeteksi bahwa Server kemungkinan besar terkena serangan Syn Flood yaitu dgn memonitor aktifitas koneksi pada Server menggunakan NETSTAT :
Jika terlihat status koneksi SYN_RECV dalam jumlah besar apalagi dgn IP Sumber yg berbeda-beda, maka bisa dipastikan Server terkena Serangan TCP Syn Flood.
HOW TO PROTECT :
Solusi dari permasalahan sebelumnya adalah dengan melakukan filter terhadap koneksi SYN yg mencurigakan, menaikkan maksimal jumlah antrian pada BACKLOG dan menurunkan waktu antrian yg bisa disimpan di BACKLOG.
Gunakan Sistem Operasi dgn dukungan proteksi TCP Syn Flood, misalnya untuk Linux Kernel 2.4 ke atas telah melengkapi dirinya dgn proteksi terhadap TCP Syn Flood. Anda tinggal melakukan konfigurasi pada file /etc/sysctl.conf dan mengaktifkan atau menambahkan baris-baris :
Bisa juga dengan menambahkan aturan pada IPTABLES :
Aturan tsb akan membatasi paket SYN sebanyak 3 paket per detik
Demikian pengetahuan ttg DoS TCP Syn Flood yg dapat sy bagi kepada rekan xcoders, moga bermanfaat dan mohon koreksinya jika ada yg keliru.
Terima Kasih...
Referensi :
1. http://en.wikipedia.org/wiki/SYN_flood
2. http://www.docdroppers.org/wiki/index.p ... ifications
3. http://www.securityfocus.com/infocus/1729
4. http://www.packetstormsecurity.org/DoS
Ketika para attacker telah kehabisan cara untuk melakukan penyusupan pada suatu Website, jurus pamungkas yg biasa digunakan adalah melakukan DoS (Denial of Service) pada Web Serverx, salah satunya dgn melakukan TCP Syn Flood yg memanfaatkan kelemahan Protocol TCP/IP.
Sejatinya (wkwkwk puitis bgnt ) sebelum terjadi transaksi data antara Client dan Server, terlebih dahulu dilakukan 3 proses penting sebagai pembuka komunikasi, nah ini dikenal sebagai 3 Way Handshake (3 kali jabat tangan, cara inipun jg diterapkan pd saat acara AKAD NIKAH, xixixixi )
Dari gambar di atas dapat dijelaskan sbb :
1. Di awal Client meminta koneksi ke Server dgn mengirimkan paket SYN (SYNchronize).
2. Server yg menerima paket SYN akan menjawab dgn mengirimkan paket SYN+ACK (ACKnowledge) dan kemudian akan menanti sebuah jawaban (hmmm, kyk judul lagu yakzzz) dari Client, yaitu sebuah paket ACK yg nantinya menjadi penutup proses 3 kali jabat tangan tadi. Nah proses menanti sebuah jawaban ini, pada masing2 Sistem Operasi berbeda-beda, misalnya untuk Sistem Operasi Linux masa penantian ini bisa berlangsung hingga 3 menit, jika lewat dari 3 menit proses AKAD NIKAH dianggap BATAL DEMI HUKUM... .
Proses penantian ini masuk dalam antrian BACKLOG dan biasanya jumlah antrian ini dibatasi. misalnya di Sistem Operasi Linux jumlah antrian ini rata-rata Max 256 antrian yg disebut sebagai half-open connections.
3. Sebagai penutup Client akan mengirimkan paket ACK dan kemudian transaksi data dimulai.
Dari proses di atas kemudian muncullah kelemahan, yaitu proses yg terjadi pada tahap 2, dimana Server akan menampung sejumlah antrian koneksi yg menanti konfirmasi akhir dari Client (Paket ACK) utk bisa melanjutkan proses transaksi data. Apa yg terjadi jika BACKLOG dipenuhi dgn antrian koneksi yg sebernarx berasal dari Client yg tdk ada, yg terjadi kemudian adalah Client lain yg benar-benar nyata ingin mengakses Si Server kemudian tdk bisa mengakses dikarenakan Server tdk bisa lagi menerima koneksi krn antrian di BACKLOG sdh penuh.
Dari ide di atas kemudian dibuatlah berbagai tools yg memungkinkan dapat memenuhi BACKLOG dgn koneksi yg kelihatan berasal dari Client nyata tp sebenarnya gak ada. Salah satu teknik yg bisa digunakan adalah IP Spoofing, yaitu melakukan manipulasi IP Sumber pada Header paket data yg dikirim dgn IP Palsu. IP Palsu ini kemudian di generate secara RANDOM dan dalam jumlah yg banyak dgn tujuan BACKLOG pada server akan penuh dan Client lain tdk bisa lg dilayani.
Salah satu tools yg bekerja seperti metode di atas adalah :
http://www.packetstormsecurity.org/DoS/juno.c
HOW TO DETECT :
Cara mudah utk mendeteksi bahwa Server kemungkinan besar terkena serangan Syn Flood yaitu dgn memonitor aktifitas koneksi pada Server menggunakan NETSTAT :
Code: Select all
$netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 10.222.222.2:80 134.174.56.34:1024 SYN_RECV
tcp 0 0 10.222.222.2:80 71.150.225.65:3072 SYN_RECV
tcp 0 0 10.222.222.2:80 10.51.211.79:3072 SYN_RECV
tcp 0 0 10.222.222.2:80 1.56.184.51:1024 SYN_RECV
tcp 0 0 10.222.222.2:80 48.162.16.44:1024 SYN_RECV
tcp 0 0 10.222.222.2:80 22.173.232.4:3072 SYN_RECV
tcp 0 0 10.222.222.2:80 87.2.52.86:3072 SYN_RECV
tcp 0 0 10.222.222.2:80 113.126.171.61:3072 SYN_RECV
tcp 0 0 10.222.222.2:80 228.156.222.92:1024 SYN_RECV
HOW TO PROTECT :
Solusi dari permasalahan sebelumnya adalah dengan melakukan filter terhadap koneksi SYN yg mencurigakan, menaikkan maksimal jumlah antrian pada BACKLOG dan menurunkan waktu antrian yg bisa disimpan di BACKLOG.
Gunakan Sistem Operasi dgn dukungan proteksi TCP Syn Flood, misalnya untuk Linux Kernel 2.4 ke atas telah melengkapi dirinya dgn proteksi terhadap TCP Syn Flood. Anda tinggal melakukan konfigurasi pada file /etc/sysctl.conf dan mengaktifkan atau menambahkan baris-baris :
Code: Select all
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 3
Code: Select all
iptables -A INPUT -p tcp --syn -m limit --limit 3/s -i eth0 -j ACCEPT
Demikian pengetahuan ttg DoS TCP Syn Flood yg dapat sy bagi kepada rekan xcoders, moga bermanfaat dan mohon koreksinya jika ada yg keliru.
Terima Kasih...
Referensi :
1. http://en.wikipedia.org/wiki/SYN_flood
2. http://www.docdroppers.org/wiki/index.p ... ifications
3. http://www.securityfocus.com/infocus/1729
4. http://www.packetstormsecurity.org/DoS