PsychoGR Greek Hacking Scene

Σάββατο, Νοεμβρίου 19, 2005

DoS Attacks

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

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





Πρόκειται για έναν αρκετά παλιό τρόπο επίθεσης ο οποίος εκμεταλλεύεται ένα καταπληκτικό εργαλείο για δίκτυα. Πιο απλά αυτή η επίθεση γίνεται με την χρήση της εντολής 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.









Μπορεί το 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 (Synchronise Flooding). Μια τέτοια επίθεση απαιτεί την γνώση σε βάθος του πρωτοκόλλου TCP/IP. Εκεί βασίζεται και αυτή η επίθεση γι΄αυτό αποτελεί ακόμα απειλή στους διάφορους υπολογιστές. Πιο αναλυτικά... Για να επικοινωνήσουν δύο υπολογιστές στο Internet απαιτούνται 3 βασικά βήματα (3 Way Handshale). Έστω ότι ο υπολογιστής Α (client) ξεκινάει την διαδικασία σύνδεσης με τον Β (server). (εικόνα 3 Α) Το πρώτο βήμα είναι η αποστολή στον υπολογιστή Β της αίτησης σύνδεσης (Connection Request.). Έτσι ο Α στέλνει στον Β ένα πακέτο του τύπου SYN/ACK (Synchronize Acknowledge) με το οποίο του λέει ότι επιθυμεί να συνδεθεί σ΄αυτόν. (εικόνα 3 Β) Ο Β δέχεται το πακέτο και στέλνει στον Α ένα πακέτο ACK (Acknowledge Received) με το οποίο πληροφορεί τον Α ότι έλαβε το πακέτο του και ξεκινάει την διαδικασία ρύθμισης των παραμέτρων σύνδεσης. (εικόνα 3 Γ) Τέλος ο Α στέλνει άλλο ένα πακέτο του ίδιου τύπου (ACK) με το οποίο πληροφορεί με την σειρά του ότι έλαβε το πακέτο του Β και ξεκινάει την διαδικασία ρύθμισης των παραμέτρων σύνδεσης. Έτσι επιτυγχάνεται η σύνδεση μεταξύ των δύο υπολογιστών Α και Β. Αυτό είναι το λεγόμενο 3 Way Handshale. Κατά την διάρκεια αυτής της διαδικασίας ο Α και ο Β υπολογιστής αναγνωρίζουν ο ένας τον άλλο από τον ip αριθμό τους που έχουν στον διαδίκτυο. Έτσι ο Α στέλνει τα πακέτα στον Β και ο Β απαντά στον Α και όχι σε έναν άλλο υπολογιστή. Όση ώρα κρατάει αυτή η διαδικασία, η οποία δεν είναι μία άλλα μερικές εκατοντάδες το λεπτό, ο υπολογιστής Β κρατάει τα στοιχειά του Α, όπως πχ. τον ip αριθμό, σε ένα μέρος της μνήμης (buffer). Όταν όμως η σύνδεση πραγματοποιηθεί η μνήμη που είχε δεσμευθεί για να κρατήσει τις πληροφορίες ελευθερώνεται. Δυστυχώς όμως το μέγεθος του buffer που έχει στην διάθεσή του ο server είναι πολύ μικρή. Το αποτέλεσμα είναι με τις αιτήσεις για σύνδεση που γίνονται να γεμίζει γρήγορα. Έτσι όταν δεν υπάρχει διαθέσιμη μνήμη ο Β δεν μπορεί να δεχτεί άλλες συνδέσεις. Ευτυχώς όμως όσες αιτήσεις δεν καταλήξουν σε συνδέσεις σε ορισμένο χρονικό διάστημα γίνονται expired από τον server, δηλ. απορρίπτονται και την θέση τους παίρνουν άλλες καινούργιες. Η επίθεση έχει ως σκοπό να γεμίσει η μνήμη του υπολογιστή Β, του server δηλαδή, από αιτήσεις ώστε να μην μπορεί να δεχτεί άλλες. 'Έτσι να είναι αδύνατον να συνδεθούν άλλοι υπολογιστές εκεί. Ο Α υπολογιστής βομβαρδίζει συνεχώς με πακέτα συνδεθούν άλλοι υπολογιστές εκεί. Ο Α υπολογιστής βομβαρδίζει συνεχώς με πακέτα SYΝ/ACK τον Β. Επιπλέον ο Α φροντίζει να μην στέλνει τα πραγματικά του στοιχεία (τον ip αριθμό) στον Β έτσι ώστε αυτές οι αιτήσεις να μην καταλήγουν ποτέ σε συνδέσεις. Με το συνεχή βομβαρδισμό του Β ξεπερνιέται και το timeout του server. Έτσι όσα πακέτα SYN/ACK γίνονται expired την θέση τους στο buffer παίρνουν αμέσως άλλα πακέτα ίδιου τύπου προερχόμενα φυσικά από τον υπολογιστή που επιτίθεται. Έτσι η μνήμη γεμίζει και το αποτέλεσμα είναι ο server να μην μπορεί να δεχτεί άλλες συνδέσεις για όση ώρα διαρκεί αυτή η επίθεση. Είναι πραγματικά πολύ δύσκολη επίθεση να πραγματοποιηθεί αλλά πολύ αποτελεσματική. Ελπίζω η ανάλυση των τριών αυτών τρόπων επίθεσης να ήταν κατανοητή. Στην πραγματικότητα τα πράγματα είναι περισσότερο πολύπλοκα. Επομένως έπρεπε να τα απλουστέψω όσο πιο πολύ γινόταν χωρίς όμως να ξεφύγω τελείως από την τεχνική που χρησιμοποιείται γι΄αυτές τις επιθέσεις. Σαν συμπέρασμα παρατηρούμε ότι υπάρχουν αρκετοί τρόποι να επιτεθεί κάποιος σε έναν οποιονδήποτε υπολογιστή που είναι συνδεδεμένος στο Internet. Πράγμα που μας κάνει να συμπεραίνουμε ότι κανένας υπολογιστής δεν είναι απόλυτα ασφαλής. Αυτές οι επιθέσεις είναι ένα μικρό μέρος από το σύνολο των DOS attacks. Ευτυχώς για αρκετές από αυτές υπάρχει προφύλαξη. Μπορείτε να βρείτε παντού πληροφορίες για την ασφάλεια των υπολογιστών. 'Ένα καταπληκτικό site σχετικά με την ασφάλεια των ΝΤ είναι το
ΝΤ Shop. Και αν αυτό δεν είναι αρκετό μπορείτε να βρείτε πολλά περισσότερα sites μέσω του Yahοo! ή της αγαπημένης σας μηχανής αναζήτησης.