Είδη επιθέσεων DoS (Denial of Service)
(Μπορεί να μην είμαστε hackers, αλλά καλό είναι να γνωρίζουμε μερικά πράγματα)
Τον τελευταίο καιρό έχουν γίνει πολλές συζητήσεις για το θέμα των επιθέσεων DoS χάρη στις οποίες είναι δυνατή η σχετικά εύκολη απενεργοποίηση ενός κόμβου Internet, ακόμη και από άτομα με μικρές τεχνικές γνώσεις. Στο άρθρο αυτό περιγράφουμε τα κυριότερα είδη αυτών των επιθέσεων οι οποίες έχουν ως κοινό χαρακτηριστικό την αποστολή στο θύμα (τον server που αποτελεί τον στόχο της επίθεσης) ενός τόσο μεγάλου αριθμού πλαστών αιτημάτων σύνδεσης ώστε δεν μπορεί πλέον να διαχειριστεί το παραμικρό και διακόπτει τη λειτουργία του.
Οι κυριότερες μορφές επιθέσεων αυτής της μορφής είναι:
Ping of Denial (γνωστή και ως Ping of Death)
Πρόκειται για την παλαιότερη και πιο διαδεδομένη μορφή επίθεσης. Για καθαρά τεχνικούς λόγους κάθε server συνδεδεμένος με το Internet πρέπει να μπορεί να δεχθεί μηνύματα ping στα οποία απαντά αποστέλλοντας μια σειρά από μηνύματα pong χάρη στα οποία μετράται η ταχύτητα ανταπόκρισής του.
Για την επίθεση αυτή ο επιτιθέμενος απλώς αποστέλλει πάρα πολλά μηνύματα ping τα οποία ο server είναι υποχρεωμένος να απαντήσει, δαπανώντας φυσικά υπολογιστική ισχύ και bandwidth. Αν τα μηνύματα ping είναι πάρα πολλά τότε ο αποδέκτης τους καθυστερεί σημαντικά στην εκτέλεση άλλων εργασιών (π.χ. αποστολή web σελίδων) διότι είναι πολύ απασχολημένος στέλνοντας pong, ενώ αν ο φόρτος γίνει πολύ μεγάλος είναι πιθανό να διακόψει τελείως τη λειτουργία του.
Δυστυχώς, η άμυνα από το Ping of Death είναι εξαιρετικά δυσχερής, καθώς το Ping αποτελεί τη μέθοδο με την οποία ένας Η/Υ δηλώνει ότι είναι ενεργός μέσα στο δίκτυο. Δεν είναι λοιπόν δυνατόν να αρνηθεί να απαντήσει σε όποιο Ping δέχεται. Τελευταία, μερικά συστήματα έχουν αποκτήσει μεγάλους Ping buffers και έτσι μπορούν είτε να απαντούν σε πολλά Ping χωρίς να επηρεάζεται η λειτουργία τους, είτε να επεξεργάζονται όσα Ping δέχονται, αναγνωρίζοντας και αγνοώντας αυτόματα όποια από αυτά αποτελούν προϊόν επιθέσεως.
ICMP
Το πρωτόκολλο ICMP χρησιμοποιείται για την επικοινωνία μεταξύ υπολογιστών, χωρίς να χρειάζεται η υλοποίηση ενός ισχυρότερου και πιο περίπλοκου (συνεπώς και πιο αργού) πρωτοκόλλου όπως το TCP. Το ICMP μεταφέρει πολύ λίγες πληροφορίες οι οποίες ενημερώνουν κάθε υπολογιστή για την κατάσταση της σύνδεσής του με άλλα μηχανήματα. Για να "κλείσει" τη σύνδεση ενός Η/Υ ο επιτιθέμενος δεν έχει παρά να του στείλει μέσω του ICMP ένα από τα ακόλουθα μηνύματα:
- DESTINATION UNREACHABLE
- TIME TO LIVE EXCEEDED
- PARAMETER PROBLEM
- PACKET TOO BIG
- SOURCE QUENCH
Ουσιαστικά δηλαδή, ο επιτιθέμενος δηλώνει απλώς στο θύμα πως υπάρχει πρόβλημα και ο αποδέκτης διακόπτει τη σύνδεσή του!
Θεωρητικά, αυτό το πρόβλημα μπορεί να αντιμετωπιστεί αν απενεργοποιηθεί (κλείσει) η ICMP port (στα windows αυτή είναι η default επιλογή). Δυστυχώς, με τον τρόπο αυτό μειώνεται η ταχύτητα σύνδεσης ενός Η/Υ με το δίκτυο. Έτσι, πολλοί administrators προτιμούν να διατηρούν αυτή τη δυνατότητα εν λειτουργία, παρ' όλους τους κινδύνους που συνεπάγεται κάτι τέτοιο.
Fragmentation
Αποτελεί τον πιο μοντέρνο, και γι' αυτό πιο δύσκολο στην αντιμετώπιση, τρόπο επιθέσεως. Όταν δύο Η/Υ επικοινωνούν με το πρωτόκολλο TCP/IP ουσιαστικά ανταλλάσσουν αρχεία τα οποία ο αποστολέας "τεμαχίζει" σε μικρότερα κομμάτια τα οποία και αποστέλλει στον παραλήπτη ο οποίος τα συναρμολογεί, ανασυνθέτοντας το αρχικό αρχείο.
Τα πακέτα αυτά περιέχουν μια σειρά από στοιχεία ελέγχου μέσω των οποίων ο παραλήπτης ελέγχει αν τα δεδομένα έφτασαν σε καλή κατάσταση. Σε περίπτωση που διαπιστωθεί κάποιο πρόβλημα, τότε ο παραλήπτης επικοινωνεί με τον αποστολέα και του ζητάει να ξαναστείλει τα πακέτα που αλλοιώθηκαν κατά τη μεταφορά.
Εκμεταλλευόμενος αυτό το χαρακτηριστικό, ο επιτιθέμενος στέλνει συνεχώς πακέτα με λανθασμένα στοιχεία ελέγχου. Έτσι, υποχρεώνει τον παραλήπτη να σπαταλά υπολογιστική ισχύ και bandwidth, ζητώντας συνεχώς την επανάληψη της αποστολής τους.
Αν και έχουν βρεθεί κάποια αντίμετρα για τις επιθέσεις Fragmentation, κανένα από αυτά δεν είναι αρκετά αποτελεσματικό. Αν η επίθεση συνεχιστεί για μεγάλο χρονικό διάστημα ή αν γίνεται από μια γρήγορη γραμμή, τελικά το θύμα θα υποχρεωθεί να αποσυνδεθεί από το δίκτυο.
E-mail bombing
Αν και από πολλούς δεν θεωρείται ως Denial of Service Attack, το E-mail bombing είναι πολύ αποτελεσματικό όταν χρησιμοποιείται εναντίον υπολογιστών οι οποίοι διαχειρίζονται mail. Το μόνο που έχει να κάνει κανείς είναι να τους στείλει τόσα πολλά (σε μέγεθος και αριθμό) email μηνύματα, ώστε ο φόρτος των εργασιών διαχείρισής τους να οδηγήσει το σύστημα σε κατάρρευση.
Port Flooding
Όλοι οι υπολογιστές διαθέτουν μια σειρά από λογικές πόρτες μέσω των οποίων μπορεί ένα άλλο μηχάνημα να συνδεθεί μαζί τους για να εκτελέσει μια σειρά από εργασίες. Για παράδειγμα, στο UNIX η πόρτα 25 χρησιμοποιείται από την υπηρεσία Sendmail. Ο επιτιθέμενος μπορεί να γράψει ένα πρόγραμμα για οποιαδήποτε πόρτα το οποίο θα ζητάει να ανοιχθούν μέσω αυτής όσο γίνεται περισσότερες (πλαστές φυσικά) συνδέσεις. Όσο αυξάνει ο αριθμός των συνδέσεων, τόσο μεγαλύτερος γίνεται και ο φόρτος για το μηχάνημα το οποίο επιβαρύνεται όλο και περισσότερο μέχρι που τελικά "κολλάει" και διακόπτει τη λειτουργία του.
SYN Flooding
Το πρωτόκολλο SYN-ACK αποτελεί τη βάση κάθε έναρξης σύνδεσης μέσα στο Internet. Όταν ένας Η/Υ θέλει να συνδεθεί με έναν άλλο του αποστέλλει ένα πακέτο SYN στο οποίο ο server απαντάει με ένα πακέτο ACK (acknowledge). Όταν ο Η/Υ που ζήτησε τη σύνδεση λάβει το ACK θεωρεί ότι η σύνδεση έχει ολοκληρωθεί και αρχίζει τη μετάδοση των δεδομένων.
Σε μια επίθεση SYN Flooding ο επιτιθέμενος στέλνει συνεχώς πακέτα SYN αλλά όχι ACK. Έτσι, ο server που δέχεται την επίθεση είναι υποχρεωμένος για περιμένει για κάποιο χρονικό διάστημα το ACK, δεσμεύοντας φυσικά με την αναμονή αυτή ένα μέρος των διαθέσιμων πόρων του. Αν το ACK δεν έρθει ποτέ, το θύμα θα τερματίσει την αναμονή και θα ασχοληθεί με άλλες δραστηριότητες. Γι' αυτό ο επιτιθέμενος συνήθως στέλνει έναν συνεχώς αυξανόμενο αριθμό πακέτων SYN, δεσμεύοντας όλο και περισσότερους πόρους του θύματος στην αναμονή των ACK τους και οδηγώντας σιγά σιγά τον server του θύματος στην κατάρρευση.
Δυστυχώς δεν είναι πρακτικά δυνατόν να αμυνθεί κανείς σε επιθέσεις αυτής της μορφής, καθώς το πρωτόκολλο SYN-ACK αποτελεί τη βάση κάθε σύνδεσης μέσα στο Internet. Γι' αυτό και η μόνη απάντηση που έχει προταθεί μέχρι σήμερα είναι να θέτει ο administrator κάθε μηχανήματος ένα όριο στον αριθμό των συνδέσεων τις οποίες θα εξυπηρετεί ο server, αγνοώντας πολλά από τα SYN που λαμβάνει. Δυστυχώς όμως, με τον τρόπο αυτό κινδυνεύουν να μην εξυπηρετηθούν και οι νόμιμοι χρήστες του συστήματος αφού δεν είναι εύκολο να ξεχωρίσει κανείς τα αποδεκτά από τα κακόβουλα SYN.
Τρόποι απόκρυψης της επίθεσης
Η απόκρυψη του Η/Υ από τον οποίο γίνεται η επίθεση είναι απαραίτητη όχι μόνο διότι ο επιτιθέμενος επιθυμεί να παραμείνει κρυφή η ταυτότητά του, αλλά και επειδή μόνο έτσι θα μπορέσει να επαναλάβει τις επιθέσεις του αρκετές φορές ώστε να αποβούν καρποφόρες (αν ο διαχειριστής του στόχου παρατηρήσει ότι όλα τα προβληματικά πακέτα έρχονται από την IP διεύθυνση ΧΧ.ΧΧΧ.Χ.ΧΧΧ τότε απλώς θα διακόψει την επικοινωνία μαζί της, λύνοντας αμέσως το πρόβλημα της επίθεσης).
Για τον λόγο αυτό οι επιτιθέμενοι ακολουθούν συνήθως την τεχνική του IP Spoofing μέσω της οποίας πλαστογραφούν τη διεύθυνση αποστολής των πακέτων τα οποία δέχονται τα θύματά τους. Το IP Spoofing συνήθως γίνεται από μηχανήματα UNIX διότι αυτό το λειτουργικό σύστημα δίνει μεγαλύτερες ελευθερίες στους χρήστες του απ' ό,τι ένα κλειστό λειτουργικό όπως τα Windows (ουσιαστικά ο επιτιθέμενος μπορεί να κάνει τα πακέτα να δηλώνουν ως σημείο προέλευσης όποια IP διεύθυνση επιθυμεί).
Οι επιθέσεις Denial of Service ως μέσο εισβολής σε ένα σύστημα
Για τους περισσότερους ειδικούς, οι επιθέσεις DoS θεωρούνται πολύ ενοχλητικές, αλλά όχι θανάσιμα επικίνδυνες για ένα σύστημα. Ο επιτιθέμενος μπορεί ίσως να διακόψει τη λειτουργία ενός μηχανήματος για μερικές ώρες, αλλά δεν έχει τη δυνατότητα να αποκτήσει πρόσβαση σε αυτό και να τροποποιήσει δεδομένα σε κάποιο από τα άλλα μηχανήματα τα οποία μοιράζονται το ίδιο δίκτυο.
Δυστυχώς, αυτό δεν είναι αλήθεια. Μια καλή και δοκιμασμένη τεχνική (χρησιμοποιήθηκε από τον Kevin Mitnick για να εισβάλει στο σύστημα του διώκτη του κ. Tsutomu Shinomura) είναι η εισβολή σε ένα δίκτυο μέσω επίθεσης DoS σε έναν από τους servers του. Όταν το μηχάνημα αυτό πάψει να λειτουργεί, τότε ο επιτιθέμενος επικοινωνεί με άλλα μηχανήματα του ίδιου δικτύου "υποκρινόμενος" ότι τα πακέτα που στέλνει προέρχονται από το αχρηστευμένο και εκτός λειτουργίας πλέον μηχάνημα. Με τον τρόπο αυτό αυξάνονται σημαντικά οι πιθανότητες να επιτευχθεί πρόσβαση στα άλλα μηχανήματα του δικτύου, καθώς η εντολή πρόσβασης δεν δίνεται από έναν τρίτο, αλλά από μια έμπιστη πηγή (ένα μηχάνημα εντός του δικτύου).
Συμπεράσματα
Όπως φανερώνουν τα παραπάνω στοιχεία, οι τρόποι επίθεσης DoS σε έναν κόμβο Internet είναι τόσοι πολλοί και οι δυνατότητες άμυνας τόσο περιορισμένες που είναι να απορεί κανείς γιατί μέχρι σήμερα τα κρούσματα ήταν τόσο λίγα. Δυστυχώς όμως αυτή η "ανακωχή" δεν προβλέπεται να διαρκέσει για πολύ. Όλο και περισσότεροι hackers (ειδικά από χώρες του τρίτου κόσμου) επιτίθενται σε επιχειρήσεις και στη συνέχεια τις εκβιάζουν, ζητώντας την καταβολή ποσών που φτάνουν μέχρι και τα 100.000 δολάρια, για να μην κοινοποιήσουν όσα στοιχεία ανακάλυψαν στους ανταγωνιστές τους.
Αν λοιπόν λάβει κανείς υπ' όψιν του το χαμηλό βιοτικό επίπεδο των χωρών αυτών, αλλά και τη συνεχιζόμενη "ελαφρότητα" με την οποία αντιμετωπίζεται το θέμα της ασφάλειας από τις περισσότερες επιχειρήσεις, τότε επιθέσεις όπως αυτές που περιγράφηκαν παραπάνω θα γίνονται όλο και συχνότερες και πιο εντυπωσιακές.
Λυπάμαι μόνο που το θέμα των hackers δεν προσφέρεται για κινηματογραφική δραματοποίηση (αν και το Hollywood έχει ήδη καταβάλει φιλότιμες προσπάθειες). Διαφορετικά ο Rambo, ο Superman και ο James Bond σύντομα θα έβλεπαν τα άστρα τους να επισκιάζονται από νέους ήρωες όπως ο Captain Crunch (ο διασημότερος ειδικός στο phreaking), ο Kevin Mitnik (ο άνθρωπος που θεωρείτο πολύ επικίνδυνος για να του επιτρέψεις να ακουμπήσει ένα τηλέφωνο) ή ο Vladimir Levin (ο ρώσος που έβαλε τους υπολογιστές της Citibank να μεταφέρουν 10 εκατομμύρια δολάρια στο λογαριασμό του).
Γιώργος Επιτήδειος
gepiti@gepiti.com
Επιστροφή στο Αρχείο ’ρθρων Παλαιών Τευχών Επιστροφή στις Επιχειρηματικές Σελίδες Copyright 1998, 1999, 2000 Γιώργος Επιτήδειος Υποδείξεις, Ερωτήσεις, Σχόλια στην διεύθυνση gepiti@gepiti.com |