DOS attacks !

Από τo Στέλιο Μερσινά
rstelios@hotmail.com




Οι hackers δεν επιτίθονται πλέον σε ένα σύστημα με σκοπό την αλλαγή των αρχείων του, την υποκλοπή αρχείων και κωδικών, την αλλαγή των Web σελίδων... Αρκούνται και στο να θέσουν το σύστημα αυτό "εκτός λειτουργείας" προξενώντας έτσι περισσότερη ζημιά.


  Αυτό το είδος των επιθέσεων των hackers σε υπολογιστικά συστήματα λέγονται DOS (Denial Of Service) attacks. Επιθέσεις που έχουν ως σκοπό όχι την υποκλοπή κωδικών και προγραμμάτων, αλλά να θέσουν εκτός λειτουργείας τον υπολογιστή που επιτίθονται. Τα άμεσα αποτελέσματα μιας τέτοιας επίθεσης είναι rebοot, crashes, kernel dumps... Το να τεθεί ένας υπολογιστής ή κάποιος router εκτός λειτουργείας για κάποιο διάστημα για πολλούς είναι κάτι το καταστροφικό. Παρόμοια περίπτωση επίθεσης είχαμε τον περασμένο Νοέμβριο στην Forthnet. Επιπλέον υπάρχει και η πιθανότητα η μη σωστή επανεκκίνηση του υπολογιστή να κατεβάσει το επίπεδο ασφάλειας του, μετατρέποντας έτσι τον υπολογιστή εύκολη λεία για τον επιδοξο hacker. Είναι πραγματικά επιθέσεις στις οποίες είναι δύσκολο να αμυνθεί κανείς αποτελεσματικά. Υπάρχουν αρκετοί τρόποι που μπορεί να ακολουθήσει κάποιος ώστε να επιτεθεί. Πόλλα είναι και τα προγράμματα καθώς και οι source κώδικες που κυκλοφορούν στο Internet και βοηθούν τους επίδοξους hackers στο καταστροφικό τους έργο. Μέσα από το άρθρο αυτό θα γίνει αναφορά στους 3 πιο συνηθισμένους τρόπους επίθεσης.

PING ATTACK
Εικόνα 1 - Επίθεση PING   Πρόκειται για έναν αρκετά παλιό τρόπο επίθεσης ο οποίος εκμεταλεύεται ένα καταπληκτικό εργαλείο για δίκτυα. Πιο απλά αυτή η επίθεση γίνεται με την χρήση της εντολής ping. Η εντολή ping στέλνει ένα "πακέτο" απο bytes σε κάποιον υπολογιστή του δικτύου για να ανακαλύψει αν αυτός ο υπολογιστής είναι on-line. Αν είναι δηλαδή συνδεδεμένος στο δίκτυο. Το "πακέτο" αυτο απο bytes μπορεί να περιέχει καθορισμένο αριθμό bytes μέχρι ενός σημείου βέβαια (μπορει να περιέχει εως 65.535 bytes). Έτσι στέλνοντας ένα αρκετά μεγάλο πακέτο από bytes σε κάποιον server έχει ως αποτέλεσμα να δημιουργηθεί πρόβλημα υπερχύλισης στο buffer του (Buffer Overflow). Αυτός ο περιορισμός του αριθμού των bytes είναι δυνατόν να ξεπεραστεί αν εκμεταλευτεί κανείς το γεγονός ότι το TCP/IP διασπά τις πληροφορίες σε μικρότερα κομμάτια τα οποία συναρμολογούνται αργότερα στον server. Έτσι μπορούμε να δημιουργήσουμε ένα πακέτο το οποίο να περιέχει 70.000 bytes, το TCP/IP θα το κόψει σε μικρότερα κομμάτια πχ. 300 bytes και έτσι θα σταλεί στον server, όπου τελικά θα συναρμολογηθεί και θα αποκτήσει το αρχικό του μέγεθος. Οι συνέπεις είναι reboots, crashes και λοιπά άλλα προβλήματα στον παραλήπτη αυτού του πακέτου. Ευτυχώς που τώρα το είδος αυτό επίθεσης δεν είναι πια εφικτό καθώς οι περισσοτεροι υπολογιστές είναι πια προστατευμένοι με ειδικα patches.

OOB ATTACK
Εικονα 2 - Επίθεση ΟΟΒ   Μπορεί το pinging ενός server να μην αποτελεί πλέον απειλή στους περισσότερους υπολογιατές του δικτύου, αλλά υπάρχουν και άλλα είδη επιθέσεων όπως η OOB (Out Of Band) επίθεση ή αλλιώς Nuke. Αυτού του είδους η επίθεση είναι εφικτή μόνο σε λειτουργικό Win95 και WinNT. Η βασική λειτουργεία της επίθεσης αυτής είναι ότι ο server δέχεται σε κάποιο ανοιχτό port data σε high priority mode. Συνήθως τέτοιου είδους data στέλνεται στα port 139, 138, 137, 119, 113. Λαμβάνοντας ο υπολογιστής τα δεδομένα αυτά σε αυτό το mode δεν ξέρει πως να τα χειριστεί και το αποτελεσμα είναι να δημιουργηθεί ένα kernel panic. Το αποτέλεσμα είναι reboot, μπλέ οθόνη, αποσύνδεση του modem και όλλα τα συναφή. Με είδικά patches και προγράμματα (όπως το Nuke Nabber) που κυκλοφορούν στο Internet μπόρει οποιοσδήποτε να ασφαλίσει το μηχάνημά του από τέτοιου είδους επιθέσεις. Τέτοιες επιθέσεις μπορούν να γίνουν και σε servers του δικτύου αλλά και σε απλά home computers. Έχετε ποτέ παρατηρήσει πόσο συχνά αποσυνδέεται το modem σας όταν μιλάτε στο IRC ? :)

SYN FLOOD ATTACK
Εικόνα 3 - Επίθεση SYN FLOOD  'Eνας από τους χειρότερους τρόπους επίθεσης είναι το SYN FLOOD (Synchronise Flooding). Μια τέτοια επίθεση απαιτεί την γνώση σε βάθος του πρωτοκόλου TCP/IP. Έκει βασίζεται και αυτή η επίθεση γι΄αυτό αποτελεί ακόμα απειλή στους διάφορους υπολογιστές. Πιο αναλυτικα... Για να επικοινωνήσουν δύο υπολογιστές στο Internet απαιτούνται 3 βασικά βήματα (3 Way Handshale). Έστω ότι ο υπολογιστής Α (client) ξεκινάει την διαδικασία σύνδεσης με τον Β (server). (εικόνα 3 Α) Το πρώτο βήμα έιναι η αποστολη στον υπολογιστή Β της αίτησης σύνδεσης (Connection Request.). Έτσι ο Α στέλνει στον Β ένα πακέτο του τύπου SYN/ACK (Synchronize Acknowledge) με το οποίο του λέει ότι επιθυμεί να συνδεθεί σ΄αυτόν. (εικόνα 3 Β) Ο Β δέχεται το πακέτο και στέλνει στον Α ένα πακέτο ACK (Ackowlwdge Received) με το οποίο πληροφορεί τον Α ότι έλαβε το πακέτο του και ξεκινάει την διαδικασία ρύθμισης των παραμέτρων σύνδεσης. (εικόνα 3 Γ) Τέλος ο Α στέλνει άλλο ένα πακέτο του ίδιου τύπου (ACK) με το οποίο πληροφορεί με την σειρά του ότι έλαβε το πακέτο του Β και ξεκινάει την διαδικασία ρύθμισης των παραμέτρων σύνδεσης. Έτσι επιτυγχάνεται η σύνδεση μεταξύ των δύο υπολογιστών Α και Β. Αυτό είναι το λεγόμενο 3 Way Handshake. Κατά την διάρκεια αυτής της διαδικασίας ο Α και ο Β υπολογιστής αναγνωρίζουν ο ένας τον άλλο από τον ip αριθμό τους που έχουν στον διαδίκτυο. Έτσι ο Α στέλνει τα πακέτα στον Β και ο Β απαντά στον Α και όχι σε έναν άλλο υπολογιστή. Όση ώρα κρατάει αυτή η διαδικασία, η οποία δεν έιναι μία άλλα μερικές εκατοντάδες το λέπτο, ο υπολογιστής Β κρατάει τα στοιχεια του Α, όπως πχ. τον ip αριθμό, σε ένα μέρος της μνήμης (buffer). Όταν όμως η σύνδεση πραγματοποιηθεί η μνήμη που έιχε δεσμευθεί για να κρατήσει τις πληροφορίες ελευθερώνεται. Δυστυχώς όμως το μέγεθος του buffer που έχει στην διάθεσή του ο server είναι πολύ μικρη. Το αποτέλεσμα έιναι με τις αιτήσεις για σύνδεση που γίνονται να γεμίζει γρήγορα. Έτσι όταν δεν υπάρχει διαθεσιμη μνήμη ο Β δεν μπορεί να δεχτεί άλλες συνδεσεις. Ευτυχώς όμως όσες αιτήσεις δεν καταλήξουν σε συνδεσεις σε ορισμένο χρονικό διάστημα γίνονται expired από τον server, δηλ. απορίπτονται και την θέση τους πέρνουν άλλες καινούργιες.
  Η επίθεση έχει ως σκοπό να γεμίσει η μνήμη του υπολογιστή Β, του server δηλαδή, από αιτήσεις ώστε να μην μπορεί να δεχτέι άλλες. 'Eτσι να είναι αδύνατον να συνδεθούν άλλοι υπολογιστές εκεί. Ο Α υπολογιστής βομβαρδίζει συνεχώς με πακέτα SYΝ/ACK τον Β. Επιπλέον ο Α φροντίζει να μην στέλνει τα πραγματικά του στοιχεία (τον ip αριθμό) στον Β έτσι ώστε αυτές οι αιτήσεις να μην καταλήγουν ποτέ σε συνδέσεις. Με το συνεχή βομβαρδισμό του Β ξεπερνιέται και το timeout του server. Έτσι όσα πακέτα SYN/ACK γίνονται expired την θέση τους στο buffer παίρνουν αμέσως άλλα πακέτα ίδιου τύπου προερχόμενα φυσικά από τον υπολογιστή που επιτίθεται. Έτσι η μνήμη γεμίζει και το αποτέλεσμα είναι ο server να μην μπορει να δεκτεί άλλες συνδέσεις για όση ώρα διαρκεί αυτή η επίθεση. Είναι πραγματικά πολύ δύσκολη επίθεση να πραγματοποιηθεί αλλά πολύ αποτελεσματική.


ΕΠΙΛΟΓΟΣ
  Ελπίζω η ανάλυση των τριών αυτών τρόπων επίθεσης να ήταν κατανοήτη. Στην πραγματικότητα τα πράγματα είναι περισσότερο πολύπλοκα. Επομένως έπρεπε να τα απλουστέψω όσο πιο πολύ γινόταν χωρίς όμως να ξεφύγω τελέιως από την τεχνική που χρησιμοποιείται γι΄αυτές τις επιθέσεις. Σαν συμπερασμα παρατηρούμε ότι υπάρχουν αρκετοί τρόποι να επιτεθεί κάποιος σε έναν οποιονδήποτε υπολογιστη που είναι συνδεδεμένος στο Internet. Πράγμα που μας κάνει να συμπεραίνουμε ότι κανένας υπολογιστής δεν είναι απόλυτα ασφαλής. Αυτές οι επιθέσεις είναι ένα μικρό μέρος απο το σύνολο των DOS attacks. Ευτυχώς για αρκετές από αυτές υπάρχει προφύλαξη. Μπορείτε να βρείτε παντού πληροφορίες για την ασφάλεια των υπολογιστών. 'Eνα καταπληκτικό site σχετικά με την ασφάλεια των ΝΤ έιναι το ΝΤ Shop. Και αν αυτό δεν είναι αρκετό μπορείτε να βρείτε πολλα περισσότερα sites μέσω του Yahοo! ή της αγαπημένης σας μηχανής αναζήτησης.