Το τοπίο της κυβερνοασφάλειας έχει για άλλη μια φορά ταραγμένο από μια ανεπαίσθητη αλλά επικίνδυνη επίθεση στην αλυσίδα εφοδιασμού. Ένα κακόβουλο πακέτο NuGet με το όνομα Tracer.Fody.NLog ανακαλύφθηκε μεταμφιεσμένο ως νόμιμη βιβλιοθήκη ανίχνευσης .NET.
Δημοσιεύτηκε το 2020, αυτό το πακέτο εξαπάτησε επιτυχώς τους προγραμματιστές για χρόνια, συγκεντρώνοντας περίπου 2.000 λήψεις, υποδυόμενος το δημοφιλές εργαλείο Tracer.Fody και τον συντηρητή του.
Το διάνυσμα επίθεσης είναι το κλασικό τυπογραφικό κατασκήνωση σε συνδυασμό με την κοινωνική μηχανική. Το κακόβουλο πακέτο δημοσιεύτηκε με το ψευδώνυμο χρήστη csnemess, μια σχεδόν πανομοιότυπη παραλλαγή του νόμιμου συντηρητή csnemes.
Αντικατοπτρίζοντας τα μεταδεδομένα και την περιγραφή του αρχικού πακέτου, οι φορείς απειλών εξασφάλισαν ότι οι περιστασιακοί παρατηρητές δεν θα έβλεπαν τίποτα κακό.
Αυτή η μεταμφίεση επέτρεψε στο κακόβουλο λογισμικό να ενσωματωθεί βαθιά σε περιβάλλοντα ανάπτυξης, στοχεύοντας ιδιωτικά εργαλεία και αγωγούς CI.
Αναλυτές Socket.dev αναγνωρισθείς αυτή την περίπλοκη απειλή, σημειώνοντας ότι στοχεύει συγκεκριμένα περιουσιακά στοιχεία κρυπτονομισμάτων.
Στον κώδικα του πακέτου κρύβεται μια εξειδικευμένη ρουτίνα που έχει σχεδιαστεί για την κλοπή ευαίσθητων δεδομένων από τα πορτοφόλια κρυπτονομισμάτων Stratis.
Το κακόβουλο λογισμικό παραμένει αδρανές μέχρι να εκπληρωθούν συγκεκριμένες προϋποθέσεις, επιτρέποντάς του να λειτουργεί αθόρυβα στο παρασκήνιο χωρίς να προκαλεί συναγερμούς ή να δημιουργεί αρχεία καταγραφής.
Ο αντίκτυπος αυτής της καμπάνιας είναι σημαντικός λόγω του μεγάλου χρόνου παραμονής του πακέτου. Για περισσότερα από πέντε χρόνια, ο κακόβουλος κώδικας δυνητικά βρισκόταν σε διάφορα έργα, περιμένοντας να συγκεντρώσει τα διαπιστευτήρια.
Οι εισβολείς χρησιμοποίησαν έναν διακομιστή εντολών και ελέγχου που βρίσκεται στη Ρωσία για να συλλέξουν τα κλεμμένα δεδομένα πορτοφολιού, υπογραμμίζοντας τον υπολογισμένο και επίμονο χαρακτήρα αυτής της επιχείρησης οικονομικής κλοπής.
Μέσα στον Κωδικό Κλοπής Πορτοφολιού
Ο πυρήνας της λειτουργικότητας του κακόβουλου λογισμικού είναι ένας έξυπνος μηχανισμός μόλυνσης που εκμεταλλεύεται ένα κοινό μοτίβο κωδικοποίησης. Η κακόβουλη βιβλιοθήκη συνδέεται με μια γενική βοηθητική μέθοδο που ονομάζεται Guard.NotNull.
.webp.jpeg)
Αυτή η μέθοδος χρησιμοποιείται συχνά από προγραμματιστές για την επικύρωση ορισμάτων, καθιστώντας την ιδανικό σημείο απόκρυψης για κακόβουλη λογική.
Όταν ο βοηθός επεξεργάζεται ένα αντικείμενο που περιέχει μια ιδιότητα WalletPassword, το κακόβουλο λογισμικό ενεργοποιείται.
csharp// Malicious side effect injected into a generic null-check helper
public static T NotNull(T value, string parameterName)
{
// ... validation checks ...
Checker.Check(value); // Triggers exfiltration
return value;
}
Χρησιμοποιώντας την αντανάκλαση, ο κώδικας εξάγει τον κωδικό πρόσβασης και σαρώνει το σύστημα του θύματος για αρχεία πορτοφολιού Stratis. Συγκεκριμένα, στοχεύει τον κατάλογο %APPDATA%\StratisNode\stratis\StratisMain.
Μόλις εντοπίσει τα αρχεία wallet.json, περικόπτει τα δεδομένα για να συλλάβει βασικά κλειδιά και σιωπηλά διεγείρει αυτές τις πληροφορίες, μαζί με τον κωδικό πρόσβασης, σε μια διεύθυνση IP με σκληρό κώδικα.
Για να αποφύγουν περαιτέρω την ανίχνευση, οι ηθοποιοί απειλών χρησιμοποίησαν ομόγλυφα —κυριλλικούς χαρακτήρες που μοιάζουν πανομοιότυποι με τα λατινικά γράμματα— στα αναγνωριστικά κωδικών τους, καθιστώντας τη μη αυτόματη αναθεώρηση κώδικα απίστευτα δύσκολη ακόμη και για έμπειρους προγραμματιστές.
.webp.jpeg)
Αυτός ο συνδυασμός συσκότισης ομογλυφικών και αθόρυβης εκτέλεσης διασφαλίζει ότι η εφαρμογή κεντρικού υπολογιστή φαίνεται να εκτελείται κανονικά ενώ τα ευαίσθητα οικονομικά δεδομένα αποστραγγίζονται από το παραβιασμένο σύστημα.
Η επίθεση δείχνει πόσο εύκολα αξιόπιστα εργαλεία ανάπτυξης μπορούν να οπλιστούν ενάντια σε ανυποψίαστους χρήστες, μετατρέποντας τις καθημερινές ενημερώσεις εξάρτησης σε σημαντικές υποχρεώσεις ασφαλείας για ολόκληρο τον οργανισμό.










