[go: up one dir, main page]

Μετάβαση στο περιεχόμενο

SYN flood

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Η επίθεση SYN flood είναι ένα είδος επίθεσης άρνησης πρόσβασης (DOS - Denial of Service) κατά την οποία ο επιτιθέμενος αποστέλλει πολλαπλές αιτήσεις SYN προς το θύμα.

Τα βήματα δημιουργίας μίας κανονικής σύνδεσης TCP μεταξύ ενός χρήστη και ενός διακομιστή (server). Η τριμερής χειραψία εκτελείται κανονικά.

Δείτε επίσης το άρθρο: Transmission Control Protocol

Για να δημιουργηθεί μία σύνδεση TCP από έναν υπολογιστή (πελάτης - client) σε έναν άλλο (διακομιστής - server) θα πρέπει να ακολουθηθούν τα βήματα που καθορίζονται στο πρωτόκολλο TCP. Συγκεκριμένα θα πρέπει οι δύο υπολογιστές να εμπλακούν σε μία διαδικασία που ονομάζεται τριμερής χειραψία (three-way handshake), η οποία περιληπτικά έχει ως εξής:

  1. Ο πελάτης (client) ζητά την δημιουργία μίας σύνδεσης στέλνοντας έναν πακέτο TCP SYN στον διακομιστή (server). Το όνομα του πακέτου προέρχεται από την λέξη syncronize που σημαίνει συγχρονισμός.
  2. Ο διακομιστής απαντά στην αίτηση του πελάτη στέλνοντάς του ένα πακέτο TCP SYN-ACK, από την αγγλική λέξη acknowledge που σημαίνει αναγνώριση, αποδοχή.
  3. Ο πελάτης απαντά με ένα πακέτο TCP ACK δηλώνοντας ότι αποδέχεται και αυτός την σύνδεση.

Μετά το πέρας αυτών των τριών βημάτων, η σύνδεση TCP έχει εγκαθιδρυθεί και μπορούν να αποσταλούν δεδομένα προς και από τους δύο υπολογιστές.

Τεχνικές λεπτομέρειες

[Επεξεργασία | επεξεργασία κώδικα]
Ο επιτιθέμενος στέλνει στον διακομιστή πολλά πακέτα "SYN" για εγκαθίδρυση σύνδεσης, αλλά δεν απαντάει πάλι στον διακομιστή ούτως ώστε να ολοκληρωθεί η χειραψία TCP. Για κάθε σύνδεση που δεν ολοκληρώνεται, ο διακομιστής δαπανά κάποιους υπολογιστικούς πόρους. Αυτό έχει ως αποτέλεσμα κάποιος άλλος νόμιμος χρήστης να μην μπορεί να συνδεθεί με τον διακομιστή, διότι ο δεύτερος είναι απασχολημένος με τις συνδέσεις που έχει ανοίξει ο επιτιθέμενος.

Η επίθεση SYN flood είναι αρκετά συνηθισμένη και η πλειοψηφία των σημερινών δικτύων υπολογιστών είναι σε θέση να την αντιμετωπίσει με επιτυχία. Κύρια προϋπόθεση για να επιτύχει η επίθεση είναι ο διακομιστής να δεσμεύει πόρους του συστήματος αμέσως μόλις δεχθεί το πρώτο ACK πακέτο και όχι μετά το πέρας της χειραψίας.

Η επίθεση έχει ως εξής: Ο επιτιθέμενος αποστέλλει στον διακομιστή-θύμα πολλαπλά πακέτα TCP SYN. Ο διακομιστής θεωρεί ότι τα πακέτα αυτά προέρχονται από κανονικό χρήστη, οπότε απαντά με πακέτα SYN-ACK σύμφωνα με την διαδικασία χειραψίας του πρωτοκόλλου TCP. Ο επιτιθέμενος όμως δεν αποστέλλει πακέτα ACK για να ολοκληρωθεί η χειραψία, αλλά αφήνει τον διακομιστή να περιμένει. Επειδή για κάθε ημιτελή σύνδεση TCP ο διακομιστής ξοδεύει υπολογιστικούς πόρους, μετά από κάποιο συγκεκριμένο αριθμό τέτοιων συνδέσεων ο διακομιστής φτάνει στα όριά του και δεν μπορεί να εξυπηρετήσει τους νόμιμους χρήστες. Αυτή η κατάσταση ονομάζεται άρνηση υπηρεσιών (DOS - Denial of Service).

Η πιο αποτελεσματική μέθοδος αντιμετώπισης αυτού του κινδύνου είναι η καταγραφή του αριθμού των συνδέσεων που έχει ξεκινήσει κάθε πελάτης (client) και η απαγόρευση δημιουργίας νέων συνδέσεων όταν ο αριθμός αυτός ξεπεράσει κάποιο προκαθορισμένο όριο.