Η Google άνοιξε ένα σύστημα για τη δημιουργία περιβαλλόντων περιβάλλοντος δοκιμών για C / C ++

Google

Μερικές μέρες πριν Η Google ανακοινώνει το άνοιγμα του έργου Sandboxed APIΌτι σας επιτρέπει να αυτοματοποιήσετε τη διαδικασία δημιουργίας sandbox για μεμονωμένη εκτέλεση αυθαίρετων βιβλιοθηκών C και C++.

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

η απομόνωσηή γίνεται χρησιμοποιώντας μέσα στο χρόνο εκτέλεσης sandbox2, στα οποία χρησιμοποιούνται οι χώροι ονομάτων, οι ομάδες c και το seccomp-bpf.

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

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

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

sandbox2 μπορεί να χρησιμοποιηθεί ξεχωριστά από το Sandbox API για την απομόνωση όχι μόνο βιβλιοθηκών, αλλά και αυθαίρετων διεργασιών.

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

Σχετικά με το Sandboxed API

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

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

Se έχει πρόσβαση στην απομονωμένη βιβλιοθήκη μέσω ενός εξειδικευμένου RPC που βασίζεται στο πρωτόκολλο ProtoBuffs.

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

επισκόπηση sapi

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

Επιπλέον, Παρέχεται ένα API για την παρακολούθηση της λειτουργίας μεμονωμένων διεργασιών και την επανεκκίνηση τους σε περίπτωση αποτυχίας.

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

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

Τα αρχεία και οι κατάλογοι στους οποίους πρέπει να έχει πρόσβαση η βιβλιοθήκη καθορίζονται ξεχωριστά.

Εγκατάσταση

Προς το παρόν, το έργο είναι διαθέσιμο μόνο για Linux, αλλά στο μέλλον υπόσχονται να προσθέσουν υποστήριξη για συστήματα macOS και BSD και μακροπρόθεσμα - και για Windows. ναι θέλετε να εγκαταστήσετε το sandboxed api, μπορείτε να ακολουθήσετε τις οδηγίες που δίνονται σε αυτόν τον σύνδεσμο.

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

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


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

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

*

*

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