Εντοπίστηκαν κακόβουλες αλλαγές σε εξαρτήσεις για πακέτο npm με το πρόγραμμα εγκατάστασης PureScript

Ανάλογα με το πακέτο npm με το πρόγραμμα εγκατάστασης PureScript αναγνωρισθείς κακόβουλος κώδικας που εμφανίζεται όταν προσπαθείτε να εγκαταστήσετε ένα πακέτο καθαρόγραφο. Ο κακόβουλος κώδικας ενσωματώνεται μέσω εξαρτήσεων load-from-cwd-or-npm и ρυθμός-χάρτης. Αξιοσημείωτο είναι ότι η συντήρηση των πακέτων με αυτές τις εξαρτήσεις πραγματοποιείται από τον αρχικό συντάκτη του πακέτου npm με το πρόγραμμα εγκατάστασης PureScript, ο οποίος μέχρι πρόσφατα διατηρούσε αυτό το πακέτο npm, αλλά πριν από ένα μήνα περίπου το πακέτο μεταφέρθηκε σε άλλους συντηρητές.

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

Την περασμένη εβδομάδα κυκλοφόρησε ο μεταγλωττιστής PureScript 0.13.2 και
οι νέοι συντηρητές ετοίμασαν αντίστοιχη ενημέρωση του πακέτου npm με πρόγραμμα εγκατάστασης, στις εξαρτήσεις του οποίου εντοπίστηκε κακόβουλος κώδικας. Ο συντάκτης του πακέτου npm με το πρόγραμμα εγκατάστασης PureScript, ο οποίος αφαιρέθηκε από τη θέση του ως συντηρητής, είπε ότι ο λογαριασμός του παραβιάστηκε από άγνωστους εισβολείς. Ωστόσο, με τη σημερινή του μορφή, οι ενέργειες του κακόβουλου κώδικα περιορίζονταν στην υπονόμευση της εγκατάστασης του πακέτου, που ήταν η πρώτη έκδοση από τους νέους συντηρητές. Οι κακόβουλες ενέργειες ισοδυναμούσαν με έναν βρόχο με ένα μήνυμα σφάλματος κατά την προσπάθεια εγκατάστασης ενός πακέτου με την εντολή "npm i -g purescript" χωρίς να εκτελεστεί καμία προφανής κακόβουλη δραστηριότητα.

Εντοπίστηκαν δύο επιθέσεις. Λίγες ώρες μετά την επίσημη κυκλοφορία της νέας έκδοσης του πακέτου καθαρού κειμένου npm, κάποιος δημιούργησε μια νέα έκδοση της εξάρτησης load-from-cwd-or-npm 3.0.2, αλλαγές στις οποίες οδήγησαν στην κλήση στο loadFromCwdOrNpm() της λίστας των απαιτούμενων για την εγκατάσταση δυαδικών αρχείων που επέστρεψε ροή Περνώ μέσα από, αντικατοπτρίζοντας ερωτήματα εισόδου ως τιμές εξόδου.

4 ημέρες αργότερα, αφότου οι προγραμματιστές ανακάλυψαν την πηγή των αποτυχιών και ετοιμάζονταν να κυκλοφορήσουν μια ενημέρωση για τον αποκλεισμό του load-from-cwd-or-npm από τις εξαρτήσεις, οι εισβολείς κυκλοφόρησαν μια άλλη ενημέρωση, load-from-cwd-or-npm 3.0.4, στο οποίο αφαιρέθηκε ο κακόβουλος κώδικας. Ωστόσο, σχεδόν αμέσως, κυκλοφόρησε μια ενημέρωση σε μια άλλη εξάρτηση, το rate-map 1.0.3, η οποία πρόσθεσε μια επιδιόρθωση που απέκλεισε την κλήση επανάκλησης για φόρτωση. Εκείνοι. Και στις δύο περιπτώσεις, οι αλλαγές στις νέες εκδόσεις του load-from-cwd-or-npm και του rate-map είχαν χαρακτήρα προφανούς δολιοφθοράς. Επιπλέον, ο κακόβουλος κώδικας είχε έναν έλεγχο που ενεργοποιούσε ελαττωματικές ενέργειες μόνο κατά την εγκατάσταση μιας έκδοσης από νέους συντηρητές και δεν εμφανιζόταν με κανέναν τρόπο κατά την εγκατάσταση παλαιότερων εκδόσεων.

Οι προγραμματιστές έλυσαν το πρόβλημα κυκλοφορώντας μια ενημέρωση στην οποία αφαιρέθηκαν οι προβληματικές εξαρτήσεις. Προκειμένου να αποτραπεί η εγκατάσταση παραβιασμένου κώδικα στα συστήματα χρηστών μετά την προσπάθεια εγκατάστασης μιας προβληματικής έκδοσης του PureScript, συνιστάται να διαγράψετε τα περιεχόμενα των καταλόγων node_modules και των αρχείων package-lock.json και στη συνέχεια να ορίσετε την έκδοση καθαρού κειμένου 0.13.2 ως κατώτερο όριο.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο