ΑρχικήΛογισμικάΠάνω από το 20% των Rust packages είναι δυνητικά μη ασφαλή

Πάνω από το 20% των Rust packages είναι δυνητικά μη ασφαλή

Σύμφωνα με την Rust Foundation, περίπου ένα στα πέντε Rust packages χρησιμοποιεί το keyword Unsafe. Στις περισσότερες περιπτώσεις, αυτό γίνεται για την κλήση κώδικα ή βιβλιοθηκών τρίτων μερών.

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

Σύμφωνα με τη μελέτη, συνολικά 24.362 Rust packages (Crates) χρησιμοποιούν το keyword Unsafe, το οποίο σηματοδοτεί δυνητικά μη ασφαλή κώδικα πηγής. Ο συνολικός αριθμός των Crates που περιέχουν τέτοιο κώδικα, σύμφωνα με την Rust Foundation, ανήλθε σε περίπου 127.000 τον Μάιο του 2024.

Ως αποτέλεσμα, τα packages με Unsafe keyword αντιπροσωπεύουν πάνω από το 19%. Ο αριθμός των Crates που πραγματοποιούν άμεση κλήση συνάρτησης σε άλλο package με Unsafe keyword αγγίζει μάλιστα το 34%.

Το Unsafe keyword χρησιμοποιείται πιο συχνά για την κλήση κώδικα ή βιβλιοθηκών τρίτων μερών που δεν είναι γραμμένες σε Rust, αλλά για παράδειγμα σε C ή C++. Το Crate με την πιο συχνή χρήση του Unsafe keyword είναι το Windows-Crate, το οποίο επιτρέπει στους developers να χρησιμοποιούν διάφορα APIs των Windows.

Το Unsafe αυξάνει τον κίνδυνο αδυναμιών

Η Rust Foundation τονίζει ότι η χρήση του keyword Unsafe δεν σημαίνει αυτόματα ότι ο κώδικας περιέχει εκμεταλλεύσιμες αδυναμίες. Σε αυτές τις περιπτώσεις, ο κίνδυνος είναι απλώς υψηλότερος. Ως εκ τούτου, απαιτείται ιδιαίτερη προσοχή κατά τη χρήση Unsafe Rust, για την αποφυγή πιθανών κενών ασφαλείας.

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

Επιπλέον, οι κανονικοί έλεγχοι ασφαλείας που υπάρχουν σε κάθε ασφαλή Rust code είναι ενεργοί και μέσα σε έναν Unsafe block. Επιπλέον, η χρήση του keyword Unsafe είναι μια συνειδητή ενέργεια που υποχρεώνει τους developers να λάβουν υπόψη τους σχετικούς κινδύνους και να λάβουν τα κατάλληλα μέτρα ασφαλείας.

Στέλιος Θεοδωρίδης
Στέλιος Θεοδωρίδης
Ο ήρωας μου είναι ο γάτος μου ο Τσάρλι και ακροάζομαι μόνο Psychedelic Trance
RELATED ARTICLES

Πρόσφατα άρθρα

Tηλέφωνα έκτακτης ανάγκης

Δίωξη Ηλεκτρονικού Εγκλήματος: 11188
Ελληνική Αστυνομία: 100
Χαμόγελο του Παιδιού: 210 3306140
Πυροσβεστική Υπηρεσία: 199
ΕΚΑΒ 166