AWS - Nitro Enum
Last updated
Last updated
Το AWS Nitro είναι μια σουίτα από καινοτόμες τεχνολογίες που αποτελούν τη βασική πλατφόρμα για τις περιπτώσεις AWS EC2. Εισήχθη από την Amazon για να ενισχύσει την ασφάλεια, την απόδοση και την αξιοπιστία, το Nitro εκμεταλλεύεται προσαρμοσμένα υλικά εξαρτήματα και ένα ελαφρύ υποσύστημα. Αφαιρεί μεγάλο μέρος της παραδοσιακής λειτουργικότητας εικονικοποίησης σε αφιερωμένο υλικό και λογισμικό, ελαχιστοποιώντας την επιφάνεια επίθεσης και βελτιώνοντας την αποδοτικότητα των πόρων. Με την απομάκρυνση των λειτουργιών εικονικοποίησης, το Nitro επιτρέπει στις περιπτώσεις EC2 να παρέχουν απόδοση κοντά στο μεταλλικό επίπεδο, κάτι που είναι ιδιαίτερα ωφέλιμο για εφαρμογές με μεγάλες απαιτήσεις πόρων. Επιπλέον, το Nitro Security Chip εξασφαλίζει ειδικά την ασφάλεια του υλικού και του firmware, ενισχύοντας περαιτέρω τη στιβαρή του αρχιτεκτονική.
Το AWS Nitro Enclaves παρέχει ένα ασφαλές, απομονωμένο περιβάλλον υπολογισμού εντός των περιπτώσεων Amazon EC2, σχεδιασμένο ειδικά για την επεξεργασία υψηλά ευαίσθητων δεδομένων. Χρησιμοποιώντας το Σύστημα AWS Nitro, αυτά τα enclaves εξασφαλίζουν αξιόπιστη απομόνωση και ασφάλεια, ιδανική για την χειρισμό εμπιστευτικών πληροφοριών όπως τα PII ή τα οικονομικά αρχεία. Διαθέτουν ένα περιβάλλον ελάχιστων δυνατοτήτων, μειώνοντας σημαντικά τον κίνδυνο εκθέσεως δεδομένων. Επιπλέον, τα Nitro Enclaves υποστηρίζουν κρυπτογραφική επαλήθευση, επιτρέποντας στους χρήστες να επαληθεύουν ότι τρέχει μόνο εξουσιοδοτημένος κώδικας, κάτι που είναι κρίσιμο για τη διατήρηση αυστηρών προτύπων συμμόρφωσης και προστασίας δεδομένων.
Οι εικόνες Nitro Enclave τρέχουν από μέσα σε περιπτώσεις EC2 και δεν μπορείτε να δείτε από την ιστοσελίδα του AWS αν μια περίπτωση EC2 τρέχει εικόνες σε Nitro Enclave ή όχι.
Ακολουθήστε όλες τις οδηγίες . Ωστόσο, αυτές είναι οι πιο σημαντικές:
Οι εικόνες που μπορείτε να εκτελέσετε στο Nitro Enclave βασίζονται σε εικόνες docker, έτσι μπορείτε να δημιουργήσετε τις δικές σας εικόνες Nitro Enclave από εικόνες docker όπως:
Όπως μπορείτε να δείτε, οι εικόνες Nitro Enclave χρησιμοποιούν την επέκταση eif
(Enclave Image File).
Η έξοδος θα μοιάζει με:
Να θυμάστε πάντα ότι πρέπει να κρατήσετε κάποιους πόρους για τη γονική EC2 περίπτωση!
Αφού γνωρίζετε τους πόρους που πρέπει να δώσετε σε μια εικόνα και έχετε ακόμα τροποποιήσει το αρχείο ρυθμίσεων, είναι δυνατόν να εκτελέσετε μια εικόνα περιοχής με:
Εάν διαρρεύσετε έναν οικοδεσπότη EC2, είναι δυνατόν να λάβετε μια λίστα με τις εικόνες οχυρώματος που τρέχουν με:
Δεν είναι δυνατόν να λάβετε ένα κέλυφος μέσα σε μια εικόνα περιοχής επειδή αυτός είναι ο κύριος σκοπός της περιοχής, ωστόσο, εάν χρησιμοποιήσετε την παράμετρο --debug-mode
, είναι δυνατόν να λάβετε το stdout του με:
Εάν ένας εισβολέας καταφέρει να διαρρήξει ένα παράδειγμα EC2, προεπιλεγμένα δεν θα μπορέσει να λάβει ένα κέλυφος μέσα σε αυτά, αλλά θα μπορεί να τερματίσει τα:
Ο μοναδικός τρόπος επικοινωνίας με ένα enclave που εκτελεί εικόνα είναι μέσω vsocks.
Το Virtual Socket (vsock) είναι μια οικογένεια sockets στο Linux σχεδιασμένη ειδικά για να διευκολύνει τη επικοινωνία μεταξύ εικονικών μηχανών (VMs) και των υπερεκτελεστών τους, ή μεταξύ των ίδιων των VMs. Το vsock επιτρέπει αποδοτική, διπλής κατεύθυνσης επικοινωνία χωρίς να βασίζεται στη στοίβα δικτύου του υπολογιστή φιλοξενίας. Αυτό καθιστά δυνατή την επικοινωνία των VMs ακόμα και χωρίς ρυθμίσεις δικτύου, χρησιμοποιώντας ένα 32-bit Context ID (CID) και αριθμούς θύρας για την αναγνώριση και διαχείριση συνδέσεων. Το API του vsock υποστηρίζει τόσο sockets ροής όσο και datagram, παρόμοια με TCP και UDP, παρέχοντας ένα ευέλικτο εργαλείο για εφαρμογές σε επίπεδο χρήστη σε εικονικά περιβάλλοντα.
Επομένως, μια διεύθυνση vsock φαίνεται έτσι: <CID>:<Θύρα>
Για να βρείτε τα CIDs των εικόνων που εκτελούν το enclave, μπορείτε απλά να εκτελέσετε την παρακάτω εντολή και να πάρετε το EnclaveCID
:
Βρείτε εδώ μερικά παραδείγματα:
Σύμφωνα με , για να εκτελέσετε μια εικόνα enclave πρέπει να της ανατεθεί μνήμη τουλάχιστον 4 φορές το μέγεθος του αρχείου eif
. Είναι δυνατόν να διαμορφώσετε τους προεπιλεγμένους πόρους που θα της δώσετε στο αρχείο.
Σημειώστε ότι από τον υπολογιστή φιλοξενίας δεν υπάρχει τρόπος να γνωρίζετε αν ένα CID εκθέτει κάποια θύρα! Εκτός αν χρησιμοποιήσετε κάποιο σαρωτή θυρών vsock όπως .