Το Rust είναι ήδη αγαπημένο για ανάπτυξη Android

Η Google αποκάλυψε πρόσφατα η συνάρτηση γλώσσα προγραμματισμού Σκουριά μεταξύ επιτρεπόμενων γλωσσών για ανάπτυξη Android.

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

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

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

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

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

Σε Android, παρέχεται ασφαλής διαχείριση μνήμης στις γλώσσες Kotlin και Java έχει ήδη υποστηριχθεί, αλλά δεν είναι κατάλληλο για την ανάπτυξη εξαρτημάτων του συστήματος λόγω της μεγάλης επιβάρυνσης.

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

Για να διασφαλιστεί η ασφάλεια του κώδικα C και C ++, το Android χρησιμοποιεί απομόνωση sandbox, στατική ανάλυση και δοκιμές fuzzing. Οι δυνατότητες απομόνωσης του Sandbox είναι περιορισμένες και έχουν φτάσει στο όριο των δυνατοτήτων τους (ο περαιτέρω κατακερματισμός των διαδικασιών δεν είναι πρακτικός από την άποψη της κατανάλωσης πόρων).

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

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

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

Για διαδικασίες συστήματος σε Android, Η Google συμμορφώνεται με τον «κανόνα των δύο»ως οποιονδήποτε πρόσθετο κωδικό δεν πρέπει να πληροί περισσότερες από δύο από τις τρεις προϋποθέσεις- Εργαστείτε με μη επαληθευμένα δεδομένα εισόδου, χρησιμοποιήστε μια μη ασφαλή γλώσσα προγραμματισμού (C / C ++) και εκτελέστε χωρίς απομόνωση σκληρού sandbox (με αυξημένα δικαιώματα).

Από αυτόν τον κανόνα προκύπτει ότι ο κώδικας για την επεξεργασία εξωτερικών δεδομένων πρέπει να μειωθεί στο λιγότερο προνόμιο (απομονωμένος) ή να γραφτεί σε μια ασφαλή γλώσσα προγραμματισμού.

Η Google δεν στοχεύει στην επανεγγραφή του κώδικα C / C ++ που υπάρχει στο Rust, αλλά σχεδιάζει να χρησιμοποιήσει αυτήν τη γλώσσα για να αναπτύξει νέο κώδικα.

Είναι λογικό να χρησιμοποιείτε το Rust για νέο κώδικα, καθώς στατιστικά τα περισσότερα σφάλματα εμφανίζονται σε νέο ή πρόσφατα τροποποιημένο κώδικα. Συγκεκριμένα, περίπου το 50% των σφαλμάτων μνήμης που εντοπίστηκαν στο Android εντοπίζονται σε κώδικα γραμμένο πριν από ένα χρόνο.

πηγή: https://security.googleblog.com


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Μιγέλ Ροντρίγκεζ dijo

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