Το Linux, το πιο ευρέως χρησιμοποιούμενο λειτουργικό σύστημα ανοιχτού κώδικα στον κόσμο, γλίτωσε για λίγο από μια μαζική επίθεση στον κυβερνοχώρο το Σαββατοκύριακο του Πάσχα, όλα χάρη σε έναν εθελοντή.
Το backdoor είχε εισαχθεί σε μια πρόσφατη έκδοση μιας μορφής συμπίεσης Linux που ονομάζεται XZ Utils, ένα εργαλείο που είναι ελάχιστα γνωστό έξω από τον κόσμο του Linux, αλλά χρησιμοποιείται σχεδόν σε κάθε διανομή Linux για τη συμπίεση μεγάλων αρχείων, καθιστώντας ευκολότερη τη μεταφορά τους. Εάν είχε εξαπλωθεί ευρύτερα, ένας ανείπωτος αριθμός συστημάτων θα μπορούσε να είχε μείνει σε κίνδυνο για χρόνια.
Και ως Ars Technica σημειώνεται σε αυτό εξαντλητική ανακεφαλαίωσηο ένοχος εργαζόταν στο έργο ανοιχτά.
Η ευπάθεια, που εισήχθη στην απομακρυσμένη σύνδεση του Linux, εκτέθηκε μόνο σε ένα μόνο κλειδί, έτσι ώστε να μπορεί να κρυφτεί από σαρώσεις δημοσίων υπολογιστών. Οπως και Γράφει ο Ben Thompson Στρατηγική. «Η πλειοψηφία των υπολογιστών του κόσμου θα ήταν ευάλωτοι και κανείς δεν θα το γνώριζε».
Η ιστορία της ανακάλυψης της κερκόπορτας XZ ξεκινά νωρίς το πρωί της 29ης Μαρτίου, καθώς ο προγραμματιστής της Microsoft με έδρα το Σαν Φρανσίσκο, Andres Freund, δημοσίευσε στο Mastodon and έστειλε ένα email στη λίστα αλληλογραφίας ασφαλείας του OpenWall με την επικεφαλίδα: “backdoor in upstream xz/liblzma που οδηγεί σε συμβιβασμό διακομιστή ssh.”
Ο Freund, ο οποίος προσφέρεται εθελοντικά ως «συντηρητής» για την PostgreSQL, μια βάση δεδομένων που βασίζεται στο Linux, παρατήρησε μερικά περίεργα πράγματα τις τελευταίες εβδομάδες κατά την εκτέλεση δοκιμών. Οι κρυπτογραφημένες συνδέσεις στο liblzma, μέρος της βιβλιοθήκης συμπίεσης XZ, κατανάλωσαν έναν τόνο CPU. Κανένα από τα εργαλεία απόδοσης που χρησιμοποίησε δεν αποκάλυψε τίποτα, έγραψε ο Freund στο Mastodon. Αυτό τον έκανε αμέσως ύποπτο και θυμήθηκε ένα «περίεργο παράπονο» από έναν χρήστη της Postgres μερικές εβδομάδες νωρίτερα σχετικά με το Valgrind, το πρόγραμμα του Linux που ελέγχει για σφάλματα μνήμης.
Μετά από κάποιο sleuth, Freund ανακάλυψε τελικά τι ήταν λάθος. «Το upstream xz repository και τα xz tarballs έχουν κλειστεί πίσω πόρτα», σημείωσε ο Freund στο email του. Ο κακόβουλος κώδικας ήταν στις εκδόσεις 5.6.0 και 5.6.1 των εργαλείων και βιβλιοθηκών xz.
Λίγο αργότερα, η εταιρεία επιχειρηματικού λογισμικού ανοιχτού κώδικα Red Hat έστειλε ένα μήνυμα ειδοποίηση ασφαλείας έκτακτης ανάγκης για χρήστες του Fedora Rawhide και του Fedora Linux 40. Τελικά, η εταιρεία κατέληξε στο συμπέρασμα ότι η έκδοση beta του Fedora Linux 40 περιείχε δύο επηρεαζόμενες εκδόσεις των βιβλιοθηκών xz. Οι εκδόσεις Fedora Rawhide πιθανότατα έλαβαν και τις εκδόσεις 5.6.0 ή 5.6.1.
ΠΑΡΑΚΑΛΩ ΣΤΑΜΑΤΗΣΤΕ ΑΜΕΣΩΣ ΤΗ ΧΡΗΣΗ ΤΩΝ ΠΕΡΙΠΤΩΣΕΩΝ FEDORA RAWHIDE για εργασία ή προσωπική δραστηριότητα. Το Fedora Rawhide θα επανέλθει σε xz-5.4.x σύντομα, και μόλις γίνει αυτό, οι παρουσίες του Fedora Rawhide μπορούν να ανακατανεμηθούν με ασφάλεια.
Αν και μια έκδοση beta του Debian, η δωρεάν διανομή Linux, περιείχε παραβιασμένα πακέτα, την ομάδα ασφαλείας του έδρασε γρήγορα να τα επαναφέρουν. «Αυτή τη στιγμή δεν είναι γνωστό ότι επηρεάζονται σταθερές εκδόσεις του Debian», έγραψε ο Salvatore Bonaccorso του Debian σε μια ειδοποίηση ασφαλείας προς τους χρήστες το βράδυ της Παρασκευής.
Ο Freund αργότερα αναγνώρισε το άτομο που υπέβαλε τον κακόβουλο κώδικα ως έναν από τους δύο κύριους προγραμματιστές του xz Utils, γνωστό ως JiaT75 ή Jia Tan. «Δεδομένης της δραστηριότητας για αρκετές εβδομάδες, ο υπεύθυνος είτε εμπλέκεται άμεσα είτε υπήρξε κάποιος πολύ σοβαρός συμβιβασμός του συστήματός του. Δυστυχώς η τελευταία μοιάζει με την λιγότερο πιθανή εξήγηση, δεδομένου ότι κοινοποιήθηκαν σε διάφορες λίστες σχετικά με τις «διορθώσεις» που αναφέρθηκαν παραπάνω», έγραψε ο Freund στο ανάλυσηαφού συνδέσαμε πολλές λύσεις που έγιναν από το JiaT75.
Το JiaT75 ήταν ένα γνωστό όνομα: είχαν συνεργαστεί δίπλα-δίπλα με τον αρχικό προγραμματιστή της μορφής αρχείου .xz, Lasse Collin, για λίγο. Όπως σημείωσε ο προγραμματιστής Russ Cox στο δικό του χρονοδιάγραμματο JiaT75 ξεκίνησε στέλνοντας φαινομενικά νόμιμες ενημερώσεις κώδικα στη λίστα αλληλογραφίας XZ τον Οκτώβριο του 2021.
Άλλα σκέλη του συστήματος ξεδιπλώθηκαν λίγους μήνες αργότερα, καθώς δύο άλλες ταυτότητες, ο Jigar Kumar και ο Dennis Ens, άρχισε να στέλνει καταγγελίες μέσω email στον Collin σχετικά με σφάλματα και την αργή ανάπτυξη του έργου. Ωστόσο, όπως σημειώνεται σε αναφορές από Evan Boehs και άλλοι, το “Kumar” και το “Ens” δεν εμφανίστηκαν ποτέ εκτός της κοινότητας XZ, με αποτέλεσμα οι ερευνητές να πιστεύουν ότι και τα δύο είναι ψεύτικα που υπήρχαν μόνο για να βοηθήσουν την Jia Tan να μπορέσει να παραδώσει τον backdoored κώδικα.
«Λυπάμαι για τα προβλήματα ψυχικής σας υγείας, αλλά είναι σημαντικό να γνωρίζετε τα δικά σας όρια. Καταλαβαίνω ότι αυτό είναι ένα έργο χόμπι για όλους τους συντελεστές, αλλά η κοινότητα επιθυμεί περισσότερα», έγραψε ο Ens σε ένα μήνυμα, ενώ ο Kumar είπε σε ένα άλλο ότι «Η πρόοδος δεν θα συμβεί μέχρι να υπάρξει νέος συντηρητής».
Στη μέση αυτού του προβλήματος, ο Collins έγραψε ότι «δεν έχω χάσει το ενδιαφέρον μου, αλλά η ικανότητά μου να φροντίζω έχει περιοριστεί αρκετά κυρίως λόγω μακροχρόνιων προβλημάτων ψυχικής υγείας αλλά και λόγω κάποιων άλλων πραγμάτων» και πρότεινε ότι η Jia Tan θα έπαιρνε σε μεγαλύτερο ρόλο. «Είναι επίσης καλό να έχουμε κατά νου ότι αυτό είναι ένα απλήρωτο έργο χόμπι», κατέληξε. Τα email από το “Kumar” και το “Ens” συνεχίστηκαν έως ότου ο Tan προστέθηκε ως συντηρητής αργότερα εκείνο το έτος, ικανός να κάνει αλλαγές και να προσπαθήσει να μεταφέρει το backdoored πακέτο σε διανομές Linux με μεγαλύτερη εξουσία.
Το περιστατικό με την κερκόπορτα xz και τα επακόλουθά του είναι ένα παράδειγμα της ομορφιάς του ανοιχτού κώδικα και μιας εντυπωσιακής ευπάθειας στην υποδομή του Διαδικτύου.
Ένας προγραμματιστής πίσω από το FFmpeg, ένα δημοφιλές πακέτο πολυμέσων ανοιχτού κώδικα, τόνισε το πρόβλημα σε ένα tweet, λέγοντας «Το φιάσκο xz έδειξε πώς η εξάρτηση από απλήρωτους εθελοντές μπορεί να προκαλέσει μεγάλα προβλήματα. Εταιρείες τρισεκατομμυρίων δολαρίων αναμένουν δωρεάν και επείγουσα υποστήριξη από εθελοντές». Και έφεραν αποδείξεις, επισημαίνοντας πώς αντιμετώπισαν ένα σφάλμα «υψηλής προτεραιότητας» που επηρεάζει τις Ομάδες της Microsoft.
Παρά την εξάρτηση της Microsoft από το λογισμικό της, ο προγραμματιστής γράφει, «Αφού ζήτησαν ευγενικά ένα συμβόλαιο υποστήριξης από τη Microsoft για μακροπρόθεσμη συντήρηση, πρόσφεραν μια εφάπαξ πληρωμή μερικών χιλιάδων δολαρίων… οι επενδύσεις στη συντήρηση και τη βιωσιμότητα είναι αστείες και πιθανώς δεν θα πάρουν την προαγωγή τους σε έναν μεσαίο μάνατζερ, αλλά θα πληρώσουν χιλιάδες φορές σε πολλά χρόνια».
Λεπτομέρειες για το ποιος βρίσκεται πίσω από το “JiaT75”, πώς εκτέλεσαν το σχέδιό τους και την έκταση της ζημιάς αποκαλύπτονται από μια στρατιά προγραμματιστών και επαγγελματιών στον τομέα της κυβερνοασφάλειας, τόσο στα μέσα κοινωνικής δικτύωσης όσο και στα διαδικτυακά φόρουμ. Αλλά αυτό συμβαίνει χωρίς άμεση οικονομική υποστήριξη από πολλές από τις εταιρείες και τους οργανισμούς που επωφελούνται από τη δυνατότητα χρήσης ασφαλούς λογισμικού.