Εισαγωγή
Μια επίθεση έκλειψης είναι μια σχετικά απλή επίθεση που μπορεί να χρησιμοποιήσει ένας κακόβουλος παράγοντας για να παρέμβει σε κόμβους ενός δικτύου. Όπως δηλώνει και το όνομά της, η επίθεση έχει ως στόχο να αποκρύψει την εικόνα ενός συμμετέχοντα στο δίκτυο peer-to-peer, ώστε να προκαλέσει γενική αναστάτωση ή να ετοιμάσει το έδαφος για πιο εξελιγμένες επιθέσεις.
Οι επιθέσεις έκλειψης μπορεί να φαίνονται, εκ πρώτης όψεως, παρόμοιες με τις επιθέσεις Sybil. Παρόλο που έχουν ορισμένες ομοιότητες - ο κακόβουλος παράγοντας θα κατακλύσει το δίκτυο με ψεύτικους ομότιμους - ο τελικός τους στόχος διαφέρει. Μια επίθεση έκλειψης στοχεύει έναν μεμονωμένο κόμβο (για λόγους που εξηγούνται σε επόμενη ενότητα), ενώ μια επίθεση Sybil γίνεται σε όλο το δίκτυο και έχει σχεδιαστεί για να εκμεταλλευτεί το σύστημα αξιοπιστίας του πρωτοκόλλου.
Αυτή η έννοια αναλύεται εκτενώς στην έκθεση του 2015 Επιθέσεις έκλειψης στο δίκτυο peer-to-peer του Bitcoin, στο οποίο ερευνητές από το Πανεπιστήμιο της Βοστώνης και το Εβραϊκό Πανεπιστήμιο παρουσιάζουν τα ευρήματα από τα πειράματα που διεξήγαγαν για την πραγματοποίηση επιθέσεων έκλειψης, καθώς και πιθανά μέτρα αντιμετώπισης αυτών.
Πώς λειτουργεί μια επίθεση έκλειψης
Οι εξορύκτες Bitcoin χρειάζονται εξειδικευμένο εξοπλισμό για να δημιουργήσουν νέα block, αλλά οι κόμβοι που δεν εξορύσσονται (ή είναι πλήρεις) εκτελούνται εύκολα με ελάχιστη υπολογιστική ισχύ. Αυτό συμβάλλει στην αποκέντρωση του Bitcoin, καθώς ο καθένας μπορεί να δημιουργήσει έναν κόμβο σε μια συσκευή περιορισμένων προδιαγραφών. Το λογισμικό διατηρεί μια βάση δεδομένων συναλλαγών την οποία συγχρονίζει με τους άμεσους ομότιμους, ώστε να παραμένει συγχρονισμένο με το δίκτυο.
Ένας περιοριστικός παράγοντας για πολλούς κόμβους είναι το εύρος ζώνης. Παρόλο που υπάρχουν πάρα πολλές συσκευές που εκτελούν το λογισμικό, η μέση συσκευή δεν μπορεί να συνδεθεί απευθείας σε πολλές από αυτές λόγω των περιορισμών που ορίζει το λογισμικό Bitcoin (το οποίο επιτρέπει το πολύ 125 συνδέσεις).
Σε μια επίθεση έκλειψης, ο κακόβουλος παράγοντας θα εξασφαλίσει ότι όλες οι συνδέσεις του στόχου πραγματοποιούνται σε κόμβους που ελέγχονται από τον επιτιθέμενο. Η οντότητα θα κατακλύσει πρώτα τον στόχο με τις δικές της διευθύνσεις IP, στις οποίες το θύμα πιθανότατα θα συνδεθεί μόλις επανεκκινήσει το λογισμικό του. Η επανεκκίνηση μπορεί είτε να γίνει εξαναγκαστικά (π.χ. με μια επίθεση DDoS στον στόχο), είτε ο επιτιθέμενος μπορεί απλώς να περιμένει να συμβεί.
Μόλις συμβεί αυτό, το ανυποψίαστο θύμα βρίσκεται στο έλεος των κακόβουλων κόμβων - χωρίς να γνωρίζει τι συμβαίνει στο υπόλοιπο δίκτυο, ο επιτιθέμενος μπορεί να το τροφοδοτήσει με λάθος δεδομένα.
Συνέπειες μιας επίθεσης έκλειψης
Αν ένας επιτιθέμενος δαπανά πόρους για να απομακρύνει έναν ομότιμο από το δίκτυο, πιθανότατα έχει κίνητρο να το κάνει. Υπάρχουν πολλές διαδοχικές επιθέσεις που μπορούν να πραγματοποιηθούν ευκολότερα όταν ένας κόμβος ασφυκτιά.
Διπλές δαπάνες 0 επιβεβαίωσης
Αν ένα άτομο αποδεχτεί μια συναλλαγή χωρίς επιβεβαίωση, κινδυνεύει από διπλή δαπάνη. Η συναλλαγή μπορεί να έχει μεταδοθεί, αλλά μέχρι να συμπεριληφθεί σε ένα block (και επομένως να ενσωματωθεί στο blockchain), ο αποστολέας μπορεί εύκολα να δημιουργήσει μια νέα συναλλαγή που ξοδεύει τα ίδια κεφάλαια κάπου αλλού. Αν η νέα συναλλαγή έχει υψηλότερη προμήθεια, ένας εξορύκτης πιθανότατα θα τη συμπεριλάβει πριν από την αρχική, με αποτέλεσμα η προηγούμενη να είναι άκυρη.
Ορισμένες επιχειρήσεις και άτομα αποδέχονται αυτές τις συναλλαγές με 0 επιβεβαίωση. Ας δούμε το παράδειγμα ενός εμπόρου, του Γιάννη, που πουλάει οχήματα υψηλών προδιαγραφών. Δεν γνωρίζει ότι η Μαίρη έχει κάνει επίθεση έκλειψης στον κόμβο του και δεν υποψιάζεται τίποτα, καθώς εκείνη υποβάλλει εντολή για την αγορά ενός πολυτελούς σπορ αυτοκινήτου. Δημιουργεί μια συναλλαγή, την οποία ο Γιάννης στη συνέχεια μεταδίδει στο δίκτυο. Αφού βεβαιώθηκε ότι η πληρωμή βρίσκεται καθ' οδόν, παραδίδει τα κλειδιά του αυτοκινήτου και η Μαίρη εξαφανίζεται.
Φυσικά, η συναλλαγή δεν μεταδόθηκε στο δίκτυο - ο Γιάννης απλώς τη μετέδωσε στους κακόβουλους κόμβους της Μαίρης, που δεν θα τη μεταδώσουν σε αξιόπιστους κόμβους. Ενώ αυτή η συναλλαγή παραμένει σε εκκρεμότητα, η Μαίρη ξοδεύει τα ίδια κεφάλαια στο (πραγματικό) δίκτυο, είτε σε κάποιο άλλο μέρος είτε σε μια διεύθυνση που της ανήκει. Ακόμα και αν η αρχική συναλλαγή προς τον Γιάννη εμφανιστεί τελικά, θα απορριφθεί, καθώς τα νομίσματα έχουν ήδη δαπανηθεί.
Διπλές δαπάνες N επιβεβαίωσης
Η διπλή δαπάνη με επιβεβαίωση Ν μοιάζει με την επιβεβαίωση 0, αλλά απαιτεί περισσότερη προετοιμασία. Πολλές επιχειρήσεις προτιμούν να περιμένουν μέχρι να γίνουν ορισμένες επιβεβαιώσεις προτού επισημάνουν μια πληρωμή ως έγκυρη. Για να το παρακάμψει αυτό, ο επιτιθέμενος πρέπει να παρακάμψει τόσο τους εξορύκτες όσο και τον έμπορο. Μόλις ο επιτιθέμενος διαμορφώσει την εντολή με τον έμπορο, μεταδίδει μια συναλλαγή στους εξορύκτες (που έχουν υποστεί έκλειψη). Η συναλλαγή επιβεβαιώνεται και περιλαμβάνεται στο blockchain - αλλά αυτό το blockchain δεν είναι το blockchain που παρατηρεί το μεγαλύτερο μέρος του δικτύου, καθώς ο εξορύκτης αποκόπτεται.
Από εκεί, ο επιτιθέμενος αναμεταδίδει αυτήν την έκδοση του blockchain στον έμπορο, ο οποίος αποδεσμεύει τα είδη πιστεύοντας ότι η συναλλαγή έχει επιβεβαιωθεί. Μόλις οι κόμβοι που έχουν υποστεί έκλειψη επανενταχθούν στο πραγματικό δίκτυο, το blockchain που εσφαλμένα πιστεύουν ότι είναι έγκυρο μένει ακάλυπτο από αυτό στο οποίο λειτουργεί το υπόλοιπο δίκτυο (αυτό μοιάζει σε κάποιο βαθμό με την επίθεση 51%).
Αποδυνάμωση των ανταγωνιστών εξορυκτών
Ένας κόμβος που έχει υποστεί έκλειψη θα συνεχίσει να λειτουργεί, χωρίς να γνωρίζει ότι έχει διαχωριστεί από το δίκτυο. Οι εξορύκτες θα συνεχίσουν να εξορύσσουν block σύμφωνα με τους κανόνες που ορίζονται από το πρωτόκολλο, αλλά τα block που προστίθενται θα απορρίπτονται καθώς συγχρονίζονται με τους αξιόπιστους ομοτίμους.
Στη θεωρία, μια επίθεση έκλειψης μεγάλης κλίμακας σε ισχυρούς εξορύκτες θα μπορούσε να χρησιμοποιηθεί για τη διευκόλυνση μιας επίθεσης 51%. Όπως έχουν τα πράγματα, το κόστος για την κατάληψη του μεγαλύτερου μέρους της ισχύος hashing του Bitcoin είναι απλώς πολύ υψηλό ακόμη και για τους πιο πολυμήχανους επιτιθέμενους - στα ~80 TH/s, η οντότητα θα χρειαζόταν περισσότερα από 40 TH/s για να επιχειρήσει έναν τέτοιο ελιγμό.
Σε ένα υποθετικό σενάριο όπου αυτή η ισχύς hashing κατανέμεται μεταξύ 10 μερών (έτσι ώστε το καθένα να κατέχει 8 TH/s), ο επιτιθέμενος μπορεί να μειώσει σημαντικά τις απαιτήσεις για μια επίθεση 51% με το να αποκλείσει αυτά τα μέρη από το δίκτυο. Αν τα πέντε υποστούν μια επίθεση έκλειψης, τα 40 TH/s αφαιρούνται από την πορεία για να βρεθεί το επόμενο block και ο επιτιθέμενος πρέπει πλέον να αποκτήσει μόνο λίγο περισσότερα από 20TH/s για να αναλάβει τον έλεγχο.
Ένα άλλο σαμποτάζ που μπορεί να επιτευχθεί με την επίθεση έκλειψης στους στόχους περιλαμβάνει τη χειραγώγηση των κόμβων για δόλια εξόρυξη ή τον ανταγωνισμό μεταξύ των εξορυκτών για να βρεθεί το επόμενο block.
Μετριασμός
Με αρκετές διευθύνσεις IP, ένας επιτιθέμενος μπορεί να κάνει μια επίθεση έκλειψης σε οποιονδήποτε κόμβο. Η πιο απλή μέθοδος αποτροπής αυτού του φαινομένου είναι ένας διαχειριστής να μπλοκάρει τις εισερχόμενες συνδέσεις και να πραγματοποιεί εξερχόμενες συνδέσεις μόνο προς συγκεκριμένους κόμβους (όπως αυτοί που έχουν συμπεριληφθεί στη λίστα επιτρεπόμενων από άλλους ομότιμους). Ωστόσο, όπως επισημαίνεται στην έρευνα, αυτή η προσέγγιση δεν λειτουργεί σε μεγάλη κλίμακα - αν όλοι οι συμμετέχοντες λάβουν αυτά τα μέτρα, δεν θα μπορούν να ενταχθούν νέοι κόμβοι στο δίκτυο.
Οι συγγραφείς προτείνουν διάφορες βελτιώσεις στο λογισμικό του Bitcoin, μερικές από τις οποίες έχουν ενσωματωθεί μετά την κυκλοφορία της έρευνας. Αυτές κάνουν τις επιθέσεις έκλειψης πιο δαπανηρές μέσω μικρών τροποποιήσεων στον κώδικα, όπως η τυχαία επιλογή νέων συνδέσεων και η μεγαλύτερη χωρητικότητα για την αποθήκευση διευθύνσεων.
Συμπεράσματα
Οι επιθέσεις έκλειψης πραγματοποιούνται σε επίπεδο ομότιμου δικτύου. Αν αναπτυχθεί ως αυτόνομη επίθεση, μπορεί να είναι μπελάς. Η πραγματική τους αποτελεσματικότητα βασίζεται στην ενίσχυση άλλων επιθέσεων που επηρεάζουν τους στόχους σε οικονομικό επίπεδο ή παρέχουν στον επιτιθέμενο πλεονεκτήματα κατά την εξόρυξη.
Στην πράξη, δεν έχουν προκύψει ακόμη σοβαρές συνέπειες από μια επίθεση έκλειψης, αλλά η απειλή παραμένει υπαρκτή παρά τα μέτρα αντιμετώπισης που έχουν ενσωματωθεί στο δίκτυο. Όπως συμβαίνει με τους περισσότερους φορείς επίθεσης που υπάρχουν για το Bitcoin και άλλα κρυπτονομίσματα, η ισχυρότερη άμυνα θα είναι αυτή που κάνει οικονομικά ασύμφορη την προσπάθειά τους από κακόβουλα μέρη.