Τα προβλήματα με τη διαχείριση της μνήμης, είναι ακόμη ψηλά στη λίστα σφαλμάτων του Chrome.

Όπως ανακοίνωσαν οι ερευνητές της εταιρίας, η συντριπτική πλειοψηφία όλων των σφαλμάτων ασφαλείας που βρέθηκαν στον Google Chrome σχετίζονται με τη διαχείριση μνήμης. Έπειτα από την ανάλυση περισσότερων από 900 σφαλμάτων υψηλής κρισιμότητας που εντοπίστηκαν στο κανάλι Stable (σταθερές και δοκιμασμένες εκδόσεις διαθέσιμες για download) του Chrome από το 2015, οι μηχανικοί της Google επιβεβαίωσαν ότι περίπου το 70% αυτών σχετίζονται με τη διαχείριση και την ασφάλεια της μνήμης.

Τα προβλήματα ασφάλειας στη μνήμη είναι βασικά σφάλματα κατά τον προγραμματισμό γλώσσας C και C++. Από το προαναφερθέν ποσοστό, το 50% αφορά ευπάθειες που βασίζονται σε λάθη διαχείρισης της μνήμης. Το βασικό ζήτημα είναι οι C και C++ είναι παλαιότερες γλώσσες προγραμματισμού που δεν λαμβάνουν υπόψη την πιθανότητα διαδικτυακής επίθεσης. Επιτρέπουν στους προγραμματιστές τον πλήρη έλεγχο της διαχείρισης της μνήμης και δεν τους ενημερώνουν αυτόματα για πιθανά σφάλματα κατά το στάδιο της ανάπτυξης της εφαρμογής.

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

Τα σφάλματα διαχείρισης μνήμης έχουν γίνει τόσο μεγάλο πρόβλημα που οι μηχανικοί της Google υποχρεούνται να ακολουθούν το λεγόμενο Rule of 2 (Ο κανόνας των 2). Σύμφωνα με αυτόν τον κανόνα, ο κώδικας δεν πρέπει να παραβιάζει περισσότερες από δύο από τις παρακάτω προϋποθέσεις:

  • Διαχειρίζεται αναξιόπιστες εισόδους;
  • Τρέχει σε περιβάλλον sandbox; (δοκιμαστικό περιβάλλον)
  • Είναι γραμμένος σε μία ευάλωτη γλώσσα προγραμματισμού όπως C ή C++;

Η Mozilla από την άλλη πλευρά, έχει υιοθετήσει τη γλώσσα προγραμματισμού Rust για τον Firefox. Η Rust θεωρείται μία από τις ασφαλέστερες γλώσσες προγραμματισμού, κατάλληλη να καλύψει ευπάθειες που σχετίζονται με C/C++. Με Rust όμως πειραματίζεται και η Microsoft ενώ παράλληλα προσπαθεί να αναπτύξει και μία δική της proprietary γλώσσα προγραμματισμού για τις δικές της ανάγκες.

Στο μέλλον, οι μηχανικοί της Google σχεδιάζουν να ερευνήσουν λύσεις όπως προσαρμοσμένες βιβλιοθήκες C++ ή να χρησιμοποιούν ασφαλέστερες γλώσσες όπου είναι δυνατόν. Ανάμεσα στις επιλογές είναι η Rust, η JavaScript, Java και Swift.