Μια νέα αναφορά αποκαλύπτει την εκτόξευση ενός κακόβουλου λογισμικού που έχει στόχο τους προγραμματιστές, κλέβοντας λεπτά διαπιστευτήρια cloud και μυστικά που σχετίζονται με τις διαδικασίες CI/CD, προκαλώντας ανησυχία σχετικά με την ασφάλεια των αλυσίδων εφοδιασμού του λογισμικού ανοικτού κώδικα.
Αυτή η κακόβουλη επίθεση, η οποία εντοπίστηκε στις 28 Μαΐου 2026, αποδεικνύει με ενορχηστρωμένο τρόπο πώς οι εγκληματίες μπορούν να εισέλθουν σε αρχεία προγραμματιστών, χρησιμοποιώντας απλές τεχνικές που εκμεταλλεύονται την ανθρώπινη αδυναμία με εντυπωσιακή ταχύτητα.
Η καμπάνια βασίζεται σε μια μέθοδο γνωστή ως typosquatting, όπου οι κακόβουλοι φορείς δημοσιεύουν πακέτα με ονόματα που μοιάζουν σχεδόν πανομοιότυπα με εκείνα αξιόπιστων βιβλιοθηκών.
Συγκεκριμένα, 14 κακόβουλα πακέτα εντοπίστηκαν στο npm registry μέσα σε ένα παράθυρο μόνο τεσσάρων ωρών, προσποιούμενα δημοφιλή εργαλεία που σχετίζονται με το OpenSearch και το ElasticSearch.
Αφού εγκατασταθούν, αυτά τα πακέτα αρχίζουν να συλλέγουν ευαίσθητα δεδομένα, στέλνοντάς τα σε διακομιστές που ελέγχονται από τους εγκληματίες χωρίς να υπάρχουν ορατά σημάδια διείσδυσης.
Ειδικοί της Microsoft εντόπισαν την καμπάνια και επιβεβαίωσαν ότι όλα τα κακόβουλα πακέτα συνδέονταν με έναν χρήστη του npm, γνωστό με το ψευδώνυμο vpmdhaj, του οποίου το ηλεκτρονικό ταχυδρομείο είναι καταχωρημένο ως a39155771@gmail[.]com.
Η Microsoft δήλωσε σε ανακοίνωσή της ότι τα πακέτα αυτά περιλαμβάνουν ένα κακόβουλο φορτίο περίπου 195 KB, σχεδιασμένο να στοχεύει περιβάλλοντα cloud και διαδικασίες CI/CD.
Επιπλέον, τα πακέτα χρησιμοποιούν πλαστά μεταδεδομένα, ρυθμίζοντας τα πεδία της αρχικής σελίδας τους να παραπέμπουν στο νόμιμο έργο OpenSearch, διατηρώντας την εικόνα της αξιοπιστίας.
Τα κλεμμένα δεδομένα περιλαμβάνουν διαπιστευτήρια AWS, διακριτικά HashiCorp Vault, GitHub Actions, και δημοσιεύσεων npm.
Ιδιαίτερα ανησυχητική είναι η κλοπή των διακριτικών δημοσίευσης npm, καθώς ο επιτιθέμενος μπορεί να προωθήσει κακόβουλες ενημερώσεις σε άλλες βιβλιοθήκες, μετατρέποντας τις εγκαταστάσεις των προγραμματιστών σε επιφάνειες εκκίνησης για ανεξέλεγκτες επιθέσεις.
Το εύρος που καλύπτουν αυτά τα κακόβουλα πακέτα, που επηρεάζουν πολλές πλατφόρμες cloud και συστήματα CI/CD, κατατάσσει αυτή την καμπάνια στις πιο περίπλοκες που έχουν παρατηρηθεί πρόσφατα.
Typosquatted npm πακέτα
Η επίθεση ενεργοποιείται μόλις ένας προγραμματιστής ξεκινήσει την εγκατάσταση npm, καθώς κάθε πακέτο του συνόλου περιλαμβάνει αυτοματοποιημένα hooks που διαχειρίζονται κακόβουλο κώδικα χωρίς πρόσθετες ενέργειες από το θύμα.
.webp)
Εντοπίστηκαν δύο παραλλαγές: η παλαιότερη, που συνδέεται με εξωτερικό διακομιστή C2 για την ανάκτηση του κακόβουλου φορτίου, και μία πιο εξελιγμένη, που κατεβάζει σιωπηλά έναν νόμιμο χρόνο εκτέλεσης Bun και εκτελεί μια έτοιμη κακόβουλη σενάριο ενσωματωμένο στο npm tarball.
Αυτή η δεύτερη παραλλαγή είναι κρίσιμη καθώς αποφεύγει τη δημιουργία προφανούς εξερχόμενης κίνησης, ελαχιστοποιώντας την ανίχνευση από τα εργαλεία ασφαλείας. Αξιοποιεί ήσυχα έναν νόμιμο χρόνο εκτέλεσης για την εκτέλεση του κακόβουλου φορτίου.
Στη συνέχεια, το δυαδικό δεύτερου επιπέδου ελέγχει πάνω από 16 περιοχές AWS, ανακτώντας μεταδεδομένα EC2 και διαβάζοντας περιβαλλοντικές μεταβλητές προκειμένου να προτεραιοποιήσει τη συλλογή δεδομένων ανάλογα με τους διαθέσιμους στόχους.
Τα κλεμμένα μάρκες Ενεργοποιούν την επέκταση της αλυσίδας εφοδιασμού προς τα κάτω
Η διαφορετικότητα αυτής της καμπάνιας έγκειται στην ειδική στόχευση των διακριτικών δημοσίευσης npm.
Εάν αποκτηθεί η δυνατότητα δημοσίευσης για λογαριασμό ενός καταπιστευμένου προγραμματιστή, η δημιουργία κακόβουλου κώδικα σε αξιόπιστες βιβλιοθήκες μπορεί να πραγματοποιηθεί χωρίς την έγκριση του ιδιοκτήτη, επεκτείνοντας την επιβλαβή δράση πολύ πέρα από την αρχική καμπάνια.
Αυτό συνεπάγεται μια αλυσίδα κινδύνου που μπορεί να επηρεάσει χιλιάδες άλλα έργα, επεκτείνοντας τη ζημιά πολύ πέρα από τα 14 κακόβουλα πακέτα.
Οι ομάδες ασφαλείας καλούνται να πάρουν άμεσα μέτρα εάν έχουν εγκατασταθεί οποιαδήποτε από τα επηρεαζόμενα πακέτα από τη συγκεκριμένη ημερομηνία.
Τα συστήματα ασφαλείας προτείνουν την εναλλαγή όλων των διαπιστευτηρίων AWS, Vault, npm και GitHub που είναι εκτεθειμένα, τον αποκλεισμό της εξόδου στον τομέα C2 του επιτιθέμενου σε επίπεδο τείχους προστασίας και DNS, καθώς και τη διεξαγωγή ελέγχου των αρχείων καταγραφής CI/CD για μη αναμενόμενες συνδέσεις ή παράξενες λήψεις χρόνου εκτέλεσης Bun.
Η εκτέλεση της εντολής npm install με την παράμετρο –ignore-scripts μπορεί επίσης να σταματήσει την εκτέλεση αυτών των hooks, εμποδίζοντας την επίθεση κατά την αρχική της ενσωμάτωση.
Δείκτες συμβιβασμού (IoCs):-
| Τύπος | Δείκτης | Περιγραφή |
|---|---|---|
| Πακέτο npm | @vpmdhaj/elastic-helper (1.0.7269) | Typosquat – Βοηθός ElasticSearch/OpenSearch |
| Πακέτο npm | @vpmdhaj/devops-tools (1.0.7267) | Typosquat – Εργαλεία DevOps / Ρύθμιση OpenSearch |
| Πακέτο npm | @vpmdhaj/opensearch-setup (1.0.7267) | Typosquat – βοηθητικό πρόγραμμα εγκατάστασης OpenSearch |
| Πακέτο npm | @vpmdhaj/search-setup (1.0.7268) | Typosquat – ρύθμιση μηχανής αναζήτησης |
| Πακέτο npm | opensearch-security-scanner (1.0.10) | Unscoped lookalike – σαρωτής ασφαλείας |
| Πακέτο npm | opensearch-setup (1.0.9103) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | opensearch-setup-tool (1.0.9108) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | opensearch-config-utility (1.0.9106) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | Search-engine-setup (1.0.9108) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | search-cluster-setup (1.0.9104) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | elastic-opensearch-helper (1.0.9108) | Unscoped lookalike – πλαστογραφεί το URL repo opensearch-project |
| Πακέτο npm | vpmdhaj-opensearch-setup (1.0.9102) | Unscoped – Ρύθμιση OpenSearch με όνομα συγγραφέα |
| Πακέτο npm | env-config-manager (2.1.9201) | Typosquat – διαχειριστής ρυθμίσεων σε στυλ dotenv |
| Πακέτο npm | app-config-utility (1.0.9300) | Typosquat – γενικό βοηθητικό πρόγραμμα διαμόρφωσης εφαρμογών |
| npm Συντηρητής | vpmdhaj | Απειλή ηθοποιός που δημοσιεύει και τα 14 κακόβουλα πακέτα |
| a39155771@gmail[.]com | Email επικοινωνίας συντηρητή καταχωρημένο στο npm | |
| Πεδίο ορισμού | aab.sportsontheweb[.]καθαρά | Διακομιστής Stage-1 C2 που χρησιμοποιείται από πακέτα Gen-1 |
| URL | hxxp://aab.sportsontheweb[.]net/x.php | Τελικό σημείο παράδοσης Beacon και στάδιο 2 ωφέλιμου φορτίου (θύρα 80) |
| Κεφαλίδα HTTP | X-Προμήθεια: 1 | Μοναδικός δείκτης καμπάνιας για εντοπισμό διακομιστή μεσολάβησης/τείχους προστασίας |
| Διεύθυνση IP | 169.254.169.254 | Το τελικό σημείο AWS EC2 IMDSv2 ζητήθηκε από το ωφέλιμο φορτίο σταδίου 2 |
| Διεύθυνση IP | 169.254.170.2 | Το τελικό σημείο μεταδεδομένων εργασιών AWS ECS ζητήθηκε από το ωφέλιμο φορτίο σταδίου 2 |
| SHA-256 | 638788AFC4F1B5860A328312CAF5895ABD5F5632D28A4F2A85B09076E270D15D | preinstall.js – Gen-1 stager |
| SHA-256 | 77D92EFE7AF3547F71FD41D4A884872D66B1BE9499EAA637E91EAC866911694D | setup.mjs – Gen-2 stager |
| SHA-256 | BFA149694EC6411C23936311A999163ADE54D6F38E2F4B0E3CFB8CB67BD7CFAA | payload.gz – δυαδικό gzipped Bun stage-2 |
| Όνομα αρχείου | opensearch_init.js | Συλλογή διαπιστευτηρίων με μεταγλώττιση σταδίου 2 (~195 KB) |
| Όνομα αρχείου | ai_init.js | Εναλλακτικό όνομα αρχείου σταδίου 2 που χρησιμοποιείται από ορισμένα πακέτα Gen-2 |
| Όνομα αρχείου | ωφέλιμο φορτίο.κάδος | Έριξε το δυαδικό στάδιο-2 στον κατάλογο εγκατάστασης node_modules |
| Μεταβλητή Περιβάλλοντος | _DAEMONIZED=1 | Ο δείκτης ορίζεται από τον σταδιακό κατά την αναπαραγωγή της διαδικασίας αποκομμένου ωφέλιμου φορτίου |
Σημείωμα: Οι διευθύνσεις IP και οι τομείς έχουν τροποποιηθεί (π.χ. [.]) για να αποφεύγεται η τυχαία επίλυση ή υπερσύνδεση. Επαναχρησιμοποίηση μόνο σε ελεγμένες πλατφόρμες πληροφοριών απειλής όπως το MISP, το VirusTotal ή το SIEM σας.

