DoS Attacks

Έτος: 1999. Περιοχή Αττική. Ένας αρκετά ισχυρός σεισμός μεγέθους 5.7 της κλίμακας ρίχτερ, με επίκεντρο την Πάρνηθα πλήττει το λεκανοπέδιο (και όχι μόνο) στις 14:57. Έντρομοι οι κάτοικοι βγαίνουν στους δρόμους. Προσπαθούν να επικοινωνήσουν με τους δικούς τους ανθρώπους. Μάταια! Τα κινητά τηλέφωνα δεν… ανταποκρίνονται! Μα τι έγινε; Μήπως γκρεμίστηκε καμιά κεντρική κεραία του ΟΤΕ; Γιατί δεν έχουμε επικοινωνία; Τι συνέβει;

Χμμ… το αυτονόητο. Αυτό που λέγαμε κάποτε (εμείς οι πιο παλιοί!!) “μπλόκαραν” οι γραμμές! Οι βάσεις δεδομένων των παρόχων κινητής τηλεφωνίας δεν ήταν προετοιμασμένες να δεχθούν ένα τόσο μεγάλο αριθμό κλήσεων και “παρέδωσαν” πνεύμα ή αλλιώς αρνήθηκαν να εξυπηρετήσουν και σε πιο Ελληνικά κάνανε deny of services (DOS – μην μπερδεύετε το DOS (Denial Of Services) με το γνωστό και μη εξαιρεταίο DOS (Disk Operating System) που σαν λειτουργικό σύστημα μεσουρανούσε τη 10ετία του ’80. Είναι δύο εντελώς διαφορετικά πράγματα.).

Χωρίς να το θέλουνε οι Αθηναίοι πραγματοποίησαν μια επίθεση Denial Of Services (DOS attack) ή καλύτερα Distributed Denial Of Services (DDOS γιατί ήτανε παραπάνω από… ένας, στους servers των παρόχων κινητής τηλεφωνίας. Φυσικό επακόλουθο είναι οι servers αυτοί να “γονατίσουν” μην μπορώντας να εξυπηρετήσουν τόσες πολλές αιτήσεις κλήσεων μαζεμένες!

Παρόμοιες επιθέσεις μπορούν να γίνουν σε οποιονδήποτε server ή σύστημα εξυπηρέτησης γενικότερα. Εντάξει, δεν έχουμε σκοπό να κάνουμε συστημική ανάλυση (σε αυτό το άρθρο τουλάχιστον!) αλλά θα πρέπει να αναφέρουμε οτι τέτοιες επιθέσεις δεν γίνονται πάντα “κατά λάθος” ή λόγω “συγκυριών”. Μπορούν να συμβούν (ηθελημένα ή μη) από ένα απλό pc χωρίς σύνδεση στο internet μέχρι σε ένα… κοινωνικό σύστημα!! Ας περιοριστούμε όμως στον τομέα μας, που αφορά έναν πιο virtual κόσμο: τον ηλεκτρονικό.

Κάθε ενέργεια που οδηγεί ένα σύστημα στο να μην μπορεί να ανταποκριθεί για αυτό που φτιάχτηκε μπορεί να καταταχθεί (άλλοτε περισσότερο και άλλοτε λιγότερο) στην κατηγορία των επιθέσεων DOS. Είναι αυτό που λέμε κοινά: “Μα τι έκανες βρε παιδί μου εκεί? Το χάλασες!!!” 😉

dos_pic1
Εικόνα 1: Η κλασική οθόνη του firefox, που μας πληροφορεί οτι ο server δεν… ανταποκρίνεται!

Στον κόσμο των υπολογιστών το φαινόμενο αυτό είναι αρκετά συχνό και μπορούμε να το χωρίσουμε σε δύο βασικές κατηγορίες όσο αφορά στην “πρόθεση” του επιτηθέμενου. Στην πρώτη κατηγορία έχουμε τις καλές προθέσεις. Δηλαδή δεν υπήρχε δόλος, πρόθεση στο να προκληθεί ζημιά. Δεν θα ασχοληθούμε πολύ με αυτές τις επιθέσεις, απλά θα αναφέρουμε ένα πράδειγμα:
Έστω οτι διατηρούμε ένα forum (ας πούμε για security) σε κάποιον server στο internet. Το forum μας δεν είναι πολυσύχναστο, άντε το πολύ καμιά 10αριά άτομα να μπαίνουνε την ημέρα. Μια δεδομένη χρονική στιγμή όμως ανακαλύπτουμε μια πολύ μεγάλη “τρύπα” ασφάλειας σε κάποιο πολύ γνωστό λειτουργικό σύστημα (ονόματα δεν λέμε!! – όσο κι αν μας πιέσετε) και την δημοσιεύουμε σε ένα ποστ με τον τίτλο “Μεγάλη Τρύπα!”. Η “Μεγάλη Τρύπα!” παίρνει δημοσιότητα και αναφέρετε σαν link στο γνωστό http://slashdot.org/, δηλαδή σε ένα site που δέχεται καμια 200 χιλιάδες επισκέψεις ημερησιως! Ξαφνικά, εκατοντάδες users αρχίζουν να επισκέπτονται το site μας για να δούνε την “Μεγάλη Τρύπα!”. Αν ο server μας δεν είναι έτοιμος να ανταπεξέλθει στις νέες συνθήκες, απλά θα σταματήσει να εξυπηρετεί της κλήσεις (βλέπε εικόνα 1 – φαινόμενο slashdot!!). Στο τέλος του άρθρου θα πούμε μερικά μικρά μυστικά που θα μπορούσαν να κάνουν τον server μας να μπορεί (ή τουλάχιστον να προσπαθεί!) να ανταποκρίνεται σε τέτοιες καταστάσεις.

dos_pic2
Εικόνα 2: Το site του γνωστού μας, αμέριμνο πριν δεχτεί την επίθεση (εδώ φαίνεται στον firefox 3 μέσα από ένα σύστημα linux)!

Ας έρθουμε τώρα στην σκοτεινή πλευρά! Τις επιθέσεις που γίνονται επίτηδες με σκοπό να σταματήσει ο server να ανταποκρίνεται. Τα είδη των επιθέσεων είναι πάρα πολλά (http://tinyurl.com/2c59m4) και δεν μας ενδιαφέρει η απλή παράθεση τους η οποία μπορεί να βρεθεί πολύ εύκολα στο net. Άλλοστε εμάς μας αφορά η… ανορθόδοξη προσέγγιση των θεμάτων 😉
θα παρουσιάσουμε ένα παραγματικό παράδειγμα επίθεσης (μέ όλα τα… απότελέσματα του!!) από windows Vista. Επίσης, θα δείξουμε πως φτιάχνονται τέτοια προγράμματα, δείχνοντας ένα απλό πρόγραμμα σε γλώσσα perl, αυτή τη φορά σε Linux Ubuntu. Θα δείξουμε, ακόμα, πως δοκιμάσαμε αυτό το πρόγραμμα με θύμα (αυτή τη φορά) τον… εαυτό μας! Τέλος, θα αναφέρουμε τεχνικές αντιμετώπισης ηθελημένων ή μη επιθέσεων dos.

Πριν ξεκινήσουμε, όμως, πρέπει να αναφέρουμε οτι απαγορεύεται αυστηρά η χρήση και η εκτέλεση προγραμμάτων για επιθέσεις DOS παρά μόνο αν είμαστε οι ιδιοκτήτες του site και ο server είναι δικός μας ή το κάνουμε με την σύμφωνη γνώμη του ιδιοκτήτη! θέλουμε να σας τονίσουμε να μην κάνετε επιπόλαιη ή μη εξουσιοδοτημένη χρήση όσων παρουσιαστούν παρακάτω μιας και είναι πολύ πιθανό ο administrator του προς επίθεση server να κινηθεί νομικά εναντίον σας και να αντιμετωπίσετε σοβαρές κυρώσεις.

Επίθεση από Windows Vista
Η πιο κοινή επίθεση είναι να στείλουμε τυχαία δεδομένα – σκουπίδια(flood) στον server στον οποίο θέλουμε να δοκιμάσουμε την αντοχή. Τα δεδομένα αυτά θα είναι τυχαία bytes, kBytes ή και Μβytes και θα αποστέλονται από ένα πρόγραμμα το οποίο θα δημιουργεί (στην μνήμη) πολλαπλές συνδέσεις (multiple asynchronous sockets) με τον server για να αυξήσει τόσο τον όγκο των δεδομένων που στέλονται όσο και το πλήθος των συνδέσεων. Το αποτέλεσμα όπως θα δείτε είναι η άρνηση εξυπηρέτησης από τον server. Το αξιοσημείωτο στην περίπτωση αυτή δεν είναι τόσο το αποτέλεσμα όσο οι… παράπλευρες απώλειες όπως θα δείτε στην συνέχεια, καθώς επίσης και η αντίδραση του ιδιοκτήτη της υπηρεσίας Host που (ομολογουμένως) είχε όλο το δίκιο να διαμαρτυρηθεί!!
Θα σας δείξουμε λοιπόν ένα πραγματικό και “πλήρη” κύκλο μιας επίθεσης!

Για την συγκεκριμένη επίθεση χρησιμποιήσαμε ένα έτοιμο πρόγραμμα το οποίο κυκλοφορεί στο εμπόριο και το οποίο χρησιμοποιείται για δοκιμές “αντοχής” σε servers από επιθέσεις DOS (servers crash tests). Το πρόγραμμα αυτό είναι το DoSHTTP (εικόνα 3) και μπορείτε να κατεβάσετε μια evaluation έκδοση από το site της εταιρίας που το δημιούργησε (http://socketsoft.net/).

dos_pic3
Εικόνα 3: Ένα πρόγραμμα για δοκιμές “αντοχής” σε επιθέσης DOS (servers crash tests)

Το site που θα δεχτεί την επίθεση είναι ένα ελληνικό portal/forum (εικόνα 2) που αφορά στο security του οποίου γνωρίζουμε τους διαχειριστές του και είχαμε την σύμφωνη γνώμη τους. Το μόνο που είχαμε να κάνουμε είναι να τρέξουμε το πρόγραμμα και να δώσουμε την διεύθυνση του site θύματος (εικόνα 3). Στο πεδία της φόρμας αφήσαμε τα defaults: Ο user agent αφορά στις πληροφορίες του http header και στα πεδία Sockets (συνδέσεις) και Requests (τύπος αιτήσεων) βάλαμε αντίστοιχα 500 (συνδέσεις) και continuous (συνεχής συνδέσεις με τον server – περισσότερες λεπτομέρειες δείτε παρακάτω στο “Τρόποι Προστασίας”). Πατώντας το κουμπάκι “Start Flood” το πρόγραμμα ξεκίνησε το θεάρεστο έργο του: Να στέλνει χιλιάδες αιτήσεις (requests) στον server. Καθώς το πρόγραμμα έτρεχε, δοκιμάσαμε να μπούμε στο site με τον firefox. Τα απτελέσματα φαίνονται στην παρακάτω εικόνα:

dos_pic4
Εικόνα 4: Ο server (εδώ για την ακρίβεια ο server της SQL)… “γονάτησε”.

Ο server δεν μπόρεσε να εξυπηρετήσει όλες τις… αιτήσεις και μας “έκοψε”. Η αντίδραση είναι αρκετά κλασική σε τέτοιου είδους επίθέσεις. Το πρόγραμμα μας όμως μετά από λίγη ώρα τελείωσε δίνοντας μας σημαντικές πληροφορίες:

dos_pic5
Εικόνα 5: Μετά το τέλος του dOs έχουμε και… στατιστικά στοιχεία!

Εντάξει μέχρι εδώ! Όλα καλά! Τώρα το site (αφού το πρόγραμμα μας τελείωσε) λογικά θα πρέπει να μας επιτρέπει την πρόσβαση, έτσι δεν είναι; Αμ δε! Λογαριάσαμε χωρίς των ξενοδόχο. Η εταιρία που έχει το site αποφάσισε να μας κόψει (όχι μόνο σε εμάς αλλά σε όλους) την πρόσβαση στο site αυτό, όπως δείχνει και η παρακάτω εικόνα.

dos_pic6
Εικόνα 6: Στατιστικά στοιχεία του site έχουμε… το ίδιο το site δεν το έχουμε!

Η ιδιοκτήτρια εταιρία διαπιστώνοντας επίθεση dOs έκανε redirection το site στη σελίδα που βλέπετε στην εικόνα 6 και κλείδωσε τα accounts των διαχειριστών καθως και κάθε πρόσβαση σε αυτό (όπως ftp κλπ)!

Από εδώ και πέρα ξεκινάει ένας κύκλος διαπραγματεύσεων (με mails κλπ) για να πειστεί η εταιρία hosting οτι το attach ήτανε για λόγους test.
Για λόγους πληροφόρησης σας δείχνουμε την πρώτη απάντηση της εταιρίας όταν ζητήσαμε να επαναφέρουν το site:

Why would you do that ?

You are on a shared server and you are effecting other customers on the server.

We will not unsuspended you.
Thank You,
Gxxxxxxxx Wxxxxxxxx

www.webhostingpad.com

Ticket Details
===================
Ticket ID: Nxxxxxxxxxxx
Department: Manager
Priority: High
Status: Closed

Περισσότερα στο: p0wnbox.com

Εγγραφή στο Newsletter

* indicates required

FOLLOW US

LIVE NEWS