Ο ερευνητής ασφαλείας Paul McCarty αποκάλυψε μια σημαντική συντονισμένη καμπάνια ανεπιθύμητων μηνυμάτων που στοχεύει το οικοσύστημα npm.
Το worm IndonesianFoods, όπως έχει ονομαστεί, αποτελείται από περισσότερα από 43.000 πακέτα ανεπιθύμητης αλληλογραφίας που δημοσιεύονται σε τουλάχιστον έντεκα λογαριασμούς χρηστών για σχεδόν δύο χρόνια.
Αυτά τα πακέτα έχουν επιβιώσει χωρίς εντοπισμό, αντιπροσωπεύοντας περισσότερο από το ένα τοις εκατό ολόκληρου του μητρώου npm εν αναμονή για ενεργοποίηση.
Το εύρος της εκστρατείας είναι ανησυχητικό. Μια μεμονωμένη εκτέλεση του κακόβουλου σεναρίου μπορεί να δημοσιεύσει περίπου δώδεκα πακέτα ανά λεπτό, δημιουργώντας περίπου 720 ανά ώρα ή 17.000 ανά ημέρα.
Η επίθεση αξιοποιεί ένα έξυπνο σχήμα ονομασίας που χρησιμοποιεί ινδονησιακά ονόματα όπως «andi» και «budi» σε συνδυασμό με όρους τροφίμων όπως «rendang» και «sate», ακολουθούμενα από τυχαίους αριθμούς και επιθήματα όπως «-kyuki» ή «-breki».
Τα παραδείγματα περιλαμβάνουν πακέτα με το όνομα “zul-tapai9-kyuki” και “andi-rendang23-breki”. Αυτό το χαρακτηριστικό μοτίβο δημιουργεί καμουφλάζ εντός του αποθετηρίου ενώ παραμένει ανιχνεύσιμο.
Κάθε πακέτο φαίνεται νόμιμο κατά την πρώτη επιθεώρηση, που περιέχει το πρότυπο Next[.]js δομές έργου με κατάλληλα αρχεία διαμόρφωσης, νόμιμες εξαρτήσεις όπως το React και το Tailwind CSS και επαγγελματική τεκμηρίωση.
Το κακόβουλο στοιχείο βρίσκεται σε κρυφά αρχεία σεναρίου που ονομάζονται είτε “auto[.]js» ή «publishScript[.]js”, τα οποία βρίσκονται σε αδράνεια και χωρίς αναφορά στη δομή του πακέτου.
Αναλυτές ασφαλείας της ENDOR Labs αναγνωρισθείς ότι αυτά τα πακέτα ήταν μέρος μιας επίθεσης που περιγράφηκε για πρώτη φορά τον Απρίλιο του 2024, όπου οι επιτιθέμενοι κάνουν κατάχρηση του πρωτοκόλλου TEA που προορίζεται για την ανταμοιβή των συνεισφορών ανοιχτού κώδικα.
Η πλατφόρμα παρακολουθεί τις ανταμοιβές κρυπτονομισμάτων για τους συμμετέχοντες στο οικοσύστημα, τις οποίες οι εισβολείς εκμεταλλεύτηκαν για να δημιουργήσουν έσοδα από την καμπάνια ανεπιθύμητης αλληλογραφίας τους.
Τουλάχιστον ένας συντηρητής φαινόταν να είναι Ινδονήσιος μηχανικός λογισμικού, εξηγώντας την περιφερειακή ιδιαιτερότητα αυτής της λειτουργίας.
Ο Μηχανισμός Αυτοαναπαραγωγής του Σκουλήκι: Πώς ενεργοποιείται και διαδίδεται ο αδρανής κώδικας
Το σκουλήκι IndonesianFoods επιδεικνύει έναν ιδιαίτερα ύπουλο μηχανισμό εξάπλωσης μέσω των αλυσίδων εξάρτησης.
Όταν το κακόβουλο σενάριο εκτελείται με μη αυτόματο τρόπο — ενεργοποιείται από εντολές όπως “node auto[.]js”—εκτελεί τρεις συνεχείς ενέργειες. Πρώτον, αφαιρεί το “private”: true flag από το πακέτο[.]json, μια προστασία που χρησιμοποιούν οι προγραμματιστές για να αποτρέψουν την τυχαία δημοσίευση ιδιόκτητου κώδικα.
Δεύτερον, δημιουργεί τυχαίους αριθμούς εκδόσεων όπως το “2.3.1” για να παρακάμψει τα διπλά συστήματα ανίχνευσης του npm.
Τρίτον, ενημερώνει το πακέτο[.]json και πακέτο-κλείδωμα[.]αρχεία json και, στη συνέχεια, εκτελεί το «npm public – access public» για να γεμίσει το μητρώο με νέα πακέτα σε κύκλο επτά έως δέκα δευτερολέπτων.
Αυτό που καθιστά αυτήν την επίθεση ιδιαίτερα επικίνδυνη είναι ότι κάθε πακέτο ανεπιθύμητης αλληλογραφίας αναφέρει οκτώ έως δέκα επιπλέον πακέτα ανεπιθύμητης αλληλογραφίας ως εξαρτήσεις.
Όταν οι προγραμματιστές εγκαθιστούν ένα μολυσμένο πακέτο, το npm ανακτά αυτόματα ολόκληρο το δέντρο εξάρτησής του, πιθανώς να τραβήξει πάνω από εκατό σχετικά πακέτα ανεπιθύμητης αλληλογραφίας σε καταρράκτη.
Η εγκατάσταση ενός μόνο πακέτου θα μπορούσε να εκθέσει τα συστήματα σε εκθετικό πολλαπλασιασμό κακόβουλων πακέτων σε όλο το μητρώο.
Ορισμένα από αυτά τα πακέτα συσσώρευσαν χιλιάδες εβδομαδιαίες λήψεις, δημιουργώντας ευκαιρίες στους εισβολείς να εισάγουν πραγματικό κακόβουλο κώδικα σε μελλοντικές ενημερώσεις που επηρεάζουν τεράστιο αριθμό εγκαταστάσεων.
Η πτυχή δημιουργίας εσόδων μέσω των ανταμοιβών διακριτικού TEA δείχνει ότι οι εισβολείς κερδίζουν κρυπτονομίσματα μέσω της τεχνητής αξίας οικοσυστήματος, με ορισμένα πακέτα να εμφανίζουν ανοιχτά τα κερδισμένα ποσά συμβολικών στην τεκμηρίωσή τους, ενισχύοντας το οικονομικό κίνητρο πίσω από αυτήν τη συντονισμένη διετή λειτουργία.










