Α ΡΙΣ Θ ΤΗΜΙ ΡΙΚΗΣ Μ Ε ΤΑΠ ΕΝΑ ΣΥΣΤΗΜ ΜΑ ΓΙΑΑ ΑΚΗΣ ΚΙΝΗΣΗΣ ΣΤΑΥΡΟΣ ΘΕΣΣΑΛΟΝΙΚΗ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Α ΡΙΣ Θ ΤΗΜΙ ΡΙΚΗΣ Μ Ε ΤΑΠ ΕΝΑ ΣΥΣΤΗΜ ΜΑ ΓΙΑΑ ΑΚΗΣ ΚΙΝΗΣΗΣ ΣΤΑΥΡΟΣ ΘΕΣΣΑΛΟΝΙΚΗ"

Transcript

1 Α ΡΙΣ ΤΟΤΕ ΛΕΙΟ Π Α Ν ΕΠΙΣ ΕΣΣΑΛΟΝΙΚ ΗΣ Θ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΠ ΡΙΚΗΣ ΤΗΜΙ Ο Μ Ε ΤΑΠ ΤΥΧ ΙΑΚΗ Δ Ι ΑΤΡΙΒ ΒΗ HURRICANE: ΕΝΑ ΣΥΣΤΗΜ ΜΑ ΓΙΑΑ ΚΑΤΑΝΕΜΗΜΕΝΗΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑ ΑΚΗΣ ΚΙΝΗΣΗΣ HURRICANE: A SYSTEM FOR DISTRIBUTEDD ANALYSIS OF NETWORK TRAFFIC Κ ΚΥΡΙΑΚΟΠΟΥΛΟΣ ΣΤΑΥΡΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΡΑΤΖΑ ΕΛΕΝΗ, ΚΑΘΗΓΗΤΡΙΑ ΘΕΣΣΑΛΟΝΙΚΗ 2014

2

3

4 ΠΕΡΙΛΗΨΗ Π ΕΡΙΛΗΨΗ Αντικείμενο της παρούσας μεταπτυχιακής διατριβής ήταν η δημιουργία του Hurricane, ενός πλήρως αποκεντρωμένου συστήματος για κατανεμημένη ανάλυση δικτυακής κίνησης με σκοπό την ανίχνευση πληθώρας επιθέσεων που εξαπολύονται καθημερινά στο διαδίκτυο. Το σύστημα Hurricane παρουσιάζει πολύ μεγάλη ευελιξία, αφού μπορεί να εγκατασταθεί σε οποιοδήποτε cluster υπολογιστών στο cloud, στο grid ή και στο εσωτερικό μας δίκτυο, ενώ ακόμη και οι υπολογιστές που προστατεύει μπορούν να βρίσκονται οπουδήποτε. Για να υλοποιηθεί ένα τέτοιο σύστημα μελετήσαμε σε πρώτη φάση μια σειρά επιθέσεων, όπως επιθέσεις άρνησης παροχής υπηρεσίας, τεχνικές ανίχνευσης ανοιχτών δικτυακών θυρών αλλά και τρόπους μετάδοσης σκουληκιών. Εστιάσαμε κυρίως στον σκοπό τους, τον τρόπο με τον οποίο εξαπολύονται, τις αδυναμίες πρωτοκόλλων που εκμεταλλεύονται για να βλάψουν ένα πληροφοριακό σύστημα αλλά και τους τρόπους αντιμετώπισης τους. Στη συνέχεια ασχοληθήκαμε με το πεδίο της κατανεμημένης επεξεργασίας ροών δεδομένων και αξιολογήσαμε τα διάφορα συστήματα που υπάρχουν στην βιβλιογραφία, ώστε να επιλέξουμε την πλέον κατάλληλη λύση για το Hurricane. Τελικώς επιλέξαμε να προχωρήσουμε στην υλοποίηση μας χρησιμοποιώντας το Storm, ένα ανοιχτού κώδικα σύστημα για κατανεμημένη επεξεργασία ροών δεδομένων, κύρια χαρακτηριστικά του οποίου είναι η κλιμάκωση (scalability), η ανεκτικότητα σε λάθη (fault tolerance) και η εγγύηση ότι όλα τα δεδομένα που θα εισαχθούν στο σύστημα θα επεξεργαστούν στο ακέραιο (data processing guarantee). Όλα τα συστήματα αυτού του τύπου λειτουργούν με την βοήθεια κατανεμημένων συστημάτων διαχείρισης μηνυμάτων (Messaging Systems) τα οποία λαμβάνουν πληροφορία από πολλές πηγές και την διοχετεύουν με κατανεμημένο τρόπο στα συστήματα κατανεμημένης επεξεργασίας ροών δεδομένων. Μελετώντας τα διάφορα συστήματα που έχουν προταθεί επιλέξαμε τελικά το Kafka, ένα ανοιχτού κώδικα κατανεμημένο σύστημα διαχείρισης μηνυμάτων σχεδιασμένο να μπορεί να επεξεργάζεται πάρα πολύ μεγάλο όγκο δεδομένων. Στο τελευταίο στάδιο μας ενδιέφερε να αποθηκεύουμε τα δεδομένα μας σε μια βάση δεδομένων και για αυτό το λόγο ασχοληθήκαμε με NoSQL βάσεις δεδομένων, οι οποίες αποτελούν την πλέον ενδεδειγμένη λύση για αποθήκευση/ανάκτηση δεδομένων με κατανεμημένο τρόπο. Μέσα από τις διάφορες βάσεις δεδομένων αυτού του τύπου επιλέξαμε τελικώς το σύστημα Cassandra. Στην εργασία μας το Hurricane εγκαταστάθηκε σε ένα cluster 5 υπολογιστών στο cloud του okeanos, μια υπηρεσία που δημιουργήθηκε για τις ανάγκες της Ελληνικής ερευνητικής και ακαδημαϊκής κοινότητας. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ VII

5 ABSTRACT A BSTRACT Subject of this work was the creation of the Hurricane, a completely decentralized system for distributed analysis of network traffic, main task of which is the detection of various attacks that are launched everyday on the Internet. The Hurricane presents great flexibility as it can be installed on any cluster of machines on cloud, grid or within our network, while at the same time all computers that are being protected can reside anywhere. To implement such a system we studied a series of attacks, like Denial Of Service (DOS) Attacks, Port Scanning techniques and ways to transmit worms. We mainly focused on their purpose, how they are launched, the protocol vulnerabilities they exploit to harm an information system and ways to tackle them. Then we studied the literature of distributed stream processing field and we assessed the existing state of the art systems, in order to choose the most appropriate solution for the Hurricane. We finally chose to proceed with our implementation using Storm, an open source system for distributed processing of data streams, the main characteristics of which are scalability, fault tolerance and data processing guarantee. All systems of this type work using distributed messaging systems, which receive information from many sources and pass it to the distributed stream processing systems, in a distributed manner. Studying the various systems that have been proposed, we finally chose Kafka, an open source distributed messaging system designed to process very large volumes of data. In the last step we were interested to store our data in a database and for that reason we dealt with NoSQL databases which are the most appropriate solution for storing / retrieving data in a distributed way. From various database systems of this type we finally chose to use Cassandra. In this work, the Hurricane was installed in a cluster of 5 computers in okeanos cloud, a service created for the needs of the Greek research and academic community. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ IX

6 ΕΥΧΑΡΙΣΤΙΕΣ Ε ΥΧΑΡΙΣΤΙΕΣ Πριν την παρουσίαση των αποτελεσμάτων της παρούσας μεταπτυχιακής διατριβής, αισθάνομαι την υποχρέωση να ευχαριστήσω ορισμένους από τους ανθρώπους που γνώρισα, συνεργάστηκα μαζί τους και έπαιξαν πολύ σημαντικό ρόλο στην πραγματοποίησή της. Πρώτα από όλα θέλω να ευχαριστήσω τη μητέρα μου στην οποία οφείλονται εξολοκλήρου όλα όσα έχω καταφέρει μέχρι σήμερα και φιλοδοξώ να καταφέρω στο μέλλον, την Ραφαέλα, την Δήμητρα, όπως και όλους τους φίλους μου, που με βοήθησαν, ο καθένας με τον δικό του ξεχωριστό τρόπο, κατά τη διάρκεια της όλης έως τώρα ακαδημαϊκής μου πορείας. Επίσης δεν θα μπορούσα να μην αναφερθώ στην κύρια Καρατζά, επιβλέπουσα της μεταπτυχιακής διατριβής, η οποία ήταν συνεχώς παρούσα σε οποιαδήποτε δυσκολία προέκυπτε, δίνοντας μου απλόχερα όλη τη βοήθεια που χρειαζόμουν, και να την ευχαριστήσω για την άψογη συνεργασία που είχαμε καθόλη τη διάρκεια της εκπόνησης της μεταπτυχιακής διατριβής. Θέλω επίσης να ευχαριστήσω θερμά τον Φ. Λούκο για τις ενδιαφέρουσες συζητήσεις και παρατηρήσεις γύρω από το θέμα. Τέλος θα ήθελα να ευχαριστήσω την υπηρεσία okeanos, όπου χωρίς την παροχή των πόρων του δεν θα μπορούσε να πραγματοποιηθεί η διατριβή. Η ολοκλήρωση της μεταπτυχιακής διατριβής συγχρηματοδοτήθηκε μέσω του Έργου «Υποτροφίες ΙΚΥ» από πόρους του ΕΠ «Εκπαίδευση και Δια Βίου Μάθηση», του Ευρωπαϊκού Κοινωνικού Ταμείου (ΕΚΤ) του ΕΣΠΑ, ». 20/1/2014 Κυριακόπουλος Σταύρος HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ XI

7 ΠΕΡΙΕΧΟΜΕΝΑ Π ΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΛΗΨΗ... VII ABSTRACT... IX ΕΥΧΑΡΙΣΤΙΕΣ... XI ΠΕΡΙΕΧΟΜΕΝΑ... XIII ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ... XV ΛΙΣΤΑ ΠΙΝΑΚΩΝ ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ ΣΥΣΤΗΜΑΤΑ ΑΝΙΧΝΕΥΣΗΣ ΠΑΡΕΙΣΦΡΗΣΗΣ (INTRUSION DETECTION SYSTEMS, IDS) ΕΠΕΞΕΡΓΑΣΙΑ ΡΟΩΝ ΔΕΔΟΜΕΝΩΝ ΚΙΝΗΤΡΟ ΤΡΟΠΟΣ ΛΕΙΤΟΥΡΓΙΑΣ DSMS VS DBMS ΚΑΤΑΝΕΜΗΜΕΝΗ ΕΠΕΞΕΡΓΑΣΙΑ ΡΟΩΝ ΔΕΔΟΜΕΝΩΝ ΚΙΝΗΤΡΟ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ HURRICANE ΚΕΦΑΛΑΙΟ 2: ΠΡΩΤΟΚΟΛΛΑ ΔΙΑΔΙΚΤΥΟΥ ARP (ADDRESS RESOLUTION PROTOCOL) ICMP (INTERNET CONTROL MESSAGE PROTOCOL) TCP (TRANSMISSION CONTROL PROTOCOL) HTTP (HYPERTEXT TRANSFER PROTOCOL) ΚΕΦΑΛΑΙΟ 3: ΕΠΙΘΕΣΕΙΣ ΕΠΙΘΕΣΕΙΣ ΑΡΝΗΣΗΣ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΑΣ (DENIAL OF SERVICE ATTACKS) TCP SYN FLOOD ICMP FLOOD HTTP GET/POST FLOOD ΑΝΙΧΝΕΥΣΗ ΑΝΟΙΧΤΩΝ ΔΙΚΤΥΑΚΩΝ ΘΥΡΩΝ (PORT SCAN) TCP STEALTH SCAN TCP CONNECT SCAN TCP NULL SCAN HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ XIII

8 3.2.4 TCP FIN SCAN TCP XMAS SCAN TCP MAIMON SCAN TCP ACK SCAN ARP SPOOF WORM ΔΕΝΤΡΑ ΕΠΙΘΕΣΕΩΝ ΚΕΦΑΛΑΙΟ 4: ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΔΕΔΟΜΕΝΩΝ APACHE ZOOKEEPER APACHE KAFKA STORM ΕΙΣΑΓΩΓΗ ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΟΝΤΟΤΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ STORM ΡΟΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΟΠΟΛΟΓΙΕΣ ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΕΡΓΑΣΙΩΝ ΟΜΑΔΟΠΟΙΗΣΗ ΡΟΗΣ (STREAM GROUPING) ΠΕΡΙΠΤΩΣΗ ΧΡΗΣΗΣ APACHE CASSANDRA ΚΕΦΑΛΑΙΟ 5: HURRICANE ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΕΛΑΤΗΣ ΑΝΑΛΥΣΗΣ ΠΡΩΤΟΚΟΛΛΩΝ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ ΤΟΠΟΛΟΓΙΑ ΑΝΙΧΝΕΥΣΗ ΕΠΙΘΕΣΕΩΝ ΤΕΧΝΙΚΗ ΚΥΛΙΟΜΕΝΟΥ ΠΑΡΑΘΥΡΟΥ ΤΕΧΝΙΚΗ ΠΡΟΣΑΡΜΟΖΟΜΕΝΟΥ ΚΑΤΩΦΛΙΟΥ ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΔΙΚΤΥΟΥ ΚΕΦΑΛΑΙΟ 6: ΠΕΙΡΑΜΑΤΑ ΕΙΣΑΓΩΓΗ ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ ΑΝΙΧΝΕΥΣΗ FLOOD ΕΠΙΘΕΣΕΩΝ ΑΝΙΧΝΕΥΣΗ PORT SCAN ΕΠΙΘΕΣΕΩΝ ΑΝΙΧΝΕΥΣΗ ΣΚΟΥΛΗΚΙΩΝ ΚΕΦΑΛΑΙΟ 7: ΣΥΜΠΕΡΑΣΜΑΤΑ ΚΑΙ ΜΕΛΛΟΝΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΡΤΗΜΑ I: ΑΝΑΦΟΡΕΣ XIV HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

9 ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ Λ ΙΣΤΑ Σ ΧΗΜΑΤΩΝ ΕΙΚΟΝΑ 1: ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΜΕΣΗΣ [23] ΚΑΙ ΕΜΜΕΣΗΣ ΕΠΙΘΕΣΗΣ [24] ΕΙΚΟΝΑ 2: ΔΕΝΤΡΟ ΕΠΙΘΕΣΗΣ ΕΙΚΟΝΑ 3: ΑΡΧΙΤΕΚΤΟΝΙΚΗ KAFKA: ΠΑΡΑΓΩΓΟΣ ΚΑΤΑΝΑΛΩΤΗΣ [35] ΕΙΚΟΝΑ 4: ΑΡΧΙΤΕΚΤΟΝΙΚΗ STORM [41] ΕΙΚΟΝΑ 5: ΡΟΗ ΔΕΔΟΜΕΝΩΝ ΣΤΟ STORM [42] ΕΙΚΟΝΑ 6: BOLT [42] ΕΙΚΟΝΑ 7: STORM TOPOLOGY ΕΙΚΟΝΑ 8: ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΕΡΓΑΣΙΩΝ ΣΤΟ STORM [43] ΕΙΚΟΝΑ 9: ΠΑΡΑΔΕΙΓΜΑΤΑ ΟΜΑΔΟΠΟΙΗΣΗΣ ΡΟΗΣ ΣΤΟ STORM [42] ΕΙΚΟΝΑ 10: ΑΡΧΙΤΕΚΤΟΝΙΚΗ HURRICANE ΕΙΚΟΝΑ 11: ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ HURRICANE ΕΙΚΟΝΑ 12: HURRICANE TOPOLOGY STORM UI ΕΙΚΟΝΑ 13: COUNT BOLT LOAD BALANCING STORM UI ΕΙΚΟΝΑ 14: ΚΥΛΙΟΜΕΝΟ ΠΑΡΑΘΥΡΟ [49] ΕΙΚΟΝΑ 15: ΔΟΜΗ ΚΥΛΙΟΜΕΝΟΥ ΠΑΡΑΘΥΡΟΥ [49] ΕΙΚΟΝΑ 16: ΥΛΟΠΟΙΗΣΗ ΚΥΛΙΟΜΕΝΟΥ ΠΑΡΑΘΥΡΟΥ [49] ΕΙΚΟΝΑ 17: FLOOD ATTACKS TAB ΕΙΚΟΝΑ 18: PORT SCAN TAB ΕΙΚΟΝΑ 19: WORM TAB ΕΙΚΟΝΑ 20: ALERT TAB ΕΙΚΟΝΑ 21: ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ HURRICANE ΕΙΚΟΝΑ 22: ΠΡΙΝ ΑΠΟ ΕΠΙΘΕΣΗ SYN FLOOD ΕΙΚΟΝΑ 23: ΜΕΤΑ ΑΠΟ ΕΠΙΘΕΣΗ SYN FLOOD ΕΙΚΟΝΑ 24: ΣΥΝΑΓΕΡΜΟΣ ΕΠΙΘΕΣΗΣ SYN FLOOD ΕΙΚΟΝΑ 25: ΠΡΙΝ ΑΠΟ ΕΠΙΘΕΣΗ ICMP FLOOD ΕΙΚΟΝΑ 26: ΜΕΤΑ ΑΠΟ ΕΠΙΘΕΣΗ ICMP FLOOD ΕΙΚΟΝΑ 27: ΣΥΝΑΓΕΡΜΟΣ ΕΠΙΘΕΣΗΣ ICMP FLOOD ΕΙΚΟΝΑ 28: ΠΡΙΝ ΑΠΟ STEALTH SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 29: ΜΕΤΑ ΑΠΟ STEALTH SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 30: ΣΥΝΑΓΕΡΜΟΣ STEALTH SCAN ΑΝΙΧΝΕΥΣΗΣ ΘΥΡΩΝ ΕΙΚΟΝΑ 31: ΠΡΙΝ ΑΠΟ FIN SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 32: ΜΕΤΑ ΑΠΟ FIN SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 33: ΣΥΝΑΓΕΡΜΟΣ FIN SCAN ΑΝΙΧΝΕΥΣΗΣ ΘΥΡΩΝ ΕΙΚΟΝΑ 34: ΠΡΙΝ ΑΠΟ XMAS SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 35: ΜΕΤΑ ΑΠΟ XMAS SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 36: ΣΥΝΑΓΕΡΜΟΣ XMAS SCAN ΑΝΙΧΝΕΥΣΗΣ ΘΥΡΩΝ ΕΙΚΟΝΑ 37: ΠΡΙΝ ΑΠΟ ACK SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 38: ΜΕΤΑ ΑΠΟ ACK SCAN ΑΝΙΧΝΕΥΣΗ ΘΥΡΩΝ ΕΙΚΟΝΑ 39: ΣΥΝΑΓΕΡΜΟΣ ACK SCAN ΑΝΙΧΝΕΥΣΗΣ ΘΥΡΩΝ ΕΙΚΟΝΑ 40: ΠΡΙΝ ΑΠΟ ΠΡΟΣΚΟΛΛΗΣΗ ΣΚΟΥΛΗΚΙΟΥ ΕΙΚΟΝΑ 41: ΜΕΤΑ ΑΠΟ ΠΡΟΣΚΟΛΛΗΣΗ ΣΚΟΥΛΗΚΙΟΥ ΕΙΚΟΝΑ 42: ΣΥΝΑΓΕΡΜΟΣ ΑΝΙΧΝΕΥΣΗΣ ΣΚΟΥΛΗΚΙΟΥ HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ XV

10 Λ ΙΣΤΑ Π ΙΝΑΚΩΝ ΠΙΝΑΚΑΣ 1: ΔΟΜΗ ARP ΠΑΚΕΤΟΥ ΠΙΝΑΚΑΣ 2: ΔΟΜΗ ICMP ΠΑΚΕΤΟΥ ΠΙΝΑΚΑΣ 3: ΔΟΜΗ TCP ΠΑΚΕΤΟΥ ΠΙΝΑΚΑΣ 4: ΤΡΟΠΟΙ ΟΜΑΔΟΠΟΙΗΣΗΣ ΡΟΗΣ ΣΤΟ STORM ΠΙΝΑΚΑΣ 5: ΔΟΜΗ ΕΓΓΡΑΦΗΣ ΠΑΚΕΤΟΥ ΠΙΝΑΚΑΣ 6: ΥΠΟΛΟΓΙΣΤΕΣ HURRICANE ΠΙΝΑΚΑΣ 7: ΠΡΟΣΤΑΤΕΥΟΜΕΝΟΙ ΥΠΟΛΟΓΙΣΤΕΣ HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

11 ΚΕΦΑΛΑΙΟ 1: Ε ΙΣΑΓΩΓΗ 12 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

12 ΕΙΣΑΓΩΓΗ Ο κόσμος του διαδικτύου εξαπλώθηκε με ταχύτατους ρυθμούς και από τα πρώτα χρόνια δημιουργίας του η ασφάλεια των δικτύων υπολογιστών ήταν υπό αμφισβήτηση. Τα περισσότερα πρωτόκολλα του διαδικτύου αποδείχθηκαν ιδιαίτερα ανασφαλή, ακόμα και αυτά που χρησιμοποιούνται ευρέως μέχρι και σήμερα, όπως το TCP, και αυτό διότι κατά τον σχεδιασμό δόθηκε πολύ μεγαλύτερο βάρος στην λειτουργικότητα τους παρά στην ασφάλεια. Η ανάπτυξη πληθώρας επιθέσεων που εκμεταλλεύονται αδυναμίες πολλών πρωτοκόλλων, αλλά και η επινόηση διάφορων τρόπων εφαρμογής τους, ήταν μια αναπόφευκτη πραγματικότητα, και ως εκ τούτου οι μηχανικοί ασφάλειας πληροφοριακών συστημάτων έπρεπε συνεχώς να εφευρίσκουν μηχανισμούς αντιμετώπισης των επιθέσεων αυτών. Τα χρόνια που ακολούθησαν δημιουργήθηκαν πολλά συστήματα ανίχνευσης παρείσφρησης (Intrusion Detection Systems, IDS), αλλά και αποτροπής παρείσφρησης (Intrusion Prevention Systems, IPS) που ως στόχο είχαν την προστασία των πληροφοριακών συστημάτων από διάφορα είδη επιθέσεων. Τα περισσότερα IDS και IPS εργάζονται τοπικά σε κάθε υπολογιστή, ελέγχοντας συνεχώς την δικτυακή τους κίνηση. Τα τελευταία χρόνια παρουσιάστηκε μεγάλη ανάγκη τα συστήματα αυτά να αποκεντρωθούν έτσι ώστε να μπορούν να έχουν μια γενικότερη εικόνα όλου του δικτύου. Μια από τις καλύτερες επιλογές, για υλοποιήσεις προς αυτή τη κατεύθυνση, ήταν η χρησιμοποίηση σύγχρονων συστημάτων κατανεμημένης επεξεργασίας ροών δεδομένων. Η ανάγκη για αποδοτική επεξεργασία πολύ μεγάλου όγκου δεδομένων, με κατανεμημένο τρόπο, λόγω της αυξανόμενης χρήσης του διαδικτύου αλλά και της πληροφορίας που διακινείται μέσα σε αυτό, οδήγησε στην δημιουργία πολλών συστημάτων κατανεμημένης επεξεργασίας δεδομένων όπως το Hadoop [1], το Storm [2], το S4 [3], το Borealis [4] [5] κ.α. Κάποια από αυτά πραγματοποιούν κατανεμημένη επεξεργασία ενός προκαθορισμένου συνόλου δεδομένων, όπως το Hadoop, ενώ άλλα, όπως το Storm, πραγματοποιούν κατανεμημένη επεξεργασία ροών δεδομένων σε πραγματικό χρόνο. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 13

13 1.1 ΣΥΣΤΗΜΑΤΑ ΑΝΙΧΝΕΥΣΗΣ ΠΑΡΕΙΣΦΡΗΣΗΣ (INTRUSION DETECTION SYSTEMS, IDS) Τα συστήματα ανίχνευσης παρείσφρησης (Intrusion Detection System, IDS) αποτελούν την βασικότερη γραμμή άμυνας όλων των σύγχρονων πληροφοριακών συστημάτων. Τα συστήματα αυτά, τις περισσότερες φορές, αποτελούνται από έναν συνδυασμό υλικού και λογισμικού που ελέγχει και αναλύει συνεχώς την δικτυακή κίνηση, προσπαθώντας να ανιχνεύσει επιθέσεις που εξαπολύονται σε έναν υπολογιστή. Το πλεονέκτημα των IDS συστημάτων είναι ότι, αυτά καθεαυτά, δεν είναι ευάλωτα σε επιθέσεις, αφού η μόνη δράση τους είναι ο παθητικός έλεγχος της κίνησης. Το βασικό μειονέκτημα τους είναι ότι δεν μπορούν να αναλαμβάνουν δράσεις αντιμετώπισης των επιθέσεων που εντοπίζουν και γι αυτό το λόγο χρειάζεται να ληφθούν συμπληρωματικά μέτρα ασφάλειας. Τα συστήματα αποτροπής παρείσφρησης (IPS, Intrusion Prevention System) επεκτείνουν τα IDS συστήματα προσθέτοντας δυνατότητες αυτόματης αποτροπής μιας επίθεσης που έχει εντοπιστεί. Στις περισσότερες περιπτώσεις, εάν ανιχνευθεί μια επίθεση επιτυχώς, ένα IPS είτε απλώς απορρίπτει τα πακέτα που συμμετέχουν στην επίθεση, είτε τα ανακατευθύνει σε συγκεκριμένους χώρους για περεταίρω ανάλυση (όπως για παράδειγμα για τη δημιουργία γνώσης, έτσι ώστε να αποτραπεί η συγκεκριμένη επίθεση στο μέλλον). Τα IPS συστήματα έχουν το πλεονέκτημα ότι παρέχουν πραγματικού χρόνου ενέργειες αποτροπής έναντι επιθέσεων, αλλά και το μειονέκτημα ότι πρέπει να εγκατασταθούν στο ίδιο δίκτυο με τους υπολογιστές που ελέγχουν, γεγονός που τα καθιστά και αυτά ευάλωτα σε επιθέσεις. Ένα άλλο μειονέκτημα είναι ότι εάν προκύψουν λανθασμένοι συναγερμοί (false alarms), τότε αυτόματα θα ληφθούν δράσεις αποτροπής μιας επίθεσης, με αποτέλεσμα να μην επιτρέπεται η πρόσβαση νόμιμων χρηστών σε διάφορες υπηρεσίες. Οι βασικότεροι μηχανισμοί των IDS και IPS συστημάτων περιλαμβάνουν: Kαταγραφή γεγονότων με βάση ένα σύνολο κανόνων (log) Ενημέρωση των χρηστών για πιθανή απειλή με ενεργοποίηση συναγερμών (alert) Προσπάθεια αντιμετώπισης μιας επίθεσης που έχει ανιχνευθεί (defend) (στην περίπτωση που έχουμε IPS σύστημα). 14 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

14 Τα συστήματα ανίχνευσης παρείσφρησης χωρίζονται σε τρείς βασικές κατηγορίες: Anomaly-based IDS: Τα συστήματα αυτά μαθαίνουν την φυσιολογική συμπεριφορά ενός υπολογιστή ή/και ολόκληρου του δικτύου και με βάση αυτή προσπαθούν να εντοπίσουν μη ομαλή δραστηριότητα, ελέγχοντας την κίνηση των πακέτων. Αρχικά δημιουργούν πρότυπα φυσιολογικής συμπεριφοράς και όταν παρουσιαστεί κίνηση που προκαλεί απόκλιση από ένα προκαθορισμένο όριο και πάνω, από τα αντίστοιχα πρότυπα, ενεργοποιεί συναγερμούς, προς ενημέρωση των μηχανικών ασφάλειας του συστήματος. Τα βασικά πλεονεκτήματα των συστημάτων αυτών είναι ότι μπορούν και προσαρμόζονται δυναμικά σε καινούριες επιθέσεις και ότι δουλεύουν με τον ίδιο τρόπο σε οποιοδήποτε λειτουργικό σύστημα τοποθετηθούν. Το κυριότερο μειονέκτημα τους είναι τα υψηλά ποσοστά λανθασμένων συναγερμών που ενεργοποιούν. Ως εκ τούτου χρειάζεται μεγάλη προσοχή κατά τον σχεδιασμό να κρατήσουμε μια ισορροπία ανάμεσα στο επίπεδο ασφάλειας που θα παρέχει το IDS και των λανθασμένων συναγερμών που θα δημιουργεί. Παραδείγματα τέτοιων συστημάτων αποτελούν το ADAM [6] και το NIDES [7]. Signature-based IDS: Τα συστήματα αυτά ελέγχουν την δικτυακή κίνηση και χρησιμοποιούν προκαθορισμένα πρότυπα/υπογραφές γνωστών επιθέσεων που βασίζονται σε αδυναμίες του λειτουργικού συστήματος ή επιθέσεων που πραγματοποιήθηκαν κατά το παρελθόν, για να ταυτοποιήσουν μια πιθανή προσπάθεια εισβολής. Το βασικότερο πλεονέκτημα των συστημάτων αυτών είναι ότι παράγονται λιγότεροι λανθασμένοι συναγερμοί. Επίσης οι συναγερμοί αυτοί είναι προκαθορισμένοι και ως εκ τούτου εύκολα κατανοητοί, σε αντίθεση με τους αντίστοιχους συναγερμούς ενός Anomalybased IDS. Τα κυριότερα μειονεκτήματα τους είναι ότι χρειάζονται συνεχή ανανέωση των προκαθορισμένων υπογραφών τους, αλλά και το ότι δυσκολεύονται να ανιχνεύσουν νέα είδη επιθέσεων. Τα περισσότερα IDS που χρησιμοποιούνται στις μέρες μας είναι Signature-based. Παραδείγματα τέτοιων συστημάτων είναι το SNORT [8] και το BRO [9]. Hybrid IDS: Τα συστήματα αυτά εφαρμόζουν έναν υβριδικό συνδυασμό των δύο παραπάνω τεχνικών. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 15

15 1.2 ΕΠΕΞΕΡΓΑΣΙΑ ΡΟΩΝ ΔΕΔΟΜΕΝΩΝ Κίνητρο Την τελευταία δεκαετία παρατηρήθηκε μια έκρηξη στον όγκο των δεδομένων που διακινούνταν στο διαδίκτυο και τα οποία έπρεπε να αποθηκευθούν και να επεξεργαστούν. Ως εκ τούτου η ανάγκη για τη δημιουργία τεχνολογιών που να μπορούν να πραγματοποιήσουν τις παραπάνω λειτουργίες κατέστη επιτακτική. Η επεξεργασία ροών δεδομένων γνώρισε ιδιαίτερη άνθηση αφού οι εφαρμογές που χρειάζονταν ανάλυση της πληροφορίας σε πραγματικό χρόνο αυξήθηκαν ραγδαία. Παρακάτω παρουσιάζονται μερικά παραδείγματα τέτοιων εφαρμογών: Διαδικτυακές συναλλαγές: Την τελευταία δεκαετία οι διαδικτυακές συναλλαγές και η χρήση των πιστωτικών καρτών αυξήθηκαν κατακόρυφα. Οι συναλλαγές αυτές χρειάζονται πολύ υψηλή επεξεργαστική ικανότητα, ώστε να πραγματοποιούνται γρήγορα και με ασφάλεια, έχοντας παράλληλα ως προαπαιτούμενο τη δημιουργία χρήσιμων στατιστικών στοιχείων σε πραγματικό χρόνο. Ανίχνευση απάτης σε εφαρμογές τηλεφωνίας: Οι απάτες μέσω τηλεφώνου αποτελούν καθημερινό φαινόμενο και γι αυτό το λόγο έχουν δημιουργηθεί πολλές εφαρμογές που προσπαθούν να ανιχνεύσουν απάτες αυτού του τύπου. Οι εφαρμογές αυτές πρέπει να μπορούν να επεξεργάζονται σε πραγματικό χρόνο πολύ μεγάλο όγκο πληροφορίας, ώστε να ανιχνεύουν όσο το δυνατόν πιο γρήγορα μια απάτη και έτσι να περιορίζεται η οικονομική ζημιά που μπορεί να προκαλέσει. Συστήματα προβλέψεων: Εφαρμογές που πραγματοποιούν προβλέψεις σε πραγματικό χρόνο, όπως για παράδειγμα πρόβλεψη αποτυχίας δικτύου ή πρόβλεψη πωλήσεων μιας εταιρίας, απαιτούν επίσης μηχανές επεξεργασίας ροών δεδομένων που θα μπορούν να διαχειρίζονται μεγάλο όγκο πληροφορίας, σε μικρό χρονικό διάστημα. Ανάλυση αρχείων καταγραφής: Τα αρχεία καταγραφής αποτελούν ένα πολύ χρήσιμο εργαλείο για την εξαγωγή χρήσιμης πληροφορίας για το δίκτυο μας. Η ανάλυση δεδομένων από τα αρχεία καταγραφής μπορούν να μας δώσουν πληροφορίες όπως ποιοι είναι οι πιο επιβαρυμένοι κόμβοι του δικτύου, ποιοι 16 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

16 είναι οι πιο συσχετισμένοι κόμβοι στο δίκτυο, πόσες ροές αποτελούνται μόνο από ένα πακέτο κτλ Τρόπος λειτουργίας Μια ροή δεδομένων ορίζεται ως μια ακολουθία απεριόριστου μεγέθους από εγγραφές (tuples) που έχουν ακριβώς την ίδια δομή. Κάθε εγγραφή της ακολουθίας έχει έναν αριθμό πεδίων (fields), με συγκεκριμένο όνομα και τύπο δεδομένων, ενώ η επεξεργασία της ροής πραγματοποιείται από μηχανές επεξεργασίας ροών δεδομένων (Stream Processing Engines, SPE). Οι μηχανές αυτές δέχονται ως είσοδο μια συνεχή ροή από εγγραφές και τις επεξεργάζονται πραγματοποιώντας συνεχή ερωτήματα, (πάνω σε ένα συγκεκριμένο παράθυρο/εύρος χρόνου, π.χ. για εγγραφές των τελευταίων 10 λεπτών) τα οποία απαιτούν απάντηση σε πραγματικό χρόνο (realtime) DSMS vs DBMS Σε αντίθεση με τα παραδοσιακά συστήματα βάσεων δεδομένων (Database Managements System, DBMS), όπου η πληροφορία αποθηκεύεται μόνιμα υπό μορφή σχέσεων, τα συστήματα διαχείρισης ροών δεδομένων (Data Stream Management System, DSMS) αποθηκεύουν προσωρινή πληροφορία, η οποία συνεχώς ανανεώνεται. Επιπρόσθετα στις βάσεις δεδομένων πραγματοποιούμε one-time ερωτήματα σε αντίθεση με τα DSMS όπου έχουμε συνεχή ερωτήματα. Μια άλλη βασική διαφορά είναι ότι στα DSMS συστήματα έχουμε ακολουθιακή προσπέλαση και επεξεργασία δεδομένων, ενώ στα DBMS συστήματα έχουμε τυχαία προσπέλαση. Τέλος στις βάσεις δεδομένων γνωρίζουμε το μέγεθος της αποθηκευμένης πληροφορίας, ενώ στα συστήματα επεξεργασίας ροών δεδομένων έχουμε μη προβλέψιμη ποσότητα εισερχόμενης πληροφορίας προς επεξεργασία Κατανεμημένη επεξεργασία ροών δεδομένων Τα πρώτης γενιάς συμβατικά συστήματα επεξεργασίας ροών δεδομένων ήταν κεντρικοποιημένα συστήματα τα οποία μόλις καταναλώνονταν οι διαθέσιμοι πόροι τους (π.χ. CPU) επεξεργάζονταν τις ροές με μεγάλη καθυστέρηση. Ο όγκος της πληροφορίας που απαιτούσε επεξεργασία αυξανόταν συνεχώς και τα συστήματα αυτά αδυνατούσαν να ανταποκριθούν. Η επανάσταση στην χώρο ήλθε με την δημιουργία HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 17

17 κατανεμημένων συστημάτων επεξεργασίας ροών δεδομένων, αρχικά με το Borealis [4], που αποτελεί συνέχεια των Aurora [10], Aurora* και Medusa [11] και στη συνέχεια με συστήματα όπως το S4 [3] που χρησιμοποιείται από το Yahoo! και το Storm που χρησιμοποιείται από το Twitter. 1.3 ΚΙΝΗΤΡΟ ΥΛΟΠΟΙΗΣΗΣ ΤΟΥ HURRICANE Τα περισσότερα συστήματα ανίχνευσης παρείσφρησης έχουν ένα βασικό μειονέκτημα: Ότι τρέχουν τοπικά σε κάθε υπολογιστή ξεχωριστά, προσπαθώντας να ανιχνεύσουν μια επίθεση που πραγματοποιείται μόνο στον συγκεκριμένο υπολογιστή. Ως εκ τούτου δεν μπορούν να ανιχνεύσουν επιθέσεις που εξαπολύονται ενάντια σε ένα δίκτυο υπολογιστών γενικά, αφού δεν μπορούν να έχουν τη συνολική εικόνα του. Ένα άλλο μειονέκτημα επίσης είναι ότι καταναλώνουν υπολογιστική ισχύ για τον έλεγχο της δικτυακής κίνησης, επιβαρύνοντας τον υπολογιστή με επιπρόσθετο κόστος επεξεργασίας πληροφορίας. Έτσι κατέστη επιτακτική η ανάγκη δημιουργίας ενός αποκεντρωμένου συστήματος που θα μπορούσε να πραγματοποιήσει ανάλυση κίνησης και ανίχνευση παρείσφρησης λαμβάνοντας υπόψη την συνολική εικόνα του δικτύου των υπολογιστών, αλλά και κάθε ενός υπολογιστή ξεχωριστά, χωρίς ωστόσο να τους επιβαρύνει με επιπρόσθετο υπολογιστικό κόστος επεξεργασίας. Η δημιουργία ενός τέτοιου συστήματος προϋποθέτει την μεταβίβαση της δικτυακής κίνησης σε μια τρίτη οντότητα, εκτός του πληροφοριακού συστήματος, που θα μπορέσει να έχει το απαραίτητο εύρος ζώνης να λαμβάνει αυτή τη κίνηση, αλλά και την απαραίτητη υπολογιστική ισχύ να επεξεργαστεί όλη τη πληροφορία που λαμβάνει. Για την αντιμετώπιση του πρώτου προβλήματος μελετήσαμε τρόπους με τους οποίους θα μπορούσαμε να μειώσουμε την πληροφορία που χρειάζεται να μεταβιβαστεί, για την ανάλυση κίνησης, σε επίπεδα τέτοια που το εύρος ζώνης του συστήματος που κάνει την ανάλυση, να μην παίζει τόσο σημαντικό ρόλο. Αντιληφτήκαμε ότι η ανίχνευση των περισσότερων επιθέσεων μπορεί να γίνει πολύ εύκολα λαμβάνοντας πολύ μικρή ποσότητα πληροφορίας από κάθε πακέτο, και πιο συγκεκριμένα απομονώνοντας μόνο κάποιες συγκεκριμένες κεφαλίδες του. Αυτό συμβαίνει διότι οι περισσότερες επιθέσεις εκμεταλλεύονται γενικά χαρακτηριστικά και αδυναμίες ενός συγκεκριμένου πρωτοκόλλου, χωρίς να δίνουν ιδιαίτερη σημασία στο ωφέλιμο φορτίο των πακέτων (που περιλαμβάνει την διακινούμενη πληροφορία). 18 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

18 Η λύση στο δεύτερο πρόβλημα μας, δόθηκε από τον χώρο της κατανεμημένης επεξεργασίας δεδομένων. Ένα σύστημα που κάνει ανάλυση κίνησης για ανίχνευση εισβολής, χρειάζεται πολύ μεγάλη επεξεργαστική ισχύ ώστε να επεξεργαστεί σε πραγματικό χρόνο έναν τόσο μεγάλο όγκο ροής δεδομένων (ακόμα και στην περίπτωση που λαμβάνεται τόσο μικρή πληροφορία όσο κάποιες κεφαλίδες πακέτων) και να μπορέσει να ανιχνεύσει και να αποτρέψει μια πιθανή επίθεση. Το Storm ήταν η καταλληλότερη επιλογή για την υλοποίηση του συστήματος Hurricane. Το υπόλοιπο της εργασίας δομείται σε κεφάλαια ως εξής: Στο Κεφάλαιο 2 μελετάμε πρωτόκολλα που είναι ευάλωτα σε διάφορα είδη επιθέσεων. Στο Κεφάλαιο 3 μελετάμε τις επιθέσεις που μπορεί να εξαπολύσει ένας επιτιθέμενος εκμεταλλευόμενος τις αδυναμίες των πρωτοκόλλων που αναλύθηκαν στο Κεφάλαιο 2. Στο Κεφάλαιο 4 μελετάμε τα εργαλεία κατανεμημένης επεξεργασίας δεδομένων που χρησιμοποιήθηκαν στην υλοποίηση του Hurricane. Στο Κεφάλαιο 5 παρουσιάζουμε το Hurricane, ένα σύστημα για την κατανεμημένη ανάλυση της δικτυακής κίνησης. Στο Κεφάλαιο 6 παρουσιάζουμε τα πειραματικά αποτελέσματα της ανίχνευσης των επιθέσεων που πραγματοποιήθηκαν απέναντι σε υπολογιστές που χρησιμοποιούσαν το Hurricane. Στο Παράρτημα I παρουσιάζονται αλφαβητικά οι βιβλιογραφικές αναφορές Στο Παράρτημα IΙ παρουσιάζονται τα ακρωνύμια τα οποία χρησιμοποιούνται σε αυτή την εργασία για την διευκόλυνση του αναγνώστη. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 19

19 ΚΕΦΑΛΑΙΟ 2: Π ΡΩΤΟΚΟΛΛΑ Δ ΙΑΔΙΚΤΥΟΥ 20 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

20 ΠΡΩΤΟΚΟΛΛΑ ΔΙΑΔΙΚΤΥΟΥ Στο κεφάλαιο αυτό θα μελετήσουμε διάφορα δικτυακά πρωτόκολλα που παρουσιάζουν κάποιες συγκεκριμένες αδυναμίες τις οποίες εκμεταλλεύονται οι επιτιθέμενοι για να εξαπολύσουν κάποια επίθεση σε ένα πληροφοριακό σύστημα. Τα πρωτόκολλα διαδικτύου που θα μας απασχολήσουν στις επόμενες ενότητες αλλά και τις επιθέσεις που θα αναλυθούν στην συνέχεια, είναι τα παρακάτω: i) ARP ii) ICMP iii) TCP iv) HTTP 2.1 ARP (ADDRESS RESOLUTION PROTOCOL) Το πρωτόκολλο επίλυσης διευθύνσεων ARP (Address Resolution Protocol) [12] [13] χρησιμοποιείται για να βρεθεί η διεύθυνση επιπέδου συνδέσμου ενός υπολογιστή, με βάση την διεύθυνση του επιπέδου δικτύου του. Αυτό επιτυγχάνεται μέσω της αντιστοίχισης της MAC (Media Access Control) διεύθυνσης του υλικού με την IP διεύθυνση του υπολογιστή. Κάθε υπολογιστής που είναι συνδεμένος σε ένα δίκτυο κρατάει έναν κατάλογο ζευγών του τύπου Διεύθυνση MAC - Διεύθυνση IP (ARP table). Όταν δεν υπάρχει επικοινωνία για ένα συγκεκριμένο διάστημα με έναν υπολογιστή που βρίσκεται στον κατάλογο αυτό, το ζεύγος που του αντιστοιχεί διαγράφεται από τον κατάλογο. Τα πεδία ενός ARP πακέτου είναι τα ακόλουθα: Τύπος υλικού: Δηλώνει τον τύπο του πρωτοκόλλου δικτύου (π.χ. 1 για το Ethernet) Τύπος πρωτόκολλου: Προσδιορίζει το πρωτόκολλο (π.χ. 0x0800 για το IPv4) Μέγεθος τύπου υλικού: Προσδιορίζει το μήκος σε bytes μιας διεύθυνσης (π.χ. για Ethernet διευθύνσεις το μήκος είναι 6) Μέγεθος τύπου πρωτόκολλου: Προσδιορίζει το μήκος σε bytes των διευθύνσεων του ανώτερου πρωτοκόλλου (π.χ. 4 για διευθύνσεις IPv4) Ενέργεια: Καθορίζει την ενέργεια που εκτελεί ο αποστολέας η οποία είναι: 1 για αίτημα και 2 για απάντηση Διεύθυνση υλικού αποστολέα Διεύθυνση πρωτοκόλλου αποστολέα Διεύθυνση υλικού παραλήπτη HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 21

21 Διεύθυνση πρωτοκόλλου παραλήπτη Bits Τύπος υλικού Τύπος πρωτόκολλου Μέγεθος τύπου υλικού Μέγεθος τύπου πρωτόκολλου Διεύθυνση υλικού αποστολέα Ενέργεια Διεύθυνση πρωτοκόλλου αποστολέα Διεύθυνση υλικού παραλήπτη Διεύθυνση πρωτοκόλλου παραλήπτη Πίνακας 1: Δομή ARP πακέτου Έστω ότι θέλουμε να βρούμε την MAC διεύθυνση ενός υπολογιστή με βάση την IP διεύθυνση του. Για να εκκινήσει το πρωτόκολλο αποστέλλεται αρχικά ένα ARP request μήνυμα-αίτημα, το οποίο λαμβάνεται από τους υπολογιστές του δικτύου. Όταν παραληφθεί ένα τέτοιο αίτημα από κάποιον υπολογιστή τότε: i) Εάν στον κατάλογο του δεν περιλαμβάνεται η αντιστοίχιση MAC αποστολέα - IP αποστολέα, τότε την προσθέτει στον κατάλογο αυτό, ii) Εάν στον κατάλογο του υπάρχει ζεύγος με διεύθυνση IP αυτή του παραλήπτη, αποστέλλει πίσω την αντίστοιχη MAC του παραλήπτη, iii) Εάν η διεύθυνση IP παραλήπτη αναφέρεται σε μια από τις διευθύνσεις IP του υπολογιστή που έλαβε το μήνυμα, τότε αυτός απαντάει την MAC διεύθυνση του iv) Σε κάθε άλλη περίπτωση το πακέτο απορρίπτεται. 2.2 ICMP (INTERNET CONTROL MESSAGE PROTOCOL) Το πρωτόκολλο ICMP [12] [14] είναι ένα από τα βασικότερα πρωτόκολλα του διαδικτύου και χρησιμοποιείται ευρέως στην αποστολή/λήψη μηνυμάτων διαγνωστικού χαρακτήρα (για παράδειγμα εάν κάποιος υπολογιστής βρίσκεται στο δίκτυο, εάν κάποια υπηρεσία είναι διαθέσιμη κτλ). Το πρωτόκολλο χρησιμοποιεί την αποστολή ενός αιτήματος (ICMP Echo) σε έναν υπολογιστή και αναμονή για την λήψη απάντησης από αυτόν (ICMP Reply). Η πιο σημαντική λειτουργία του ICMP είναι η αποστολή μηνυμάτων που αφορούν λάθη σε διαδικασίες σχετιζόμενες με το IP πρωτόκολλο και κατ επέκταση ενημέρωση του αποστολέα ενός πακέτου για 22 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

22 κάποιο πρόβλημα που προέκυψε κατά την μετάδοση του. Τα ICMP πακέτα τυγχάνουν ιδιαίτερης μεταχείρισης σε αντίθεση με τον τρόπο επεξεργασίας άλλων υπο-πρωτοκόλλων του IP και αυτό γιατί πολλές φορές είναι απαραίτητο να διαβαστεί και το περιεχόμενο των δεδομένων του ICMP πακέτου ώστε να καθοριστεί ο τύπος του μηνύματος λάθους που θα αποσταλεί στην εφαρμογή που παρήγαγε το IP πακέτο. Οι κεφαλίδες του ICMP ξεκινούν μετά την IPv4 κεφαλίδα ενός πακέτου και αναγνωρίζεται από τον αριθμό πρωτοκόλλου 1. Τα πεδία ενός ICMP πακέτου είναι τα ακόλουθα: Τύπος (Type): Πεδίο μήκους 8 bits που καθορίζει τον τύπο του μηνύματος. Κωδικός (Code): Πεδίο μήκους 8 bits που δηλώνει τον δευτερεύοντα τύπο του μηνύματος. Άθροισμα ελέγχου (Checksum): Πεδίο μήκους 16 bits που χρησιμοποιείται για τον έλεγχο των μεταδιδόμενων δεδομένων. Bits Τύπος Κωδικός Άθροισμα ελέγχου Υπόλοιπο κεφαλίδας (μεταβλητό) Πίνακας 2: Δομή ICMP πακέτου Οι τύποι ICMP πακέτων που θα μας απασχολήσουν, στις επιθέσεις που θα αναλυθούν στην συνέχεια είναι οι: i) 0 - Echo Reply ii) 3 - Destination Unreachable iii) 8 - Echo Request. 2.3 TCP (TRANSMISSION CONTROL PROTOCOL) Το Πρωτόκολλο Ελέγχου Μετάδοσης ή TCP (Transmission Control Protocol) [15] [16] [17] είναι το αξιόπιστο συνδεσμικό πρωτόκολλο μεταφοράς του επιπέδου μεταφοράς του διαδικτύου. Παρέχει μια από άκρο σε άκρο σύνδεση που εγγυάται την αξιόπιστη ροή δεδομένων μέσα στο αναξιόπιστο διαδίκτυο, παρέχοντας διάφορους μηχανισμούς διασφάλισης κατά την διάρκεια της ανταλλαγής δεδομένων (σειρά πακέτων πληροφορίας, έλεγχος λαθών κτλ). Το TCP είναι σχεδιασμένο για να προσαρμόζεται δυναμικά στις ιδιότητες ενός διαδικτύου και είναι ιδιαίτερα ανθεκτικό σε πολλά είδη αστοχιών. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 23

23 Τα πεδία ενός TCP πακέτου είναι τα ακόλουθα: Θύρα προέλευσης (Source Port): Πεδίο μήκους 16 bits που περιέχει τον αριθμό της θύρας που διατηρεί την σύνδεση στην πλευρά του αποστολέα. Θύρα προορισμού (Destination Port): Πεδίο μήκους 16 bits που περιέχει τον αριθμό της θύρας που διατηρεί την σύνδεση στην πλευρά του παραλήπτη. Αριθμός ακολουθίας (Sequence Number): Πεδίο μήκους 32 bits που χαρακτηρίζει το τμήμα των δεδομένων που μεταφέρεται με το πακέτο. Αριθμός επιβεβαίωσης λήψης (Acknowledgement Number): Πεδίο μήκους 32 bits που χαρακτηρίζει το επόμενο τμήμα δεδομένων που προετοιμάζεται να λάβει ο αποστολέας του μηνύματος. Μήκος Δεδομένων (Data Offset): Πεδίο μήκους 4 bits που περιέχει το μήκος της επικεφαλίδας TCP. Δεσμευτικό (Reserved): Πεδίο μήκους 6 bits το οποίο προορίζεται για μελλοντική χρήση. Ψηφία Ελέγχου (Control Bits): Πεδίο μήκους 6 bits που αναφέρεται σε μια ακολουθία ψηφίων ελέγχου. Το πεδίο περιλαμβάνει τα παρακάτω ψηφία: URG (URGent): Ενεργοποιεί την χρήση του πεδίου Επείγοντος Δείκτη. ACK (ACKnowledgement): Χρησιμοποιείται για να δείξει ότι ο Αριθμός επιβεβαίωσης λήψης είναι έγκυρος. PSH (PUSH): Χρησιμοποιείται για να δείξει ότι τα δεδομένα του μηνύματος πρέπει να προωθηθούν άμεσα. RST (RESET): Υποδεικνύει επανάληψη αρχικοποίησης της σύνδεσης. SYN (SYNchronize): Χρησιμοποιείται για την εγκαθίδρυση συνδέσεων. FIN (FINISH): Δηλώνει την ολοκλήρωση της αποστολής δεδομένων. Παράθυρο (Window): Πεδίο μήκους 16 bits που περιέχει τον αριθμό των bytes που μπορεί να δεχθεί ο αποστολέας του μηνύματος πριν την λήψη του μηνύματος επιβεβαίωσης για αυτά. Άθροισμα ελέγχου (Checksum): Πεδίο μήκους 16 bits που χρησιμοποιείται για τον έλεγχο των μεταδιδόμενων δεδομένων. Επείγων δείκτης (Urgent Pointer): Πεδίο μήκους 16 bits που δηλώνει την θέση των δεδομένων που θα πρέπει να επεξεργαστούν πριν από όλα τα άλλα. 24 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

24 Επιλογές (Options): Πεδίο μη σταθερού μήκους που χρησιμοποιείται για τη δήλωση επιπρόσθετων επιλογών. Bits Θύρα προέλευσης Θύρα προορισμού Αριθμός ακολουθίας Αριθμός επιβεβαίωσης λήψης Μήκος Δεσμευτικό Ψηφία Παράθυρο δεδομένων ελέγχου Άθροισμα ελέγχου Επείγον Δείκτης Επιλογές (προαιρετικό) Δεδομένα (μεταβλητό) Πίνακας 3: Δομή TCP πακέτου Για να ξεκινήσει μια εφαρμογή να στέλνει δεδομένα σε μια άλλη πρέπει πρώτα να γίνει η λεγόμενη τριμερής χειραψία μεταξύ τους (3 way handshake), έτσι ώστε να εγκαθιδρυθεί μια σύνδεση. Αρχικά η πρώτη διεργασία αποστέλλει ένα πακέτο - αίτημα σύνδεσης SYN (SYNchronize), με έναν αρχικό αριθμό ακολουθίας x, στην δεύτερη διεργασία. Στη συνέχεια, μόλις η δεύτερη διεργασία το λάβει, αποστέλλει ένα πακέτο SYN-ACK (SYNchronize - ACKnowledgement) ακολουθίας y, επιβεβαιώνοντας την ορθή λήψη του πακέτου ακολουθίας x. Τέλος η πρώτη διεργασία επιβεβαιώνει εκ νέου την ορθή λήψη του πακέτου SYN-ACK ακολουθίας y, αποστέλλοντας ένα πακέτο ACK (ACKnowledgement). Από αυτό το σημείο οι διεργασίες είναι έτοιμες να αρχίσουν να ανταλλάσουν δεδομένα. 2.4 HTTP (HYPERTEXT TRANSFER PROTOCOL) Το πρωτόκολλο HTTP [12] [18] βρίσκεται στην στοίβα πρωτοκόλλων του επιπέδου εφαρμογής και χρησιμοποιείται για την ανταλλαγή ή την μεταφορά υπερκειμένου στο διαδίκτυο. Η εφαρμογή του προϋποθέτει αξιόπιστο πρωτόκολλο μεταφοράς, και ως εκ τούτου το TCP είναι αυτό που χρησιμοποιείται κατά κόρον. Το HTTP ακολουθεί το μοντέλο πελάτη - εξυπηρέτη (client - server) όπου τις HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 25

25 περισσότερες περιπτώσεις ο πελάτης είναι ένας περιηγητής (browser) και ο εξυπηρέτης μια υπηρεσία που τρέχει σε έναν υπολογιστή. Αρχικά ο πελάτης στέλνει ένα μήνυμα - αίτημα HTTP request στον εξυπηρέτη, ο οποίος με την σειρά του απαντάει με ένα μήνυμα HTTP response, το οποίο περιλαμβάνει πληροφορίες κατάστασης του αιτήματος αλλά και μέρος του περιεχομένου που έχει αιτηθεί ο αποστολέας. Ο εξυπηρέτης παρέχει πόρους όπως αρχεία HTML (HyperText Markup Language) ή άλλου τύπου δεδομένων, ή εκτελεί άλλου είδους ενέργειες οι οποίες έχουν καθοριστεί από τον πελάτη. Οι πόροι αντιστοιχίζονται με μοναδικούς υπερσυνδέσμους προσπέλασης (URL). To πρωτόκολλο HTTP περιλαμβάνει μεθόδους που καθορίζουν το είδος της ενέργειας που απαιτεί ο πελάτης να εφαρμοστεί στον συγκεκριμένο πόρο. Στην πρώτη έκδοση του πρωτοκόλλου HTTP/1.0 ορίστηκαν οι μέθοδοι GET, POST και HEAD ενώ στην δεύτερη έκδοση HTTP/1.1 ορίστηκαν επιπλέον οι OPTIONS, PUT, DELETE, TRACE και CONNECT. GET: Μέθοδος που κάνει αίτημα ανάκτηση δεδομένων από τον εξυπηρέτη. POST: Μέθοδος που αποστέλλει δεδομένα στον εξυπηρέτη. HEAD: Μέθοδος που χρησιμοποιείται για την ανάκτηση πληροφοριών μεταδεδομένων από τις κεφαλίδες των απαντήσεων. PUT: Μέθοδος που χρησιμοποιείται στην αντιστοίχιση πόρου υπερσυνδέσμου. DELETE: Μέθοδος που χρησιμοποιείται στην διαγραφή πόρου. TRACE: Μέθοδος που τυπώνει το εισερχόμενο αίτημα. OPTIONS: Επιστρέφει τις μεθόδους που υποστηρίζονται από τον εξυπηρέτη. CONNECT: Μέθοδος που μετατρέπει το αίτημα σύνδεσης σε TCP τούνελ και χρησιμοποιείται στην κρυπτογράφηση των δεδομένων με SSL (Secure Sockets Layer) πάνω από το HTTP πρωτόκολλο (HTTPS). PATCH: Μέθοδος που χρησιμοποιείται στην τροποποίηση ενός πόρου. 26 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

26 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 27

27 ΚΕΦΑΛΑΙΟ 3: Ε ΠΙΘΕΣΕΙΣ 28 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

28 ΕΠΙΘΕΣΕΙΣ 3.1 ΕΠΙΘΕΣΕΙΣ ΑΡΝΗΣΗΣ ΠΑΡΟΧΗΣ ΥΠΗΡΕΣΙΑΣ (DENIAL OF SERVICE ATTACKS) Οι επιθέσεις τύπου άρνησης παροχής υπηρεσίας [19] [20] [21] [22] είναι αναμφίβολα οι πιο συνηθισμένες αλλά και πιο επικίνδυνες επιθέσεις που εξαπολύονται στα δίκτυα των υπολογιστών στις μέρες μας και ο λόγος είναι κυρίως η ευκολία με την οποία μπορεί ένας επιτιθέμενος (ή μια ομάδα επιτιθέμενων στις περισσότερες περιπτώσεις) να εφαρμόσει μια τέτοια επίθεση με πολλούς και διάφορους τρόπους. Από την άλλη μεριά η ανίχνευση και η προστασία των πόρων μας από αυτού του είδους τις επιθέσεις είναι ιδιαίτερα δύσκολη διαδικασία και πολλές φορές, ανάλογα με τα μέσα που διαθέτει ένας επιτιθέμενος, ανέφικτη ή ασύμφορη. Παρόλη την εκτενή έρευνα που έχει γίνει στον χώρο των δικτύων υπολογιστών τα τελευταία χρόνια για την αντιμετώπιση τους, οι επιθέσεις αυτού του τύπου εξακολουθούν να υφίστανται και να προκαλούν μεγάλες οικονομικές ζημιές στους οργανισμούς, αφού οι επιτιθέμενοι μπορούν και προσαρμόζονται και εφευρίσκουν συνεχώς νέους τρόπους παράκαμψης των αντίμετρων ασφάλειας που λαμβάνουμε. Ως εκ τούτου καθίσταται επιτακτική ανάγκη η ανακάλυψη αποδοτικών τρόπων ανίχνευσης και αντιμετώπισης των επιθέσεων αυτών με χαμηλό κόστος υλοποίησης. Σε μια επίθεση άρνησης παροχής υπηρεσίας ο επιτιθέμενος έχει ως στόχο να αποτρέψει την χρήση μιας υπηρεσίας ή ενός πόρου από τους νόμιμους χρήστες τους. Ο βασικότερος τρόπος με τον οποίο εξαπολύεται μια τέτοια επίθεση είναι κατακλύζοντας τον υπολογιστή θύμα με έναν μεγάλο αριθμό αιτημάτων, σε βαθμό τέτοιο, που από ένα σημείο και έπειτα είναι αδύνατον να ανταποκριθεί σε αυτά και καταρρέει. Μια τέτοια επίθεση μπορεί να έχει είτε μια μόνο πηγή, δηλαδή ένας υπολογιστής να εξαπολύσει την επίθεση, είτε περισσότερες που συνεργάζονται μεταξύ τους για να πλημμυρίσουν τον υπολογιστή θύμα με αιτήματα, όπου σε αυτήν την περίπτωση μιλάμε για κατανεμημένη επίθεση άρνησης παροχής υπηρεσίας (DDOS, Distributed Denial Of Service attack). Στο διαδίκτυο μπορεί κανείς να βρει διαθέσιμα μια πληθώρα από προγράμματα που αυτοματοποιούν την διαδικασία μιας HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 29

29 τέτοιας επίθεσης που μπορούν να α χρησιμοποιηθούν ακόμα και χρήστες. από αρχάριους Παρακάτω θα μελετήσουμε τις πιο συνηθισμένες επιθέσεις αυτού του τύπου, οι οποίες χωρίζονται σε δύο μεγάλες κατηγορίες: Τις άμεσες επιθέσεις (Direct Attacks), όπου ο επιτιθέμενος αποστέλλει ένανν μεγάλο αριθμό α πακέτων απευθείας στο θύμα, με σκοπό να το κατακλύσει από αιτήματα (πραγματοποιούνται συνήθως από ομάδα μολυσμένων υπολογιστώ ών, zombies) και τις έμμεσες (Reflector Attacks) όπου ο επιτιθέμενος στέλνει σε κάποιους υπολογιστές πακέτα - αιτήματα που απαιτούν κάποια απάντηση, έχοντας χρησιμοποιήσει IP διεύθυνση πηγής, την διεύθυνση του θύματος,, με σκοπό αυτό να κατακλυστεί από απαντήσειςς σε ερωτήματα που δεν έθεσε ποτέ. Εικόνα 1: Παραδείγματα άμεσης [23] και έμμεσης επίθεσης [24] TCP SYN Flood Η επίθεση TCP SYN Floodd [25] [26] [27] είναι η πιο γνωστή επίθεση πλημμύρας και εξαπολύεται αποστέλλοντας στον υπολογιστή θύμα ένα μεγάλο αριθμό πακέτων που περιέχουν αιτήματα σύνδεσης (SYNN packets). Ο υπολογιστής θύμα, ακολουθώντας το πρωτόκολλο της τριμερούς χειραψίας, απαντάει με SYN- την ACK πακέτο για κάθε αίτημα και αναμένει απάντηση ACKK για να εγκαθιδρύσειι σύνδεση. Ο επιτιθέμενος από την άλλη μεριά, είτε δεν αποστέλλει απάντηση ACK, είτεε έχει χρησιμοποιήσει ψευδή διεύθυνση πηγής (source IP) στο αίτημα σύνδεσης. Ο 30 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

30 υπολογιστής θύμα θα περιμένει λίγη ώρα για την απάντηση ( ακόμα και μια απλή συμφόρηση στο δίκτυο θα μπορούσε να είχε προκαλέσει την απώλεια της απάντησης) και επανεκπέμπει ξανά SYN-ACK πακέτο (την ώρα που ο επιτιθέμενος συνεχίζει να αποστέλλει ψευδή αιτήματα σύνδεσης) στην προσπάθεια του να ολοκληρώσει την χειραψία. Το αποτέλεσμα είναι να συσσωρευτούν μισό-ανοιχτές συνδέσεις στον υπολογιστή θύμα, ώσπου τελικώς να καταναλωθούν γρήγορα όλοι οι πόροι του θύματος για τις επικείμενες συνδέσεις, αποτρέποντας με αυτόν τον τρόπο νέες νόμιμες συνδέσεις να εγκαθιδρυθούν, οδηγώντας σε άρνηση παροχής υπηρεσίας. Παραλλάσσοντας λίγο την επίθεση μπορούμε να εφαρμόσουμε έμμεσου τύπου επίθεση στέλνοντας SYN αιτήματα σε έναν μεγάλο αριθμό υπολογιστών, χρησιμοποιώντας πλαστή (spoofed) διεύθυνση IP αυτή του θύματος, με αποτέλεσμα ο υπολογιστής θύμα να κατακλυστεί με SYN-ACK απαντήσεις από αιτήματα που δεν πραγματοποίησε ποτέ ICMP Flood Η επίθεση ICMP Flood [19] [22] ή αλλιώς Ping Flood είναι μια από τις πιο απλές επιθέσεις που μπορούν να εφαρμοστούν από έναν επιτιθέμενο, αλλά παράλληλα και η λιγότερο επικίνδυνη. Η λογική της είναι παρόμοια με την επίθεση SYN Flood αφού ως στόχο έχει να κατακλύσει τον υπολογιστή θύμα με αιτήματα (ICMP Echo Requests) που θα καταναλώσουν την εισερχόμενη κίνηση του, αλλά και την εξερχόμενη, στην προσπάθειά του να απαντάει σε αυτά τα αιτήματα (ICMP Reply). Η επίθεση αυτή είναι επιτυχής στην περίπτωση που ο επιτιθέμενος έχει μεγαλύτερο εύρος ζώνης από το θύμα και έχει οδηγεί στην ολοκληρωτική κατανάλωση των κύκλων CPU του θύματος, με αποτέλεσμα να μην μπορεί να ανταποκριθεί σε άλλα αιτήματα HTTP GET/POST Flood Οι επιθέσεις τύπου HTTP Flood [22] είναι επιθέσεις άρνησης παροχής υπηρεσίας επιπέδου εφαρμογής, που ως στόχο έχουν την προσβολή ιστοσελίδων ή υπηρεσιών του διαδικτύου. Οι επιθέσεις αυτές έχουν αυξηθεί δραματικά τα τελευταία χρόνια λόγω της εκρηκτικής εξάπλωσης των Web Services σε παγκόσμια κλίμακα. Υπάρχουν δυο τρόποι λειτουργίας των επιθέσεων αυτών και διαχωρίζουν τις επιθέσεις αυτές σε δύο επιμέρους κατηγορίες: HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 31

31 HTTP GET Flood Σε μια επίθεση HTTP GET Flood ο επιτιθέμενος χρησιμοποιεί έναν μεγάλο αριθμό μολυσμένων υπολογιστών, οι οποίοι αποστέλλουν συνεχώς στον εξυπηρέτη πολλαπλά αιτήματα GET. Αυτά τα αιτήματα ζητούν από τον εξυπηρέτη την λήψη αρχείων μεγάλου μεγέθους, όπως εικόνες ή βίντεο, και επιδιώκουν να κρατήσουν τον εξυπηρέτη τόσο απασχολημένο, στην επεξεργασία και αποστολή των αρχείων, που δεν μπορεί να ανταποκριθεί σε νέα έγκυρα αιτήματα, οδηγώντας σε άρνηση παροχής υπηρεσίας. HTTP POST Flood Σε μια επίθεση HTTP POST Flood ο επιτιθέμενος αναζητεί μέσα σε ιστοσελίδες φόρμες αποστολής δεδομένων και χρησιμοποιώντας επίσης μεγάλο αριθμό μολυσμένων υπολογιστών αποστέλλει συνεχώς δεδομένα στον εξυπηρέτη αποτρέποντας νόμιμους χρήστες να αποστείλουν τα δικά τους δεδομένα. 3.2 ΑΝΙΧΝΕΥΣΗ ΑΝΟΙΧΤΩΝ ΔΙΚΤΥΑΚΩΝ ΘΥΡΩΝ (PORT SCAN) Η ανίχνευση ανοιχτών δικτυακών θυρών (Port Scanning) [28] [29] αποτελεί ίσως την δημοφιλέστερη μέθοδο των επιτιθέμενων στην προσπάθειά τους να ανακαλύψουν ευάλωτες υπηρεσίες και να εισβάλουν στο σύστημα μας. Είναι ένα από τα βασικότερα εργαλεία που χρησιμοποιούν πριν εξαπολύσουν κάποια επίθεση και αυτό διότι παρέχει χρήσιμες πληροφορίες αναφορικά με τις υπηρεσίες που προσφέρει ένας ή περισσότεροι εξυπηρέτητες, σε ποια θύρα προσφέρεται η κάθε υπηρεσία, ποιοι είναι οι κάτοχοι ή οι νόμιμοι χρήστες των υπηρεσιών αυτών, εάν μπορεί να επιτευχθεί κάποια απομακρυσμένη σύνδεση με ή χωρίς αυθεντικοποίηση κτλ. Η ανίχνευση ανοιχτών θυρών μπορεί εφαρμοστεί με δύο διαφορετικούς τρόπους αναλόγως με τον σκοπό που έχει ένας επιτιθέμενος. Όταν ενδιαφέρεται να ανακαλύψει ποιες υπηρεσίες τρέχουν σε έναν συγκεκριμένο εξυπηρέτη τότε εφαρμόζει την κλασσική μέθοδο ανίχνευσης θυρών (port scan) ελέγχοντας ένα σύνολο θυρών, συνήθως τις γνωστές θύρες (well know ports, ), στον υπολογιστή στόχο. Όταν από την άλλη πλευρά γνωρίζει ότι κάποια υπηρεσία έχει μια συγκεκριμένη αδυναμία, την οποία θέλει να εκμεταλλευτεί για να εισβάλει στο σύστημα, ενδιαφέρεται να μάθει ποιοι υπολογιστές τρέχουν την συγκεκριμένη υπηρεσία, οπότε ελέγχει, στο σύνολο των 32 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

32 υπολογιστών προς εξέταση, την θύρα στην οποία συνήθως προσφέρεται η υπηρεσία αυτή (port sweep). Υπάρχουν πάρα πολλές διαθέσιμες τεχνικές για την ανίχνευση ανοιχτών δικτυακών θυρών, κάθε μια από τις οποίες κάνει χρήση των ιδιαίτερων χαρακτηριστικών ενός πρωτοκόλλου, με σκοπό να αποκαλύψει εάν μια θύρα χρησιμοποιείται ή όχι. Αυτό συμβαίνει αποστέλλοντας ένα πακέτο με συγκεκριμένη δομή στη θύρα αυτή και αναμένοντας από τον εξυπηρέτη μια απάντηση η οποία οδηγεί σε συμπέρασμα ως προς την κατάσταση της θύρας. Η τεχνικές αυτές είναι ιδιαίτερα χρήσιμες όχι μόνο για τους επιτιθέμενους αλλά και για τους μηχανικούς ασφάλειας, οι οποίοι μπορούν να ανακαλύψουν αδυναμίες του συστήματος πριν πραγματοποιηθεί κάποια επίθεση σε αυτό. Παρακάτω αναλύονται οι κυριότερες τεχνικές ανίχνευσης ανοιχτών δικτυακών θυρών TCP Stealth Scan Η τεχνική Stealth Scan είναι ίσως η πιο δημοφιλής τεχνική ανίχνευσης ανοιχτών δικτυακών θυρών για πολλούς λόγους. Πρώτα από όλα μπορεί να εφαρμοστεί με μεγάλη ταχύτητα, ανιχνεύοντας την κατάσταση ενός μεγάλου αριθμού θυρών, ενός ή περισσότερων υπολογιστών ταυτόχρονα, δεν είναι εύκολα ανιχνεύσιμη, όπως επίσης μπορεί και προσπερνά με μεγάλη ευκολία τα περισσότερα αναχώματα ασφαλείας (firewall). Ο τρόπος λειτουργίας της έχει ως εξής: Αποστέλλουμε ένα TCP SYN πακέτο στην θύρα του εξυπηρέτη που μας ενδιαφέρει και αναμένουμε για κάποια απάντηση στο αίτημα. Εάν ληφθεί ένα SYN-ACK πακέτο ως απάντηση τότε αυτόματα γνωρίζουμε ότι η θύρα αυτή είναι ανοιχτή. Σε αντίθετη περίπτωση λαμβάνουμε ένα RST πακέτο που υποδηλώνει πως η θύρα είναι κλειστή. Ο λόγος για τον οποίο η συγκεκριμένη τεχνική είναι δύσκολα ανιχνεύσιμη έγκειται στο γεγονός του ότι, εάν ληφθεί ένα SYN-ACK πακέτο, ο επιτιθέμενος δεν απαντάει ποτέ με ACK πακέτο για να ολοκληρωθεί η τριμερής χειραψία, με αποτέλεσμα να παραμένουν μισο-ανοιχτές συνδέσεις στον εξυπηρέτη TCP Connect Scan Μια παραλλαγή της προηγούμενης τεχνικής είναι η Connect Scan, όπου ο επιτιθέμενος ακολουθεί ακριβώς τα ίδια βήματα, με την διαφορά ότι σε αυτήν την περίπτωση αποστέλλει τελικώς ACK πακέτο και ολοκληρώνει την τριμερή χειραψία HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 33

33 με τον εξυπηρέτη, ανοίγοντας μια σύνδεση για κάθε θύρα που είναι διαθέσιμη. Η συγκεκριμένη τεχνική είναι πολύ πιο αργή σε σχέση με την Stealth Scan, χρειάζεται να γίνει ανταλλαγή πολύ περισσότερων πακέτων για να ληφθεί εν τέλει η ίδια πληροφορία και τέλος είναι εύκολα ανιχνεύσιμη, αφού τα περισσότερα συστήματα ανίχνευσης παρείσφρησης καταγράφουν όλες τις εισερχόμενες και εξερχόμενες συνδέσεις που δημιουργούνται σε έναν υπολογιστή TCP NULL Scan Σε αντίθεση με τις δυο προηγούμενες τεχνικές που αναλύθηκαν, οι οποίες έκαναν ορθή χρήση του TCP πρωτοκόλλου προκειμένου να ανιχνεύσουν ανοιχτές θύρες, η τεχνική NULL Scan βασίζεται σε κάποιες ιδιαιτερότητες του πρωτοκόλλου (Σελίδα 65 [17]). Ο επιτιθέμενος δημιουργεί πακέτα που έχουν κανονική δομή, με μοναδικό αριθμό ακολουθίας (Sequence Number) το κάθε ένα, χωρίς όμως να ενεργοποιήσει κάποιο ψηφίο ελέγχου. Εάν η θύρα που ανιχνεύεται είναι κλειστή ο υπολογιστής θύμα απαντάει με ένα RST πακέτο. Εάν η θύρα είναι ανοιχτή τότε θα απορρίψει το πακέτο και δεν θα λάβουμε κάποια απάντηση. Τέλος εάν λάβουμε ICMP unreachable μήνυμα λάθους (τύπος 3, κωδικός 1, 2, 3, 9, 10, ή 13) γνωρίζουμε ότι κάποιο ανάχωμα ασφαλείας φιλτράρει την θύρα TCP FIN Scan Η τεχνική αυτή χρησιμοποιεί παρόμοια λογική με την NULL Scan μόνο που εδώ ενεργοποιείται το ψηφίο ελέγχου FIN στο πακέτο που αποστέλλεται. Η λήψη RST πακέτου σηματοδοτεί κλειστή θύρα, η μη λήψη απάντησης (ως αποτέλεσμα της απόρριψης του πακέτου από τον υπολογιστή θύμα) υποδηλώνει ανοιχτή θύρα, ενώ η λήψη ενός ICMP unreachable μηνύματος λάθους υποδηλώνει παρουσία αναχώματος ασφαλείας. Το μεγάλο πλεονέκτημα αυτής της τεχνικής είναι ότι μπορεί και παραμένει μη ανιχνεύσιμη από τα περισσότερα συστήματα ανίχνευσης παρείσφρησης TCP Xmas Scan Η τεχνική Xmas Scan χρησιμοποιεί την ίδια λογική με τις δύο προηγούμενες τεχνικές, όπως επίσης έχει και τα ίδια αναμενόμενα αποτελέσματα. Η διαφορά εδώ είναι ότι στο πακέτο που αποστέλλεται ως αίτημα στην θύρα που μας ενδιαφέρει, 34 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

34 είναι ενεργοποιημένα τα ψηφία ελέγχου FIN, PSH, URG. Η ονομασία της τεχνικής σχετίζεται με το γεγονός ότι η ενεργοποίηση των ψηφίων αυτών σε ένα πακέτο, το κάνουν να μοιάζει με χριστουγεννιάτικο δέντρο TCP Maimon Scan Η τεχνική Maimon Scan λειτουργεί ακριβώς με τον ίδιο τρόπο, ενεργοποιώντας όμως αυτή τη φορά τα ψηφία ελέγχου FIN και ACK. Ως απάντηση λαμβάνεται πάντοτε ένα RST πακέτο, είτε η θύρα είναι ανοιχτή, είτε είναι κλειστή. Πολλά συστήματα προερχόμενα από το λειτουργικό σύστημα BSD απορρίπτουν το πακέτο αυτό υποδηλώνοντας και σε αυτή την περίπτωση ανοιχτή θύρα TCP ACK Scan Η τεχνική ACK Scan διαφοροποιείται από τις υπόλοιπες τεχνικές από το γεγονός του ότι ποτέ δεν καθορίζει εάν μια θύρα είναι ανοιχτή. Παρόλα αυτά είναι ιδιαίτερα χρήσιμη στην εξαγωγή πληροφοριών αναφορικά με τις πόρτες που φιλτράρει το ανάχωμα ασφαλείας και τους κανόνες που χρησιμοποιεί. Το πακέτο που αποστέλλεται σε αυτή την περίπτωση έχει ενεργοποιημένο το ψηφίο ελέγχου ACK. Όταν γίνεται ανίχνευση θυρών που δεν φιλτράρονται, ο υπολογιστής θύμα απαντά με ένα RST πακέτο. Σε αυτή τη φάση γνωρίζουμε ότι δεν φιλτράρονται από κάποιο ανάχωμα ασφαλείας αλλά δεν ξέρουμε εάν είναι ανοιχτές ή κλειστές. Θύρες που δεν απαντούν ή στέλνουν ICMP error μήνυμα λάθους (τύπος 3, κωδικός 1, 2, 3, 9, 10, ή 13) χαρακτηρίζονται ως φιλτραρισμένες. 3.3 ARP SPOOF Όπως αναλύθηκε και σε προηγούμενο κεφάλαιο, το πρωτόκολλο επίλυσης διευθύνσεων ARP (Address Resolution Protocol) χρησιμοποιείται στην εξεύρεση της MAC διεύθυνσης επιπέδου συνδέσμου ενός υπολογιστή, με βάση την διεύθυνση IP του επιπέδου δικτύου. Η βασικότερη αδυναμία του πρωτοκόλλου αυτού είναι η απουσία μηχανισμών αυθεντικοποίησης, με αποτέλεσμα να είναι ευάλωτο σε επιθέσεις τύπου πλαστοπροσωπίας (Spoofing) [30] [31]. Κατά την επίθεση ARP Spoof ο επιτιθέμενος αποστέλλει ψεύτικες ARP απαντήσεις (αντιστοιχίες MAC διευθύνσεων με IP διευθύνσεις), χωρίς απαραίτητα να έχει δημιουργηθεί κάποιο αίτημα για αυτές, προσποιούμενος έναν υπολογιστή του δικτύου, με σκοπό να HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 35

35 ξεγελάσει τους υπόλοιπους υπολογιστές και η κίνηση που στέλνουν να κατευθύνεται στον επιτιθέμενο αντί για τον επιθυμητό υπολογιστή. Αυτό συμβαίνει διότι, μόλις ένας υπολογιστής λάβει μια τέτοια αντιστοιχία, την καταχωρεί τυφλά στον κατάλογο του, αντικαθιστώντας την αντίστοιχη εγγραφή στην περίπτωση που υπάρχει. Έτσι όταν θελήσουν οι υπολογιστές του δικτύου να επικοινωνήσουν με έναν υπολογιστήθύμα διαβάζουν ψευδή MAC για αυτόν τον υπολογιστή, την MAC του επιτιθέμενου και αποστέλλουν εκεί τα δεδομένα τους. 3.4 WORM Στην γλώσσα των υπολογιστών με τον όρο σκουλήκι αναφερόμαστε σε ένα κακόβουλο πρόγραμμα που μπορεί και αντιγράφει τον εαυτό του, με σκοπό την διάδοση του στους υπόλοιπους υπολογιστές ενός δικτύου. Ο βασικότεροι τρόποι μετάδοσης του είναι τα μηνύματα ηλεκτρονικού ταχυδρομείου και οι υπηρεσίες απομακρυσμένης σύνδεσης. Σε αντίθεση με έναν ιό, ένα σκουλήκι δεν χρειάζεται να προσκολληθεί σε ένα πρόγραμμα ξενιστή για να μπορέσει να αναπαραχθεί και να εκτελέσει τις εντολές του. Παρόλα αυτά οι φάσεις από τις οποίες περνάει είναι ίδιες: Φάση ύπνωσης: Φάση κατά την οποία το σκουλήκι παραμένει ανενεργό περιμένοντας την κατάλληλη στιγμή για να ξεκινήσει την διάδοση του. Διάδοση: Σε αυτή τη φάση αναζητεί υπολογιστές για να συνδεθεί, να αντιγράψει τον εαυτό του και να εκτελέσει τις κακόβουλες εντολές του. Ενεργοποίηση: Μόλις αντιγράψει τον εαυτό του σε έναν υπολογιστή τότε, είτε ενεργοποιείται αυτόματα, είτε περιμένει να συμβεί ένα γεγονός για να ενεργοποιηθεί και να εκτελέσει τις εντολές του. Εκτέλεση: Η φάση κατά την οποία εκτελούνται οι εντολές του Ένα σκουλήκι μπορεί να προγραμματιστεί με πολλούς διαφορετικούς τρόπους, ανάλογα με τον λόγο για τον οποίο έχει δημιουργηθεί. Βασικός σκοπός είναι η πρόκληση βλάβης σε ένα δίκτυο, καταναλώνοντας το εύρος ζώνης του, ενώ σε πολλές περιπτώσεις λειτουργεί με απώτερο στόχο να εγκαθιδρύσει κερκόπορτες (backdoors) σε ένα σύνολο υπολογιστών (botnets) ώστε αυτοί να περάσουν υπό τον έλεγχο ενός επιτιθέμενου. Ο επιτιθέμενος με αυτόν τον τρόπο έχει υπολογιστική ισχύ ικανή να εξαπολύσει κάποια επίθεση με μεγάλη σφοδρότητα, όπως μια επίθεση άρνησης παροχής υπηρεσίας. 36 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

36 3.5 ΔΕΝΤΡΑ ΕΠΙΘΕΣΕΩΝ Τα δέντρα επιθέσεων [32] αποτελούν ένα από τα πιο χρήσιμα μοντέλα ανάλυσης επικινδυνότητας ενός πληροφοριακού συστήματος και παρουσιάζουν ιδιαίτερα χρήσιμες πληροφορίες αναφορικά με τους διάφορους τρόπους με τους οποίους ένα σύστημα μπορεί να δεχθεί επίθεση. Πιο συγκεκριμένα μπορούν να βοηθήσουν στην ανάλυση των προφίλ των πιθανών επιτιθέμενων ενός συστήματος, των πιθανών επιθέσεων που μπορεί να εξαπολύσει κάθε ομάδα επιτιθέμενων, αλλά και τα ειδικά χαρακτηριστικά των επιθέσεων αυτών, όπως επίσης και στον καθορισμό των δυνατών τρόπων εφαρμογής της κάθε επίθεσης. Το δέντρο επιθέσεων είναι ένα πολύ-επίπεδο διάγραμμα, το οποίο αποτελείται από τον μητρικό κόμβο, τα παιδιά του, τα παιδιά των εσωτερικών κόμβων και τα φύλλα του δέντρου. Η απεικόνιση του δέντρου μπορεί να γίνει είτε από πάνω προς τα κάτω (ο μητρικός κόμβος βρίσκεται στην κορυφή), είτε από αριστερά προς τα δεξιά. Ο μητρικός κόμβος απεικονίζει τον στόχο της επίθεσης, ενώ όλοι οι εσωτερικοί κόμβοι τους τρόπους (ή τον συνδυασμό των τρόπων) με τους οποίους μπορεί να επιτευχθεί ο στόχος του παραπάνω επιπέδου (πατρικός κόμβος). Σε μια τέτοια διαγραμματική απεικόνιση υπάρχουν δύο ειδών κόμβοι: OR κόμβοι οι οποίοι περιγράφουν επιθέσεις που μπορούν να εφαρμοστούν με διάφορους τρόπους (κόμβοι παιδιά) και AND κόμβοι που αποτελούν τον συνδυασμό βημάτων που πρέπει να ακολουθηθούν για να επιτευχθεί ο στόχος τους (κάθε παιδί απεικονίζει ένα βήμα). Ως εκ τούτου, στην περίπτωση της ανάλυσης επικινδυνότητας ο μητρικός κόμβος απεικονίζει την επιτυχή επίθεση στο πληροφοριακό σύστημα, ενώ οι εσωτερικοί κόμβοι τις ομάδες επιθέσεων, με παιδιά τις επιμέρους επιθέσεις (ή τους συνδυασμούς τους). Τέλος κάθε κόμβος μπορεί να περιλαμβάνει ειδικές τιμές για επιμέρους χαρακτηριστικά, έτσι ώστε να γίνεται ο υπολογισμός του επιπέδου επικινδυνότητας κάθε πιθανής επίθεσης, σε συνάρτηση με τις ιδιαιτερότητές της, αλλά και τις συνθήκες κάτω από τις οποίες εξαπολύεται. Από την στιγμή που έχουμε μοντελοποιήσει το δέντρο με τις πιθανές επιθέσεις που μπορεί να δεχθεί το πληροφοριακό μας σύστημα, μπορούμε να αναλύσουμε διάφορα χαρακτηριστικά ασφάλειας, όπως πιθανότητα επίθεσης, κόστος, ευκολία επίθεσης, ρυθμός επιτυχίας κτλ. Η διαδικασία της ανάλυσης περιλαμβάνει αρχικά τον υπολογισμό στα φύλλα του δέντρου μιας τιμής για κάθε χαρακτηριστικό που μας HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 37

37 ενδιαφέρει και τη σύνθεση της τελικής τιμής στον πατέρα τους. Συνεχίζουμε με όλους τους εσωτερικούς κόμβους μέχρι να φτάσουμε στον μητρικό κόμβο, όπου έχουμε πλέον μια συνολική εικόνα για την κατάσταση της ασφάλειας του συστήματος μας. Στο παρακάτω παράδειγμα ο στόχος μας είναι να εξαπολύσουμε μια επιτυχημένη επίθεση στο πληροφοριακό μας σύστημα, το οποίο μπορεί να επιτευχθεί είτε με επιθέσεις που σχετίζονται με άρνηση παροχής υπηρεσίας (Denial Of Service Attacks), είτε/μαζί με επιθέσεις ανίχνευσης ανοικτών δικτυακών θυρών (Port Scan), είτε/μαζί με πλαστοπροσωπία (Spoofing), είτε με διάδοση κάποιου σκουληκιού (Worm). Μπορούμε να χαρακτηρίσουμε τον μητρικό κόμβο ως έναν OR κόμβο από τη στιγμή που έστω μια επιτυχημένη επίθεση από τις προαναφερθείσες είναι επαρκής προϋπόθεση για να χαρακτηριστεί το σύστημα μας ευάλωτο. Όλα τα υπόλοιπα επίπεδα περιλαμβάνουν τις επιμέρους επιθέσεις κάθε υπό-ομάδας επιθέσεων (εσωτερικοί κόμβοι) και ως εκ τούτου όλοι οι κόμβοι στην συγκεκριμένη απεικόνιση αποτελούν OR κόμβους (οποιαδήποτε επίθεση μπορεί να υλοποιήσει τον στόχο της ομάδας της). Τέλος κάθε κόμβος περιλαμβάνει εκτός από το όνομα της επίθεσης και μια τιμή που αντιπροσωπεύει την ευκολία επιτυχημένης επίθεσης ως αποτέλεσμα του συνδυασμού των τιμών των παιδιών του. 38 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

38 Floodd Attacks HS TCP SYN Flood HS ICMP Flood LS HTTP Flood HS HTTP POST Flood F HS HTTP GET Flood HS Successful Attack HS Port Scan HS TCP Scan HS TCP NULL Scan HS TCP Stealth Scan S HS TCP Connect Scan LS TCP FIN Scan HS Spoofing MS TCP Xmas Scan HS TCP ACK Scan Worm LS MS TCP Maimon Scan MS HS=High Succession rate, MS= Medium Succession rate, LS=Low Succession rate Εικόνα 2: Δέντρο επίθεσης HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 39

39 ΚΕΦΑΛΑΙΟ 4: Σ ΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΔΕΔΟΜΕΝΩΝ 40 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

40 ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ ΔΕΔΟΜΕΝΩΝ Στην παρούσα ενότητα θα μελετήσουμε όλα τα εργαλεία κατανεμημένης επεξεργασίας δεδομένων που χρησιμοποιήθηκαν στην υλοποίηση του Hurricane. Το Hurricane, χρησιμοποιεί για την κατανεμημένη ανάλυση κίνησης πραγματικού χρόνου το Storm, που είναι ένα από τα ισχυρότερα συστήματα κατανεμημένης επεξεργασίας ροής (DSPE, Distributed Stream Processing Engine). Για να λειτουργήσει σωστά το Storm χρειάζεται διάφορα άλλα προγράμματα που πραγματοποιούν συμπληρωματικές εργασίες. Πρώτα από όλα χρειάζεται συγχρονισμό των εργασιών του, που πραγματοποιείται με την βοήθεια των μηχανισμών που παρέχει το ZooKeeper. Επίσης χρειάζεται μια πηγή δεδομένων που να του διοχετεύει τα δεδομένα που πρόκειται να επεξεργασθεί. Τα συστήματα διαχείρισης μηνυμάτων (messaging systems) αναλαμβάνουν ακριβώς αυτό το ρόλο πραγματοποιώντας την μεταβίβαση των δεδομένων από μια η περισσότερες πηγές στο Storm. Υπάρχουν πολλά τέτοια συστήματα όπως το JMS (Java Message Service) [33] και το Kestrel [34], όμως το ισχυρότερο από άποψη απόδοσης είναι το Kafka [35], το οποίο και χρησιμοποιήσαμε στην παρούσα υλοποίηση. Τέλος, για να μπορέσουμε να αποθηκεύσουμε τα αποτελέσματά μας με κατανεμημένο τρόπο χρειαζόμασταν ένα κατανεμημένο σύστημα διαχείρισης βάσεων δεδομένων (Distributed Database Management System, DDBMS). Υπάρχουν διαθέσιμες πολλές βάσεις δεδομένων αυτού του τύπου όπως το MongoDB [36], το HBase [37] και η Cassandra [38], την οποία τελικώς επιλέξαμε για την κατανεμημένη αποθήκευση των αποτελεσμάτων της ανάλυσης κίνησης που πραγματοποιεί το Hurricane. 4.1 APACHE ZOOKEEPER To ZooKeeper [39] είναι μια ανοιχτού κώδικα κατανεμημένη υπηρεσία, που παρέχει πληροφορίες, ονοματοδοσία και συγχρονισμό σε κατανεμημένα συστήματα. Όλα τα παραπάνω χαρακτηριστικά αποτελούν βασικότατους παράγοντες επιτυχίας όλων των σύγχρονων κατανεμημένων συστημάτων και είναι ιδιαίτερα χρήσιμο να μπορούμε να χρησιμοποιήσουμε έτοιμες και αξιόπιστες λύσεις, όπως το ZooKeeper, αντί να προσπαθούμε να προχωρήσουμε σε δική μας υλοποίηση. Αυτό διότι η υλοποίηση και η αποσφαλμάτωση εφαρμογών που εμπλέκουν συγχρονισμό είναι HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 41

41 εξαιρετικά επίπονες διαδικασίες λόγω των συνθηκών ανταγωνισμού (race conditions) και των αδιεξόδων (deadlocks) που παρουσιάζονται ανά τακτά χρονικά διαστήματα. Το ZooKeeper τρέχει σε cluster υπολογιστών και παρέχει πληροφορίες έκδοσης και κατάστασης των δεδομένων (versioning), ταξινόμηση με βάση την ώρα δημιουργίας και τροποποίηση τους, όπως επίσης ένα πολύ εύχρηστο σύστημα ενημερώσεων όταν συμβεί κάποιο μη επιθυμητό γεγονός (για παράδειγμα αν χαθεί η επικοινωνία με κάποιον κόμβο). Κάθε cluster μπορεί να περιλαμβάνει έναν η περισσότερους ZooKeeper εξυπηρέτες, ανάλογα με το μέγεθος του. Όλες οι κατανεμημένες διεργασίες μπορούν και συνεργάζονται μεταξύ τους κάνοντας χρήση των παραπάνω μηχανισμών, αλλά και ενός συστήματος αρχείων δεντρικής μορφής. Όλα τα δεδομένα κρατούνται στην κύρια μνήμη γεγονός που κάνει το ZooKeeper να επιτυγχάνει πολύ υψηλή απόδοση (throughput) στην επικοινωνία. Το ZooKeeper επίσης παρέχει πολύ υψηλή διαθεσιμότητα. Όλοι οι εξυπηρέτες κρατούν στην κύρια μνήμη πληροφορίες κατάστασης όλων των υπόλοιπων κόμβων του συστήματος, μαζί με αρχεία καταγραφής συναλλαγών, με αποτέλεσμα όταν οι περισσότεροι εξυπηρέτες είναι διαθέσιμοι, οι υπηρεσίες του ZooKeeper να είναι διαθέσιμες για τις εφαρμογές που τις χρησιμοποιούν. Το βασικό χαρακτηριστικό του ZooKeeper είναι η ευκολία χρήσης του. Το μόνο που χρειάζεται είναι να το εγκαταστήσουμε σε έναν ή περισσότερους εξυπηρέτες και να δημιουργήσουμε πελάτες (clients) που θα συνδέονται με ένα απλό TCP connection και θα χρησιμοποιούν τις υπηρεσίες που παρέχονται. 4.2 APACHE KAFKA Το Kafka [35] είναι ένα ανοιχτού κώδικα κατανεμημένο σύστημα διαχείρισης μηνυμάτων (Messaging System), σχεδιασμένο να μπορεί να επεξεργάζεται πάρα πολύ μεγάλο όγκο δεδομένων, είτε αυτός προέρχεται από ροές (streams) είτε από δέσμες δεδομένων (batches). Το Kafka δημιουργήθηκε από το LinkedIn και εκτός από την ίδια την εταιρία χρησιμοποιείται ευρέως από πολλές άλλες κορυφαίες του χώρου, όπως το Twitter, το Spotify κ.α. Το σύστημα λειτουργεί με βάση το μοντέλο παραγωγού-καταναλωτή (producer-consumer) και συντηρεί μηνύματα ομαδοποιημένα σε κατηγορίες οι οποίες ονομάζονται topics. Κάθε topic είναι στην ουσία μια ουρά μηνυμάτων. Ένας παραγωγός δημοσιεύει μηνύματα σε μια συγκεκριμένη κατηγορία και όσοι καταναλωτές είναι εγγεγραμμένοι στην κατηγορία 42 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

42 αυτή λαμβάνουν το δημοσιευμένο μήνυμα. Το Kafka δουλεύει σε cluster υπολογιστών, αποτελούμενο από έναν η περισσότερους εξυπηρέτες, κάθε ένας από τους οποίους ονομάζεται broker. Ως εκ τούτου σε ένα τέτοιο κατανεμημένο σύστημα οι παραγωγοί στέλνουν μηνύματα στο cluster μέσω δικτύου, αυτά αποθηκεύονται σε ουρές των brokers και στη συνέχεια διατίθενται στους σ καταναλωτές που ενδιαφέρονται για αυτά. Εικόνα 3: Αρχιτεκτονική Kafka: παραγωγός καταναλωτήκ ής [35] Το Kafka είναι πλήρως αποκεντρωμένο και χρησιμοποιεί το ZooKeeperr και τους μηχανισμούς που παρέχονται από αυτό για να εγγυηθεί συγχρονισμό, υψηλή απόδοση και εξισορρόπηση φόρτου στους brokers. Οι παραγωγοί και οι καταναλωτές λαμβάνουν γνώση για τους διαθέσιμους brokers μέσω τουυ ZooKeeper. Στα βασικά χαρακτηριστικά του σχεδιασμού περιλαμβάνεται η προσωρινήή αποθήκευση μηνυμάτων (caching), η δυνατότητα να ξανά καταναλωθούν μηνύματα (reconsumption), η ομαδοποίηση μηνυμάτων ( για μείωσηη δικτυακού φόρτου), η συμπίεση μηνυμάτων κ.α. Η εγκατάσταση και χρήσηη του συστήματος είναι ε μια ιδιαίτερα απλή διαδικασία. Το μόνο που χρειάζεται είναι να κατεβάσουμε την εφαρμογή και να χρησιμοποιήσουμε τα scripts που παρέχονται ανάλογα με τον ρόλο του υπολογιστή (producer, broker ή consumer). Επίσης μπορούμε να το ρυθμίσουμε μεε πάρα πολλούς τρόπους ανάλογα με τις ανάγκες μας: Ένας κόμβος broker, ένας κόμβος με πολλούς brokers, πολλοί κόμβοι με πολλούς brokers. Τα περισσότερα συστήματα κατανεμημένης επεξεργασίας δεδομένων όπως το Hadoop [1] και το Storm [2][ λόγω τουυ μεγάλου όγκου δεδομένων που επεξεργάζονται έχουν ανάγκη από συστήματα διαχείρισης μηνυμάτων όπως το Kafka. Ο ρόλοςς του Kafka σε μια τέτοια αρχιτεκτονική είναι να λαμβάνει μεγάλο όγκο δεδομένων από HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 43

43 άγνωστο αριθμό πηγών/παραγωγών και να τον διοχετεύει με κατανεμημένο τρόπο στα συστήματα αυτά, που λειτουργούν ως καταναλωτές. 4.3 STORM Εισαγωγή Το 2004 η Google ανακοίνωσε το προγραμματιστικό μοντέλο του MapReduce [40] το οποίο χρησιμοποιούσε για την κατανεμημένη επεξεργασία μεγάλου όγκου δεδομένων σε σύμπλεγμα (cluster) υπολογιστών της. Έτσι γεννήθηκε το Hadoop [1], που είναι μια ανοιχτού κώδικα έκδοση που υλοποιεί το μοντέλο του MapReduce. Το μεγάλο πρόβλημα με το μοντέλο αυτό όμως είναι το ότι μπορεί να επεξεργαστεί μόνο προκαθορισμένο σύνολο δεδομένων, αδυνατώντας να ανταποκριθεί σε ροές δεδομένων πραγματικού χρόνου. Η έλλειψη ενός τέτοιου μοντέλου απασχόλησε για αρκετά χρόνια την ερευνητική κοινότητα και ως αποτέλεσμα είχε τη δημιουργία πολλών αξιόλογων δημοσιεύσεων. Το Storm [2] είναι ένα ανοιχτού κώδικα σύστημα για κατανεμημένη επεξεργασία ροών δεδομένων, κύρια χαρακτηριστικά του οποίου είναι η κλιμάκωση (scalability), η ανεκτικότητα σε λάθη (fault tolerance) και η εγγύηση ότι όλα τα δεδομένα που θα εισαχθούν στο σύστημα θα επεξεργαστούν στο ακέραιο (data processing guarantee). Το Storm δημιουργήθηκε από την εταιρία Backtype, η οποία εξαγοράστηκε το 2011 από το Twitter, και αποτελεί ένα από τα ισχυρότερα μοντέλα του είδους που έχουν προταθεί μέχρι σήμερα. Το Storm μπορεί να επεξεργαστεί με αξιοπιστία απεριόριστο αριθμό ροών δεδομένων, κάνοντας σε πραγματικό χρόνο (real time) ότι κάνει το Hadoop για επεξεργασία δεσμών δεδομένων (batch processing). Το Storm έγινε ιδιαίτερα δημοφιλές λόγω της απλότητας χρήσης του, όσο και της μεγάλης ταχύτητας επεξεργασίας δεδομένων: Έχει μετρηθεί ότι μπορεί να επεξεργαστεί πάνω από 1 εκατομμύριο εγγραφές ανά δευτερόλεπτο σε κάθε κόμβο. Το Storm μπορεί να χρησιμοποιηθεί σε πάρα πολλά σενάρια χρήσης όπως στην ανάλυση δεδομένων σε πραγματικό χρόνο, στην μηχανική μάθηση, στην εξόρυξη δεδομένων από ροές δεδομένων κ.α. 44 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

44 4.3.2 Βασικά χαρακτηριστικά Το Storm έχει μια σειρά ιδιοτήτων που το κάνουν μοναδικό στον χώρο της κατανεμημένης επεξεργασίας δεδομένων, τα οποία παρουσιάζονται παρακάτω: Κλιμάκωση (scalability): Το Storm μπορεί να κλιμακώσει την επεξεργασία των δεδομένων του σε πολύ μεγάλο αριθμό μηνυμάτων ανά δευτερόλεπτο. Το μόνο που χρειάζεται για να επιτευχθεί αυτό είναι η προσθήκη περισσότερων κόμβων στο cluster των υπολογιστών που τρέχουν το Storm και η ρύθμιση των παραμέτρων παραλληλοποίησης του συστήματος. Η χρήση του Zookeeper είναι αυτή που παρέχει στο Storm τους απαραίτητους μηχανισμούς για να κλιμακώνεται σε τεράστια μεγέθη cluster υπολογιστών. Ανεκτικότητα σε λάθη (fault tolerance): Ένα από τα κύρια χαρακτηριστικά του Storm είναι η ανεκτικότητα που παρουσιάζει σε λάθη που εμφανίζονται κατά τη διάρκεια του κατανεμημένου υπολογισμού δεδομένων. Η ιδιότητα αυτή είναι πολύ σημαντική αφού ένα cluster που μπορεί να αποτελείται από χιλιάδες υπολογιστές και είναι πολύ κρίσιμο να μπορούμε να επεξεργαστούμε τα δεδομένα μας, ακόμα και στην περίπτωση που παρουσιαστεί κάποιο πρόβλημα σε έναν ή περισσότερους κόμβους. Τα είδη των αποτυχιών που μπορούν να προκύψουν είναι πάρα πολλά: Πρόβλημα στον σκληρό δίσκο ενός κόμβου, προβλήματα στο δίκτυο, προβλήματα στο επίπεδο του λογισμικού κ.α. Το Storm παρέχει όλους τους απαραίτητους μηχανισμούς για να προσπεράσει τα λάθη που μπορούν να προκύψουν, αναδιανέμοντας εργασίες που επρόκειτο να επεξεργαστούν, από κόμβους που τελικώς κατέρρευσαν, σε υγιής κόμβους του cluster. Εγγύηση μη απώλειας δεδομένων: Ένα σύστημα που πραγματοποιεί επεξεργασία δεδομένων σε πραγματικό χρόνο πρέπει να παρέχει εγγυήσεις ότι όλα τα δεδομένα που δίδονται ως είσοδος θα επεξεργαστούν επιτυχώς από το σύστημα. Το Storm εγγυάται ότι κάθε εισερχόμενη εγγραφή θα επεξεργαστεί, μαρκάροντας μια από αυτές με ετικέτες κατάστασης. Εάν μια εγγραφή έχει χαθεί τότε γίνεται προσπάθεια να επεξεργαστεί εκ νέου. Ευκολία διαχείρισης: Σε αντίθεση με συστήματα όπως το Ηadoop, που είναι ιδιαίτερα δύσκολος και χρονοβόρος ο χειρισμός τους, το Storm έχει δημιουργηθεί με στόχο ο χρήστης να μπορεί να διαχειρίζεται το cluster των υπολογιστών με όσο το δυνατόν μεγαλύτερη ευκολία. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 45

45 Ανεξάρτητο γλώσσας προγραμματισμού: Η υλοποίηση ενός προγράμματος στο Storm γίνεται συνήθως στη γλώσσα προγραμματισμού Java, όμως μπορεί να χρησιμοποιηθεί μια πληθώρα άλλων γλωσσών προγραμματισμού, γεγονός που καθιστά το σύστημα ιδιαίτερα ελκυστικό σε όλους τους προγραμματιστές ανεξάρτητα από την γλώσσα την οποία χρησιμοποιούν στις υλοποιήσεις τους Οντότητες συστήματος Storm Ένα Storm cluster έχει, σε επίπεδο οντοτήτων, πάρα πολλές ομοιότητες με ένα Hadoop cluster. Στο Hadoop τρέχουμε εργασίες MapReduce ενώ στο Storm τοπολογίες (topologies). Η βασική διαφορά τους είναι ότι ενώ μια εργασία MapReduce τερματίζει κάποια στιγμή, ως αποτέλεσμα της ολοκλήρωσης της επεξεργασίας του συνόλου των δεδομένων που μπήκαν στο σύστημα, μια τοπολογία επεξεργάζεται δεδομένα για πάντα (ή μέχρι να σταματήσουμε την τοπολογία) όσο αυτά εισέρχονται στο σύστημα, σε πραγματικό χρόνο. Υπάρχουν δύο είδη κόμβων σε ένα Storm cluster: Ο κύριος κόμβος (master node) και οι κόμβοι εργάτες (worker node). Ο κύριος κόμβος τρέχει έναν δαίμονα (daemon) που ονομάζεται Nimbus (το αντίστοιχο του JobTracker στο Hadoop), ο οποίος είναι υπεύθυνος για τον συντονισμό των κόμβων του cluster, την διανομή των εργασιών στους κόμβους εργάτες και τον έλεγχο για πιθανές αποτυχίες του συστήματος. Κάθε κόμβος εργάτης τρέχει έναν δαίμονα που ονομάζεται Supervisor, ο οποίος αναμένει να του ανατεθούν εργασίες και εκκινεί ή σταματά την εκτέλεση διεργασιών - εργατών (worker) ανάλογα με τις οδηγίες του Nimbus. Κάθε μηχάνημα μπορεί να τρέχει έναν ή περισσότερους workers, κάθε ένας από τους οποίους επεξεργάζεται ένα υποσύνολο των δεδομένων της τοπολογίας. Η επικοινωνία Nimbus Supervisor γίνεται με την βοήθεια των μηχανισμών συντονισμού του Zookeeper. Μια τοπολογία αποτελείται από πολλούς workers κατανεμημένους σε πολλά μηχανήματα. 46 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

46 Εικόνα 4: Αρχιτεκτονική Storm [41] Ροές δεδομένων και τοπολογίεςς Μια ροή δεδομένων στο Storm είναι μια απεριόριστα μεγάλη ακολουθία εγγραφών (tuples) οι οποίες επεξεργάζονται ή/και δημιουργούνται κατανεμημένα. Κάθε tuple περιλαμβάνει μια λίστα από τιμές, ο τύπος των οποίων ο ορίζεται μέσω ενός σχήματος (schema), με πεδία που μπορούν να περιλαμβάνο ουν integers, longs, shorts, bytes, strings, doubles, floats, booleans και byte arrays. Μπορούμε επίσηςς να ορίσουμε δικούς μας τύπους δεδομένων στα πεδία. Σε κάθε κ μια ροή δίδεται ένα μοναδικό αναγνωριστικό (id), το οποίο χρησιμοποιείται από το Storm και τον προγραμματιστή για τη διαχείριση των ροών δεδομένων. Για Γ να γίνειι η επεξεργασία όλων των tuples, το Storm παρέχει δύο βασικά συστατικά στοιχεία: Το spout και το bolt. Το spout αποτελεί την πηγή τωνν ροών δεδομένων πουυ εισάγονται στο σύστημα για επεξεργασία. Ένα spout μπορεί να διαβάζει ταυτόχρονα εγγραφές από πολλές διαφορετικές πηγές, όπωςς από ένα σύστημα ουράς (όπωςς το JMS, το Kestrel ή το Kafka) ή ένα απλό αρχείο κειμένου, και να το επεξεργάζετ ται ως ροή.. Επίσης μπορεί να εκπέμπει (emit) περισσότερες απόό μια ροές. Ένα spout μπορεί να είναι αξιόπιστο (reliable) ή αναξιόπιστο (unreliable). Ένα αξιόπιστο spout είναι ικανό να επαναλαμβάνει την αποστολή ενόςς tuple, όταν γνωρίζει ότι η επεξεργασία του απέτυχε, ενώ ένα αναξιόπιστο δεν ασχολείται με ένα tuple από τη στιγμή που θα αναχωρήσει από το spout. Υπάρχει πληθώρα υλοποιημένων spouts που διασυνδέουν τα συστήματα ουράς που προαναφέρθηκαν με το Storm και τα οποία μπορούν να HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 47

47 ρυθμιστούν και να επεκταθούν προγραμματιστικά, ανάλογα με τις ανάγκες μας. Σε μια τέτοια περίπτωση μπορούμε να υλοποιήσουμε ένα spout που να συνδέει το Storm με το Tweeter και να μετατρέπουμε τα tweets σε ροή δεδομένων προς επεξεργασία. Εικόνα 5: Ροή δεδομένωνν στο Storm [42] Το bolt είναι το στοιχείο που επεξεργάζεται τις ροές δεδομένων δ που εισάγονται μέσω των spouts στο σύστημα. Ένα bolt διαβάζει από μια ή περισσότερες πηγές ροών δεδομένων, επεξεργάζεται τα δεδομένα της και μπορεί είτε να αποθηκεύσει τα αποτελέσματα,, είτε να τα μετασχηματίσει και να τα αποστείλει σε άλλα boltss για περαιτέρω επεξεργασία, δημιουργώντας με αυτόν τον τρόποο νέες ροές δεδομένωνν στο σύστημα. Ένα bolt, όπως ακριβώςς και ένα spout, μπορεί να εκπέμψει (emit) περισσότερες από μια ροές. Ένα bolt μπορεί να προγραμματιστεί για να κάνει φιλτράρισμα εγγραφών, να υπολογίζει αθροίσματα, ναα εκτελεί ενώσεις ροών δεδομένων, να αποθηκεύει αποτελέσματα σε βάσεις δεδομένων και γενικά να εκτελεί οποιαδήποτε συνάρτηση υλοποιηθεί. Για να πραγματοποιηθεί ένας περίπλοκος μετασχηματισμός ροής, χρειάζεται να υλοποιήσουμε περισσότερα του ενός bolt σε μια τοπολογία. Για παράδειγμα εάν θέλουμε να βρούμε τις 10 συχνότερες λέξεις μέσα σε ένα κείμενο θα πρέπει πρώτα ναα κάνουμε καταμέτρηση όλων των λέξεων του κειμένου σε ένα bolt και στην συνέχεια να στείλουμε τα αθροίσματα α των λέξεων σε ένα άλλο bolt που θα ταξινομήσει τιςς λέξεις με βάση τη συχνότητα τους και θα δώσει στην έξοδο τις 10 συχνότερες. Εικόνα 6: Bolt [42] 48 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

48 Τα spouts και τα boltss αποτελούνν στο σύνολο τους μιαα τοπολογίαα (topology). Η τοπολογία είναι ένας γράφος μετασχηματισμού ροών δεδομένων, όπου κάθε κόμβος μπορεί να αναπαριστά ένα spout ή ένα bolt και κάθε ακμή να υποδεικνύει ποιες ροές επεξεργάζονται από ποια bolts. Ένα Storm cluster μπορεί μ να τρέχει μια η περισσότερες τοπολογίες ταυτόχρονα, χωρίς η μια να έχειι κάποια σχέση με κάποια άλλη ή να την επηρεάζει. Εικόνα 7: Storm Topology Παραλληλισμός εργασιών Σε ένα σύστημα επεξεργασίας ροών δεδομένων είναιι πάρα πολύύ σημαντικό να μπορούμε να επεξεργαστούμε τα δεδομένα μας με ρυθμό μεγαλύτερο μ από τον ρυθμό με τον οποίο καταφθάνουνν στο σύστημα. Διαφορετικά οι εγγραφές θα περιμένουνν για πολύ μέχρι να επεξεργαστούν ή ακόμα θα λήξη η προθεσμία επεξεργασίας τουςς και θα χαθούν. Η δυνατότηταα που δίνει το Storm για κατανεμημένη επεξεργασία ροών δεδομένων λύνει αυτόματα το παραπάνω πρόβλημα. Σε κάθε τοπολογία μπορούμε να καθορίσουμε το επίπεδο παραλληλισ σμού που θέλουμε να έχουμε έ (ως συνάρτησηη του αριθμού των Supervisor που έχουμεε και του αριθμού τωνν workers που τρέχει κάθε ένας) και το Storm θα δημιουργήσει τον κατάλληλο αριθμό νημάτων στο clusterr για να γίνει η επεξεργασία των δεδομένων. Για να μπορέσει να τρέξει μια τοπολογία, το Storm διακρίνει τις τρεις παρακάτω οντότητες [43]: HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 49

49 Worker: Όπως είπαμε, ένα μηχάνημα στο cluster του Storm μπορεί να τρέχει έναν ή περισσότερους workers για μια ή περισσότερες τοπολογίες. Κάθε worker ανήκει σε μια συγκεκριμένη τοπολογία και εκτελεί ε ένα υποσύνολοο των εργασιών της. Ένας worker περιλαμβάνει έναν αριθμό από εκτελεστές διεργασιών (executors), κάθε ένας από τους οποίουςς τρέχει έναα η περισσότερα συστατικά (spouts ή bolts) τηςς τοπολογίας στην οποία ανήκει. Executor: Ένας executor δεν είναι τίποτα περισσότερο από έναα νήμα (thread) που δημιουργείταιι από έναν worker. Το επίπεδο του παραλληλισμού σε μια τοπολογία αντιστοιχεί ακριβώς στον αριθμό των executors πουυ θα δουλεύουν για αυτή τη τοπολογία, παράλληλα. Κάθε executor μπορεί να τρέχει ένα ή περισσότερα taskss για ένα συγκεκριμένο spout ή bolt. Ο αριθμός των executors μιας τοπολογίας μπορεί να αλλάζει με τονν χρόνο. Task: Το task είναι αυτό που πραγματοποιεί την επεξεργασία των δεδομένων και τρέχει μέσα στο νήμα του executor στον οποίο ανήκει. Ο αριθμός των tasks για ένα spout ή ένα bolt παραμένει σταθερός με τον χρόνο σε αντίθεση με τον αριθμό των executors που είναι μεταβλητός. Το Storm έχειι ως προεπιλογή να τρέχει ένα taskk για κάθε νήμα. Αλλαγή αυτής της προεπιλογής γίνεται προγραμματιστικά με τρόπο που θα παρουσιαστεί στη συνέχεια. Εικόνα 8: Παραλληλισμός εργασιών στο Storm S [43] Ομαδοποίηση ροής (Stream grouping) ) Ένας executor όπωςς είπαμε εργάζεται για ένα συγκεκριμένο συστατικό στοιχείο (spout ή bolt) σε μια τοπολογία. Όταν ένα στοιχείο τηςς τοπολογίας στέλνει ροές 50 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

50 δεδομένων σε ένα άλλο, είναι πολύ σημαντικό σε πολλά σενάρια χρήσης να γνωρίζουμε τον τρόπο με τον οποίο διανέμονται τα δεδομένα που στέλνει ένα συστατικό στοιχείo (ως tasks) στους executors του επόμενου στοιχείου. Εάν για παράδειγμα θέλουμε να επιτύχουμε εξισορρόπηση φόρτου μεταξύ των executors ενός bolt, τότε θέλουμε τα δεδομένα που λαμβάνει το bolt να αποστέλλονται με ίση πιθανότητα στους executors του για επεξεργασία. Σε άλλες περιπτώσεις επιθυμούμε κάποια δεδομένα να επεξεργάζονται πάντοτε από τον ίδιο executor μέσα στο bolt, όπως για παράδειγμα στην περίπτωση που θέλουμε να κάνουμε καταμέτρηση λέξεων. Εάν μια λέξη καταμετράται σε περισσότερους του ενός executors μέσα σε ένα bolt, τότε το αποτέλεσμα της καταμέτρησης της θα είναι λανθασμένο στην έξοδο. Σε αυτή τη περίπτωση θα γίνουν emit, για την ίδια λέξη, τόσα αθροίσματα όσοι είναι οι executors που έχουν καταμετρήσει έστω μια φορά την λέξη. Η ομαδοποίηση ροής καθορίζει τον τρόπο με τον οποίο η τοπολογία στέλνει tuples ανάμεσα σε ένα ζευγάρι συστατικών της (από spout σε bolt ή από bolt σε bolt). Επί της ουσίας καθορίζει τον τρόπο κατάτμησης (partitioning) της εισερχόμενης πληροφορίας μέσα στους executors του bolt. Το Storm παρέχει επτά έτοιμους μηχανισμούς ομαδοποίησης ροής, αλλά δίνει και την δυνατότητα ο χρήστης να υλοποιήσει προγραμματιστικά τον δικό του μηχανισμό ομαδοποίησης. Όνομα Shuffle grouping Fields grouping All grouping Περιγραφή Τα tuples διανέμονται σε ένα bolt με τρόπο τέτοιο ώστε κάθε executor να δέχεται τον ίδιο αριθμό tuples για επεξεργασία. Η τεχνική αυτή εγγυάται εξισορρόπηση φόρτου μέσα σε ένα bolt. Η ροή τεμαχίζεται και αποστέλλεται στους executors με βάση ένα από τα πεδία του tuple. Για παράδειγμα εάν μια ροή ομαδοποιείται με βάση το πεδίο λέξη, τότε τα tuples που περιέχουν την ίδια λέξη θα επεξεργαστούν από τον ίδιο executor. Η ροή αντιγράφεται σε όλους τους executors. Global grouping Όλη η ροή αποστέλλεται σε έναν μόνο executor. None grouping Direct grouping Local or shuffle grouping Προς το παρόν λειτουργεί όπως το Suffle grouping. Ο παραγωγός του tuple αποφασίζει ποιος executor του bolt θα λάβει το tuple αυτό. Για να γίνει αυτό οι ροές που χρησιμοποιούν αυτόν τον τύπο κατάτμησης πρέπει να δηλωθούν ως direct. Εάν το bolt έχει ένα ή περισσότερα tasks στον ίδιο worker, τα tuples τα εφαρμόσουν την κατάτμηση του Suffle grouping μόνο στα task αυτού του worker. Πίνακας 4: Τρόποι ομαδοποίησης ροής στο Storm HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 51

51 Εικόνα 9: Παραδείγματαα ομαδοποίησης ροής στο Storm [42] Περίπτωση χρήσης Ας δούμε σε αυτό το σημείο μια περίπτωση χρήσης, συνοψίζοντας όλα όσα μελετήσαμε στις προηγούμενες παραγράφους για το Storm. Η πιο απλή τοπολογία περιλαμβάνει την υλοποίηση ενός spout, ενός bolt, τις ρυθμίσεις παραλληλισμού των εργασιών τους, όπως επίσης και τον τρόπο ομαδοποίησης/κατάτμησης της πληροφορίας στους executors των bolts. Στην υλοποίηση που ακολουθεί (WordCountTopology [44]) έχουμε: Ένα Spout (RandomSentenceSpout [45]) το οποίο μια πρόταση, από πέντε προκαθορισμένες. διαλέγει με τυχαίο τρόπο Ένα Bolt (SplitSentence), τοο οποίο χρησιμοποιείί ένα script γραμμένο σε python [46]) και εξάγει τις λέξεις της κάθε πρότασης. Ένα άλλο Bolt (WordCount) το οποίο πραγματοποιεί καταμέτρηση λέξεων. 1. public class WordCountTopology { 2. public static class c SplitSentence extends ShellBolt implements IRichBolt { public SplitSentence() { 5. super("python", "splitsentence.py"); 6. } public void declareoutputfields(outputfieldsdeclarer declarer) { 10. declarer.declare(new Fields("word" )); 11. } public Map<String, Object> getcomponentconfiguration( () { 15. return null; 52 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

52 16. } 17. } public static class WordCount extends BaseBasicBolt { 20. Map<String, Integer> counts = new HashMap<String, Integer>(); public void execute(tuple tuple, BasicOutputCollector collector) { 24. String word = tuple.getstring(0); 25. Integer count = counts.get(word); 26. if (count == null) 27. count = 0; 28. count++; 29. counts.put(word, count); 30. collector.emit(new Values(word, count)); 31. } public void declareoutputfields(outputfieldsdeclarer declarer) { 35. declarer.declare(new Fields("word", "count")); 36. } 37. } public static void main(string[] args) throws Exception { 40. TopologyBuilder builder = new TopologyBuilder(); 41. builder.setspout("spout", new RandomSentenceSpout(), 5); 42. builder.setbolt("split", new SplitSentence(), 8).shuffleGrouping("spout"); 43. builder.setbolt("count", new WordCount(), 12).fieldsGrouping("split", new Fields("word")); Config conf = new Config(); if (args!= null && args.length > 0) { 48. conf.setnumworkers(5); 49. StormSubmitter.submitTopology(args[0], conf, b builder.createtopology()); 50. } 51. else { 52. conf.setmaxtaskparallelism(5); 53. LocalCluster cluster = new LocalCluster(); 54. cluster.submittopology("word-count", conf, builder.createtopology()); 55. Thread.sleep(10000); 56. cluster.shutdown(); 57. } 58. } 59. } HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 53

53 Γραμμές 2-17: Δημιουργούμε ένα Bolt που διαβάζει μια πρόταση και εξάγει τις λέξεις που περιλαμβάνονται σε αυτήν. Στην αρχικοποίηση καλείται ένα script (γραμμένο σε python) το οποίο επιτελεί την παραπάνω λειτουργία. Στη μέθοδο declareoutputfields() δηλώνουμε τα ονόματα των πεδίων που θα περιλαμβάνει κάθε tuple που γίνεται emit από το συγκεκριμένο Bolt. Από τη στιγμή που το Bolt μας κάνει emit λέξεις, δηλώνουμε μόνο ένα πεδίο με όνομα word. Η μέθοδος getcomponentconfiguration() χρησιμεύει στον καθορισμό ειδικών ρυθμίσεων για το Bolt. Σε αυτό το παράδειγμα δεν έχουμε κάποια ιδιαίτερη ρύθμιση, οπότε επιστρέφουμε null. Γραμμές 19-37: Δημιουργούμε ένα Bolt που κρατάει μια λίστα αντιστοίχισης (Map) λέξης συχνότητα εμφάνισης και κάθε φορά που λαμβάνει μια λέξη ανανεώνει την συχνότητα της, κάνοντας ταυτόχρονα emit το ζεύγος αυτό. Πιο συγκεκριμένα αρχικά δηλώνουμε ένα αντικείμενο τύπου Map που κρατάει την αντιστοιχία λέξη-συχνότητα. Στη συνέχεια στη μέθοδο execute, ελέγχουμε εάν το εισερχόμενο tuple περιλαμβάνει λέξη που βρίσκεται στον κατάλογο Map. Εάν δεν υπάρχει καταχωρούμε μια νέα αντιστοιχία λέξης συχνότητας εμφάνισης ίση με 1, ενώ εάν υπάρχει αυξάνουμε την συχνότητα εμφάνισης της λέξης αυτής κατά 1. Τέλος κάνουμε emit το ζευγάρι αυτό. Γραμμές 40-43: Δημιουργούμε μια τοπολογία ορίζοντας το spout, το bolt, τον παραλληλισμό κάθε στοιχείου και τον τρόπο ομαδοποίησης της πληροφορίας. Αρχικά δηλώνουμε ένα Spout με όνομα spout, θέτοντας τον βαθμό παραλληλισμού = 5, που σημαίνει ότι θα δημιουργηθούν 5 executors που θα παράγουν τυχαίες προτάσεις παράλληλα και με τον ίδιο ακριβώς τρόπο. Στη συνέχεια δημιουργούμε ένα SplitSentence Bolt δίνοντας του το όνομα split, και ορίζοντας το να διαβάζει ροές από το spout, με βαθμό παραλληλισμού 8, πράγμα που σημαίνει ότι θα δημιουργηθούν 8 executors που θα διαβάζουν εισερχόμενες προτάσεις από το spout και θα εξάγουν τις λέξεις τους. Επίσης έχουμε δηλώσει Shuffle grouping ομαδοποίηση για τα tuples που λαμβάνουμε από το spout, που σημαίνει ότι οι εισερχόμενες προτάσεις θα πηγαίνουν στους 8 executors με ίση πιθανότητα, επιτυγχάνοντας εξισορρόπηση φόρτου μέσα στο split Bolt. Τέλος δημιουργούμε ένα WordCount Bolt δίνοντας του στο όνομα count, και ορίζοντας το να διαβάζει ροές από το split, με βαθμό παραλληλισμού 12. Σε αυτή τη περίπτωση θέτουμε Fields grouping ομαδοποίηση ώστε να είμαστε βέβαιοι ότι ίδιες λέξεις θα καταλήγουν 54 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

54 να επεξεργάζονται από τους ίδιους executors εξασφαλίζοντας ορθότητα στη συχνότητα εμφάνισης τους στα αποτελέσματα. Γραμμές 45-56: Σε αυτό το στάδιο μένει πλέον μόνο να θέσουμε κάποιες γενικές ρυθμίσεις για την τοπολογία μας. Εάν το πρόγραμμα το εκτελούμε παρέχοντας μια παράμετρο (στη συγκεκριμένη περίπτωση το όνομα της τοπολογίας) τότε θα τρέξει σε ένα cluster υπολογιστών όπου ο αριθμός των workers που θα εργάζονται για αυτή τη τοπολογία θα είναι ίσος με 5. Ο συνολικός βαθμός παραλληλισμού της τοπολογίας ήταν 5 ( spout ) + 8 ( split ) + 12 ( count ) = 25, πράγμα που σημαίνει ότι κάθε worker θα έχει 25 (βαθμός παραλληλισμού) / 5 (workers) = 5 executors που θα επεξεργάζονται δεδομένα. Ο βαθμός παραλληλισμού καλό είναι να είναι ένα πολλαπλάσιο του αριθμού των workers που δουλεύουν για την τοπολογία. Στην περίπτωση που δεν δώσουμε κάποια παράμετρο για την εκτέλεση του προγράμματος, υποδηλώνουμε ότι θέλουμε να τρέξει τοπικά (για σκοπούς αποσφαλμάτωσης), δίνοντας όνομα τοπολογίας word-count, θέτοντας μέγιστο αριθμό threads/executors ίσο με 5 και αφήνοντας το να τρέξει για 10 δευτερόλεπτα. Στην συνέχεια τερματίζουμε την τοπολογία. 4.4 APACHE CASSANDRA Η Cassandra [38] είναι ένα ανοιχτού κώδικα κατανεμημένο σύστημα διαχείρισης βάσεων δεδομένων, το οποίο δημιουργήθηκε από το Facebook και είναι σχεδιασμένο να μπορεί να χειρίζεται μεγάλο όγκο δεδομένων, κατατμημένων σε πολλούς εξυπηρέτες ενός cluster υπολογιστών. Η Cassandra δεν ακολουθεί το κλασσικό σχεσιακό μοντέλο αλλά αποτελεί μια NoSQL [47] βάση δεδομένων. Παρέχει γραμμική κλιμάκωση, υψηλή απόδοση, υψηλή διαθεσιμότητα, ανοχή σε λάθη και πολλά άλλα χαρακτηριστικά που την καθιστούν την καλύτερη επιλογή βάσης δεδομένων για εφαρμογή στο cloud ή στο grid. H Cassandra αντιμετωπίζει το πρόβλημα των αστοχιών χρησιμοποιώντας ένα peer-to-peer κατανεμημένο σύστημα, όπου τα δεδομένα είναι τοποθετημένα σε έναν ή περισσότερούς κόμβους του cluster. Κάθε κόμβος ανταλλάσει πληροφορίες μέσα στο cluster κάθε δευτερόλεπτο και κρατάει αρχείο καταγραφής, που καταγράφει όλη την δραστηριότητα, για να εγγυηθεί ανθεκτικότητα στα δεδομένα (data durability). Σε όλα τα δεδομένα που γράφονται στην βάση εφαρμόζεται κατάτμηση και κρατούνται αντίγραφα τους σε διάφορα σημεία στο cluster. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 55

55 Το μοντέλο δεδομένων είναι ένα δυναμικό σχήμα (dynamic schema), βασισμένο στη λογική της στήλης, αντί για αυτή της σχέσης στις σχεσιακές βάσεις δεδομένων. Σε ένα τέτοιο μοντέλο το σχήμα δεν είναι γνωστό εκ των προτέρων αλλά δημιουργείται δυναμικά. Όπως στις σχεσιακές βάσεις δεδομένων έτσι και εδώ έχουμε εγγραφές και στήλες με τη διαφορά ότι κάθε εγγραφή μπορεί να περιλαμβάνει τιμές σε διαφορετικό υποσύνολο στηλών. Τα συστατικά στοιχεία που απαρτίζουν το μοντέλο αυτό φαίνονται παρακάτω: Keyspace > Column Family > Row > Column Name = Value Keyspace: Αντιστοιχεί σε μια database στις σχεσιακές βάσεις. Στο Keyspace μπορούμε να ορίσουμε τον αριθμό των κόμβων που θα κατέχουν αντίγραφα της βάσης αυτής. Column Family: Το αντίστοιχο του table μιας σχεσιακής βάσης δεδομένων. Αποτελείται από εγγραφές και ένα σύνολο στηλών. Row: Κάθε Column Family περιλαμβάνει εγγραφές (rows) όπου κάθε μια ορίζεται μαζί με ένα μοναδικό αναγνωριστικό κλειδί. Κάθε εγγραφή μπορεί να έχει τιμές σε ένα υποσύνολο στηλών του Column Family στο οποίο ανήκει. Column Name: Το πεδίο μιας εγγραφής. Αντιστοιχεί σε μια SQL στήλη στο σχεσιακό μοντέλο. Για να πραγματοποιήσουμε ερωτήματα στη βάση δεδομένων, μπορούμε να συνδεθούμε σε οποιονδήποτε κόμβο στο cluster και να χρησιμοποιήσουμε είτε CQL (Cassandra Query Language), μια γλώσσα ερωτημάτων που μοιάζει πολύ με την κλασσική SQL, είτε CLI (Command Line Interface). Τα αιτήματα για διάβασμα ή εγγραφή δεδομένων μπορούν να πάνε σε οποιοδήποτε κόμβο στο cluster. Όταν ένας πελάτης (client) συνδέεται σε έναν κόμβο για να κάνει ένα ερώτημα, τότε αυτός ο κόμβος λογίζεται ως συνεργάτης (coordinator) της συγκεκριμένης διεργασίας. Ένας coordinator λειτουργεί ως μεσολαβητής, μεταξύ του πελάτη και του κόμβου που έχει τα δεδομένα που έχουν ζητηθεί από το ερώτημα. 56 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

56 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 57

57 ΚΕΦΑΛΑΙΟ 5: H URRICANE 58 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

58 HURRICANE Το Hurricane είναι ένα σύστημα για κατανεμημένη ανάλυση δικτυακής κίνησης, που σκοπό έχει την ανίχνευση όλων των επιθέσεων που αναλύθηκαν στο κεφάλαιο 3. Το κύριο χαρακτηριστικό το συστήματος είναι η ευελιξία που παρουσιάζει, αφού μπορεί να εγκατασταθεί σε οποιοδήποτε cluster υπολογιστών στο cloud, στο grid ή και στο εσωτερικό μας δίκτυο. Ακόμη και οι υπολογιστές των οποίων η κίνηση θα αναλύεται μπορούν να βρίσκονται οπουδήποτε, δημιουργώντας έτσι ένα πλήρως αποκεντρωμένο σύστημα ανίχνευσης παρείσφρησης. Αυτό είναι εφικτό, διότι το σύστημα δεν αναλύει όλη την κίνηση ενός υπολογιστή, αλλά επιλέγει μόνο κάποιες κεφαλίδες πακέτων που είναι απολύτως απαραίτητες για την ανίχνευση των επιθέσεων. Ως εκ τούτου μια καλή σύνδεση δικτύου με ένα ικανοποιητικό εύρος ζώνης αποτελεί επαρκή συνθήκη αποδοτικής χρήσης του συστήματος. Παρόλα αυτά η βέλτιστη λύση, από άποψη απόδοσης, αλλά κυρίως ασφάλειας, είναι η εγκατάσταση του Hurricane σε ένα cluster υπολογιστών που βρίσκονται σε κάποιο υποδίκτυο μας. Για να χρησιμοποιήσουμε το Hurricane εγκαθιστούμε σε όλους τους υπολογιστές που θέλουμε να προστατεύσουμε έναν πελάτη (client) ο οποίος παρακολουθεί όλα τα εισερχόμενα και εξερχόμενα πακέτα και αποστέλλει στο cluster του Hurricane, μέσω δικτύου, κάποιες συγκεκριμένες κεφαλίδες πακέτων. Για να επιτευχθεί αυτό χρησιμοποιείται το Kafka, ένα κατανεμημένο σύστημα διαχείρισης μηνυμάτων βασισμένο στο μοντέλο παραγωγού-καταναλωτή (producer-consumer). Στην προκειμένη περίπτωση όλοι οι υπολογιστές που προστατεύουμε αποτελούν τους παραγωγούς μηνυμάτων, ενώ το κεντρικό σύστημα του Hurricane περιλαμβάνει το σύνολο των καταναλωτών. Το Hurricane λαμβάνει τις κεφαλίδες από όλους τους υπολογιστές και τις διοχετεύει με κατανεμημένο τρόπο στην τοπολογία του στο Storm, όπου πραγματοποιείται κατανεμημένη επεξεργασία της ροής δεδομένων που λαμβάνεται. Το Hurricane πριν επεξεργαστεί την πληροφορία πραγματοποιεί εξισορρόπηση φόρτου (load balancing), αποστέλλοντας τις κεφαλίδες των πακέτων στον λιγότερο φορτωμένο κόμβο. Κατά την κατανεμημένη επεξεργασία της ροής, δημιουργείται προφίλ φυσιολογικής συμπεριφοράς για κάθε έναν από τους υπολογιστές που είναι HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 59

59 συνδεμένοι στο σύστημα, και για κάθε είδος κεφαλίδας που λαμβάνεται. Το προφίλ αυτό ανανεώνεται δυναμικά, με το πέρασμα του χρόνου, για κάθε υπολογιστή, χρησιμοποιώντας την λογική του κυλιόμενου παραθύρου (sliding window). Για την δημιουργία του προφίλ κάθε υπολογιστή χρησιμοποιείται η τεχνική του προσαρμοζόμενου κατωφλίου (adaptive threshold). Ο χρόνος δημιουργίας φυσιολογικής συμπεριφοράς ή διαφορετικά το μέγεθος του κυλιόμενου παραθύρου, αλλά και ο χρόνος ανανέωσης του παραθύρου, είναι παράμετροι που τίθενται εξαρχής από τον χρήστη πριν τρέξει το Hurricane στο cluster. Παράμετροι του συστήματος επίσης αποτελούν και κάποια κατώτατα όρια (thresholds) που αφορούν τις επιθέσεις που ανιχνεύει το Hurricane. Κάθε φορά που ανανεώνεται το παράθυρο ελέγχεται η τρέχουσα συμπεριφορά κάθε υπολογιστή και συγκρίνεται με την αντίστοιχη φυσιολογική συμπεριφορά του. Στην περίπτωση που ξεπεραστεί κάποιο κατώτατο όριο μιας επίθεσης, ενεργοποιείται ο αντίστοιχος συναγερμός, που περιλαμβάνει πληροφορίες όπως το είδος της επίθεσης, τον/τους επιτιθέμενους αλλά και την σφοδρότητα με την οποία εξαπολύθηκε η επίθεση. Όλες οι πληροφορίες αποθηκεύονται επίσης με κατανεμημένο τρόπο στο Cassandra που είναι ένα κατανεμημένο σύστημα διαχείρισης βάσεων δεδομένων. Τέλος το Hurricane περιλαμβάνει και έναν πελάτη που συνδέεται στο κεντρικό σύστημα και παρουσιάζει σε γραφικές παραστάσεις όλες τις απαραίτητες πληροφορίες για την αποτελεσματική παρακολούθηση του δικτύου μας. Όλα τα εκτελέσιμα προγράμματα του Hurricane (Hurricane client, Hurricane topology, Hurricane monitor) είναι γραμμένα στην γλώσσα προγραμματισμού Java. 5.1 ΑΡΧΙΤΕΚΤΟΝΙΚΗ Το Hurricane είναι ένα σύστημα που χρησιμοποιεί μια πληθώρα τεχνολογιών προκειμένου να πραγματοποιήσει ανάλυση κίνησης και ανίχνευση επιθέσεων. Στο πρώτο επίπεδο του συστήματος βρίσκονται οι υπολογιστές που επιθυμούμε να προστατεύσουμε και οι οποίοι τρέχουν έναν πελάτη ο οποίος παρακολουθεί τα εισερχόμενα/εξερχόμενα πακέτα τους. Ο πελάτης απομονώνει μόνο κάποιες συγκεκριμένες κεφαλίδες από κάθε πακέτο και τις αποστέλλει στο κεντρικό σύστημα του Hurricane. Για την παρακολούθηση της κίνηση και την απομόνωση των κεφαλίδων χρησιμοποιείται το JNetPcap [48], μια ανοιχτού κώδικα βιβλιοθήκη γραμμένη σε Java, η οποία πραγματοποιεί ανάλυση πρωτοκόλλων. Για την αποστολή 60 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

60 των κεφαλίδων στο Hurricane χρησιμοποιείται κώδικας που λαμβάνει τον ρόλο ενός παραγωγού του publish-subscribe συστήματος Kafka. Το κεντρικό σύστημα του Hurricane περιλαμβάνει ένα σύνολο υπολογιστών που πραγματοποιούν κατανεμημένη διαχείριση της πληροφορίας που λαμβάνεται με τη βοήθεια του Kafka. Κάθε ένας από τους υπολογιστές που τρέχουν το Kafka ονομάζεται broker και αποτελεί τον μεσολαβητή παραγωγού-καταναλωτή. Κύριο χαρακτηριστικό ενός broker είναι ο αριθμός των κατατμήσεων που περιλαμβάνει (partitions) ο οποίος συνδέεται άρρηκτα με το επίπεδο παραλληλισμού της πληροφορίας που διοχετεύεται στο Storm. Κάθε broker μπορεί ρυθμιστεί να έχει οποιοδήποτε αριθμό κατατμήσεων ανεξάρτητα από τους άλλους brokers. Στο επόμενο επίπεδο του Hurricane βρίσκεται το Storm που πραγματοποιεί κατανεμημένη επεξεργασία της ροής κεφαλίδων πακέτων που λαμβάνει και είναι το επίπεδο που πραγματοποιείται η ανάλυση κίνησης. To Storm εγκαθίσταται σε ένα σύνολο υπολογιστών (οι υπολογιστές μπορεί να είναι οι brokers του Kafka ή άλλοι), εκ των οποίων ένας λαμβάνει τον ρόλο του Nimbus (κύριος κόμβος, master node) ενώ οι υπόλοιποι αποτελούν τους Supervisor του συστήματος. (κόμβους εργάτες, worker nodes). Οι πληροφορίες από το Storm αποθηκεύονται με κατανεμημένο τρόπο σε ένα σύνολο υπολογιστών που τρέχουν το κατανεμημένο σύστημα διαχείρισης βάσεων δεδομένων Cassandra. Σε αντίθεση με το Kafka, όπου μπορούμε να εγκαταστήσουμε έναν broker σε οποιονδήποτε υπολογιστή, οι υπολογιστές που συγκροτούν την κατανεμημένη βάση της Cassandra πρέπει να είναι αυτοί που τρέχουν τους Supervisors (worker nodes) του Storm. Για να δουλέψει το Storm και το Kafka πρέπει πρώτα να εγκατασταθεί το Zookeeper σε έναν (ή περισσότερους) υπολογιστές του cluster, αφού και τα δύο συστήματα χρησιμοποιούν τους μηχανισμούς συγχρονισμού που αυτό παρέχει. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 61

61 Εικόνα 10: Αρχιτεκτονική Hurricane ΠΕΛΑΤΗΣ ΑΝΑΛΥΣΗΣΣ ΠΡΩΤΟΚΟΛΛΩΝ Κάθε υπολογιστής που προστατεύεται από το Hurricane τρέχει έναν πελάτη, ο οποίος παρακολουθεί όλα τα εισερχόμενα και εξερχόμενα πακέτα του. Ο πελάτης αυτός χρησιμοποιεί την βιβλιοθήκη JNetPcap, μιαα βιβλιοθήκη ανάλυσης πρωτοκόλλων, η οποία δίνει την δυνατότητα εξαγωγής οποιασδήποτε πληροφορίας κίνησης από κάθε πακέτο που επεξεργάζεται. Στην περίπτωση του Hurricane client εξάγεται μια σειρά κεφαλίδων από όλα τα πακέτα, οι οποίες ο αποστέλλονται στο κεντρικό σύστημα με την χρήση βιβλιοθηκών παραγωγού Kafka. Όληη η πληροφορία αποστέλλεται κωδικοποιημένη για α να μειωθεί ο όγκος των δεδομένων που αποστέλλονται μέσω δικτύου. Ο Hurricane client λειτουργεί ως εξής: 1) Ελέγχει ποιες είναι οι διαθέσιμες κάρτες δικτύου του υπολογιστή και αποθηκεύει μια λίστα με τις IPP διευθύνσεις τους. 2) Ορίζει τις παραμέτρους του Kafka, όπως μια λίστα που περιλαμβάνει τους brokers του συστήματος, τον εξυπηρέτη που τρέχει το Zookeeper αλλά και το 62 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

62 είδος της κωδικοποίησης που εφαρμόζεται στα δεδομένα που μεταδίδονται από τον παραγωγό στους brokers. 3) Διαβάζει όλα τα IP πακέτα από μια ψευδο-διεπαφή (interface) με το όνομα any από την οποία περνάνε όλα τα εισερχόμενα/εξερχόμενα πακέτα και η οποία βρίσκεται στις περισσότερες διανομές του λειτουργικού συστήματος Linux. Στην περίπτωση που δεν υπάρχει οι χρήστες του Hurricane πρέπει απλώς να την δημιουργήσουν χειροκίνητα για να δουλέψει ο client. Αυτό συμβαίνει διότι η βιβλιοθήκη JNetPcap μπορεί να ελέγχει την ροή πακέτων μόνο από ένα interface ενός υπολογιστή. Ο πελάτης θέτει επίσης NON PROMISCUOUS MODE λειτουργία διότι ενδιαφέρεται να παρακολουθεί μόνο πακέτα που αφορούν τον συγκεκριμένο υπολογιστή στον οποίο τρέχει κάθε φορά. 4) Για κάθε ένα IP πακέτο ελέγχει την IP προορισμού και χρησιμοποιεί την αποθηκευμένη λίστα των IP διευθύνσεων για να καθορίσει εάν πρόκειται για εισερχόμενο ή εξερχόμενο πακέτο. 5) Διαβάζει τις κεφαλίδες των πακέτων και εξάγει πληροφορίες για 2 κατηγορίες πακέτων: TCP και ICMP πακέτων. Στην περίπτωση των ICMP πακέτων εξάγεται πληροφορία μόνο για τα εισερχόμενα πακέτα. Για κάθε ένα από αυτά τα πακέτα δημιουργεί μια εγγραφή με δομή που φαίνεται παρακάτω: Όνομα Κατεύθυνση Πρωτόκολλο Υποκεφαλίδα IP Θύρα IP Θύρα υπολογιστή πηγής πηγής προορισμού προορισμού Πίνακας 5: Δομή εγγραφής πακέτου Στην περίπτωση του TCP, η υποκεφαλίδα περιλαμβάνει τα ψηφία ελέγχου που είναι ενεργοποιημένα στο κάθε πακέτο (SYN, ACK, RST, FIN, PSH, URG). Επίσης στην περίπτωση που υπάρχει HTTP κεφαλίδα με POST ή GET υποκεφαλίδα, προστίθεται και αυτή στο πεδίο της υποκεφαλίδας της εγγραφής του πακέτου. Για τα ICMP πακέτα το πεδίο της υποκεφαλίδας περιλαμβάνει δύο δυνατές τιμές: ECHO για ECHO ICMP πακέτα και NONE για όλα τα υπόλοιπα. 6) Συσσωρεύει μια δέσμη εγγραφών και κάθε 200 milliseconds την αποστέλλει στους Kafka brokers του κεντρικού συστήματος του Hurricane. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 63

63 5.3 ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ Η ευελιξία που παρουσιάζει το Hurricane οφείλεται στο γεγονός του ότι είναι πλήρως παραμετροποιήσημο, δίνοντας την δυνατότητα στον διαχειριστή να ρυθμίσει με οποιοδήποτε τρόπο επιθυμεί όλα τα συστήματα που συνεργάζονται για το Hurricane (Kafka, Storm, Cassandra). Αφού εγκαταστήσουμε τα συστήματα αυτά σε ένα cluster υπολογιστών το μόνο που χρειάζεται είναι να τρέξουμε το εκτελέσιμο πρόγραμμα του Hurricane στον Nimbus του Storm και να ενημερώσουμε το σύστημα για τους brokers του Kafka, τους Supervisors του Storm (που συνεπάγεται και τους εξυπηρέτες της Cassandra βάσης), και τα κατώτατα όρια που αφορούν την ανάλυση κίνησης και την ανίχνευση επιθέσεων. Μόλις τρέξουμε το εκτελέσιμο του Hurricane εμφανίζεται ένα παράθυρο όπου εισάγουμε όλες τις απαραίτητες παραμέτρους. Αρχικά θέτουμε το όνομα της τοπολογίας, το οποίο από προεπιλογή είναι Hurricane. Στη συνέχεια στο πλαίσιο Kafka Servers ενημερώνουμε το σύστημα για τους brokers του Kafka, θέτοντας στο πεδίο Kafka Server το όνομα ή την IP του broker-υπολογιστή και στο πεδίο Port την θύρα στην οποία τρέχει η υπηρεσία. Μπορούμε να εισάγουμε όσους brokers θέλουμε όπως επίσης μπορούμε να διαγράψουμε έναν από αυτούς ή και όλους. Στη συνέχεια εισάγουμε στο πεδίο # of Kafka Partitions Per Server τον αριθμό των κατατμήσεων που περιλαμβάνει κάθε broker. Όλοι οι brokers πρέπει να περιλαμβάνουν τον ίδιο αριθμό κατατμήσεων. Όλες οι παράμετροι που ορίζουμε στο Hurricane πρέπει να εναρμονίζονται με τις ρυθμίσεις του αντίστοιχου υπολογιστή που λαμβάνει τον ρόλο του Kafka broker. Στη συνέχεια εισάγουμε όλες τις παραμέτρους που αφορούν το κατανεμημένο σύστημα επεξεργασίας. Πιο συγκεκριμένα θέτουμε στο πεδίο # of Storm Servers τον αριθμό των εξυπηρετών που εργάζονται ως Supervisors, στο πεδίο # of Storm Workers Per Server τον αριθμό των workers που περιλαμβάνει ο κάθε κόμβος εργάτης και στο πεδίο # of Storm Threads Per Worker τον αριθμό των executors/threads που τρέχει κάθε worker. Όλες οι παράμετροι πρέπει να είναι εναρμονισμένοι με τις αντίστοιχες ρυθμίσεις του Storm σε κάθε υπολογιστή όπως επίσης όλοι οι Supervisor υπολογιστές πρέπει να έχουν απαραίτητα τις ίδιες ρυθμίσεις για τις δύο τελευταίες παραμέτρους. 64 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

64 Τέλος εισάγουμε όλες τις παραμέτρους που αφορούν το Hurricane και την ανάλυση κίνησης που πραγματοποιεί. Αρχικά ορίζουμε το χρονικό χ πλαίσιο ή με άλλα λόγια το μέγεθος του κυλιόμενου παραθύρου (sliding window) μέσαα στο οποίοο θα δημιουργείται και θα ανανεώνεται το προφίλ φυσιολογικής συμπεριφοράς κάθε υπολογιστή. Στη συνέχεια ορίζουμε κάθε πότε επιθυμούμε να προχωράειι το κυλιόμενο παράθυρο. Κατά το διάστημα αυτό πραγματοποιείται έλεγχος της τρέχουσας συμπεριφοράς, ώστε να ελεγχθεί αν έχει πραγματοποιηθεί κάποια επίθεση, αλλά και ανανέωση του προφίλ συμπεριφοράς κάθε προστατευόμενου υπολογιστή. Επίσης θέτουμε τα κατώτατα όρια κάθε επίθεσης, τα οποία χρησιμοποιούνται στην τεχνική του προσαρμοζόμενου κατωφλίου (adaptivee threshold) κατά την ενεργοποίηση των αντίστοιχων συναγερμών. Με το πάτημα του κουμπιού Submit ξεκινάει να τρέχει η τοπολογία τουυ Hurricane στο Storm. Σε όλαα τα πεδία που αναλύθηκαν πραγματοποιείται έλεγχος εγκυρότητας των εισαγόμενων τιμών ΤΟΠΟΛΟΓΙΑ Εικόνα 11: Παραμετροποίηση Hurricane Η τοπολογία του Hurricane στο Storm αποτελείται ι από 1 Spout και 8 Bolts. Έχοντας γνώση του αριθμού των διαθέσιμων executors όλου του cluster καθορίζεται HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 65

65 το επίπεδο παραλληλισμού κάθε ενός στοιχείου, με άλλα λόγια ορίζεται ο αριθμός των executors που θα τρέχουν παράλληλα και θα αναλαμβάνουν tasks για το συγκεκριμένο στοιχείο. Ο αριθμός των διαθέσιμων executors στο cluster ορίζεται ως εξής: Executors = Storm Servers * Workers Per Server * Executors Per Worker To Spout της τοπολογίας ονομάζεται KafkaSpout και αποτελείται από ένα σύνολο executors οι οποίοι παραλαμβάνουν τη ροή κεφαλίδων με κατανεμημένο τρόπο, αναλαμβάνοντας τον ρόλο των καταναλωτών του Kafka. Το επίπεδο παραλληλισμού του KafkaSpout ορίζεται ως το άθροισμα των κατατμήσεων όλων των brokers: KafkaSpout executors = Σ (Broker i Partitions) Αυτό πρακτικά σημαίνει ότι από το σύνολο των διαθέσιμων executors του cluster ο συγκεκριμένος αριθμός executors θα αφοσιωθεί στην εκτέλεση tasks για το KafkaSpout. Παράλληλα με τους executor που ορίζουμε για το Spout, εργάζεται από προεπιλογή και ένας επιπλέον executor, με όνομα Acker, ο οποίος πραγματοποιεί επιβεβαίωση των εγγραφών (tuples) που ελήφθησαν επιτυχώς από το KafkaSpout. Το πρώτο Bolt ονομάζεται CountBolt και πραγματοποιεί αυτό που υποδηλώνει και το όνομα του: Καταμέτρηση κεφαλίδων. Η αποστολή των κεφαλίδων από το KafkaSpout στο CountBolt γίνεται με Shuffle grouping ομαδοποίηση ροής γεγονός που εγγυάται την εξισορρόπηση φόρτου της εισερχόμενης πληροφορίας. Η εξισορρόπηση φόρτου είναι πολύ σημαντική σε αυτό το επίπεδο διότι μας ενδιαφέρει οι executors να επεξεργάζονται τον ίδιο όγκο δεδομένων, ανεξάρτητα από το ρυθμό που αποστέλλονται από κάθε παραγωγό του Kafka. Με λίγα λόγια, μία έκρηξη παραγωγής και αποστολής κεφαλίδων πακέτων από έναν υπολογιστή δεν θα επηρεάσει την απόδοση ενός ή περισσότερων κόμβων του Storm, αφού όλοι οι κόμβοι θα επεξεργαστούν την ίδια ποσότητα πληροφορίας με κατανεμημένο τρόπο. Το CountBolt λαμβάνει ως είσοδο το χρονικό διάστημα ελέγχου τρέχουσας συμπεριφοράς, τιμή που τέθηκε κατά την παραμετροποίηση, και πραγματοποιεί καταμέτρηση για το συγκεκριμένο χρονικό διάστημα. Μετά το πέρας του διαστήματος αυτού, αποστέλλει τις μετρήσεις στο επόμενο bolt και ξεκινάει εκ νέου καταμέτρηση. Το επίπεδο παραλληλισμού του συγκεκριμένου στοιχείου θα παρουσιαστεί στο τέλος του κεφαλαίου. 66 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

66 Το δεύτερο Bolt ονομάζεται AggregateBolt και πραγματοποιεί συνάθροιση των ενδιάμεσων αποτελεσμάτων που παρήγαγαν οι executors του CountBolt. Το επίπεδο παραλληλισμού του είναι 1 που σημαίνει ότι μόνο ένας executor τρέχει για το συγκεκριμένο στοιχείο. Ο λόγος που δεν χρειάζεται να παραλληλίσουμε το συγκεκριμένο στοιχείο είναι ότι πραγματοποιεί απλά την πράξη της πρόσθεσης των έτοιμων καταμετρήσεων που απέστειλαν οι executors του CountBolt, άρα μια πράξη τόσων στοιχείων όσοι οι executors του CountBolt. Το τρίτο κατά σειρά Bolt είναι το DetectionBolt και αποτελεί την ραχοκοκαλιά του Hurricane. Το Bolt αυτό είναι υπεύθυνο για την διαχείριση των προφίλ των υπολογιστών που είναι συνδεμένοι στο Hurricane και την ανάλυση της τρέχουσας συμπεριφοράς τους. Έχοντας γνώση των προκαθορισμένων κατώτατων ορίων κάθε επίθεσης, εφαρμόζει αλγορίθμους ανίχνευσης παρείσφρησης και ενεργοποιεί τους κατάλληλους συναγερμούς όποτε αυτό απαιτείται. Στην τοπολογία του Hurricane δημιουργούνται 3 είδη DetectionBolt κάθε ένα από τα οποία εφαρμόζει αλγορίθμους ανίχνευσης μιας συγκεκριμένης ομάδας επιθέσεων. Το επίπεδο παραλληλισμού είναι επίσης 1 για κάθε bolt διότι τα Detection Bolts δεν επεξεργάζονται σε μεγάλο βαθμό δεδομένα παρά μόνο αποθηκεύουν προσωρινά τα προφίλ των υπολογιστών και πραγματοποιούν μια απλή πράξη σύγκρισης φυσιολογικής και τρέχουσας συμπεριφοράς. Το τελευταίο Bolt είναι το CassandraBolt το οποίο πραγματοποιεί αποθήκευση των προφίλ συμπεριφοράς (φυσιολογικής και τρέχουσα συμπεριφορά) για όλα τα είδη των κεφαλίδων που σχετίζονται με τις αντίστοιχες επιθέσεις, αλλά και αναλυτικές πληροφορίες για τους συναγερμούς που ενεργοποιήθηκαν. Στην τοπολογία μας δημιουργούνται 3 Cassandra bolts τα οποία λαμβάνουν αποτελέσματα από τα αντίστοιχα Detection Bolts και τα αποθηκεύουν σε ξεχωριστά Column Families στη βάση δεδομένων. Επίσης το επίπεδο παραλληλισμού είναι 1 για κάθε Cassandra Bolt, αφού το μόνο πράγμα που κάνουν τα συγκεκριμένα bolts είναι να αποθηκεύουν στη βάση δεδομένων μια εγγραφή για κάθε προστατευόμενο υπολογιστή. Ο αριθμός των executors που τρέχουν και εργάζονται για το πιο απαιτητικό, από άποψη επεξεργασίας δεδομένων Bolt, το CountBolt ορίζεται ως: HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 67

67 CountBolt executors = Spout executors 1 (Acker) 1 (AggregateBolt) 1*3 (DetectionBolts) 1*3 (CassandraBolts) Όπως είδαμε ο αριθμός των executors σε ένα Stormm Cluster είναι εκ φύσεων πολύ μεγάλος και ως εκ τούτου, με βάση την παραπάνω σχέση, η συντριπτική πλειοψηφία των executorss του clusterr θα αναλαμβάνει taskss του CountBolt. Μία σύνοψη όλων των παραπάνω φαίνονται στις αναλυτικές πληροφορίεςς που δίνει το Storm μέσω του User Interface του. Όπως παρατηρούμε, γιαα την τοπολογία Hurricane ο αριθμός των workers είναι 32, ο αριθμός των executors είναι 128, το KafkaSpout περιλαμβάνειι συνολικά 16 executors (Kafka Consumers) ενώ ο μέσος χρόνος επεξεργασίας μιαςς εγγραφής από το Storm ή με άλλα λόγια ο χρόνος από τη στιγμή που μια εγγραφή παραδίδεται ι από το Kafka στο Storm μέχρι να επεξεργαστεί πλήρως από το Storm είναι μόλις 42 millisecond (σε παράθυρα δείγματος 10 λεπτών, 3 ωρών, 1 ημέρας και όλου του χρόνου εκτέλεσης της τοπολογίας, εδώ περίπου μια 10 ημέρες) δείγμα του ότιι το Hurricane είναι ένα πάρα πολύ αποδοτικό σύστημα και κατάλληλο για ανάλυση κίνησης σε πραγματικό χρόνο. Όπως φαίνεται η συντριπτική πλειοψηφία των executorss δουλεύουν για το Count Bolt ενώ επιτυγχάνεται απόλυτη εξισορρόπηση φόρτου στο στοιχείο αυτό. Εικόνα 12: Hurricane topology Storm UI 68 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

68 Εικόνα 13: Count Bolt load balancing Storm S UI ΑΝΙΧΝΕΥΣΗ ΕΠΙΘΕΣ ΕΩΝ Το Hurricane υλοποιεί αλγορίθμους ανίχνευσης 3 παρουσιάστηκαν στο κεφάλαιο 2. Αυτές είναι κατά σειρά: ομάδων επιθέσεων, όπως Επιθέσεις άρνησηςς παροχής υπηρεσιών (Flood Attacks) Aνίχνευση δικτυακών θυρών (Port Scans) Μετάδοση σκουληκιών (Worms) Για κάθε ομάδα επιθέσεωνν έχει υλοποιηθεί έναα bolt πουυ περιλαμβάνει αλγορίθμους ανίχνευσης όλων των επιθέσεων που απαρτίζουν την ομάδα. Τα bolts αυτά είναι κατά σειρά τα: FloodDetectionBolt, PortScanDetectionBolt και WormDetectionBolt. Όλα τα bolts χρησιμοποιούν τους μηχανισμούς διαχείρισης προφίλ ενός μητρικού bolt, του DetectionBolt και διαφοροποιούνταιι στο είδοςς της πληροφορίας που αποθηκεύουν και τους αλγορίθμους ανίχνευσης που εφαρμόζουν για να αντιμετωπίσουν την αντίστοιχηη ομάδα επιθέσεων Τεχνική κυλιόμενου παράθυρουυ Για να πραγματοποιηθεί η διαχείριση προφίλ συμπεριφοράς των προστατευόμενων υπολογιστών τοο DetectionBolt χρησιμοποιεί ένα κυλιόμενο παράθυρο, μεγέθους ίσου με το διάστημα ελέγχου της φυσιολογικήςς συμπεριφοράς HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 69

69 συν το διάστημα ελέγχου της τρέχουσας συμπεριφοράς. Το κυλιόμενο παράθυρο αυτό αποτελείται από υποδοχές (slots) μεγέθους όσο το διάστημα της τρέχουσας συμπεριφοράς. Αυτό συνεπάγεται ότι ο αριθμός των υποδοχών του παραθύρου είναι ίσος με πηλίκο της διαίρεσης του μεγέθους του δια τηνν τρέχουσαα συμπεριφορά. Επιγραμματικά: Μέγεθος κυλιόμενου παραθύρου = Διάστημα φυσιολογικής συμπεριφοράς + Διάστημα Δ τρέχουσας συμπεριφοράς Μέγεθος υποδοχής = Διάστημα τρέχουσας συμπεριφοράς Αριθμός υποδοχών = Μέγεθος κυλιόμενου παραθύρου / Διάστημα τρέχουσας συμπεριφοράς Εικόνα 14: Κυλιόμενο παράθυρο [ 49] Κάθε υποδοχή περιλαμβάνε ει καταμετρήσεις σχετικές με το είδος του DetectionBolt που υλοποιείται, ανάλογα δηλαδή με το είδος των επιθέσεων που ανιχνεύεται. Για παράδειγμα το FloodDetectionBolt ανιχνεύει μεταξύ άλλων επιθέσεις τύπου SYN Flood και γι αυτό το λόγο αποθηκεύει σε κάθε υποδοχή μετρήσεις με τα SYN πακέτα κάθε υπολογιστή που είναι συνδεμένος σ στο Hurricane. Από την άλλη μεριά το PortScanDet tectionbolt αποθηκεύει μεταξύ άλλων μετρήσεις FIN/PSH/URG πακέτων για αντιμετώπιση Xmas Scan ανίχνευσης θυρών, πράγμα που δεν συμβαίνει στην προηγούμεν νη περίπτωση, και ως εκ ε τούτου οι υποδοχέςς του FloodDetectionBolt δεν περιλαμβάνουν αυτού του είδους τις καταμετρήσεις. 70 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

70 Εικόνα 15: Δομή κυλιόμενου παραθύρου [49] Τα βήματα που ακολουθούνται στηνν υλοποίησηη του κυλιόμενου παραθύρου είναι τα εξής: 1. Λήψη από το AggregateBolt όλων των καταμετρήσεων κεφαλίδων πακέτων για κάθε υπολογιστή που είναι συνδεμένος στο Hurricane (καταμετρήσειςς που αφορούν το διάστημα της τρέχουσας συμπεριφοράς) ). 2. Αποθήκευση των μετρήσεωνν στη τρέχουσα υποδοχή (υποδοχή τρέχουσας συμπεριφοράς). 3. Εξαγωγή μέσων όρων μετρήσεων από τις υποδοχές φυσιολογικής συμπεριφοράς (δηλαδή από όλες τις υποδοχές εκτός από τηνν τρέχουσα) ) και εξαγωγή των αντίστοιχων τιμών από την υποδοχή υ της τρέχουσας συμπεριφοράς. 4. Μετακίνηση παραθύρου προςς τα εμπρός, διαγράφοντας παράλληλα όλες τις μετρήσεις της τελευταίας υποδοχής του παραθύρου. 5. Παραλαβή των μετρήσεων και εφαρμογή αλγορίθμωνν συγκρίσεως φυσιολογικής και τρέχουσαςς συμπεριφοράς, ανάλογα με τιςς επιθέσεις που ανιχνεύονται (Flood, Port Scan, Worm), γιαα κάθε προστατευόμενο υπολογιστή. 6. Στην περίπτωση που ενεργοποιηθεί κάποιος συναγερμός διαγράφουμε την αποθηκευμένη τρέχουσα συμπεριφορά και αντικαθιστούμε τιςς μετρήσειςς της υποδοχής με τον μέσο όρο των μετρήσεων όλων των άλλων υποδοχών ώστε να παραμείνει η φυσιολογική συμπεριφορά ανέπαφη. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 71

71 Εικόνα 16: Υλοποίηση κυλιόμενου παραθύρου [49] Τεχνική προσαρμοζόμενου κατωφλίου Κάθε ένα από τα 3 bolts ανίχνευσης επιθέσεων αποθηκεύει α στο κυλιόμενο παράθυρο διαφορετικές κεφαλίδες πακέτων και χρησιμοποιεί τις μετρήσεις για να εφαρμόσει αλγορίθμους ανίχνευσης όλων των επιθέσεων τηςς ομάδας που αντιπροσωπεύει. Όλοι οιι αλγόριθμοι ανίχνευσης χρησιμοποιούν την τεχνική του προσαρμοζόμενου κατωφλίου (adaptive threshold) [27] με την οποία γίνεται έλεγχος εάν η τρέχουσα συμπεριφορά έχει ξεπεράσει τα κατώταταα όρια που έχουν τεθείί για την συγκεκριμένη ομάδα επιθέσεων. Τα κατώτατα όρια ό είναι δυναμικά και καθορίζονται από την τιμή που δόθηκε κατά την αρχικοποίηση του Hurricane καιι την φυσιολογική συμπεριφορά. Αν υποθέσουμε ότι το Xn αντιπροσωπεύει την καταμέτρηση μιας συγκεκριμένης κεφαλίδας από πακέτα για το n-οστόό διάστημαα και το Mn αντιπροσωπεύει τον μέσο όρο των αντίστοιχωνν πακέτων για γ το διάστημα 0 - (n-1), τότε: Εάν Xn>= (a + 1) * Mn, τότε ενεργοποιείται συναγερμός την χρονική στιγμή n όπου a>0 είναι η παράμετρος που υποδεικνύει το ποσοστό πάνω απόό τον μέσο όρο των μετρήσεων στο διάστημα n-1, από το οποίο ορίζουμε ύπαρξη μη ομαλής συμπεριφοράς. 72 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

72 Κάθε υπολογιστής έχει διαφορετικές τιμές φυσιολογικής συμπεριφοράς, για κάθε είδος πακέτων, και ως εκ τούτου διαφορετικά κατώτατα όρια τα οποία ανανεώνονται δυναμικά με τον χρόνο. Κάθε φορά που προχωράει το κυλιόμενο παράθυρο και αποθηκεύεται η τρέχουσα συμπεριφορά (μετρήσεις κεφαλίδων πακέτων) εφαρμόζεται η παραπάνω τεχνική για κάθε προστατευόμενο υπολογιστή και για κάθε επίθεση που υποστηρίζει το Hurricane. Σε κάθε επίθεση χρησιμοποιούνται διαφορετικές μετρήσεις άρα κάθε συναγερμός έχει διαφορετικό κατώτατο όριο από κάποιον άλλον κάποιας άλλης επίθεσης για τον ίδιο υπολογιστή. Στην περίπτωση που ενεργοποιηθεί κάποιος συναγερμός επιστρέφεται μια λίστα με όλους τους επιτιθέμενους καθώς και η σφοδρότητα με την οποία εξαπέλυσε κάθε ένας την επίθεση ή με άλλα λόγια το ποσοστό πάνω από το κατώτατο όριο της φυσιολογικής συμπεριφοράς. Όλα τα DetectionBolts αποστέλλουν στα αντίστοιχα CassandraBolts για κάθε υπολογιστή μια χρονοσφραγίδα, μετρήσεις φυσιολογικής συμπεριφοράς και μετρήσεις τρέχουσας συμπεριφοράς, για αποθήκευση στην βάση δεδομένων. Στην περίπτωση ενεργοποίησης ενός ή περισσότερων συναγερμών αποστέλλεται επίσης όλη η πληροφορία που προσδιορίζει τον συναγερμό αυτόν. 5.6 ΠΑΡΑΚΟΛΟΥΘΗΣΗ ΔΙΚΤΥΟΥ Οι διαχειριστές του συστήματος Hurricane μπορούν να χρησιμοποιήσουν ένα πελάτη παρακολούθησης (Hurricane Monitor) που συνδέεται στο κεντρικό σύστημα και παρέχει υπό μορφή γραφημάτων όλες τις απαραίτητες πληροφορίες για την αποτελεσματική παρακολούθηση όλων των προστατευόμενων υπολογιστών. Ο πελάτης αυτός μπορεί να εγκατασταθεί και να χρησιμοποιείται από οποιοδήποτε υπολογιστή εντός ή εκτός του δικτύου μας. Το Hurricane Monitor κρατάει μια ανοιχτή σύνδεση με την βάση δεδομένων του Cassandra και όποτε γίνει κάποια ανανέωση στην κατάσταση των Column Families του Hurricane, ανανεώνει όλες τις γραφικές παραστάσεις. Για την σύνδεση στην βάση δεδομένων χρησιμοποιείται ένας jdbc client, κατάλληλος για σύνδεση με την Cassandra, ενώ η απεικόνιση της λαμβανόμενης πληροφορίας σε γραφήματα γίνεται με την βοήθεια του JFreeChart[50]. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 73

73 Το Hurricane Monitor απεικονίζει στο αριστερό πλαίσιο του όλους τους υπολογιστές που είναι συνδεμένοι στο σύστημα ενώ ε στο δεξιό πλαίσιο περιλαμβάνονται γραφικές παραστάσεις κίνησης για όλες τις επιθέσεις που υποστηρίζει το Hurricane. Από προεπιλογή η πληροφορία που απεικονίζεται στις γραφικές παραστάσεις αφορά όλουςς του συνδεμένους στο Hurricane υπολογιστές όμως μπορούμε να φιλτράρουμε τα γραφήματα και να καθορίσουμε ποιους υπολογιστές θέλουμε να βλέπουμε στις γραφικές παραστάσεις ενεργοποιώντας/απενεργοποιώντας έναν η περισσότερους από αυτούς. To δεξιό πλαίσιο του Monitor περιλαμβάνει 4 καρτέλες: μια καρτέλαα για κάθε μια από τις τρεις ομάδες επιθέσεων που αντιμετωπίζει το Hurricane (Flood, Port P Scan, Worms) καιι μια καρτέλα που καταγράφει όλους τους συναγερμούς που έχουν ενεργοποιηθεί, λειτουργώντας με αυτόν τον τρόπο ως αρχείο καταγραφής ς (log file).. Κάθε καρτέλα περιλαμβάνει γραφήματαα τα οποίαα απεικονίζουν την κίνηση κ τωνν πακέτων που σχετίζονται με τις επιθέσεις της εκάστωτε ομάδα επιθέσεων. Η πρώτη καρτέλα παρουσιάζει ι την κίνησηη των πακέτων που σχετίζονται με τις επιθέσεις τύπου πλημμύρας (Flood Attacks) και περιλαμβάνειει συνολικά 4 γραφήματα: 1. TCP SYN Flood 2. ICMPP Flood 3. HTTP GET Flood 4. HTTPP POST Flood Εικόνα 17: Flood Attacks tab Η δεύτερη καρτέλα περιλαμβάνει γραφήματα που απεικονίζουν την κίνηση των πακέτων για απόπειρες ανίχνευσης δικτυακών θυρών (Port Scan). Η καρτέλα αυτή 74 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

74 αποτελείται από 5 γραφήματα: 1. TCP Stealth/Connect Scan 2. TCP FIN Scan 3. Xmas Scan 4. TCP ACK Scan 5. TCP Maimon Scan. TCP Εικόναα 18: Port Scan tab Η τρίτη κατά σειρά καρτέλα περιλαμβάνει ένα γράφημα το οποίο απεικονίζει την κίνηση των πακέτων που σχετίζονται με την ανίχνευση σκουληκιών στους προστατευόμενους υπολογιστές. Εικόνα 19: Worm tab Στην τελευταία καρτέλαα καταγράφονται όλες οι επιθέσεις που εξαπολύθηκαν εναντίον του πληροφοριακού μας συστήματος. Κάθε καταγεγραμμένος συναγερμός HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 75

75 περιλαμβάνει πληροφορίες όπως ημερομηνία/ώρα επίθεσης, είδος επίθεσης, υπολογιστή ή υπολογιστές που δέχτηκαν την επίθεση, σφοδρότητα επίθεσης, επιτιθέμενοι και σφοδρότητα επίθεσης από κάθε επιτιθέμενο ξεχωριστά. Εικόνα 20: Alert tab 76 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

76 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 77

77 ΚΕΦΑΛΑΙΟ 6: Π ΕΙΡΑΜΑΤΑ 78 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

78 ΠΕΙΡΑΜΑΤΑ 6.1 ΕΙΣΑΓΩΓΗ Στην παρούσα εργασία το Hurricane εγκαταστάθηκε σε ένα cluster 5 υπολογιστών στο cloud του okeanos [51] για να πραγματοποιηθούν τα πειράματα μας. Οι υπολογιστές αυτοί ανήκουν στο υποδίκτυο /24 (Olympus) και τρέχουν όλοι λειτουργικό σύστημα Linux Debian 7.0 (Wheezy). Κάθε ένας αποτελείται από 4 CPUs και 4 Giga RAM. Οι υπολογιστές αυτοί είναι κατά σειρά οι: Zeus, Hades, Poseidon, Mars, Hera. Για το Kafka εργάζονται ως brokers όλοι οι υπολογιστές εκτός του Zeus. Ο λόγος που εγκαταστήσαμε το Kafka σε τόσους υπολογιστές είναι γιατί όσο περισσότερους brokers έχει σε ένα σύστημα τόσο μεγαλύτερο επίπεδο παραλληλισμού μπορεί να τεθεί στους καταναλωτές του Storm, το οποίο συνεπάγεται μεγαλύτερο επίπεδο παραλληλισμού επεξεργασίας πληροφορίας. Στο Storm ο Zeus αναλαμβάνει μόνο τον ρόλο του Nimbus ενώ οι υπόλοιποι υπολογιστές λειτουργούν ως Supervisors. Ο Nimbus στο Storm είναι ο κόμβος που επιβαρύνεται περισσότερο από κάθε άλλο κόμβο για την διαχείριση των δεδομένων και τον συντονισμό των Supervisors και ως εκ τούτου έπρεπε να αποφευχθεί η προσθήκη ενός παραπάνω ρόλου στον Zeus, πλην αυτού. Τέλος η βάση δεδομένων Cassandra τρέχει στους υπολογιστές που λειτουργούν ως Supervisor του συστήματος, αφού όπως είπαμε οι συνιστώσες (instances) της Cassandra πρέπει να τρέχουν στους υπολογιστές που λειτουργούν ως Supervisors του Storm. Name Host Local IP Kafka Storm Cassandra Zeus snf Nimbus - Hades snf Broker Supervisor Instance Poseidon snf Broker Supervisor Instance Mars snf Broker Supervisor Instance Hera snf Broker Supervisor Instance Πίνακας 6: Υπολογιστές Hurricane HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 79

79 Οι υπολογιστές που είναι συνδεμένοι στο Hurricane και των οποίων η κίνηση αναλύεται, με σκοπό την ανίχνευση επιθέσεων, βρίσκονται σε 3 διαφορετικές τοποθεσίες. Από το υποδίκτυο που έχει εγκατασταθεί το Storm αναλύεται η κίνηση του Zeus. Σε ένα άλλο υποδίκτυο στο okeanos, το /24 (Olympus2) βρίσκονται 2 ακόμη υπολογιστές, η Demetra και η Aphrodite, οι οποίοι τρέχουν επίσης Linux Debian 7.0 (Wheezy) και οι οποίοι είναι συνδεμένοι στο Hurricane για να αναλυθεί η κίνηση τους. Τέλος από ένα άλλο δίκτυο, εκτός cloud, συνδέεται στο Hurricane και ένας ακόμη υπολογιστής, ο Stavros που τρέχει το ίδιο λειτουργικό σύστημα. Name Host Local IP Zeus snf Demetra snf Aphrodite snf Stavros stavros - Πίνακας 7: Προστατευόμενοι υπολογιστές 6.2 ΠΑΡΑΜΕΤΡΟΠΟΙΗΣΗ Σε πρώτη φάση εγκαταστήσαμε και τρέξαμε τον Hurricane Client σε όλους τους υπολογιστές που θέλαμε να προστατεύσουμε. Στη συνέχεια εκκινήσαμε την τοπολογία του Hurricane όπου αρχικά αφήσαμε στην προεπιλεγμένη τιμή την ονομασία της τοπολογίας και ορίσαμε τους brokers του Kafka. Κάθε Kafka Server ορίστηκε να έχει 4 Partitions, ρύθμιση που τέθηκε και στο configuration file του Kafka σε κάθε υπολογιστή-broker ξεχωριστά. Στη συνέχεια ορίσαμε τον αριθμό των Supervisor του Storm στο 4, τον αριθμό των workers για κάθε έναν από αυτούς στο 8 και τον αριθμό των threads που θα τρέχουν παράλληλα σε κάθε worker στο 4. Οι δυο τελευταίες ρυθμίσεις επίσης τέθηκαν στο configuration file του Storm σε κάθε υπολογιστή-supervisor ξεχωριστά. Οι τιμές αυτές δεν τέθηκαν τυχαία αλλά με βάση τον αριθμό των επεξεργαστών που έχει κάθε Supervisor υπολογιστής (4 CPUs). Ως εκ τούτου κάθε υπολογιστής έχει 32 executors/threads που τρέχουν στους 4 επεξεργαστές, ενώ στο σύνολο τρέχουν 128 executors/threads σε όλο το cluster μας. 80 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

80 Στο επόμενο βήμα θέσαμε το χρονικό πλαίσιο πουυ θέλαμε ναα δημιουργηθεί προφίλ φυσιολογικής συμπεριφορ ράς (4 ώρες) για τους προστατευόμενους υπολογιστές και την χρονική διάρκεια ελέγχου της τρέχουσας συμπεριφοράς (κάθε 1 λεπτό). Τέλος θέσαμε τα κατώτατα όρια για την εφαρμογή των αλγορίθμων ανίχνευσης των 3 ομάδων επιθέσεων. Οι τιμές αντικατοπτρίζουν το ποσοστό πάνω από την φυσιολογική συμπεριφορά από το οποίο θα ενεργοποιηθείί ο αντίστοιχος συναγερμός. Η επιλογή των τιμώνν γίνεται με βάση τηη γνώση της γενικότερης συμπεριφοράς που αναμένουμε να έχουν οι υπολογιστές που προστατεύουμε καιι την ανοχή που δείχνουμε σε κάποια μικρής κλίμακας επίθεση. Θέλει Θ ιδιαίτερη προσοχή η επιλογή των τιμών αυτών ώστε να κρατήσουμε σεε χαμηλό επίπεδο τους λανθασμένους θετικούς συναγερμούςς (συναγερμός χωρίς να υφίσταται επίθεση, false f positive alarm) και τους αρνητικούς συναγερμούς (μη ενεργοποίηση συναγερμού σε επίθεση, false negative alarm). Εικόνα 21: Παραμετροποίηση Hurricane HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 81

81 6.3 ΑΝΙΧΝΕΥΣΗ FLOOD ΕΠΙΘΕΣΕΩΝ Για να πραγματοποιήσουμε επιθέσεις τύπου Flood χρησιμοποιήσαμε το hping3, ένα εργαλείο ασφάλειας που δουλεύει μέσω γραμμής εντολών και το οποίο χρησιμοποιείται για την παραγωγή/ανάλυση TCP/IP πακέτων [52]. Μελετώντας διάφορους τρόπους εφαρμογής επιθέσεων [53] εφαρμόσαμε σε πρώτη φάση επιθέσεις τύπου Denial Of Service: SYN Flood και ICMP Flood. Και στις δύο περιπτώσεις οι επιτιθέμενοι υπολογιστές ήταν οι stavros, Hades και Poseidon ενώ ο υπολογιστής θύμα ήταν η Aphrodite. Στην πρώτη εικόνα παρουσιάζεται η μεταβολή του λόγου των SYN/ACK πακέτων κατά τη διάρκεια της φυσιολογικής συμπεριφοράς, ενώ στην δεύτερη εικόνα φαίνεται η αντίστοιχη μεταβολή του λόγου μετά από την επίθεση. Οι επιθέσεις πραγματοποιήθηκαν αρκετά πριν ολοκληρωθεί η δημιουργία ολόκληρου του προφίλ συμπεριφοράς (4 ώρες) και γι αυτό το λόγο η μεταβολή του μέσου όρου των τιμών από την μια στιγμή στην άλλη αλλάζει σχετικά εύκολα. Υπό φυσιολογικές συνθήκες η μεταβολή του μέσου όρου των τιμών θα είναι παρά πολύ μικρή αλλά σκοπός μας ήταν να δείξουμε ότι ακόμα και σε ακραίες περιπτώσεις (εκκίνηση επίθεσης στην μέση του τρέχοντος ελέγχου, ενώ ακόμη και τα προφίλ συμπεριφοράς δεν έχουν ολοκληρωθεί) η τιμή του κατώτατου ορίου που θέσαμε είναι πολύ καλή (500% αύξηση). Πριν την επίθεση η αναλογία των SYN πακέτων προς τα αντίστοιχα ACK στον υπολογιστή Aphrodite (snf ) ήταν στο Η επίθεση εκκίνησε μερικά δευτερόλεπτα πριν πραγματοποιηθεί ο πρώτος επερχόμενος έλεγχος μη ομαλής συμπεριφοράς με αποτέλεσμα μερικά SYN και ACK πακέτα που σχετίζονταν με την επίθεση να καταγραφούν σαν μέρος ομαλής συμπεριφοράς, κατά τον πρώτο έλεγχο, αφού δεν ξεπεράστηκε το αντίστοιχο κατώτατο όριο την δεδομένη χρονική στιγμή. Αυτό είχε σαν αποτέλεσμα την μεταβολή της αναλογίας SYN/ACK, δηλαδή της τιμής ομαλής συμπεριφοράς στην τιμή Στον επόμενο έλεγχο όμως (1 λεπτό μετά) και παρόλο που είχε ληφθεί ένα μέρος της επίθεσης ως φυσιολογική συμπεριφορά, ενεργοποιήθηκε SYN Flood συναγερμός αφού με τιμή φυσιολογικής συμπεριφοράς στον υπολογιστή Aphrodite βλέπουμε ότι η αναλογία εκτοξεύθηκε περίπου στα 220 SYN/ACK που συνιστά μια αύξηση περίπου 630%, πάνω δηλαδή από το κατώτατο όριο του 500%. Σε όλα τα γραφήματα πραγματοποιείται αυτόματο scaling μετά από οποιαδήποτε μεταβολή. 82 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

82 Εικόνα 22: Πριν από επίθεση SYN Flood F Εικόνα 23: Μετά από επίθεση SYN Flood F Πηγαίνοντας στο Alert tab βλέπουμε πληροφορίες όπως ό ημέρα/ώρα επίθεσης, τύπος επίθεσης (TCP SYN Flood), τον υπολογιστή θύμα (snf ),, τη σφοδρότητα της επίθεσης, δηλαδήή το ποσοστό πάνωω από τηνν φυσιολογική συμπεριφορά της αναλογίας SYN/ACK, το οποίο είναι ίσο με 627% % αλλά και τις Public IPs των υπολογιστών που πραγματοποίησαν τιςς επιθέσεις, μαζί με την σφοδρότητα που εξαπέλυσε την επίθεση ο καθένας ξεχωριστά. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 83

83 Εικόνα 24: Συναγερμός επίθεσης SYNN Flood Σε επόμενη φάση χρησιμοποιήσαμε το ίδιο ί εργαλείο για να πραγματοποιήσουμε ICMP Flood επίθεση. Οι επιτιθέμενοι υπολογιστές παρέμειναν οι ίδιοι όπως επίσης και το θύμα. Ο μέσος αριθμός των ICMP Echo στον υπολογιστή Aphrodite πριν την επίθεση ήταν , ενώ μετά την επίθεση ο αριθμός αυτός άγγιξε τα 115 ICMP Echo τιμή που συνιστά αύξηση περίπου ίση με 3800%. Η τιμή αυτή ξεπερνά κατά πολύ το όριο του 500% που τέθηκε κατάά την αρχικοποίηση και ως εκ τούτου ενεργοποιήθηκε ο αντίστοιχος συναγερμός. Εικόνα 25: Πρινν από επίθεση ICMP Flood 84 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

84 Εικόνα 26: Μετάά από επίθεση ICMP Flood Εικόνα 27: Συναγερμός επίθεσης ICMPP Flood HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 85

85 6.4 4 ΑΝΙΧΝΕΥΣΗ PORT P SCAN ΕΠΙΘΕΣΕΩΝ Για την πραγματοποίηση της ανίχνευσης ανοιχτών δικτυακών θυρών χρησιμοποιήθηκε το Nmap [28], έναα ευρέως διαδεδομένο εργαλείο ανοιχτού κώδικα που χρησιμοποιείται από τους μηχανικούς ασφάλειας για τον έλεγχο της ασφάλειας ενός πληροφοριακού συστήματος. Πιο συγκεκριμένα χρησιμοποιείταιι για εντοπισμό υπολογιστών που βρίσκονται μέσα σε ένα υποδίκτυο, μαζίί με διάφορες πληροφορίες για αυτούς, όπως τι λειτουργικό σύστημα τρέχουν, ποιεςς θύρες είναι ανοιχτές σε αυτούς και τι υπηρεσίεςς τρέχουν, τι είδους φίλτρα και αναχώματα ασφάλειας υπάρχουν κ.τ.λ. Αρχικά επιτεθήκαμε από τον υπολογιστή stavros πραγματοποιώντας Stealth Scan ανίχνευση θυρών, σαρώνοντας τις γνωστές θύρες (well known ports) του υπολογιστή Zeus. Πριν την επίθεση ο μέσος αριθμός θυρών που δέχτηκαν SYN πακέτα στον Zeus ήταν ίσος με Μετά την επίθεση ο αριθμός αυτός εκτινάχθηκε σε πάνω από 1000 (όλες οι γνωστές θύρες έλαβανν SYN πακέτο κατά τη τ διάρκεια α της τρέχουσας συμπεριφοράς) ) γεγονός που συνιστάά μια αύξηση της τάξης του 14100%, πολύ πιο πάνω το κατώτατο όριο του 500% %. Στο Alert tab εμφανίζονταιι πάλι όλες οι πληροφορίες του συναγερμού που ενεργοποιήθηκε. Εικόνα 28: Πριν απόό Stealth Scan ανίχνευση θυρών 86 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

86 Εικόνα 29: Μετά απόό Stealth Scan ανίχνευση θυρώνν Εικόνα 30: Συναγερμός Stealth Scan ανίχνευσης θυρών Στη συνέχεια εφαρμόσαμε FIN Scan ανίχνευση θυρών από τον υπολογιστή Hades στον υπολογιστή Aphrodite. Πριν την ανίχνευση ο μέσος αριθμός θυρών που έλαβαν FIN πακέτο στον υπολογιστή Aphrodite ήταν 0. Αρχικά εφαρμόσαμε FIN Scan μόνο για τις πρώτες 200 θύρες ενώ στο ίδιο χρονικό πλαίσιο π πραγματοποιήσαμε FIN Scan, στο εύρος θυρών ,, για να βεβαιωθούμε ότι ό ακόμα και σε μια τέτοια περίπτωση δεν θα ενεργοποιηθεί κάποιος συναγερμός, αφού το κατώτατο όριο του 500% θα μπορούσε να ξεπεραστεί μόνο εφαρμόζοντας ανίχνευσης περισσότερων των HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 87

87 500 μοναδικώνν θυρών. Όντως μετάά το πέρας των 2 προσπαθειών ανίχνευσηςς δεν ενεργοποιήθηκε κάποιος συναγερμός ς και τα FIN πακέτα της τ ανίχνευσης ελήφθησαν ως μέρος φυσιολογικής συμπεριφορ ράς με αποτέλεσμα ο μέσος μ αριθμός θυρών που έλαβαν FIN πακέτο να πάει στο (το εύρος έλαβεε 2 φορές FIN πακέτο). Τέλος εφαρμόσαμε ανίχνευση θυρών στις 750 πρώτες θύρες, που με βάση την φυσιολογική συμπεριφορά στο δημιούργησε μια μ αύξησηη της τάξηςς του 625% με αποτέλεσμα να ενεργοποιηθ θεί ο αντίστοιχος συναγερμός. Εικόνα 31: Πριν από FIN Scan ανίχνευση θυρών Εικόνα 32: Μετά από FIN Scan ανίχνευση θυρών 88 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

88 Εικόνα 33: Συναγερμός FIN Scan ανίχνευσης θυρώνν Στο επόμενο πείραμα εφαρμόσαμε Xmas Scan ανίχνευση θυρών, επίσης από τον υπολογιστή Hades στον υπολογιστή Aphrodite. Πρινν την ανίχνευση ο μέσος αριθμός θυρών που έλαβαν FIN/PSH/URG πακέτο στον υπολογιστή Aphrodite ήταν ίσος με 0, πράγμα λογικό αφού τέτοια πακέτα δεν είναι πραγματικά και δεν κυκλοφορούν υπό φυσιολογικές συνθήκες στα δίκτυα των τ υπολογιστών. Αρχικά εφαρμόσαμε Xmas Scan στις πρώτες 200 θύρες ενώ σε μια μ δεύτερηη απόπειρα, στο ίδιο χρονικό πλαίσιο, εφαρμόσαμε ανίχνευση για τις θύρεςς στο εύρος ς ώστε να βεβαιωθούμε εκ νέου ότι δεν θαα ενεργοποιηθεί κάποιος συναγερμός, αφού δεν ξεπερνάμε το όριο των 500 μοναδικών θυρών. Στις 300 θύρες που ελέγξαμε οι 100 (θύρες ) έλαβαν 2 φορές πακέτο FIN/PSH/URG και κ ως εκ τούτου ο μέσος αριθμός θυρών που έλαβαν τέτοιου είδους πακέτο ήταν περίπου ίσος με 1.3, πράγμα που αντικατοπτρίζεται και στην αλλαγή της τιμής της φυσιολογικήςς συμπεριφοράς στο Τέλος, στο επόμενο χρονικό πλαίσιο πραγματοποιήσαμε Xmas Scan επίθεση στις πρώτες 8000 θύρες, μεε αποτέλεσμα να ενεργοποιηθείί ο αντίστοιχος συναγερμός. Ο έλεγχος τρέχουσαςς συμπεριφοράς πραγματοποιήθηκε λίγο πριν ολοκληρωθεί όλη η επίθεση ως εκ τούτου στο γράφημα φαίνονται λίγα παραπάνω από 770 πακέταα πράγμα που όπως θαα δούμε και στη συνέχεια συνιστά μια αύξηση, με βάση την φυσιολογική συμπεριφοράά των πακέτωνν ανά θύρα,, της τάξηςς του 590%. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 89

89 Εικόνα 34: Πριν από Xmas Scan ανίχνευση θυρών Εικόνα 35: Μετά από Xmas Scan ανίχνευση θυρών 90 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

90 Εικόνα 36: Συναγερμός Xmas Scan ανίχνευσης θυρώνν Στο επόμενο μας πείραμα πραγματοποιήσαμε ACKK Scan ανίχνευση θυρών επίσης από τον υπολογιστή Hades στον υπολογιστή Aphrodite. Πριν την ανίχνευση ο μέσος αριθμός πορτών που δέχθηκανν ACK πακέτο στον υπολογιστή Aphrodite ήταν Εφαρμόζοντας ανίχνευση θυρών στο εύρος δημιουργήσαμε μια αύξηση της τάξης του 855% πράγμα που αποτυπώθηκε και στον συναγερμό που ενεργοποιήθηκε. Ο λόγοςς που επιλέξαμε μια τόσο μεγάλη τιμή είναι διότι η τιμή στην φυσιολογική συμπεριφορά ήταν ήδη μεγάλη και δεν θα ενεργοποιούνταν συναγερμός σε διαφορετική περίπτωση. Στην παρούσα έκδοση τουυ Hurricane το κατώτατο όριο αφορά όλη την ομάδα επιθέσεων αλλά όπως φάνηκε και από το συγκεκριμένο πείραμα, κάθε επίθεση, ακόμα και της ίδια ομάδας, έχει δικέςς της ιδιαιτερότητες και τα κατώτατα όρια κάθε μιας θα ήταν χρήσιμο να είναι διαφορετικά. Όπως θα παρουσιάσουμε και στο τελευταίο κεφάλαιο αυτό αποτελείί μια βελτίωση που επιδιώκουμε να πραγματοποιήσουμε ως μέρος της μελλοντικής μας εργασίας. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 91

91 Εικόνα 37: Πριν από ACK Scan ανίχνευση θυρών Εικόνα 38: Μετά από ACK Scan ανίχνευση θυρών 92 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

92 Εικόνα 39: : Συναγερμός ACK Scan ανίχνευσης θυρώνν ΑΝΙΧΝΕΥΣΗ ΣΚΟΥΛΗ ΗΚΙΩΝ Στο τελευταίο στάδιο εκτελέσαμε πείραμα που αφορούσε α την ανίχνευση σκουληκιών στον υπολογιστή Zeus. Ο τρόπος λειτουργίας ενός σκουληκιού είναι να στέλνει σε μεγάλο αριθμό υπολογιστών αιτήματα SYN, στην ίδια θύρα, μετατρέποντας τις περισσότερες φορές τον υπολογιστή θύμα σε ένα bot μιας DDOS επίθεσης. Στην προκειμένη περίπτωση ο συναγερμός ενεργοποιείται όταν ο λόγοςς του αριθμού των παραληπτών ενός SYN πακέτου, σε μια συγκεκριμένη θύρα, προςς τον αριθμό αυτών που απαντάνε με ACK για το αίτημα αυτό, είναι μεγαλύτερος από το κατώτατο όριο που έχει τεθεί. Για την εκτέλεση του πειράματος δεν ήταν φυσικά εφικτό να δημιουργήσουμε ένα σκουλήκι και να τοο προσκολλήσουμε στον υπολογιστή θύμα, και γι αυτό το λόγο υλοποιήσαμεε την συμπεριφορά ενός σκουληκιού, χρησιμοποιώντας το εργαλείο Nmap και στέλνοντας σεε πάρα πολλούς παραλήπτες αιτήματα SYN στην ίδια θύρα. Πριν το πείραμα π ο μέσος αριθμός παραληπτών SYN προς τον αριθμό αυτών που απάντησανν με ACK στην ίδια θύρα ήταν Στο πείραμα μας αποστείλαμε SYN πακέτα στην θύρα 443 στο υποδίκτυο της Public IP του Zeus /16. Όπωςς αναμέναμε η πλειοψηφία των IPs αυτών δεν αντιστοιχούσαν σε κάποιον υπολογιστή ή, αρά ο αριθμός των ACK που λάβαμε σε απάντηση των SYN που αποστείλαμε ε ήταν τόσο μικρός που εκτόξευσαν τον λόγο με αποτέλεσμα να έχουμε μία αύξησηη της τάξης του % %. HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 93

93 Εικόνα 40: Πριν από προσκόλληση σκουληκιού Εικόνα 41: Μετά από προσκόλληση σκουληκιού 94 HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ

94 Εικόνα 42: Συναγερμός ανίχνευσης σκουληκιού HURRICANE: ΕΝΑ ΣΥΣΤΗΜΑ ΓΙΑ ΚΑΤΑΝΕΜΗΜΕΝΗ ΑΝΑΛΥΣΗ ΔΙΚΤΥΑΚΗΣ ΚΙΝΗΣΗΣ 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95

ΚΕΦΑΛΑΙΟ 4. Τεχνική Ανίχνευσης του. Πτυχιακή Εργασία Σελίδα 95 ΚΕΦΑΛΑΙΟ 4 Τεχνική Ανίχνευσης του ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 95 Περιεχόμενα ΕΙΣΑΓΩΓΗ 98 ΜΕΡΟΣ Α: Έλεγχος του Icmp Echo Reply Πακέτου 103 A.1. Ανίχνευση του spoofed Icmp Echo Request Πακέτου.

Διαβάστε περισσότερα

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 4.1.1 Πρωτόκολλο TCP - Δομή πακέτου 1 / 38 Παράδειγμα Έστω ότι θέλουμε να αποστείλουμε ένα μήνυμα μέσω ηλεκτρονικού ταχυδρομείου. Αρχικά η εφαρμογή χρησιμοποιώντας τα πρωτόκολλα του επιπέδου εφαρμογής

Διαβάστε περισσότερα

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol HTTP Protocol Web and HTTP Βασικά Συστατικά: Web Server Web Browser HTTP Protocol Web Servers (1/2) Ένα πρόγραμμα (λογισμικό) που έχει εγκατασταθεί σε ένα υπολογιστικό σύστημα (έναν ή περισσότερους υπολογιστές)

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 5: Ασφάλεια Δικτύων Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Πρωτόκολλο TCP Διάλεξη Ι

Πρωτόκολλο TCP Διάλεξη Ι Πρωτόκολλο TCP Διάλεξη Ι Εισαγωγή Οι υπηρεσίες μεταβίβασης δεδομένων ανάμεσα σε δύο επικοινωνούντες πόρους κατατάσσονται σε δύο κατηγορίες: Connectionless ή datagram Connection-oriented Οι υπηρεσίες της

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται

Διαβάστε περισσότερα

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο Μεταφοράς(Transport layer) Επίπεδο εφαρμογής (Application layer): Συντονισμός

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) TEI Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης) Ανάλυση Πρωτοκόλλων Τομέας Τηλεπικοινωνιών και Δικτύων Δρ. Αναστάσιος Πολίτης Καθηγητής Εφαρμογών anpol@teiser.gr

Διαβάστε περισσότερα

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP) 1 / 32 Σε έναν κόμβο ο οποίος επιθυμεί να αποστείλει δεδομένα σε κάποιον

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές Firewalls Anomaly & Intrusion Detection Systems (IDS)

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές  Firewalls Anomaly & Intrusion Detection Systems (IDS) ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (ΙΙ) Πρωτόκολλα & Αρχιτεκτονικές email Firewalls Anomaly & Intrusion Detection Systems (IDS) Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 30/11/2015

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP Πρωτόκολλα επικοινωνίας Ορισμός Σύνολα προσυμφωνημένων κανόνων που απαιτούνται για τον καθορισμό του τρόπου με τον οποίο επιτυγχάνεται η ανταλλαγή δεδομένων, και επομένως

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία

ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση Ασφαλείας (Ι) Απειλές Ασφαλείας Συμμετρική & Μη-Συμμετρική Κρυπτογραφία ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Διαχείριση (Ι) Απειλές Συμμετρική & Μη-Συμμετρική Κρυπτογραφία Β. Μάγκλαρης maglaris@netmode.ntua.gr www.netmode.ntua.gr 13/11/2017 ΘΕΜΑΤΙΚΕΣ ΠΕΡΙΟΧΕΣ ΑΣΦΑΛΕΙΑΣ Είδη Απειλών και Επιθέσεων

Διαβάστε περισσότερα

DDoS (Denial of Service Attacks)

DDoS (Denial of Service Attacks) Το Πρόβλημα των Επιθέσεων DoS/DDoS DDoS (Denial of Service Attacks) Γεώργιος Κουτέπας, Γεώργιος Αδαμόπουλος Τράπεζα Πληροφοριών του ΤΕΕ Ημερίδα: Ηλεκτρονικές Επικοινωνίες Πόσο Ασφαλείς είναι; Τεχνικό Επιμελητήριο

Διαβάστε περισσότερα

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που 7.7 Πρωτόκολλο ARP 1 ύο είδη διευθύνσεων: MAC - IP Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που µπορεί

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 1. Για να διεκπεραιωθεί η μεταφορά των πακέτων από την πηγή στον προορισμό μεταξύ των κόμβων του επικοινωνιακού υποδικτύου απαιτείται η

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Ηυιοθέτησητης τεχνολογίαςκαι αρχιτεκτονικής TCP/IP δεν έρχεται σε σύγκρουσηµε το µοντέλο του OSI και αυτό γιατί και τα δυο συστήµατααναπτύχθηκαν συγχρόνως. Παρόλα αυτά, υπάρχουν ορισµένες ουσιώδεις διαφορές

Διαβάστε περισσότερα

Εργαστήριο Δικτύων Υπολογιστών

Εργαστήριο Δικτύων Υπολογιστών Εργαστήριο Δικτύων Υπολογιστών 2 η Διάλεξη: TCP/UDP Δικτυακά πρωτόκολλα / εφαρμογές Ports Unix δικτυακές εντολές Transmission Control Protocol - TCP Πρωτόκολλο Mεταφοράς RFC 793 [Postel 1981] Xρησιμοποιεί

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 3 ICMP Echo Spoofing

ΚΕΦΑΛΑΙΟ 3 ICMP Echo Spoofing ΚΕΦΑΛΑΙΟ 3 ICMP Echo Spoofing Πτυχιακή Εργασία Σελίδα 67 Περιεχόμενα ΕΙΣΑΓΩΓΗ. 69 ΜΕΡΟΣ Α: To Icmp Πρωτόκολλο.... 70 Γενικά. 70 Το Icmp Echo Πακέτο. 72 Το Icmp Destination Unreachable Πακέτο. 75 ΜΕΡΟΣ

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας Δίκτυα Υπολογιστών Firewalls Χάρης Μανιφάβας 1 Επικοινωνία Βασίζεται στη μεταβίβαση μηνυμάτων (λόγω απουσίας διαμοιραζόμενης μνήμης) Απαιτείται συμφωνία φόρμας μηνυμάτων Πρότυπο Στόχος τυποποίησης = Συνεργασία

Διαβάστε περισσότερα

Network Address Translation (NAT)

Network Address Translation (NAT) HY335Α Δίκτυα Υπολογιστών Xειμερινό Εξάμηνο 2016-2017 Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Network Address Translation (NAT) Network Layer Private IP Addresses Πρόβλημα: o χώρος των ΙΡ διευθύνσεων

Διαβάστε περισσότερα

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας Τι θα μάθουμε σήμερα: Να ορίζουμε τι είναι πρωτόκολλο επικοινωνίας Να εξηγούμε τη χρησιμότητα των πρωτοκόλλων επικοινωνίας Να ονομάζουμε τα σημαντικότερα

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15. Δίκτυα υπολογιστών. (και το Διαδίκτυο) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΠΡΟΣΤΑΣΙΑ ΠΡΟΣΩΠΙΚΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΘΩΣ ΚΑΙ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΔΙΑΔΙΚΤΥΟ Το διαδίκτυο προσφέρει: Μετατροπή των δεδομένων σε ψηφιακή - ηλεκτρονική μορφή. Πρόσβαση

Διαβάστε περισσότερα

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap Version 2.00 Επιμέλεια Σημειώσεων: Δημήτρης Κόγιας Πατρικάκης Χαράλαμπος Πίνακας περιεχομένων TELNET... 2 PING...

Διαβάστε περισσότερα

Κεφάλαιο 7.3. Πρωτόκολλο TCP

Κεφάλαιο 7.3. Πρωτόκολλο TCP Κεφάλαιο 7.3 Πρωτόκολλο TCP Πρωτόκολλο TCP Το πρωτόκολλο Ελέγχου Μετάδοσης (Transmission Control Protocol, TCP) είναι το βασικό πρωτόκολο του Επιπέδου Μεταφοράς του μοντέλου TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες

Διαβάστε περισσότερα

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

Διαβάστε περισσότερα

Μάθημα 6: Αρχιτεκτονική TCP/IP

Μάθημα 6: Αρχιτεκτονική TCP/IP Μάθημα 6: Αρχιτεκτονική TCP/IP 6.1 Συσχέτιση OSI και TCP/IP Η αρχιτεκτονική TCP/IP ακολουθεί ένα πρότυπο διαστρωμάτωσης παρόμοιο με το μοντέλο OSI. Η αντιστοιχία φαίνεται στο σχήμα 6.1. Η ονομασία της

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B

Διαβάστε περισσότερα

ιαδίκτυα & Ενδοδίκτυα Η/Υ

ιαδίκτυα & Ενδοδίκτυα Η/Υ ιαδίκτυα & Ενδοδίκτυα Η/Υ ΠΡΩΤΟΚΟΛΛΑ ΜΕΤΑΦΟΡΑΣ (Kεφ. 17) TCP Υπηρεσίες TCP Μορφή Επικεφαλίδας TCP Μηχανισµοί TCP Πολιτικές Υλοποίησης TCP Βιβλίο Μαθήµατος: Επικοινωνίες Υπολογιστών & εδοµένων, William

Διαβάστε περισσότερα

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2011-20112 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη 15 Δεκεμβρίου 2011 Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις 1. Θεωρήσετε

Διαβάστε περισσότερα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Δίκτυα υπολογιστών (και το Διαδίκτυο) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι ένα δίκτυο υπολογιστών;

Διαβάστε περισσότερα

Συνεχής ροή πολυµέσων

Συνεχής ροή πολυµέσων Συνεχής ροή πολυµέσων Εισαγωγή ικτυακά πρωτόκολλα Πολυµέσα και δίκτυα Συνεχής ροή Ροή από εξυπηρετητές ιστοσελίδων Ροή από εξυπηρετητές µέσων Πρωτόκολλο RTSP Πρωτόκολλο RTP οµή πακέτων RTP Πρωτόκολλο RTCP

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 5ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ - ΑΣΚΗΣΕΙΣ 14. Ποιος είναι ο ρόλος των καρτών δικτύου (Network Interface Card, NIC); Απάντηση: Οι κάρτες δικτύου χρησιμοποιούνται για να συνδέσουν

Διαβάστε περισσότερα

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. ΚΕΦΑΛΑΙΟ 9 Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ. Το 1966 αρχίζει ο σχεδιασμός του ARPANET, του πρώτου

Διαβάστε περισσότερα

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ Τεχνολογία ικτύων Επικοινωνιών ΙΙ 7.1.1. Γενικές Αρχές 1. Τι ονοµάζεται επικοινωνιακό υποδίκτυο και ποιο είναι το έργο του; Το σύνολο όλων των ενδιάµεσων κόµβων που εξασφαλίζουν την επικοινωνία µεταξύ

Διαβάστε περισσότερα

Νέες Επικοινωνιακές Τεχνολογίες

Νέες Επικοινωνιακές Τεχνολογίες Νέες Επικοινωνιακές Τεχνολογίες Λύσεις Θεμάτων http://nop33.wordpress.com Τι ορίζουμε ως Τοπικό Δίκτυο Υπολογιστών; Ποια είναι τα βασικά χαρακτηριστικά των Τοπικών Δικτύων; Ποιες οι βασικές τοπολογίες

Διαβάστε περισσότερα

Δίκτυα Θεωρία

Δίκτυα Θεωρία Δίκτυα Θεωρία 2016-17 Κεφάλαιο 4 1. Γιατί η μεταφορά των δεδομένων δεν καλύπτεται επαρκώς από το Επίπεδο Δικτύου; Επειδή το επίπεδο δικτύου από τη φύση του είναι αναξιόπιστο, τα πακέτα φθάνουν καθυστερημένα,

Διαβάστε περισσότερα

Ethernet Ethernet ΙΕΕΕ CSMA/CD

Ethernet Ethernet ΙΕΕΕ CSMA/CD Ethernet Τα τοπικά δίκτυα είναι συνήθως τύπου Ethernet ή λέμε ότι ακολουθούν το πρότυπο ΙΕΕΕ 802.3 Ακολουθούν το μηχανισμό CSMA/CD (Πολλαπλή πρόσβαση με Ακρόαση Φέροντος και Ανίχνευση Συγκρούσεων). Πολλαπλή

Διαβάστε περισσότερα

Βασικές Έννοιες Web Εφαρμογών

Βασικές Έννοιες Web Εφαρμογών ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Τεχνολογίες και Εφαρμογές Διαδικτύου Βασικές Έννοιες Web Εφαρμογών Κατερίνα Πραματάρη Τεχνολογίες και Εφαρμογές Διαδικτύου Περιεχόμενα

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών Αρχιτεκτονικές Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ. ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ. Υποδείξεις απαντήσεων/λύσεων στις ερωτήσεις, ασκήσεις και δραστηριότητες του τετραδίου μαθητή, Κεφ.1

Διαβάστε περισσότερα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. Μάθημα 5: To Μοντέλο Αναφοράς O.S.I. 5.1 Γενικά Τα πρώτα δίκτυα χαρακτηρίζονταν από την «κλειστή» αρχιτεκτονική τους με την έννοια ότι αυτή ήταν γνωστή μόνο στην εταιρία που την είχε σχεδιάσει. Με τον

Διαβάστε περισσότερα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα Στόχοι κεφαλαίου ίκτυα υπολογιστών (Κεφαλαιο 15 στο βιβλιο) Περιγραφή των κύριων θεµάτων σχετικά µε τα δίκτυα υπολογιστών Αναφορά στα διάφορα είδη δικτύων Περιγραφή των διαφόρων τοπολογιών των τοπικών

Διαβάστε περισσότερα

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1 I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Σε δίκτυο υπολογιστών εμπιστευτική πληροφορία μπορεί να υπάρχει αποθηκευμένη σε μέσα αποθήκευσης (σκληροί δίσκοι, μνήμες κ.λ.π.), ή να κυκλοφορεί μέσου του δικτύου με τη μορφή πακέτων. Η ύπαρξη πληροφοριών

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ Δίκτυα Μετάδοσης Δεδομένων Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές Γενικά Διδάσκουσα: Ελένη Αικατερίνη Λελίγκου Γραφείο ΖΑ202. Ε-mail:

Διαβάστε περισσότερα

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

Διαβάστε περισσότερα

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δίκτυα Υπολογιστών Στόχοι 1 Να εξηγήσουμε τι είναι τα δίκτυα υπολογιστών, ποιες είναι οι βασικές κατηγορίες τους και ποιες οι πιο συνηθισμένες τοπολογίες

Διαβάστε περισσότερα

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet Ενότητα 3 Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet Εισαγωγή στις βασικές έννοιες του στρώµατος Ζεύξης (Data Link Layer) στα δίκτυα ΗΥ Γενικές Αρχές Λειτουργίας ηµιουργία Πλαισίων Έλεγχος

Διαβάστε περισσότερα

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7] Στόχοι ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 Να εξηγήσουμε τι είναι τα δίκτυα υπολογιστών, ποιες είναι οι βασικές κατηγορίες τους και ποιες οι πιο συνηθισμένες τοπολογίες τους. Να περιγράψουμε

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP

Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP Δίκτυα Υπολογιστών Ενότητα 10: Ethernet και ARP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη Deadline πρώτης ϕάσης : 13 Δεκεμβρίου 2016, 23:59 * Εμπνευσμένο και υλοποιημένο από το Μανώλη Σουρλίγκα :) Γενική περιγραϕή Στο οικοσύστημα του

Διαβάστε περισσότερα

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση. ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ / Γ- ΕΠΑ.Λ. ΗΜΕΡΟΜΗΝΙΑ: 21-02- 2016 ΕΠΙΜΕΛΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ: Ι. ΜΙΧΑΛΕΑΚΟΣ-Α.ΚΑΤΡΑΚΗ ΘΕΜΑ Α. A1. Να γράψετε το γράμμα καθεμιάς από τις παρακάτω προτάσεις και δίπλα τη

Διαβάστε περισσότερα

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ Δίκτυα Υπολογιστών Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές Γενικά Διδάσκουσα: Ελένη Αικατερίνη Λελίγκου Γραφείο ΖΑ202. Ε-mail: e.leligkou@puas.gr

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8)

ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8) ΑΣΦΑΛΕΙΑ WEB CLIENT ΤΕΧΝΙΚΕΣ ΕΠΙΘΕΣΗΣ (1/8) Επίθεση άρνησης υπηρεσίας (Denial of Service-DoS). Αποστολή πολλών αιτήσεων στο µηχάνηµα-στόχο ώστε τα resources που του αποµένουν (σε αυτόν ή και στο δίκτυο).

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7.4 Πρωτόκολλο Μέχρι τώρα περιγράψαμε συνδέσεις, που χρησιμοποιούν το πρωτόκολλο TCP. Θυμηθείτε, ότι το TCP είναι υπεύθυνο για το τεμαχισμό των μηνυμάτων σε τμήματα και την επανασύνδεση τους στον προορισμό.

Διαβάστε περισσότερα

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον Κεφάλαιο 2 Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον Εισαγωγή Μέσα αποθήκευσης Δίκτυα υπολογιστών Βάσεις δεδομένων Δίκτυα Υπολογιστών Σύνολο από υπολογιστές ή συσκευές διασυνδεδεμένες

Διαβάστε περισσότερα

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία Improving the performance of TCP in the case of packet reordering Στρατάκη Μαρία Γενικές Πληροφορίες για το TCP/IP TCP (Transmission Control Protocol) IP (Internet Protocol) Χωρίζουν τα δεδομένα σε τμήματα

Διαβάστε περισσότερα

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M. ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26 Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.: 43 Άσκηση 3 Μια αξιόπιστη multicast υπηρεσία επιτρέπει σε έναν

Διαβάστε περισσότερα

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ Ερωτήσεις 7.3 Πρωτόκολλο TCP 1. Τι είναι το τµήµα (segment) στο πρωτόκολλο TCP; Από ποια µέρη αποτελείται; 2. Για ποιο σκοπό χρησιµοποιείται ο Αριθµός ειράς στην επικεφαλίδα ενός segment TCP; 3. την περίπτωση

Διαβάστε περισσότερα

Στρατηγικές Ασφάλειας

Στρατηγικές Ασφάλειας Στρατηγικές Ασφάλειας Ασφάλεια Πληροφοριακών Συστημάτων. Διδάσκων: Σ. Κοντογιάννης Least/(Most) Privileges Defense in Depth Συγκεντρωτική Στρατηγική Weakest Link Strategy Fail Safe Stance Fail Safe Stance

Διαβάστε περισσότερα

Σκοπιµότητα των firewalls

Σκοπιµότητα των firewalls Σκοπιµότητα των firewalls Παρέχουν προστασία των εσωτερικών δικτύων από απειλές όπως: Μη εξουσιοδοτηµένη προσπέλαση των δικτυακών πόρων: όταν επίδοξοι εισβολείς προσπαθούν να εισχωρήσουν στο δίκτυο και

Διαβάστε περισσότερα

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ ΕΠΑ.Λ. Άμφισσας Σχολικό Έτος : 2011-2012 Τάξη : Γ Τομέας : Πληροφορικής Μάθημα : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ Διδάσκων : Χρήστος Ρέτσας Η-τάξη : tiny.cc/retsas-diktya2 ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης Δίκτυα Υπολογιστών Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή Κ. Βασιλάκης Περίγραμμα Τι είναι το διαδίκτυο Στοιχεία που το συνθέτουν Τρόποι παροχής υπηρεσιών Τι είναι τα πρωτόκολλα Τα άκρα του δικτύου

Διαβάστε περισσότερα

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο

Συσκευές Τηλεπικοινωνιών και Δικτύωσης. Επικοινωνίες Δεδομένων Μάθημα 9 ο Συσκευές Τηλεπικοινωνιών και Δικτύωσης Επικοινωνίες Δεδομένων Μάθημα 9 ο Εισαγωγή Ένα δίκτυο αποτελείται από ενεργά και παθητικά στοιχεία. Στα παθητικά στοιχεία εντάσσονται τα καλώδια και τα εξαρτήματα

Διαβάστε περισσότερα

Δίκτυα και Διαδίκτυο

Δίκτυα και Διαδίκτυο Μανώλης Κοσμίδης Dipl. Electrical & Computer Engineering, MEng E-commerce & Computer Systems, MEdu Management and Leadership Δίκτυα και Διαδίκτυο Βασικές έννοιες δικτύων 1 Τι είναι δίκτυο Ένα δίκτυο υπολογιστών

Διαβάστε περισσότερα

Πρωτόκολλο ICMP (Internet Control Message Protocol)

Πρωτόκολλο ICMP (Internet Control Message Protocol) Εργαστήριο Δικτύων Ι Εργαστηριακές Σημειώσεις Τεχνικός Δικτύων & Τηλεπικοινωνιών Ρίγγας Δηµήτρης Δ.Ι.Ε.Κ. Κέρκυρας, 2014 Πρωτόκολλο ICMP (Internet Control Message Protocol) Τι είναι το ICMP Το πρωτόκολλο

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ ΔΙΑΛΕΞΗ 3 ΔΙΔΑΣΚΩΝ: ΑΝΑΡΓΥΡΟΣ ΣΙΔΕΡΗΣ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΟΛΥΜΕΣΩΝ ΤΕΙ ΚΡΗΤΗΣ ΠΡΩΤΟΚΟΛΛΟ ΕΛΕΓΧΟΥ

Διαβάστε περισσότερα

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου

Πρωτόκολλα Διαδικτύου Πρωτόκολλα Διαδικτύου Ερωτήσεις Ασκήσεις Επικοινωνίες Δεδομένων Μάθημα 3 ο Ερωτήσεις 1. Τι είναι το intranet και ποια τα πλεονεκτήματα που προσφέρει; 2. Τι δηλώνει ο όρος «TCP/IP»; 3. Να αναφέρετε τα πρωτόκολλα

Διαβάστε περισσότερα

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP. 7.4 Πρωτόκολλο UDP & Ερωτήσεις 1. ε ποιες περιπτώσεις χρησιμοποιείται το πρωτόκολλο UDP, εναλλακτικά του TCP; 2. ε τι είδους εφαρμογές χρησιμοποιείται συνήθως το πρωτόκολλο UDP; Να δώσετε παράδειγμα μιας

Διαβάστε περισσότερα

Σχεδίαση και Ανάπτυξη Ιστότοπων

Σχεδίαση και Ανάπτυξη Ιστότοπων Σχεδίαση και Ανάπτυξη Ιστότοπων Ιστορική Εξέλιξη του Παγκόσμιου Ιστού Παρουσίαση 1 η 1 Βελώνης Γεώργιος Καθηγητής Περιεχόμενα Τι είναι το Διαδίκτυο Βασικές Υπηρεσίες Διαδικτύου Προηγμένες Υπηρεσίες Διαδικτύου

Διαβάστε περισσότερα

Παιχνίδι TCP-IP (περιγραφή πρωτοκόλλων)

Παιχνίδι TCP-IP (περιγραφή πρωτοκόλλων) Παιχνίδι TCP-IP (περιγραφή πρωτοκόλλων) Επιμέλεια : Χ. Πατρικάκης (βασισμένο στην ιδέα του Norman Pendegraft. 2003: The TCP/IP game, Current issues in IT education, Tanya McGill (Ed.). IGI Publishing,

Διαβάστε περισσότερα

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 Μηχανισμοί πρωτοκόλλων προσανατολισμένων σε σύνδεση Λογική σύνδεση

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer) Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Επισκόπηση του επιπέδου μεταφοράς Υπηρεσίες επιπέδου μεταφοράς Επίπεδο μεταφοράς έναντι επιπέδου

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

Πρωτόκολλο TCP Διάλεξη ΙΙI

Πρωτόκολλο TCP Διάλεξη ΙΙI Πρωτόκολλο TCP Διάλεξη ΙΙI Χρόνος επαναμετάδοσης Στην προηγούμενη διάλεξη είδαμε ότι: Η πρόβλεψη του χρόνου επαναμετάδοσης ενός πακέτου βάσει του εκθετικού μέσου παρατηρημένου χρόνου παράδοσης παλιότερων

Διαβάστε περισσότερα

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP Κεφάλαιο 7 Διαδικτύωση-Internet 7.2 Τεχνολογία TCP/IP Τι δηλώνει ο όρος «TCP/IP»; Ο όρος TCP/IP αναφέρεται σε μια ομάδα ομοειδών πρωτοκόλλων που χρησιμοποιούνται για την επικοινωνία των δικτύων υπολογιστών

Διαβάστε περισσότερα

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ. Δίκτυα Υπολογιστών. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές ΤΕΙ Στερεάς Ελλάδας Τμ. Ηλ.γων Μηχ/κων ΤΕ Δίκτυα Υπολογιστών Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές Γενικά Τα αρχεία των διαλέξεων του μαθήματος μπορείτε να βρείτε στο: http://eclass.gunet.gr/

Διαβάστε περισσότερα

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα

Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα 1 Είναι η διαδικασία εύρεσης της διαδρομής που πρέπει να ακολουθήσει ένα πακέτο για να φτάσει στον προορισμό του. Η διαδικασία αυτή δεν είναι πάντα εύκολη, τη στιγμή που γνωρίζουμε ότι ένα σύνθετο δίκτυο

Διαβάστε περισσότερα

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου 3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου 1 / 54 Το πρωτόκολλο Διαδικτύου (Internet Protocol -IP) ενθυλακώνει τα πακέτα δεδομένων που του προωθούνται από το ανώτερο επίπεδο σε αυτοδύναμα πακέτα

Διαβάστε περισσότερα

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι. Δίκτυα Απευθείας Ζεύξης Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι. Περίληψη Ζεύξεις σηµείου προς σηµείο (point-to-point links) Πλαισίωση (framing) Ανίχνευση και διόρθωση

Διαβάστε περισσότερα

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα 1.7 - Πρωτόκολλα και Αρχιτεκτονική Δικτύου) Πρωτόκολλο είναι ένα σύνολο κανόνων που πρέπει να ακολουθήσουν όλοι οι σταθμοί εργασίας σε ένα δίκτυο ώστε να μπορούν

Διαβάστε περισσότερα

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ Εισαγωγή ΑRPANET (1969) Τεχνική Μεταγωγής Πακέτων INTERNETTING PROJECT (1973) Σύνδεση διαφορετικών δικτύων Πρωτόκολλα IP, TCP (Κανόνες Ανταλλαγής Δεδομένων) Προσθήκη

Διαβάστε περισσότερα

Εγγυημένη ποιότητα υπηρεσίας

Εγγυημένη ποιότητα υπηρεσίας Εγγυημένη ποιότητα υπηρεσίας Απαιτήσεις ποιότητας υπηρεσίας Μηχανισμοί κατηγοριοποίησης Χρονοπρογραμματισμός Μηχανισμοί αστυνόμευσης Ενοποιημένες υπηρεσίες Διαφοροποιημένες υπηρεσίες Τεχνολογία Πολυμέσων

Διαβάστε περισσότερα

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP Μιχάλας Άγγελος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο

Πρωτόκολλα Διαδικτύου Μέρος 2ο. Επικοινωνίες Δεδομένων Μάθημα 3 ο Πρωτόκολλα Διαδικτύου Μέρος 2ο Επικοινωνίες Δεδομένων Μάθημα 3 ο Internet Protocol (IP) Στο επίπεδο δικτύου της τεχνολογίας TCP/IP, συναντάμε το πρωτόκολλο IP. Η λειτουργία του IP βασίζεται αποκλειστικά

Διαβάστε περισσότερα

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Δίκτυα Υπολογιστών Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης Περίγραμμα ενότητες που εξετάζονται Αρχές δικτυακών εφαρμογών. Αρχιτεκτονικές. Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη

Διαβάστε περισσότερα

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

Διαβάστε περισσότερα

Οδηγός για την Ηλεκτρονική Υποβολή Εγγράφων στην Αποκεντρωμένη Διοίκηση Μακεδονίας-Θράκης

Οδηγός για την Ηλεκτρονική Υποβολή Εγγράφων στην Αποκεντρωμένη Διοίκηση Μακεδονίας-Θράκης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΠΟΚΕΝΤΡΩΜΕΝΗ ΔΙΟΙΚΗΣΗ ΜΑΚΕΔΟΝΙΑΣ ΘΡΑΚΗΣ Γενική Δ/νση Εσωτερικής Λειτουργίας Δ/νση Πληροφορικής & Επικοινωνιών Τμήμα Σχεδιασμού Ηλεκτρονικών Υπηρεσιών για τον Πολίτη email: tshy@damt.gov.gr

Διαβάστε περισσότερα

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901

Πρωτόκολλο ARP. Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Πρωτόκολλο ARP Γεωργιλά Χιονία Καθηγήτρια Πληροφορικής ΠΕ1901 Ποιο είναι το έργο του Πρωτοκόλλου Μετατροπής Διεύθυνσης (Address Resolution Protocol ARP) Κάνει δυναμική μετατροπή των IP διευθύνσεων σε φυσικές

Διαβάστε περισσότερα

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών;

1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; 1. Τι είναι ακεραιότητα δεδομένων, με ποιους μηχανισμούς επιτυγχάνετε κ πότε θα χρησιμοποιούσατε τον καθένα εξ αυτών; Η ακεραιότητα δεδομένων(data integrity) Είναι η ιδιότητα που μας εξασφαλίζει ότι δεδομένα

Διαβάστε περισσότερα

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing):

Εισαγωγή - ορολογία. Προώθηση (forwarding): Δρομολόγηση (routing): Δρομολόγηση Ι Εισαγωγή - ορολογία Προώθηση (forwarding): Οι συσκευές διαδικτύωσης (γέφυρες, δρομολογητές, κ.τ.λ.) προωθούν πακέτα δεδομένων στα κατάλληλα μονοπάτια βάσει των πινάκων δρομολόγησης (routing

Διαβάστε περισσότερα

7.2 Τεχνολογία TCP/IP

7.2 Τεχνολογία TCP/IP 7.2 Τεχνολογία TCP/IP Ερωτήσεις 1. Πώς χρησιµοποιείται σήµερα ο όρος TCP/IP; ε ποια πρωτόκολλα αναφέρεται και γιατί έχει επικρατήσει αυτή η ονοµασία; 2. Ποια ανάγκη οδήγησε στην επικράτηση της τεχνολογίας

Διαβάστε περισσότερα

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Ασφάλεια στο Διαδίκτυο

Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Ασφάλεια στο Διαδίκτυο ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Τεχνολογίες & Εφαρμογές Πληροφορικής Ενότητα 10: Ασφάλεια στο Διαδίκτυο Ανδρέας Βέγλης, Αναπληρωτής Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Ασφάλεια Υπολογιστικών Συστημάτων

Ασφάλεια Υπολογιστικών Συστημάτων Ασφάλεια Υπολογιστικών Συστημάτων Ενότητα 7: Intrusion Detection Systems - Windump Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα