Επίδειξη επίθεσης σε επεξεργαστές κώδικα που οδηγεί σε διαρροές αρχείων κατά το άνοιγμα των πηγαίων κωδίκων

Έχει αποδειχθεί μια μέθοδος επίθεσης στον επεξεργαστή κώδικα VSCode, που επιτρέπει τη μεταφορά αυθαίρετων αρχείων εντός των δικαιωμάτων του τρέχοντος χρήστη κατά το άνοιγμα ενός ειδικά σχεδιασμένου πηγαίου κώδικα στο πρόγραμμα επεξεργασίας. Σε αυτήν την επίδειξη, όταν ανοίγει ο κώδικας Rust που χρησιμοποιεί μια διαδικαστική μακροεντολή, δημιουργεί μια σύνδεση με τον κεντρικό υπολογιστή 127.0.0.1:8080 και στέλνει τα περιεχόμενα του αρχείου "~/.ssh/id_rsa" με τα κλειδιά SSH του χρήστη.

Για συμβιβασμό, αρκεί απλώς να ανοίξετε το αρχείο με τον κώδικα, χωρίς να εκτελέσετε άλλες ενέργειες με το έργο. Για να λειτουργήσει το παράδειγμα, το VSCode απαιτεί την προσθήκη rust-analyzer (ένα δέσιμο πάνω από τον τυπικό μεταγλωττιστή rustc) και την παρουσία εργαλείων στο σύστημα για εργασία με κώδικα στη γλώσσα Rust. Το πρόβλημα σχετίζεται με την επέκταση των διαδικαστικών μακροεντολών κατά την αρχική ανάλυση κώδικα. Ένα παρόμοιο αποτέλεσμα μπορεί επίσης να επιτευχθεί κατά το χρόνο μεταγλώττισης χρησιμοποιώντας την εντολή "cargo build".

Σημειώνεται ότι το πρόβλημα ενδέχεται να επηρεάσει άλλους επεξεργαστές κώδικα και γλώσσες προγραμματισμού. Το VSCode και το rust-analyze χρησιμοποιούνται μόνο για την επίδειξη του φορέα επίθεσης. Θεωρητικά, κάθε πρόγραμμα επεξεργασίας κώδικα που εκθέτει διαδικαστικές μακροεντολές που σας επιτρέπουν να δημιουργείτε επεκτάσεις σύνταξης και να εκτελείτε κώδικα κατά το χρόνο μεταγλώττισης είναι ευαίσθητο στο πρόβλημα. Ο ερευνητής ερεύνησε αρχικά την πιθανότητα κακόβουλων ενεργειών που συμβαίνουν κατά τη συλλογή κώδικα, αλλά ανακάλυψε ότι οι διαδικαστικές μακροεντολές επεκτάθηκαν όταν ο πηγαίος κώδικας επεξεργαζόταν σε προγράμματα επεξεργασίας κώδικα. Η επίθεση μπορεί πιθανώς να επηρεάσει άλλες γλώσσες προγραμματισμού· για παράδειγμα, στην Java, η επεξεργασία των σχολιασμών μπορεί να χειριστεί με παρόμοιο τρόπο.



Πηγή: opennet.ru

Προσθέστε ένα σχόλιο