Το νέο εργαλείο Python ελέγχει τα πακέτα NPM για προφανή προβλήματα σύγχυσης

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

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

Η “Προφανής σύγχυση” αναφέρεται σε ένα ζήτημα ασφαλείας στο NPM (Node Package Manager), έναν διαχειριστή πακέτων για τη γλώσσα προγραμματισμού JavaScript και το προεπιλεγμένο για το περιβάλλον Node.js.

Το πρόβλημα είναι με τις ασυνεπείς πληροφορίες μεταξύ των δεδομένων δήλωσης ενός πακέτου όπως εμφανίζονται στο μητρώο NPM και των δεδομένων που υπάρχουν στο αρχείο ‘package.json’ του δημοσιευμένου πακέτου.

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

Ωστόσο, αυτά τα σενάρια ή οι εξαρτήσεις θα εξακολουθούν να υπάρχουν στο αρχείο package.json και θα εκτελούνται κατά την εγκατάσταση του πακέτου, χωρίς να το γνωρίζει ο χρήστης.

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

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

Έλεγχος φανερής σύγχυσης

Μέχρι να εφαρμοστεί μια λύση, sysadmin

Felix Pankratz

έχει κυκλοφορήσει α

Εργαλείο που βασίζεται σε Python

που μπορεί να βοηθήσει τους προγραμματιστές λογισμικού να ελέγξουν τα πακέτα NPM για ασυνέπειες.

Για να χρησιμοποιήσετε το εργαλείο, εγκαταστήστε πρώτα τον διαχειριστή πακέτων PIP Python με “pip install -r απαιτήσεις.txt”.

Για να επιθεωρήσετε ένα μεμονωμένο πακέτο, περάστε το όνομα του πακέτου στο σενάριο ως πρώτο όρισμα. Για παράδειγμα:


$ ./npm-manifest-check.py darcyclarke-manifest-pkg

Η έξοδος θα επισημάνει τυχόν αναντιστοιχίες στην έκδοση, τις εξαρτήσεις, τα σενάρια και το όνομα του πακέτου μεταξύ του μανιφέστου και του πραγματικού αρχείου package.json.

Δοκιμασμένη συσκευασία

Δοκιμασμένη συσκευασία


(BleepingComputer)

Για ένα πακέτο χωρίς αναντιστοιχίες, η έξοδος θα πρέπει να μοιάζει με αυτό:


$ ./npm-manifest-check.py color

No mismatch detected for color.

Για να επιθεωρήσουν πολλά πακέτα, οι προγραμματιστές μπορούν να τα προσθέσουν σε ένα «πακέτα». list» (ένα πακέτο ανά γραμμή) και χρησιμοποιήστε το σενάριο περιτυλίγματος «check_packages.sh» για να τα ελέγξετε. Το εργαλείο θα αναφέρει τυχόν αναντιστοιχίες που βρέθηκαν σε καθένα από τα επιλεγμένα πακέτα.

Για να κατανοήσετε όλες τις πτυχές της χρήσης του εργαλείου Pankratz, ελέγξτε την εντολή βοήθειας με:


./npm-manifest-check.py -h

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


bleepingcomputer.com



You might also like


Leave A Reply



Cancel Reply

Your email address will not be published.