Στρατηγικές εφοδιαστικής αλυσίδας λογισμικού για επιθέσεις σύγχυσης με εξάρτηση Parry

Στρατηγικές εφοδιαστικής αλυσίδας λογισμικού για επιθέσεις σύγχυσης με εξάρτηση Parry

Στρατηγικές εφοδιαστικής αλυσίδας λογισμικού για την εξάρτηση Parry Η σύγχυση επιτίθεται στη νοημοσύνη δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

«Τι έχει ένα όνομα; Αυτό που ονομάζουμε τριαντάφυλλο με οποιοδήποτε άλλο όνομα θα μύριζε τόσο γλυκό». Όταν ο Σαίξπηρ έγραψε αυτές τις λέξεις (Ρωμαίος και Ιουλιέτα, Πράξη 2, Σκηνή 2) το 1596, έλεγε ότι ένα όνομα είναι απλώς μια σύμβαση. Δεν έχει εγγενές νόημα. Η Ιουλιέτα αγαπά τον Ρωμαίο για αυτό που είναι, όχι για το όνομά του.

Αλλά χωρίς να το ξέρει, ο Σαίξπηρ περιέγραφε επίσης επιθέσεις σύγχυσης εξάρτησης.

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

Πρόσφατες ερευνητικές εκθέσεις εκτιμούν ότι το 41% ​​έως 49% των οργανισμών κινδυνεύουν από επιθέσεις σύγχυσης εξαρτήσεων. Νέα έρευνα από την OX Security δείχνει ότι όταν ένας οργανισμός βρίσκεται σε κίνδυνο για επίθεση σύγχυσης εξαρτήσεων, το 73% των περιουσιακών στοιχείων του είναι ευάλωτο. Η έρευνα επικεντρώθηκε σε μεσαίου μεγέθους και μεγάλους οργανισμούς (1K+, 8K+, 80K+ εργαζόμενοι) σε ένα ευρύ φάσμα τομέων — χρηματοοικονομικά, παιχνίδια, τεχνολογία και μέσα ενημέρωσης — και βρήκαν τον κίνδυνο σε κάθε τομέα σε οργανισμούς όλων των μεγεθών. Η έρευνα διαπίστωσε επίσης ότι σχεδόν όλες οι εφαρμογές με περισσότερους από 1 δισεκατομμύριο χρήστες χρησιμοποιούν εξαρτήσεις που είναι ευάλωτες σε σύγχυση εξαρτήσεων.

Αυτό το άρθρο έχει σκοπό να σας βοηθήσει να κατανοήσετε τη σύγχυση εξαρτήσεων και πώς να την αποτρέψετε.

Διπλό, Διπλό

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

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

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

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

Κόπος και πρόβλημα

Υπάρχουν διάφορες προσεγγίσεις για μια επίθεση σύγχυσης εξάρτησης.

  • Διάστημα ονομάτων. Μεταφορτώνοντας μια βιβλιοθήκη κακόβουλου λογισμικού σε ένα δημόσιο μητρώο — όπως το Ευρετήριο Πακέτων Python (PyPI) ή το JavaScript μητρώο npm - αυτό είναι ονομάστηκε παρόμοια σε μια αξιόπιστη, εσωτερικά χρησιμοποιούμενη βιβλιοθήκη, τα συστήματα που παραλείπουν έναν έλεγχο χώρου ονομάτων/URL ή δεν επιβάλλουν την ανάκτηση από ένα ιδιωτικό μητρώο ενδέχεται να τραβήξουν κατά λάθος τον κακόβουλο κώδικα. ο πρόσφατο περιστατικό σύγχυσης εξάρτησης PyTorch είναι ένα τέτοιο παράδειγμα.
  • Spoofing DNS. Χρησιμοποιώντας μια τεχνική όπως η πλαστογράφηση DNS, τα συστήματα μπορούν να κατευθύνονται για να αντλούν εξαρτήσεις από κακόβουλα αποθετήρια ενώ εμφανίζουν κάτι που μοιάζει με νόμιμες εσωτερικές διευθύνσεις URL/διαδρομές.
  • Σενάριο. Τροποποιώντας σενάρια δημιουργίας/εγκατάστασης ή συνεχής ολοκλήρωση/συνεχής παράδοση Οι διαμορφώσεις αγωγών (CI/CD), τα συστήματα μπορούν να εξαπατηθούν ώστε να κατεβάσουν εξαρτήσεις λογισμικού από κακόβουλη πηγή και όχι από τοπικό αποθετήριο.

Πράγματα που έγιναν καλά και με προσοχή

Για να προστατεύσετε από σύγχυση εξαρτήσεων, εφαρμόστε αυτές τις πρακτικές.

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

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

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

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

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

Έξοδος, κυνηγημένος από μια αρκούδα

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

Τα τριαντάφυλλα του Σαίξπηρ μπορεί να προμήνυαν τον κίνδυνο επιθέσεων σύγχυσης εξάρτησης για εκατοντάδες χρόνια, αλλά ένα άλλο απόσπασμα από τον Βάρδο μπορεί να έχει κάποια σοφία για την προστασία από αυτά: «Αφήστε το κάθε μάτι να διαπραγματευτεί μόνο του και να μην εμπιστευτείτε κανέναν πράκτορα». (Πολλή φασαρία για το τίποτα, Πράξη 2, Σκηνή 1)

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

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