Το Artifact Poisoning στο GitHub Actions εισάγει κακόβουλο λογισμικό μέσω αγωγών λογισμικού

Κόμβος πηγής: 1769941

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

Αυτό σύμφωνα με την εταιρεία ασφάλειας εφοδιαστικής αλυσίδας λογισμικού Legit Security, η οποία είπε σε μια συμβουλευτική που δημοσιεύθηκε την 1η Δεκεμβρίου ότι αυτή η αδυναμία «δηλητηρίασης τεχνουργημάτων» θα μπορούσε να επηρεάσει έργα λογισμικού που χρησιμοποιούν το GitHub Actions - μια υπηρεσία για την αυτοματοποίηση αγωγών ανάπτυξης - ενεργοποιώντας τη διαδικασία κατασκευής όταν ανιχνεύεται μια αλλαγή σε μια εξάρτηση λογισμικού. 

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

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

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

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

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

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

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

Το GitHub επιβεβαίωσε το ζήτημα και πλήρωσε μια αμοιβή για τις πληροφορίες, ενώ η Rust διόρθωσε τον ευάλωτο αγωγό του, δήλωσε η Legit Security.

Πηγή: Legit Security

Η Εφοδιαστική Αλυσίδα Λογισμικού χρειάζεται ασφάλεια

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

Τον Μάιο του 2021, για παράδειγμα, η κυβέρνηση Μπάιντεν κυκλοφόρησε το εκτελεστικό της διάταγμα για τη Βελτίωση της Κυβερνοασφάλειας του Έθνους, έναν ομοσπονδιακό κανόνα που, μεταξύ άλλων απαιτήσεων, ορίζει ότι η κυβέρνηση θα απαιτούν βασικά πρότυπα ασφαλείας για οποιοδήποτε λογισμικό αγοράζει. Από την πλευρά της ιδιωτικής βιομηχανίας, η Google και η Microsoft έχουν υποσχέθηκε δισεκατομμύρια δολάρια για την ενίσχυση της ασφάλειας στο οικοσύστημα ανοιχτού κώδικα, το οποίο παρέχει τον κώδικα που περιλαμβάνει περισσότερα από τα τρία τέταρτα της βάσης κωδικών της μέσης εφαρμογής.

Λογικό, αλλά ευάλωτο

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

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

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

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

"Όποιος κάνει κάτι όπως έκανε το έργο Rust - εμπιστευόμενος τη συμβολή ενός τρίτου μέρους - τότε εξακολουθεί να είναι ευάλωτος", λέει ο Caspi. «Είναι ένα πρόβλημα λογικής. Το GitHub απλώς διευκόλυνε τη σύνταξη ενός ασφαλέστερου σεναρίου."

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

Περισσότερα από Σκοτεινή ανάγνωση