CHERIOT, ένα έργο της Microsoft για τη βελτίωση της ασφάλειας στο C

CHERIOT

CHERIOT, μια επιλογή MS για ασφάλεια για ενσωματωμένα συστήματα

Η είδηση ​​έσκασε πρόσφατα Η Microsoft άνοιξε τις εξελίξεις που σχετίζονται με το έργο CHERIOT (Επέκταση ικανότητας υλικού στο RISC-V για Διαδίκτυο των πραγμάτων), προορίζεται να μπλοκάρει ζητήματα ασφαλείας σε κώδικα C και C++ υπάρχον. Το CHERIoT προσφέρει μια λύση για την προστασία των υπαρχουσών βάσεων κώδικα C/C++ χωρίς να χρειάζεται να τις αναπαραστήσετε.

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

Σχετικά με το CHERIOT

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

Η πρακτική δείχνει ότι ακόμη και μεγάλες εταιρείες όπως η Google και η Microsoft, οι οποίες έχουν αυστηρή πολιτική ελέγχου αλλαγών και χρησιμοποιούν σύγχρονες μεθόδους ανάπτυξης και εργαλεία στατικής ανάλυσης, δεν μπορούν να εγγυηθούν την εργασία χωρίς σφάλματα με τη μνήμη (για παράδειγμα, περίπου το 70% των τρωτών σημείων στη Microsoft και την Google προκαλούνται από ανασφαλή διαχείριση μνήμης).

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

Αλλά τέτοιες μέθοδοι είναι πιο κατάλληλες για νέο κώδικα y είναι αρκετά ενοχλητικό να ξαναδουλέψεις υπάρχοντα έργα C/C++, ειδικά εάν προορίζονται να εκτελούνται σε περιβάλλοντα με περιορισμένους πόρους, όπως ενσωματωμένα συστήματα και συσκευές IoT.

Ο Τα εξαρτήματα υλικού CHERIoT έχουν σχεδιαστεί ως μικροελεγκτής βασίζεται στην αρχιτεκτονική RISC-V, υλοποιώντας την αρχιτεκτονική ασφαλούς επεξεργαστή CHERI (Capacity Hardware Extension for RISC-V), παρέχοντας ένα μοντέλο πρόσβασης ελεγχόμενης μνήμης.

Βασισμένο στο η αρχιτεκτονική του σετ εντολών (ΕΙΝΑΙ ΕΝΑ) Παρέχεται στο CHERIOT, έχει κατασκευαστεί ένα μοντέλο προγραμματισμού που εγγυάται την ασφάλεια της εργασίας με τη μνήμη σε επίπεδο μεμονωμένων αντικειμένων, παρέχει προστασία από την πρόσβαση σε ήδη ελευθερωμένη μνήμη και εφαρμόζει ένα ελαφρύ σύστημα απομόνωσης για πρόσβαση στη μνήμη.

Αυτό το μοντέλο προστασίας μέσω προγραμματισμού αντικατοπτρίζει απευθείας το μοντέλο γλώσσας C/C++, επιτρέποντάς του να χρησιμοποιείται για την προστασία των υπαρχουσών εφαρμογών (απαιτείται μόνο η εκ νέου μεταγλώττιση και η εκτέλεση σε υλικό συμβατό με ISA CHERIOT).

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

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

Το έργο περιλαμβάνει μια προδιαγραφή για μια αρχιτεκτονική συνόλου εντολών CHERIOT επέκταση, μια υλοποίηση αναφοράς μιας CPU 32-bit RISC-V συμβατή με ISA CHERIOT και ένα τροποποιημένο σύνολο εργαλείων LLVM.

Τελικά Εάν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, θα πρέπει να γνωρίζετε ότι το πρωτότυπα διαγράμματα Οι περιγραφές μπλοκ CPU και υλικού στο Verilog διανέμονται υπό την άδεια Apache 2.0. Ο πυρήνας Ibex του έργου lowRISC χρησιμοποιείται ως βάση για την CPU και το μοντέλο κώδικα CHERIOT ISA ορίζεται στη γλώσσα Sail και διανέμεται με την άδεια BSD.

Επιπλέον, προτείνεται ένα πρωτότυπο λειτουργικό σύστημα CHERIOT RTOS σε πραγματικό χρόνο, το οποίο παρέχει τη δυνατότητα απομόνωσης διαμερισμάτων (compartment) ακόμη και σε ενσωματωμένα συστήματα με 256 MB RAM.

Ο κώδικας CHERIOT RTOS Είναι γραμμένο σε C++ και διανέμεται με την άδεια MIT. Με τη μορφή διαμερισμάτων, σχεδιάζονται τα βασικά στοιχεία του λειτουργικού συστήματος, όπως ο φορτωτής εκκίνησης, ο προγραμματιστής και το σύστημα εκχώρησης μνήμης.


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

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

*

*

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