Rumah > Artikel > Tutorial sistem > Bagaimanakah SYN menggunakan protokol TCP untuk melancarkan serangan?
Serangan SYN adalah kaedah yang biasa digunakan oleh penggodam dan merupakan salah satu kaedah DDoS. Serangan SYN mengeksploitasi kelemahan protokol TCP dengan menghantar sejumlah besar permintaan separa sambungan, memakan sumber CPU dan memori. Selain menjejaskan hos, serangan SYN juga boleh membahayakan sistem rangkaian seperti penghala dan tembok api Malah, serangan SYN tidak kira sistem sasaran, selagi sistem ini membuka perkhidmatan TCP, ia boleh dilaksanakan.
Untuk memahami prinsip asas serangan ini, kita masih perlu bermula dengan proses mewujudkan sambungan TCP:
Semua orang tahu bahawa TCP adalah berdasarkan sambungan, iaitu: untuk menghantar data TCP antara pelayan dan klien, pautan maya, iaitu sambungan TCP, mesti diwujudkan terlebih dahulu Proses standard mewujudkan a Sambungan TCP adalah seperti berikut :
Dalam langkah pertama, penghujung permintaan (klien) menghantar mesej TCP yang mengandungi bendera SYN bermaksud penyegerakan Mesej penyegerakan akan menunjukkan port yang digunakan oleh klien dan nombor jujukan awal sambungan TCP
Dalam langkah kedua, selepas menerima mesej SYN daripada pelanggan, pelayan akan mengembalikan mesej SYN+ACK, menunjukkan bahawa permintaan pelanggan diterima Pada masa yang sama, nombor urutan TCP meningkat satu, dan ACK adalah disahkan.Dalam langkah ketiga, pelanggan juga mengembalikan mesej pengesahan ACK ke pelayan Nombor jujukan TCP juga ditambah satu, dan sambungan TCP selesai.
Proses sambungan di atas dipanggil jabat tangan tiga hala dalam protokol TCP.
Masalahnya terletak pada jabat tangan tiga hala sambungan TCP Andaikata pengguna tiba-tiba ranap atau terputus sambungan selepas menghantar mesej SYN ke pelayan Kemudian pelayan tidak boleh menerima mesej ACK pelanggan selepas menghantar mesej respons SYN+ACK. Jabat tangan ketiga tidak dapat diselesaikan). Dalam kes ini, pelayan biasanya akan mencuba semula (menghantar SYN+ACK kepada klien sekali lagi) dan menunggu untuk tempoh masa sebelum membuang sambungan yang belum selesai Tempoh ini dipanggil SYN Timeout. secara amnya, masa ini mengikut urutan minit (kira-kira 30 saat-2 minit).
Bukan masalah besar bagi pengguna untuk mempunyai pengecualian yang menyebabkan rangkaian pelayan menunggu selama 1 minit, tetapi jika penyerang berniat jahat mensimulasikan keadaan ini dalam jumlah yang besar, pelayan akan menggunakan banyak wang untuk mengekalkan senarai separa sambungan yang sangat besar - berpuluh-puluh ribu sambungan separa walaupun mudah akan memakan banyak masa dan memori CPU, apatah lagi keperluan untuk mencuba semula SYN+ACK untuk IP dalam senarai ini. .
Malah, jika tindanan TCP/IP pelayan tidak cukup berkuasa, hasil akhir selalunya adalah ranap limpahan tindanan --- walaupun sistem bahagian pelayan cukup berkuasa, bahagian pelayan akan sibuk memproses sambungan TCP permintaan yang dipalsukan oleh penyerang dan tidak akan mempunyai masa untuk memberi perhatian kepada operasi biasa klien bertanya.
Atas ialah kandungan terperinci Bagaimanakah SYN menggunakan protokol TCP untuk melancarkan serangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!