Οι φορείς απειλών εγκαταλείπουν ολοένα και περισσότερο τις παραδοσιακές γλώσσες όπως η C και η C++ υπέρ σύγχρονων εναλλακτικών λύσεων όπως το Golang, το Rust και το Nim.
Αυτή η στρατηγική αλλαγή επιτρέπει στους προγραμματιστές να μεταγλωττίσουν κακόβουλο κώδικα τόσο για Linux όσο και για Windows με ελάχιστες τροποποιήσεις.
Μεταξύ των αναδυόμενων απειλών σε αυτό το τοπίο είναι το “Luca Stealer”, ένας κλέφτης πληροφοριών βασισμένος στο Rust που πρόσφατα εμφανίστηκε στη φύση μαζί με άλλες αξιόλογες απειλές όπως το ransomware BlackCat.
The Rise of Luca Stealer
Ενώ η υιοθέτηση του Rust στην κοινότητα του κακόβουλου λογισμικού βρίσκεται ακόμα στα αρχικά στάδια σε σύγκριση με το Golang, επεκτείνεται γρήγορα.
Το Luca Stealer αντιπροσωπεύει μια σημαντική εξέλιξη καθώς κυκλοφόρησε δημόσια με μοντέλο ανοιχτού κώδικα.

Αυτή η διαθεσιμότητα παρέχει στους ερευνητές ασφάλειας μια μοναδική ευκαιρία να μελετήσουν πώς χρησιμοποιείται το Rust στον σχεδιασμό κακόβουλου λογισμικού, προσφέροντας κρίσιμες πληροφορίες για μελλοντικές αμυντικές στρατηγικές.
Η στροφή σε αυτές τις γλώσσες απαιτεί από τους υπερασπιστές να αναπτύξουν νέες τεχνικές ανάλυσης για τον εντοπισμό και την αντίστροφη μηχανική αυτών των εξελιγμένων δυαδικών αρχείων.
Η ανάλυση των δυαδικών αρχείων Rust παρουσιάζει μοναδικές προκλήσεις για τους υπερασπιστές που χρησιμοποιούν τυπικά εργαλεία. Σε αντίθεση με τα τυπικά προγράμματα C, τα εκτελέσιμα αρχεία Rust χειρίζονται τις συμβολοσειρές διαφορετικά.

Οι συμβολοσειρές Rust δεν τερματίζονται με μηδενικό, που σημαίνει ότι δεν τελειώνουν με ένα “null byte” για να επισημάνουν το τέλος του κειμένου. Αυτό προκαλεί συχνά τα εργαλεία αντίστροφης μηχανικής όπως το Ghidra να παρερμηνεύουν δεδομένα, οδηγώντας σε επικαλυπτόμενους ορισμούς συμβολοσειρών.
Οι αναλυτές πρέπει συνήθως να καθαρίζουν με μη αυτόματο τρόπο τα byte κώδικα και να επαναπροσδιορίζουν τις συμβολοσειρές για να αναγνωρίζουν σωστά τα έγκυρα δεδομένα.
Επιπλέον, η εύρεση της κύριας συνάρτησης σε ένα δυαδικό αρχείο Rust απαιτεί συγκεκριμένη γνώση της εξόδου του μεταγλωττιστή.
Σύμφωνα με Δυαδική άμυνατο σημείο εισόδου τυπικά αρχικοποιεί το περιβάλλον και στη συνέχεια καλεί μια συγκεκριμένη εσωτερική συνάρτηση (std::rt::lang_start_internal).
Αυτή η συνάρτηση λαμβάνει τη διεύθυνση της πραγματικής κύριας συνάρτησης που έχει γραφτεί από το χρήστη, την οποία οι ερευνητές μπορούν να αναγνωρίσουν ανιχνεύοντας τα ορίσματα που διαβιβάστηκαν κατά τη διάρκεια αυτής της κλήσης.
Ένα πλεονέκτημα για τους υπερασπιστές είναι η παρουσία αντικειμένων που άφησε το σύστημα κατασκευής Rust, Cargo. Οι εξωτερικές εξαρτήσεις, γνωστές ως “κλουβιά”, συχνά συνδέονται στατικά στο δυαδικό.

Αναζητώντας συγκεκριμένα μοτίβα συμβολοσειρών, όπως cargo\registry, οι αναλυτές μπορούν να απαριθμήσουν τις βιβλιοθήκες που χρησιμοποιεί ένα δείγμα κακόβουλου λογισμικού, όπως το reqwest για αιτήματα HTTP.
Επιπλέον, τα τεχνουργήματα μεταγλώττισης, όπως οι διαδρομές PDB, ενδέχεται να παραμείνουν στην ενότητα “Δεδομένα εντοπισμού σφαλμάτων”, με πιθανή διαρροή του ονόματος χρήστη ή των διαδρομών συστήματος του συγγραφέα.
Καθώς οι φορείς απειλής συνεχίζουν να αξιοποιούν το Rust, η κατανόηση αυτών των δομικών αποχρώσεων είναι απαραίτητη για την αποτελεσματική ανίχνευση.
Δείκτες συμβιβασμού (IoCs)
| Τύπος | Αναγνωριστικό | Περιγραφή |
|---|---|---|
| SHA256 | 8f47d1e39242ee4b528fcb6eb1a89983c27854bac57bc4a15597b37b7edf34a6 | Άγνωστο δείγμα κακόβουλου λογισμικού Rust |
| Σειρά | cargo\registry | Δείκτης εξαρτήσεων του κιβωτίου σκουριάς |
| Σειρά | std::rt::lang_start_internal | Ένδειξη σημείου εισόδου χρόνου εκτέλεσης Rust |










