Εισάγεται κακόβουλο λογισμικό στο πακέτο NPM UAParser.js με 8 εκατομμύρια λήψεις την εβδομάδα

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

Το πρόβλημα είναι ότι η βιβλιοθήκη UAParser.js, η οποία προσφέρει λειτουργίες για την ανάλυση της κεφαλίδας User-Agent HTTP, έχει περίπου 8 εκατομμύρια λήψεις την εβδομάδα και χρησιμοποιείται ως εξάρτηση σε περισσότερα από 1200 έργα. Αναφέρεται ότι το UAParser.js χρησιμοποιείται σε έργα εταιρειών όπως Microsoft, Amazon, Facebook, Slack, Discord, Mozilla, Apple, ProtonMail, Autodesk, Reddit, Vimeo, Uber, Dell, IBM, Siemens, Oracle, HP και Verison .

Η επίθεση πραγματοποιήθηκε μέσω της παραβίασης του λογαριασμού του προγραμματιστή του έργου, ο οποίος συνειδητοποίησε ότι κάτι δεν πήγαινε καλά αφού ένα ασυνήθιστο κύμα ανεπιθύμητων μηνυμάτων έπεσε στο γραμματοκιβώτιό του. Το πώς ακριβώς παραβιάστηκε ο λογαριασμός του προγραμματιστή δεν αναφέρεται. Οι εισβολείς δημιούργησαν τις εκδόσεις 0.7.29, 0.8.0 και 1.0.0, εισάγοντας κακόβουλο κώδικα σε αυτές. Μέσα σε λίγες ώρες, οι προγραμματιστές ανέκτησαν τον έλεγχο του έργου και δημιούργησαν ενημερώσεις 0.7.30, 0.8.1 και 1.0.1 για να διορθώσουν το πρόβλημα. Οι κακόβουλες εκδόσεις δημοσιεύτηκαν μόνο ως πακέτα στο αποθετήριο NPM. Το αποθετήριο Git του έργου στο GitHub δεν επηρεάστηκε. Όλοι οι χρήστες που έχουν εγκαταστήσει προβληματικές εκδόσεις, εάν βρουν το αρχείο jsextension σε Linux/macOS και τα αρχεία jsextension.exe και create.dll στα Windows, συνιστάται να θεωρήσουν ότι το σύστημα έχει παραβιαστεί.

Οι κακόβουλες αλλαγές που προστέθηκαν θύμιζαν αλλαγές που είχαν προταθεί προηγουμένως σε κλώνους του UAParser.js, οι οποίοι φαινόταν να κυκλοφόρησαν για να δοκιμάσουν τη λειτουργικότητα πριν ξεκινήσουν μια επίθεση μεγάλης κλίμακας στο κύριο έργο. Το εκτελέσιμο αρχείο jsextension έγινε λήψη και εκκίνηση στο σύστημα του χρήστη από έναν εξωτερικό κεντρικό υπολογιστή, ο οποίος επιλέχθηκε ανάλογα με την πλατφόρμα του χρήστη και υποστήριζε εργασία σε Linux, macOS και Windows. Για την πλατφόρμα των Windows, εκτός από το πρόγραμμα εξόρυξης του κρυπτονομίσματος Monero (χρησιμοποιήθηκε το XMRig miner), οι επιτιθέμενοι οργάνωσαν επίσης την εισαγωγή της βιβλιοθήκης create.dll για την υποκλοπή κωδικών πρόσβασης και την αποστολή τους σε έναν εξωτερικό κεντρικό υπολογιστή.

Ο κώδικας λήψης προστέθηκε στο αρχείο preinstall.sh, στο οποίο εισάγεται IP=$(curl -k https://freegeoip.app/xml/ | grep 'RU|UA|BY|KZ') εάν [ -z " $ IP" ] ... κατεβάστε και εκτελέστε το εκτελέσιμο αρχείο fi

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

Πηγή: opennet.ru

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