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

Η τυπική βιβλιοθήκη της γλώσσας προγραμματισμού Rust, η οποία συγκεντρώνει ένα πλήθος κοινών λειτουργιών, επιτρέπει την εκτέλεση batch αρχείων Windows μέσω του Command API, μεταξύ άλλων πολλών δυνατοτήτων. Ωστόσο, μια ανακοίνωση από την ομάδα Rust Security Response, δημοσιευμένη την 9η Απριλίου, αναφέρει ότι η συνάρτηση δεν διαχειρίζεται τις εισόδους στο API με την απαραίτητη αυστηρότητα για να αποτρέψει την πιθανότητα εισαγωγής και εκτέλεσης κακόβουλου κώδικα.

Διαβάστε ακόμη: Κρίσιμο σφάλμα Rust επιτρέπει επιθέσεις command injection

Παρόλο που το Rust είναι διάσημο για τις ικανότητές του στην ασφάλεια μνήμης, το εν λόγω περιστατικό αναδεικνύει ότι η γλώσσα προγραμματισμού δεν είναι αλάνθαστη απέναντι σε λογικά λάθη, σύμφωνα με τον Yair Mizrahi, ανώτερο ερευνητή ευπαθειών στην εταιρία ασφαλείας εφαρμογών JFrog.

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

Η Rust φημολογείται, ότι είναι μία από τις πιο ασφαλείς γλώσσες προγραμματισμού, καθώς προσφέρει σημαντική προστασία κατά των συχνά επικίνδυνων ελλείψεων ασφαλείας που σχετίζονται με τη διαχείριση μνήμης. Η Google έχει αναφέρει μείωση στις ευπάθειες του κώδικα που σχετίζονται με την ασφάλεια της μνήμης χάρη στη χρήση γλωσσών ασφαλείς για τη μνήμη, όπως η Rust και η Kotlin. Επιπλέον, η Microsoft ανακοίνωσε ότι μετά τη μετάβασή της σε γλώσσες ασφαλείς για τη μνήμη, διαπίστωσε ότι τέτοιου είδους ευπάθειες αποτελούσαν το 70% των θεμάτων ασφαλείας μέχρι το 2018.

Το πιο πρόσφατο ζήτημα δεν αναφέρεται σε μια ευπάθεια σχετικά με την ασφάλεια της μνήμης, αλλά σε ένα ζήτημα με τη λογική που ακολουθείται για την επεξεργασία μη αξιόπιστων δεδομένων εισόδου. Ένα τμήμα της επίσημης βιβλιοθήκης της γλώσσας Rust δίνει τη δυνατότητα στους προγραμματιστές να καλούν μια συγκεκριμένη συνάρτηση προκειμένου να αποστείλουν ένα αρχείο δέσμης εντολών σε έναν υπολογιστή με Windows για να το επεξεργαστούν. Ο Joel Marcey, ο IT της Rust Foundation, το οποίο υποστηρίζει την κοινότητα συντηρητών της γλώσσας προγραμματισμού και το οικοσύστημα του Rust, εξηγεί ότι υπάρχουν συγκεκριμένοι λόγοι για την αποστολή του κώδικα στον κεντρικό υπολογιστή ως αρχείο δέσμης εντολών.

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

Δείτε επίσης: Servers Intel και Lenovo επηρεάστηκαν από ελάττωμα BMC 6 ετών

Κατά κανόνα, ένας προγραμματιστής έχει τη δυνατότητα να αναθέσει μια εργασία στο κεντρικό σύστημα Windows για εκτέλεση ως batch process μέσω της διεπαφής προγραμματισμού εφαρμογών εντολών (Command API), η οποία αποτελεί μέρος της βιβλιοθήκης. Το Rust παρέχει εγγυήσεις ασφαλείας στο Command API. Ωστόσο, σε αυτή την περίπτωση, το Project Rust αντιμετώπισε δυσκολίες στο να προσφέρει μια λύση που θα απέτρεπε την εκτέλεση ανεπιθύμητων εντολών, κυρίως λόγω της μη συμμόρφωσης των Windows με κάποιο συγκεκριμένο πρότυπο καθώς επίσης και του κινδύνου, να υποβάλει ένας χάκερ κώδικα εκτέλεσης μέσω του API.

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

Αντιμετωπίζοντας τις ευπάθειες μπορεί να αποτελέσει μεγάλη πρόκληση, όμως το Rust Project απέδειξε ότι η ομάδα του αντιμετωπίζει τα προβλήματα με αξιοθαύμαστη ταχύτητα. Η συγκεκριμένη ευπάθεια, με κωδικό CVE-2024-24576, αποκαλύπτει ένα θέμα που σχετίζεται με την επεξεργασία μαζικών δεδομένων στα Windows, το οποίο ενδέχεται να επηρεάσει και άλλες γλώσσες προγραμματισμού, εφόσον αυτές δεν διαχειρίζονται σωστά τα δεδομένα εισόδου που στέλνονται στη διαδικασία δέσμης ενεργειών των Windows. Το Rust Project προηγείται στην ανάπτυξη μιας λύσης για τον ασφαλή χειρισμό των ορισμάτων που παραδίδονται στη διαδικασία CMD.exe των Windows, όπως αναφέρει ο Mizrahi από την JFrog.

Οι ομάδες δεν κατάφεραν να εξαλείψουν πλήρως το πρόβλημα, ωστόσο, το Command API πλέον δεν θα εμφανίζει σφάλματα σε περίπτωση που οι τιμές που παρέχονται στη συνάρτηση δεν είναι απολύτως ασφαλείς, όπως ανακοίνωσε το Rust Project.

Ο Mizrahi από την JFrog προτείνει στη Rust να ενισχύσει την ασφάλεια των εφαρμογών μέσω της επέκτασης της χρήσης στατικών δοκιμών και να αξιοποιήσει περαιτέρω το fuzzing και τις δυναμικές δοκιμές.

Διαβάστε ακόμη: Ελαττώματα του SharePoint αποτρέπουν τον εντοπισμό των hacker

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

Πηγή: darkreading