Εκατομμύρια repos του GitHub πιθανότατα είναι ευάλωτα στο RepoJacking, λένε οι ερευνητές

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

Η προειδοποίηση προέρχεται από

Η ομάδα ασφαλείας της AquaSec

«Nautilus», ο οποίος ανέλυσε ένα δείγμα 1,25 εκατομμυρίων αποθετηρίων GitHub και διαπίστωσε ότι περίπου το 2,95% από αυτά ήταν ευάλωτα στο RepoJacking.

Με την παρέκταση αυτού του ποσοστού σε ολόκληρη τη βάση αποθετηρίου του GitHub που υπερβαίνει τα 300 εκατομμύρια, οι ερευνητές εκτιμούν ότι το ζήτημα επηρεάζει περίπου 9 εκατομμύρια έργα.

Διάγραμμα δοκιμής

Τι είναι το RepoJacking

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

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

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

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

Gif

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

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

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

Δυνατότητα εκμετάλλευσης

Για να τονίσει τη σημασία του προβλήματος, το AquaSec σάρωνε γνωστούς οργανισμούς για ευάλωτα αποθετήρια και βρήκε εκμεταλλεύσιμες περιπτώσεις σε repos που διαχειρίζονται η

και η Lyft.

Στην περίπτωση της Google, ένα αρχείο readme που περιείχε οδηγίες για την κατασκευή του αρκετά δημοφιλούς έργου “Mathsteps” έδειχνε ένα αποθετήριο GitHub που ανήκει στη Socratic, μια εταιρεία που η Google απέκτησε και αφομοίωσε το 2018 και δεν υπάρχει πλέον.

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

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

Οδηγίες στο αρχείο readme της Google

Δημιουργήστε οδηγίες στο αρχείο readme της Google


(AquaSec)

Στην περίπτωση του Lyft, η επίθεση θα ήταν πιο αυτοματοποιημένη, καθώς το AquaSec βρήκε ένα σενάριο εγκατάστασης στο αποθετήριο της εταιρείας που ανακτά ένα αρχείο ZIP από άλλο αποθετήριο, το οποίο είναι ευάλωτο στο RepoJacking.

Ένας εισβολέας που καταχωρεί ένα νέο όνομα χρήστη και ένα νέο χώρο αποθήκευσης με τα σωστά ονόματα (“YesGraph” και “Dominus” σε αυτήν την περίπτωση) θα μπορούσε να εισάγει τον κώδικά του σε οποιονδήποτε εκτελεί το σενάριο “install.sh” του Lyft.

Το σενάριο Lyft δείχνει σε ένα εξωτερικό αποθετήριο ευάλωτο στο RepoJacking

Το σενάριο Lyft δείχνει σε ένα εξωτερικό αποθετήριο ευάλωτο στο RepoJacking


(AquaSec)

συμπέρασμα

Δυστυχώς, ο κίνδυνος του RepoJacking είναι ευρέως διαδεδομένος, δύσκολος να μετριαστεί και μπορεί να έχει σοβαρές επιπτώσεις για οργανισμούς και χρήστες.

Οι ιδιοκτήτες έργων θα πρέπει να ελαχιστοποιήσουν όσο το δυνατόν περισσότερο τους πόρους που αντλούν από εξωτερικά αποθετήρια.

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


bleepingcomputer.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.