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

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

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

Τι είναι το RepoJacking;

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

δημιουργία αποθετηρίου με το ίδιο όνομα.

Το repojacking μπορεί να εγκυμονεί δύο διαφορετικούς τύπους κινδύνου:

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

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

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

Πώς να ελαχιστοποιήσετε τον κίνδυνο RepoJacking

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

Δημιουργήστε ιδιωτικούς κλώνους αποθετηρίων

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

Παρακολουθήστε προσεκτικά τις εξαρτήσεις του έργου σας

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

Επανεξετάστε τη μετονομασία του λογαριασμού σας

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

Χρησιμοποιήστε τους εξωτερικούς πόρους με σύνεση

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