Ζουμ για Mac ενημερωμένες εκδόσεις κώδικα get-root bug - ενημερώστε τώρα! Ευφυΐα Δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Ζουμ για Mac patches get-root bug – ενημερώστε τώρα!

Στο γνωστό shindig ασφαλείας DEF CON στο Λας Βέγκας της Νεβάδα, την περασμένη εβδομάδα, ο ερευνητής για την ασφάλεια στον κυβερνοχώρο Mac, Patrick Wardle αποκάλυψε μια «ρίζα» ανύψωση του προνομίου Σφάλμα (EoP) στο Zoom για Mac:

Στο tweet, που ακολούθησε την ομιλία του [2022-08-12], ο Wardle σημείωσε:

Προς το παρόν δεν υπάρχει patch [:ΤΗΓΑΝΙΣΜΕΝΟ-ΑΥΓΟ ΜΑΤΙΑ ΠΟΥ ΑΠΕΙΚΟΝΙΖΟΥΝ EMOJI ΣΥΝΑΓΕΡΜΟΥ:] [:EDVARD MUNCH SCREAM EMOJI:]

Το Zoom εργάστηκε αμέσως σε ένα patch για το ελάττωμα, το οποίο ανακοινώθηκε την επόμενη μέρα Δελτίο ασφαλείας Zoom ZSB-22018, κερδίζοντας ένα συγχαρητήριο απάντηση από τον Wardle στη διαδικασία:

Mahalos στο @Zoom για την (απίστευτα) γρήγορη λύση! [: ΚΑΙ ΤΑ ΔΥΟ ΧΕΡΙΑ ΣΗΚΩΣΕ ΣΕ ΓΙΟΡΤΗ ΚΑΙ ΚΟΥΝΟΥΣΑΝ ΓΙΑ ΤΑ ΕΜΟΤΖΙ:] [:ΠΑΛΑΜΙΚΕΣ ΠΙΕΣΜΕΝΕΣ ΜΑΖΙ ΣΕ ΣΗΜΑ ΤΗΣ ΠΝΕΥΜΑΤΙΚΗΣ ΚΑΛΗΘΕΛΗΣΗΣ EMOJI:]

Αποκάλυψη μηδενικής ημέρας

Δεδομένης της φαινομενικής ταχύτητας και ευκολίας με την οποία το Zoom μπόρεσε να εκπέμψει μια ενημέρωση κώδικα για το σφάλμα, μεταγλωττισμένη CVE-2022-28756, μάλλον αναρωτιέστε γιατί ο Wardle δεν ενημέρωσε το Zoom για το σφάλμα εκ των προτέρων, θέτοντας την ημέρα της ομιλίας του ως προθεσμία για την αποκάλυψη των λεπτομερειών.

Αυτό θα έδινε χρόνο στο Zoom να προωθήσει την ενημέρωση στους πολλούς χρήστες Mac του (ή τουλάχιστον για να την κάνει διαθέσιμη σε όσους πιστεύουν σε μπαλώνω νωρίς/μπαλώνω συχνά), εξαλείφοντας έτσι το χάσμα μεταξύ του Wardle που εξηγεί στον κόσμο πώς να κάνει κατάχρηση του σφάλματος και της επιδιόρθωσης του σφάλματος.

Στην πραγματικότητα, φαίνεται ότι ο Wardle έκανε ό,τι περνούσε από το χέρι του για να προειδοποιήσει το Zoom για αυτό το σφάλμα, καθώς και ένα σωρό διασυνδεδεμένα ελαττώματα στη διαδικασία αυτόματης ενημέρωσης του Zoom, πριν από μερικούς μήνες.

Ο Wardle εξηγεί το χρονοδιάγραμμα αποκάλυψης σφαλμάτων στο διαφάνειες από την ομιλία του DEF CON, και παραθέτει μια ροή ενημερώσεων Zoom που σχετίζονται με τα ελαττώματα που ανακάλυψε.

Ένα δίκοπο σπαθί

Τα σφάλματα που συζήτησε ο Wardle σχετίζονταν γενικά με τον μηχανισμό αυτόματης ενημέρωσης του Zoom, ένα μέρος οποιουδήποτε οικοσυστήματος λογισμικού που είναι λίγο δίκοπο μαχαίρι – ένα πιο ισχυρό όπλο από ένα κανονικό σπαθί, αλλά αντίστοιχα πιο δύσκολο να το χειριστείς με ασφάλεια.

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

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

Αυτό συμβαίνει επειδή η δουλειά του προγράμματος ενημέρωσης είναι να αντικαθιστά το λογισμικό εφαρμογής (κάτι που δεν πρέπει να κάνει ένας τακτικός χρήστης) και ίσως να εκκινεί προνομιακές εντολές λειτουργικού συστήματος για να κάνει ρυθμίσεις παραμέτρων ή άλλες αλλαγές σε επίπεδο συστήματος.

Με άλλα λόγια, εάν οι προγραμματιστές δεν είναι προσεκτικοί, το ίδιο το εργαλείο που τους βοηθά να διατηρούν την υποκείμενη εφαρμογή τους ενημερωμένη και πιο ασφαλή θα μπορούσε να γίνει αιχμή από την οποία οι εισβολείς θα μπορούσαν να υπονομεύσουν την ασφάλεια εξαπατώντας το πρόγραμμα ενημέρωσης να εκτελέσει μη εξουσιοδοτημένες εντολές με δικαιώματα συστήματος .

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

Πρέπει επίσης να διατηρήσουν το ακεραιότητα των αρχείων ενημέρωσης που τελικά καταναλώνουν, έτσι ώστε ένας τοπικός εισβολέας να μην μπορεί να τροποποιήσει κρυφά το πακέτο ενημέρωσης "επαληθευμένο ασφαλές" που μόλις λήφθηκε στη σύντομη περίοδο μεταξύ της ανάκτησης και της ενεργοποίησής του.

Παρακάμπτοντας τον έλεγχο γνησιότητας

Όπως εξηγεί ο Wardle στο δικό του χαρτί, ένα από τα σφάλματα που ανακάλυψε και αποκάλυψε ήταν ένα ελάττωμα στο πρώτο βήμα που αναφέρεται παραπάνω, όταν το πρόγραμμα αυτόματης ενημέρωσης του Zoom προσπάθησε να επαληθεύσει την αυθεντικότητα του πακέτου ενημέρωσης που μόλις είχε κατεβάσει.

Αντί να χρησιμοποιούν τα επίσημα API του macOS για την απευθείας επικύρωση της ψηφιακής υπογραφής της λήψης, οι προγραμματιστές του Zoom αποφάσισαν να κάνουν τον έλεγχο ταυτότητας έμμεσα, εκτελώντας το βοηθητικό πρόγραμμα macOS pkgutil --check-signature στο παρασκήνιο και εξετάζοντας την έξοδο.

Ακολουθεί ένα παράδειγμα pkgutil εξόδου, χρησιμοποιώντας μια παλιά έκδοση του Zoom.pkg πακέτο λογισμικού:

$ pkgutil --check-signature Zoom.pkg Πακέτο "Zoom.pkg": Κατάσταση: υπογεγραμμένο από πιστοποιητικό προγραμματιστή που εκδόθηκε από την Apple για διανομή Υπογεγραμμένο με αξιόπιστη χρονική σήμανση στις: 2022-06-27 01:26:22 +0000 Αλυσίδα πιστοποιητικών : 1. Αναγνωριστικό προγραμματιστή Πρόγραμμα εγκατάστασης: Zoom Video Communications, Inc. (BJ4HAAB9B3) Λήγει: 2027-02-01 22:12:15 +0000 SHA256 Δακτυλικό αποτύπωμα: 6D 70 1A 84 F0 5A D4 C1 C1 C3 B01 FB 2F 1C A2 9 5 A6 80 48 FF B4 F76 60 BB 5C ----------------------------------- ------------------------------------- 0. Λήξη αρχής πιστοποίησης αναγνωριστικού προγραμματιστή: 57-8-2 2027:02:01 +22 SHA12 Δακτυλικό αποτύπωμα: 15A FC 0000D 256 A7 9F 01 A6 DE 2 03 2 96D 37A FE 93 6 4D 68D E09 0D 2 F1 8C 03 CF 2- B9 -------------------------------------------------- -------------- 88. Apple Root CA Λήγει: 0-1-63 58:7:3 +2035 SHA02 Δακτυλικό αποτύπωμα: B09 B21 40 36E CB C0000 FF 256 0 1 73C 0 F7 45 05E 14E DA 2B CA ED 49E 1C 29 C5 BE 6 B6 A7 2 68 F5 91

Δυστυχώς, όπως ανακάλυψε ο Wardle όταν απομεταγλώττισε τον κωδικό επαλήθευσης υπογραφής του Zoom, το πρόγραμμα ενημέρωσης Zoom δεν επεξεργάστηκε το pkgutil δεδομένα με τον ίδιο τρόπο που θα έκαναν οι ανθρώπινοι παρατηρητές.

Ελέγχαμε την έξοδο ακολουθώντας τη χρήσιμη οπτική ακολουθία στην έξοδο.

Αρχικά, θα αναζητούσαμε πρώτα την επιθυμητή κατάσταση, π.χ signed by a developer certificate issued by Apple for distribution.

Τότε θα βρίσκαμε την υποεπικεφαλίδα Certificate Chain:.

Τέλος, θα διασταυρώναμε ότι η αλυσίδα αποτελούνταν από αυτούς τους τρεις υπογράφοντες, με τη σωστή σειρά:

  1. Zoom Video Communications, Inc. 2. Αρχή πιστοποίησης αναγνωριστικού προγραμματιστή 3. Apple Root CA

Παραδόξως, ο κώδικας του Zoom απλώς επαλήθευσε ότι καθεμία από τις παραπάνω τρεις συμβολοσειρές (χωρίς καν έλεγχος για το μοναδικό αναγνωριστικό του Zoom BJ4HAAB9B3) εμφανίστηκε κάπου στην έξοδο από pkgutil.

Έτσι, δημιουργώντας ένα πακέτο με ένα παράλογο αλλά έγκυρο όνομα όπως π.χ Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg θα ξεγελούσε τον επαληθευτή πακέτου για να βρει τις "συμβολοσειρές ταυτότητας" που αναζητούσε.

Το πλήρες όνομα του πακέτου επαναλαμβάνεται στο pkgutil κεφαλίδα εξόδου στην πρώτη γραμμή, όπου ο άτυχος "επαληθευτής" του Zoom θα ταίριαζε και με τις τρεις συμβολοσειρές κειμένου στο λάθος μέρος της εξόδου.

Έτσι, ο έλεγχος «ασφάλειας» θα μπορούσε να παρακαμφθεί επιπόλαια.

Μερική διόρθωση

Ο Wardle λέει ότι το Zoom τελικά διόρθωσε αυτό το σφάλμα, περισσότερο από επτά μήνες αφότου το ανέφερε, εγκαίρως για το DEF CON…

…αλλά μετά την εφαρμογή της ενημέρωσης κώδικα, παρατήρησε ότι υπήρχε ακόμα ένα κενό στη διαδικασία ενημέρωσης.

Το πρόγραμμα ενημέρωσης προσπάθησε να κάνει το σωστό:

  • 1. Μετακινήστε το ληφθέν πακέτο στον κατάλογο που ανήκει στο root, και επομένως θεωρητικά είναι εκτός ορίων για κάθε τακτικό χρήστη.
  • 2. Επαληθεύστε την κρυπτογραφική υπογραφή του πακέτου που έχετε λάβει, με χρήση επίσημων API, όχι μέσω συμβιβασμού αντιστοίχισης κειμένου pkgutil εξόδου.
  • 3. Καταργήστε την αρχειοθέτηση του ληφθέντος αρχείου πακέτου, προκειμένου να επαληθευτεί ο αριθμός έκδοσής του, για να αποτραπούν επιθέσεις υποβάθμισης.
  • 4. Εγκαταστήστε το ληφθέν αρχείο πακέτου, χρησιμοποιώντας τα δικαιώματα root της διαδικασίας αυτόματης ενημέρωσης.

Δυστυχώς, παρόλο που ο κατάλογος που χρησιμοποιήθηκε για την αποθήκευση του πακέτου ενημέρωσης ανήκε στο root, σε μια προσπάθεια να τον κρατήσει ασφαλή από αδιάκριτους χρήστες που προσπαθούν να ανατρέψουν το αρχείο ενημέρωσης ενώ χρησιμοποιήθηκε…

…το αρχείο πακέτου που λήφθηκε πρόσφατα έμεινε «εγγράψιμο στον κόσμο» στη νέα του θέση (παρενέργεια της λήψης από κανονικό λογαριασμό, όχι από root).

Αυτό έδωσε στους τοπικούς εισβολείς ένα κενό για να τροποποιήσουν το πακέτο ενημέρωσης μετά η ψηφιακή του υπογραφή είχε επικυρωθεί (βήμα 2), χωρίς να επηρεάζει λεπτομέρειες ελέγχου έκδοσης (βήμα 3), αλλά λίγο πριν το πρόγραμμα εγκατάστασης ανέλαβε τον έλεγχο του αρχείου πακέτου για να το επεξεργαστεί με δικαιώματα root (βήμα 4).

Αυτό το είδος σφάλματος είναι γνωστό ως α κατάσταση του αγώνα, επειδή οι επιτιθέμενοι πρέπει να χρονομετρήσουν τον τερματισμό τους, ώστε να φτάσουν στο σπίτι λίγο πριν ξεκινήσει το πρόγραμμα εγκατάστασης, και ως εκ τούτου πρέπει να κρυφτούν οι κακόβουλες αλλαγές τους λίγο πριν από αυτό.

Θα ακούσετε επίσης αυτό το είδος ευπάθειας που αναφέρεται με το ακρωνύμιο με εξωτικό ήχο ΤΟΚΤΟΥ, σύντομη για χρόνος από τον έλεγχο έως τον χρόνο χρήσης, ένα όνομα που είναι μια ξεκάθαρη υπενθύμιση ότι αν ελέγχετε τα στοιχεία σας πολύ νωρίτερα, τότε μπορεί να είναι ξεπερασμένα μέχρι να βασιστείτε σε αυτά.

Το πρόβλημα TOCTOU είναι γιατί οι εταιρείες ενοικίασης αυτοκινήτων στο Ηνωμένο Βασίλειο δεν ζητούν πλέον απλώς να δουν την άδεια οδήγησής σας, η οποία θα μπορούσε να είχε εκδοθεί έως και πριν από 10 χρόνια και θα μπορούσε να είχε ανασταλεί ή ακυρωθεί για διάφορους λόγους από τότε, πιθανότατα επειδή μη ασφαλούς ή παράνομης οδήγησης εκ μέρους σας. Μαζί με την φυσική άδειά σας, πρέπει επίσης να προσκομίσετε έναν εφάπαξ αλφαριθμητικό κωδικό "απόδειξη πρόσφατης εγκυρότητας", που εκδόθηκε τις τελευταίες 21 ημέρες, για να μειώσετε το πιθανό κενό TOCTOU από 10 χρόνια σε μόλις τρεις εβδομάδες.

Η επιδιόρθωση βρίσκεται τώρα

Σύμφωνα με τον Wardle, το Zoom έχει πλέον αποτρέψει αυτό το σφάλμα αλλάζοντας τα δικαιώματα πρόσβασης στο αρχείο πακέτου ενημέρωσης που αντιγράφηκε στο βήμα 1 παραπάνω.

Το αρχείο που χρησιμοποιείται για τον έλεγχο υπογραφής, την επικύρωση έκδοσης και την τελική εγκατάσταση σε επίπεδο ρίζας περιορίζεται πλέον στην πρόσβαση μόνο από τον λογαριασμό root, ανά πάσα στιγμή.

Αυτό καταργεί την συνθήκη φυλής, επειδή ένας εισβολέας χωρίς προνόμια δεν μπορεί να τροποποιήσει το αρχείο μεταξύ του τέλους του βήματος 2 (επιτυχής επαλήθευση) και η αρχή του βήματος 4 (ξεκινά η εγκατάσταση).

Για να τροποποιήσετε το αρχείο πακέτου προκειμένου να εξαπατήσετε το σύστημα ώστε να σας δώσει πρόσβαση root, θα πρέπει να έχετε ήδη πρόσβαση root, επομένως δεν θα χρειάζεστε εξαρχής ένα σφάλμα EoP αυτού του είδους.

Το πρόβλημα TOCTOU δεν ισχύει επειδή ο έλεγχος στο βήμα 2 παραμένει έγκυρος μέχρι να ξεκινήσει η χρήση του αρχείου, χωρίς να αφήνει κανένα παράθυρο ευκαιρίας για να καταστεί άκυρη η επιταγή.

Τι να κάνω;

Εάν χρησιμοποιείτε το Zoom σε Mac, ανοίξτε την εφαρμογή και, στη συνέχεια, στη γραμμή μενού, μεταβείτε στο zoom.us > Check for Updates...

Εάν υπάρχει διαθέσιμη ενημέρωση, θα εμφανιστεί η νέα έκδοση και μπορείτε να κάνετε κλικ [Install] για να εφαρμόσετε τα patches:

Ζουμ για Mac ενημερωμένες εκδόσεις κώδικα get-root bug - ενημερώστε τώρα! Ευφυΐα Δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Η έκδοση που θέλετε είναι 5.11.5 (9788) ή αργότερα.


Σφραγίδα ώρας:

Περισσότερα από Γυμνή ασφάλεια