Στις 7 Νοεμβρίου, ερευνητές ασφαλείας ανακάλυψαν ένα επικίνδυνο κακόβουλο πακέτο npm που ονομάζεται “@acitons/artifact” που είχε ήδη ληφθεί περισσότερες από 206.000 φορές.
Το πακέτο σχεδιάστηκε για να μοιάζει με το νόμιμο πακέτο «@actions/artifact» που χρησιμοποιείται από προγραμματιστές που δημιουργούν εργαλεία με το GitHub Actions.
Αυτή ήταν μια κλασική επίθεση κατάθεσης τυπογραφικού κειμένου όπου οι επιτιθέμενοι άλλαζαν τα γράμματα για να κάνουν το όνομα να φαίνεται σωστό με την πρώτη ματιά.
Ο στόχος του κακόβουλου λογισμικού ήταν ξεκάθαρος και εστιασμένος. Όταν αυτό το πακέτο εγκαταστάθηκε κατά τη διάρκεια μιας διαδικασίας κατασκευής σε αποθετήρια που ανήκουν στο GitHub, θα έκλεβε τα διακριτικά ελέγχου ταυτότητας που είναι διαθέσιμα στο περιβάλλον κατασκευής.
Με αυτά τα διακριτικά, οι εισβολείς θα μπορούσαν στη συνέχεια να δημοσιεύσουν νέο κακόβουλο κώδικα απευθείας από τον λογαριασμό του GitHub, δημιουργώντας μια σοβαρή απειλή για την ασφάλεια ολόκληρης της πλατφόρμας.
Η επίθεση λειτούργησε μέσω ενός κρυφού σεναρίου εγκατάστασης που ήταν ενσωματωμένο στο πακέτο. Συγκεκριμένα, έξι εκδόσεις του κακόβουλου πακέτου περιελάμβαναν ένα άγκιστρο μετά την εγκατάσταση που κατέβαζε αυτόματα και εκτελούσε κρυφό κώδικα κακόβουλου λογισμικού.
Αναλυτές ασφαλείας της Veracode αναγνωρισθείς ότι αυτό το κακόβουλο λογισμικό δεν εντοπίστηκε από το κοινό λογισμικό προστασίας από ιούς όταν ανακαλύφθηκε για πρώτη φορά, καθιστώντας το ιδιαίτερα επικίνδυνο για οργανισμούς που βασίζονται σε αυτά τα εργαλεία προστασίας.
Αυτή η καμπάνια υπογραμμίζει μια κρίσιμη ευπάθεια στην αλυσίδα εφοδιασμού λογισμικού, γι’ αυτό και κατατάχθηκε ως η τρίτη πιο σημαντική ανησυχία ασφαλείας στη λίστα OWASP Top 10 2025.
Η επίθεση στόχευε τη συνεχή ενοποίηση και την πλατφόρμα συνεχούς ανάπτυξης του GitHub, δείχνοντας πώς οι εγκληματίες εστιάζουν όλο και περισσότερο στα εργαλεία που εμπιστεύονται οι προγραμματιστές καθημερινά.
Οι ερευνητές ασφαλείας της Veracode σημείωσαν ότι το κακόβουλο λογισμικό χρησιμοποίησε έξυπνες τεχνικές για να κρύψει την πραγματική του συμπεριφορά και να αποφύγει τον αυτόματο εντοπισμό.
Κακόβουλος κώδικας
Ο κακόβουλος κώδικας επισκιάστηκε και μεταγλωττίστηκε χρησιμοποιώντας ειδικά εργαλεία που μετατρέπουν σενάρια φλοιού σε δυαδικά αρχεία, καθιστώντας πιο δύσκολη την ανάλυση.
Το πακέτο περιείχε έναν συγκεκριμένο μηχανισμό για να σταματήσει να λειτουργεί μετά από μια συγκεκριμένη ημερομηνία, με κάθε έκδοση να λήγει εντός ημερών από την κυκλοφορία.
Αυτό το έναυσμα που βασίζεται στο χρόνο υποδηλώνει ότι οι εισβολείς δοκίμαζαν διαφορετικές εκδόσεις του κώδικά τους, ενώ παρέμεναν κρυφοί από τα συστήματα ασφαλείας.
Ο μηχανισμός μόλυνσης λειτούργησε σταδιακά. Όταν εγκαταστάθηκε, το κακόβουλο λογισμικό εκτελέστηκε ως σενάριο bash που επαναφέρει τις δικές του μεταβλητές περιβάλλοντος για να αλλάξει τον τρόπο λειτουργίας του.
Αυτό προκάλεσε τη φόρτωση ενός ασαφούς αρχείου που ονομάζεται “verify.js” που είναι κρυμμένο μέσα σε ένα πακέτο Node. Το αρχείο verify.js περιείχε ελέγχους για συγκεκριμένες μεταβλητές περιβάλλοντος GitHub που υπάρχουν μόνο όταν εκτελείται κώδικας μέσα στο GitHub Actions.
Ο κώδικας στόχευε συγκεκριμένα μόνο αποθετήρια που ανήκουν στον ίδιο τον οργανισμό GitHub, επιβεβαιώνοντας ότι επρόκειτο για επίθεση ακριβείας.
Το κακόβουλο λογισμικό έλαβε ένα κλειδί κρυπτογράφησης από έναν εξωτερικό διακομιστή, κρυπτογραφούσε τα κλεμμένα διακριτικά και στη συνέχεια έστειλε αυτά τα κρυπτογραφημένα δεδομένα σε έναν διακομιστή εντολών και ελέγχου.
Οι προγραμματιστές που χρησιμοποιούν το Τείχος προστασίας πακέτων της Veracode προστατεύτηκαν από αυτήν την απειλή αμέσως μετά την ανακάλυψη, αλλά το περιστατικό δείχνει πόσο ευάλωτοι παραμένουν οι διαχειριστές πακέτων σε αυτές τις εξελιγμένες επιθέσεις της εφοδιαστικής αλυσίδας.










