Man in the middle attack
Η Man-in-the-middle επίθεση (MITM, επίθεση άνθρωπου στη μέση) είναι μια κοινή παραβίαση ασφάλειας στις επικοινωνίες. Κατά την επικοινωνία δύο έμπιστων μεταξύ τους μερών, ο επιτιθέμενος παρεμβάλεται στη μέση, με αποτέλεσμα όλη η επικοινωνία να διέρχεται από αυτόν. Τα μηνύματα αυτά μπορούν απλά να παρακολουθούνται, να τροποποιούνται, να απορρίπτονται ή να δημιουργούνται νέα. Για να πετύχει αυτή η επίθεση, ο επιτιθέμενος πρέπει να πείσει τα 2 μέρη της επικοινωνίας πως μιλούν απευθείας μεταξύ τους σε ασφαλές κανάλι.
Περιεχόμενα
Πως λειτουργεί;[επεξεργασία]
H Alice θέλει να επικοινωνήσει με τον Bob. H Mallory παρεμβάλεται στη μέση της επικοινωνίας, χωρίς να το καταλάβουν η Alice κι ο Bob. Και οι δύο τους πιστεύουν επικοινωνούν απευθείας μεταξύ τους. Όλα τα δεδομένα που ανταλλάσουν ταξιδεύουν δια μέσου της Mallory, η οποία μπορεί τότε:
- Να υποκλέψει τα μηνύματα. Στην περίπτωση αυτή λειτουργεί όπως η Eve.
- Να μπλοκάρει μηνύματα.
- Να τροποποιήσει μηνύματα.
- Να δημιουργήσει νέα ψευδή μηνύματα.
Η MiTM attack είναι μία πολύ σύνηθης επίθεση και μπορεί να πραγματοποιηθεί σε πολλά επίπεδα και με διαφορετικούς τρόπους. Θα αναφερθούμε επιφανειακά σε δύο από αυτούς για να γίνει καλύτερα κατανοητός ο τρόπος λειτουργίας αυτής της επίθεσης.
MiTM attack σε επίπεδο τοπικού δικτύου με ARP Poisoning[επεξεργασία]
Όλα τα δεδομένα που ανταλλάσουμε μέσω δικτύου, είτε πρόκειται για emails, μηνύματα instant messaging, πλοήγηση ιστοσελίδων και πολλλά άλλα, για να ταξιδέψουν προς τον προορισμό τους, χωρίζονται σε μικρά πακέτα. Στα πακέτα αυτά, πέρα από τα καθαρά δεδομένα που ανταλλάσουμε, προστίθονται κάποιες επικεφαλίδες με πληροφορίες που είναι απαραίτητες για την αποστολή του πακέτου. Μπορούμε να το φανταστούμε σαν να μπαίνει το κάθε πακέτο σε ένα φάκελο, πάνω στον οποίο αναγράφεται το όνομα και η διεύθυνση του αποστολέα και του παραλήπτη, μαζί με άλλες απαραίτητες πληροφορίες. Στην πράξη όμως, δεν μπαίνει μέσα σε ένα "φάκελο" αλλά σε πολλούς, γιατί το "ταχυδρομικό σύστημα" των πακέτων είναι λιγάκι πιο σύνθετο. Για να μην κουράσουμε με πιο τεχνικές λεπτομέρειες, θα πούμε ότι από τις πιο βασικές πληροφορίες που περιλαμβάνει είναι οι διευθύνσεις του παραλήπτη για να μπορέσει να φτάσει εκεί το πακέτο, και του αποστολέα, για να μπορέσει να σταλεί απάντηση. Όμως το πακέτο δεν φτάνει απευθείας ως δια μαγείας στον προορισμό του. Θα πρέπει να περάσει από πολλούς σταθμούς μέχρι τον τελικό παραλήπτη. Έτσι, σε κάθε σημείο της διαδρομής του, το πακέτο πρέπει να περιλαμβάνει όπως είπαμε τις διευθύνσεις του αρχικού αποστολέα και του τελικού παραλήπτη. Πρέπει όμως να περιλαμβάνει τη διεύθυνση του ενδιάμεσου αποστολέα και παραλήπτη, των "ταχυδρομικών σταθμών".
Οι πρώτες διευθύνσεις είναι διευθύνσεις IP. Λέγονται και λογικές διευθύνσεις. Οι δεύτερες διευθύνσεις λέγονται διευθύνσεις MAC (Medium Access Control) ή φυσικές διευθύνσεις. Η MAC διεύθυνση είναι μοναδική για κάθε NIC (Network Interface Card - κάρτα δικτύου) και είναι γραμμένη πάνω στην κάρτα. Για την δρομολόγηση του πακέτου από τον αρχικό αποστολέα στον τελικό παραλήπτη, χρησιμοποιούνται οι διευθύνσεις IP. Για τη δρομολόγηση πακέτων εντός ενός τοπικού δικτύου (LAN) χρησιμοποιούνται οι διευθύνσεις MAC. Κατά τη μεταφορά του πακέτου, οι διευθύνσεις IP αποστολέα και παραλήπτη δε μεταβάλλονται. Σε κάθε βήμα όμως αλλάζουν οι διευθύνσεις MAC αποστολέα και παραλήπτη του πακέτου, γιατί αλλάζουν οι 2 ενδιάμεσοι σταθμοί.
Μία άλλη αναλογία για να γίνει καλύτερα κατανοητή η διαφορά μεταξύ των δύο διαφορετικών ειδών διευθύνσεων είναι το να σκεφτούμε τις MAC ως αριθμό διαμερίσματος και τις IP ως διεύθυνση κτηρίου, ή τις MAC ως εσωτερικό αριθμό τηλεφώνου και τις IP ως κανονικό, προσβάσιμο αριθμό τηλεφώνου. Σε κάθε περίπτωση, οι διευθύνσεις MAC έχουν νόημα και χρησιμοποιούνται εντός ενός τοπικού δικτύου.
Όταν από τον υπολογιστή μας πάμε να συνδεθούμε με κάποιον άλλο υπολογιστή που δεν ανήκει στο δίκτυο μας (πχ με ένα web server για να δούμε μία ιστοσελίδα), αφού βρούμε την IP του μέσω του πρωτοκόλλου DNS, στέλνουμε ένα πακέτο ζητώντας την ιστοσελίδα. Η διεύθυνση IP του παραλήπτη πρέπει να είναι αυτή του Web Server. Όμως για να φτάσει το πακέτο εκεί θα πρέπει να περάσει από διάφορους σταθμούς. Ο πρώτος θα είναι το ρουτεράκι μας για να βγει προς το internet. Όμως είπαμε πως από σταθμό σε σταθμό, εντός τοπικού δικτύου, για τη δρομολόγηση χρησιμοποιούνται οι διευθύνσεις MAC. Έτσι στο πακέτο μας σαν διεύθυνση MAC του αποστολέα βάζουμε τη δική μας, και στου παραλήπτη αυτή του router. O υπολογιστής μας γνωρίζει ποια είναι η ip του router. Δε γνωρίζει όμως ποια είναι η MAC διεύθυνση του router. Εκεί χρησιμοποιείται το πρωτόκολλο ARP (Address Resolution Protocol), το οποίο στην ουσία λειτουργεί ως εξής:
Aς υποθέσουμε ότι η ip του router μας (default gateway) είναι η 192.168.1.1. Με το πρωτόκολλο ARP γίνεται ο εξής διάλογος στο τοπικό δίκτυο:
- Εμείς φωνάζουμε σε όλο το τοπικό δίκτυο "Έι, έχει κανείς από σας την ip διεύθυνση 192.168.1.1? Όποιος την έχει ας μου στείλει μία την MAC του."
- και υπό φυσιολογικές συνθήκες, το router απαντάει "Εγώ την έχω, και η MAC μου είναι η τάδε.".
Τόσο ο υπολογιστής μας, όσο και κάθε άλλος στο δίκτυο, κάθε φορά που ακούει μία τέτοια απάντηση, καταγράφει την απάντηση σε μία μνήμη, την ARP Cache, όπου κρατάει αυτή την πληροφορία για λίγο, μέχρι να λήξει ο χρόνος εγκυρότητάς της. Οι απαντήσεις μάλιστα καταγράφονται ακόμα και αν δεν έχει προηγηθεί ερώτηση.
Το πρωτόκολλο ARP δεν προσφέρει μηχανισμούς πιστοποίησης. Και εκεί ανοίγεται ένα κενό ασφαλείας που επιτρέπει τη διεξαγωγή μίας Man-in-the-middle επίθεσης. H τακτική που θα ακολουθηθεί ονομάζεται ARP Spoofing. Ένας κακόβουλος εισβολέας, η Mallory συνδέεται στο τοπικό μας δίκτυο. Μπορεί να έχει δικαίωμα πρόσβασης στο δίκτυο, ή να συνδέθηκε ασύρματα μέσω του WiFi. Η Mallory έχει ip 192.168.1.20, και το router την 192.168.1.1. Η Alice έχει την ip 192.168.1.10. Η Mallory στέλνει μία απάντηση ARP στην Alice στην οποία λέει: Εγώ έχω την ip 192.168.1.1 και η MAC μου είναι αυτή. Η Mallory λέει ψέματα γιατί έδωσε τη δική της MAC αλλά την IP του Router. H Alice όμως, αθώα καθώς είναι, το πιστεύει και γράφει αυτή την πληροφορία στην ARP Cache της. H Mallory μόλις κατάφερε να κάνει ARP Cache Poisoning ή ARP Poisoning στην Alice. Αντίστοιχα ξεγελάει και το router, στέλνοντας του πως η IP της Alice ταυτίζεται με τη δικιά της MAC.
H Mallory κατάφερε να κάνει το router να πιστέψει πως εκείνη είναι η Alice και την Alice να πιστέψει πως εκείνη είναι το router. Έτσι τώρα όλη η κίνηση μεταξύ Alice και router διέρχεται διαμέσου της Mallory. Η Mallory τώρα μπορεί να υποκλέψει πακέτα, να τροποποιήσει δεδομένα και πλέον τα δεδομένα που ανταλλάσσει η Alice δεν έχουν εξασφαλισμένη ακεραιότητα και εμπιστευτικότητα.
Σημείωση: Οι αναφορές στην Alice που γίνονται παραπάνω, δεν αναφέρονται στο χρήστη του υπολογιστή, όσο στον υπολογιστή και το λογισμικό του. Όταν λέμε πως η Alice, ως αθώα, πιστεύει το ARP reply της Mallory με τις ψευδείς πληροφορίες, δεν εννοείται πως ο χρήστης πιάστηκε κορόιδο και πίστεψε το ψέμα, αλλά ότι το ARP πρωτόκολλο δεν έχει μηχανισμούς πιστοποίησης (είναι αθώο) και από σχεδιασμού του περιλαμβάνει αυτό το κενό ασφαλείας.
MiTM attack σε επικοινωνία με ανταλλαγή δημόσιων κλειδιών[επεξεργασία]
Έστω ότι η Alice θέλει να επικοινωνήσει με τον Bob με χρήση κρυπτογράφησης δημόσιου κλειδιού. Ανάμεσα από την Alice και τον Bob βρίσκεται η Mallory η οποία θέλει να παρακολουθήσει την συζήτηση αλλά και ενδεχομένως και να την παραποιήσει (χωρίς να το καταλάβει η Alice και ο Bob).
Στην αρχή της επικοινωνίας η Alice ζητά από τον Bob να στείλει το δημόσιο κλειδί του. Εάν ο Bob στείλει το δημόσιο κλειδί του στην Alice, η Mallory μπορεί να το υποκλέψει, έτσι ξεκινά η επίθεση "Man in the middle". Η Mallory στέλνει ένα πλαστό μήνυμα στην Alice όπου στη θέση του δημόσιου κλειδιού του Bob στέλνει το δικό της δημόσιο κλειδί.
Η Alice, λαμβάνει το πλαστό κλειδί της Mallory το οποίο θεωρεί ότι ανήκει στον Bob. Κρυπτογραφεί το μήνυμα με το πλαστό κλειδί της Mallory και στέλνει το μήνυμα στον Bob. Η Mallory υποκλέπτει το μήνυμα αυτό (το αποκρυπτογραφεί με το ιδιωτικό κλειδί του), αν θέλει το παραποιεί, και το στέλνει κρυπτογραφημένο με το δημόσιο κλειδί του Bob, στον Bob . Όταν ο Bob λαμβάνει το πλαστογραφημένο μήνυμα από την Mallory, το αποκρυπτογραφεί χρησιμοποιώντας το ιδιωτικό του κλειδί, και θεωρεί ότι το μήνυμα έχει σταλθεί από την Alice (αγνοώντας ότι η Mallory έχει υποκλέψει την επικοινωνία και ίσως έχει πλαστογραφήσει το μήνυμα της Alice).
1. H Alice στέλνει ένα μήνυμα στον Bob, το οποίο υποκλέπτεται από την Mallory::
Alice "Γεια σου Bob, είμαι η Alice. Δώσε μου το δημόσιο κλειδί σου."--> Mallory Bob
2. Η Mallory αναμεταδίδει το μήνυμα στον Bob. Ο Bob δεν γνωρίζει ότι το μήνυμα αυτό δεν έχει έρθει από την Alice:
Alice Mallory "Γεια σου Bob, είμαι η Alice. Δώσε μου το δημόσιο κλειδί σου."--> Bob
3. Ο Bob απαντά στέλνοντας το δημόσιο κλειδί του:
Alice Mallory <--[Δημόσιο Κλειδί Bob] Bob
4. Η Mallory αντικαθιστά το κλειδί του Bob με τον δικό της δημόσιο κλειδί, και το μεταδίδει στην Alice, υποστηρίζοντας ότι το κλειδί είναι του Bob:
Alice <--[Δημόσιο Κλειδί της Mallory] Mallory Bob
5. Η Alice κρυπτογραφεί το μήνυμα με το κλειδί της Mallory το οποίο νομίζει ότι είναι το κλειδί του Bob, θεωρώντας ότι το μήνυμα μπορεί να το αποκρυπτογραφήσει μόνο ο Bob με το ιδιωτικό του κλειδί:
Alice "Θα με συναντήσεις στην στάση λεωφορείων!"[κρυπτογρ. με το δημ. κλειδί της Mallory]--> Mallory Bob
6. Επειδή το μήνυμα κρυπτογραφήθηκε με το κλειδί της Mallory, η Mallory το αποκρυπτογραφεί, το διαβάζει, και το πλαστογραφεί (εάν θέλει), και το στέλνει στο Bob αφού πρώτα το κρυπτογραφήσει με το δημόσιο κλειδί του Bob:
Alice Mallory "Θα βρεθούμε στο κέντρο της πόλης!"[κρυπτογραφημένο με το δημόσιο κλειδί του Bob]--> Bob
7. Ο Bob θεωρεί το μήνυμα ότι είναι από την Alice αφού η επικοινωνία με την Alice είναι κρυπτογραφημένη και ασφαλής.
Συνακόλουθοι κίνδυνοι[επεξεργασία]
Επειδή με αυτό τον τρόπο δεν γίνεται αντιληπτός από τον αρχικό αποστολέα ή τον παραλήπτη, ένας επιτιθέμενος μπορεί ξεγελάσει το θύμα, ώστε να του αποκαλύψει εμπιστευτικές πληροφορίες. Ο επιτιθέμενος υποκρίνεται πως είναι ο αρχικός αποστολέας, τον οποίο πιθανώς εμπιστεύεται ο παραλήπτης.
Ο όρος Man-in-the-middle attack όπως είπαμε και είδαμε, μπορεί να υλοποιηθεί σε διαφορετικά επίπεδα και με διαφορετικούς τρόπους. Ανάλογα με την περίπτωση υπάρχουν πράγματα που μπορούμε να κάνουμε για να αντιληφθούμε πότε πέφτουμε θύμα μίας τέτοιας επίθεσης. Για παράδειγμα, η χρήση κάποιου έμπιστου PKI ή ψηφιακών πιστοποιητικών δε θα άφηνε το περιθώριο μίας τέτοιας επίθεσης στο παράδειγμα που είδαμε προηγουμένως με την MiTM attack σε επικοινωνία με ανταλλαγή δημόσιων κλειδιών.
Εξωτερικοί σύνδεσμοι[επεξεργασία]
Video του περιοδικού deltahacker, για Man in the Middle Attack με χρήση ARP και DNS spoofing