Η Google αποκαλύπτει ένα ελάττωμα ασφαλείας στο GitHub

Το Project Zero κυκλοφόρησε λεπτομέρειες για μια σοβαρή παραβίαση ασφάλειας στο GitHub και το αναφέρουν το σφάλμα επηρεάζει τις εντολές ροής εργασίας δράσης από το GitHub και περιγράφεται ως υψηλή σοβαρότητα. (Αυτό το σφάλμα ανακαλύφθηκε τον Ιούλιο, αλλά με βάση την τυπική περίοδο αποκάλυψης 90 ημερών, οι λεπτομέρειες έχουν κυκλοφορήσει μόνο τώρα.)

Αυτό το ελάττωμα έγινε μία από τις λίγες ευπάθειες που δεν επιδιορθώθηκαν σωστά πριν από τη λήξη της τυπικής διάρκειας 90 ημερών που παρέχεται από το Google Project Zero.

Σύμφωνα με τον Felix Wilhelm (ποιος το ανακάλυψε), το μέλος της ομάδας Project Zero, το ελάττωμα επηρεάζει τη λειτουργία δράσεων του GitHub, ενός εργαλείου για την αυτοματοποίηση του έργου των προγραμματιστών. Αυτό συμβαίνει επειδή οι εντολές ροής εργασίας Actions είναι "ευάλωτες σε επιθέσεις με έγχυση":

«Το Actions Github υποστηρίζει μια λειτουργία που ονομάζεται εντολές ροής εργασίας ως κανάλι επικοινωνίας μεταξύ του δρομέα δράσης και της εκτελεσμένης ενέργειας. Οι εντολές ροής εργασίας εφαρμόζονται στο / src / Runner.Worker / ActionCommandManager.cs και λειτουργεί με ανάλυση του STDOUT όλων των ενεργειών που εκτελούνται αναζητώντας έναν από τους δύο δείκτες εντολών.

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

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

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

«Δεν είμαι σίγουρος ποιος είναι ο καλύτερος τρόπος για να το διορθώσω. Νομίζω ότι ο τρόπος με τον οποίο εφαρμόζονται οι εντολές ροής εργασίας είναι ουσιαστικά ανασφαλής. Η υποτίμηση της σύνταξης εντολών v1 και της ενίσχυσηςet-env με μια λίστα επιτρεπόμενων θα λειτουργούσε πιθανώς ενάντια σε άμεσα διανύσματα RCE.

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

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

Όσο για το GitHub, οι προγραμματιστές του δημοσίευσαν ένα συμβουλευτικό συμβούλιο την 1η Οκτωβρίου και υποχώρησαν τις ευάλωτες εντολές, αλλά υποστήριξαν ότι αυτό που βρήκε ο Wilhelm ήταν στην πραγματικότητα "μέτρια ευπάθεια ασφαλείας". Το GitHub εκχώρησε το αναγνωριστικό σφάλματος CVE-2020-15228:

«Μια μέτρια ευπάθεια ασφαλείας έχει εντοπιστεί στο χρόνο εκτέλεσης του GitHub Actions που μπορεί να επιτρέψει την έγχυση διαδρομών και μεταβλητών περιβάλλοντος σε ροές εργασίας που καταγράφουν μη αξιόπιστα δεδομένα στο STDOUT. Αυτό μπορεί να οδηγήσει στην εισαγωγή ή τροποποίηση περιβαλλοντικών μεταβλητών χωρίς την πρόθεση του συντάκτη της ροής εργασίας.

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

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

Σύμφωνα με τον Wilhelm, στις 12 Οκτωβρίου, το Project Zero ήρθε σε επαφή με το GitHub και τους προσέφερε προληπτικά ένα παράθυρο 14 ημερών εάν το GitHub ήθελε περισσότερο χρόνο για να απενεργοποιήσει τις ευάλωτες εντολές. Φυσικά, η προσφορά έγινε δεκτή και το GitHub ελπίζει να απενεργοποιήσει τις ευάλωτες εντολές μετά τις 19 Οκτωβρίου. Στη συνέχεια, το Project Zero έθεσε τη νέα ημερομηνία αποκάλυψης για τις 2 Νοεμβρίου.

πηγή: https://bugs.chromium.org


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.