ΑρχικήSecurityΚακόβουλη έκδοση arrayref μολύνει έργα Rust κατά τη μεταγλώττιση

Κακόβουλη έκδοση arrayref μολύνει έργα Rust κατά τη μεταγλώττιση

Μια κακόβουλη έκδοση arrayref εξαπλώθηκε για περίπου 86 λεπτά στο οικοσύστημα του Rust, πριν αφαιρεθεί από το crates.io. Η έκδοση 0.3.10 έκρυβε εξάρτηση με το όνομα proc-macro1, η οποία εκτελούσε κώδικα κατά τη μεταγλώττιση και μπορούσε να εκθέσει διαπιστευτήρια από υπολογιστές προγραμματιστών.

Κακόβουλη έκδοση arrayref στο Rust

Η υπόθεση αφορά τρία πακέτα Rust που διαχειρίζονταν τον ίδιο λογαριασμό: το arrayref 0.3.10, το internment 0.8.7 και το append-only-vec 0.1.9. Το Rust Security Response Team διέγραψε τις επηρεασμένες εκδόσεις και κλείδωσε προληπτικά τον λογαριασμό του διαχειριστή, ο οποίος πιθανότατα είχε παραβιαστεί.

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

Δείτε επίσης: StubMaker: 16 typosquatted RubyGems packages κλέβουν δεδομένα

Πώς λειτούργησε η κακόβουλη έκδοση arrayref

Η επίθεση δεν χρειάστηκε αλλαγή στον βασικό κώδικα του arrayref. Οι δράστες πρόσθεσαν μία εξάρτηση από το proc-macro1, όνομα που μιμείται το δημοφιλές proc-macro2. Το πακέτο περιείχε αυθεντικό αντίγραφο του γνωστού crate, ώστε η μεταγλώττιση να φαίνεται φυσιολογική, αλλά το σενάριο μεταγλώττισης κατέβαζε και εκτελούσε δεύτερο κακόβουλο πρόγραμμα.

Η εκτέλεση γινόταν αυτόματα σε εντολές όπως cargo build, cargo check και cargo test. Δεν χρειαζόταν να κληθεί κάποια συνάρτηση του επηρεασμένου crate. Σε Unix και macOS το αρχείο αποθηκευόταν προσωρινά ως /tmp/rust-setup, ενώ στα Windows χρησιμοποιούνταν PowerShell και κρυφός εκκινητής VBScript.

Εξάρτηση proc-macro1 σε έργο Rust

Οι αναλύσεις των ερευνητών περιγράφουν δυνατότητες συλλογής πληροφοριών συστήματος και διαπιστευτηρίων από Chrome, Brave και Edge, μέσω των SQLite βάσεων σύνδεσης των φυλλομετρητών. Το δεύτερο στάδιο μπορούσε επίσης να εγκαταστήσει μηχανισμό παραμονής με Registry Run key, LaunchAgent ή systemd, ανάλογα με το λειτουργικό.

Η σύντομη αλλά επικίνδυνη περίοδος έκθεσης

Σύμφωνα με την επίσημη ανακοίνωση του Rust, το arrayref 0.3.10 δημοσιεύτηκε στις 07:15 UTC της 20ής Αυγούστου και διαγράφηκε 86 λεπτά αργότερα. Ακολούθησαν το internment 0.8.7 στις 07:34 και το append-only-vec 0.1.9 στις 07:37, τα οποία έμειναν διαθέσιμα για 90 και 107 λεπτά αντίστοιχα.

Η εμβέλεια ήταν μεγαλύτερη από ένα μεμονωμένο έργο. Το arrayref χρησιμοποιείται σε βιβλιοθήκες κρυπτογραφίας, γραφικών και blockchain, ενώ αρκετές αλυσίδες εξαρτήσεων δήλωναν εύρος εκδόσεων που επέτρεπε στο Cargo να επιλέξει αυτόματα την 0.3.10. Οι εκδόσεις 0.3.5 έως 0.3.9 είχαν αποσυρθεί σχεδόν ταυτόχρονα, γεγονός που μπορούσε να οδηγήσει σε εγκατάσταση της νεότερης διαθέσιμης έκδοσης.

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

Δείτε επίσης: QuickFox: Supply Chain επίθεση με FDMTP backdoor

Έλεγχος εξαρτήσεων Rust για malware

Τι πρέπει να ελέγξουν οι προγραμματιστές

Η RustSec καταγράφει ως ασφαλείς τις εκδόσεις arrayref έως και την 0.3.9 και δεν αναφέρει διορθωμένη έκδοση για το περιστατικό. Η κακόβουλη έκδοση arrayref αφαιρέθηκε από το crates.io, όμως ένα πακέτο που είχε ήδη αποθηκευτεί τοπικά δεν εξαφανίζεται από τον υπολογιστή επειδή διαγράφηκε από το αποθετήριο.

Οι ομάδες ανάπτυξης πρέπει να ελέγξουν τα Cargo.lock και τον κατάλογο ~/.cargo/registry/cache για τα arrayref-0.3.10, internment-0.8.7, append-only-vec-0.1.9 και proc-macro1. Χρήσιμοι έλεγχοι είναι επίσης η αναζήτηση των /tmp/rust-setup και %TEMP%\rust-setup.ps1, καθώς και η εξέταση συνδέσεων προς 23.254.165[.]112 στις θύρες 9089 και 443.

Εάν εντοπιστεί εγκατάσταση σε σταθμό εργασίας ή σε περιβάλλον συνεχούς ολοκλήρωσης (CI), η τεχνική ομάδα του SecNews προτείνει απομόνωση του συστήματος, αλλαγή κωδικών, διακριτικών πρόσβασης και κλειδιών υπογραφής και ανακατασκευή από καθαρό αντίγραφο. Η αλλαγή έκδοσης από μόνη της δεν αρκεί όταν η μεταγλώττιση έχει ήδη εκτελέσει το κακόβουλο πρόγραμμα.

Επιλογή της ομάδας

🔒 Προστατέψτε την ιδιωτικότητά σας με Proton VPN

Ελβετικό VPN από τους δημιουργούς του Proton Mail — αυστηρή πολιτική no-logs, ισχυρή κρυπτογράφηση και ενσωματωμένο NetShield που μπλοκάρει διαφημίσεις, trackers & malware.

  • ✔ No-logs, με έδρα την Ελβετία (εκτός 14-Eyes)
  • ✔ NetShield: φραγή διαφημίσεων, trackers & κακόβουλων domains
  • ✔ Καλύπτει όλες τις συσκευές — δωρεάν έκδοση διαθέσιμη
Δοκιμάστε δωρεάν το Proton VPN — 30 ημέρες εγγύηση επιστροφής →

Ο σύνδεσμος είναι συνεργατικός (affiliate) — το SecNews ενδέχεται να λάβει προμήθεια χωρίς επιπλέον κόστος για εσάς. Δεν επηρεάζει την ανεξαρτησία της αρθρογραφίας μας.

Για τα έργα που δεν εμφανίζουν ένδειξη μόλυνσης, η ασφαλέστερη προσωρινή επιλογή είναι η δέσμευση σε γνωστή καθαρή έκδοση και η ανανέωση των αρχείων κλειδώματος μόνο μετά από έλεγχο. Οι υπεύθυνοι CI πρέπει να εξετάσουν τα αρχεία καταγραφής των μεταγλωττίσεων στο διάστημα έκθεσης, επειδή η απουσία σφάλματος δεν σημαίνει ότι δεν εκτελέστηκε πρόσθετος κώδικας.

Δείτε επίσης: Μολυσμένα joyfill npm πακέτα: RAT ενεργοποιείται στο import σε Node.js

Ασφαλής έλεγχος πακέτων Rust

Το περιστατικό δείχνει ότι ο έλεγχος της αλυσίδας εφοδιασμού δεν σταματά στην πηγή του βασικού κώδικα. Μια μικρή αλλαγή στο manifest και ένα όνομα που μοιάζει με νόμιμη βιβλιοθήκη ήταν αρκετά για να μεταφέρει την εκτέλεση στο στάδιο της μεταγλώττισης. Η άμεση αναζήτηση των εκδόσεων και των δεικτών συμβιβασμού είναι το κρίσιμο πρώτο βήμα.

📧
Εγγραφείτε στο Newsletter του SecNews

Τα σημαντικότερα νέα Ασφάλειας & Τεχνολογίας στο Inbox σας.

Digital Fortress
Digital Fortresshttps://www.secnews.gr
Pursue Your Dreams & Live!

ΑΝΑΖΗΤΗΣΗ

FOLLOW US

📧
Newsletter SecNews
Τα σημαντικότερα νέα Ασφάλειας & Τεχνολογίας στο inbox σας.

LIVE NEWS