AWS - Nitro Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
AWS Nitro είναι μια σουίτα καινοτόμων τεχνολογιών που σχηματίζουν την υποκείμενη πλατφόρμα για τις περιπτώσεις AWS EC2. Εισήχθη από την Amazon για να ενισχύσει την ασφάλεια, την απόδοση και την αξιοπιστία, το Nitro αξιοποιεί προσαρμοσμένα hardware components και έναν ελαφρύ hypervisor. Απομονώνει πολλές από τις παραδοσιακές λειτουργίες εικονικοποίησης σε ειδικό hardware και software, ελαχιστοποιώντας την επιφάνεια επίθεσης και βελτιώνοντας την αποδοτικότητα πόρων. Με την εκφόρτωση των λειτουργιών εικονικοποίησης, το Nitro επιτρέπει στις περιπτώσεις EC2 να παρέχουν σχεδόν απόδοση bare-metal, καθιστώντας το ιδιαίτερα ευεργετικό για εφαρμογές που απαιτούν πολλούς πόρους. Επιπλέον, το Nitro Security Chip διασφαλίζει ειδικά την ασφάλεια του hardware και του firmware, ενισχύοντας περαιτέρω την ανθεκτική του αρχιτεκτονική.
AWS Nitro Enclaves παρέχει ένα ασφαλές, απομονωμένο υπολογιστικό περιβάλλον εντός των περιπτώσεων Amazon EC2, σχεδιασμένο ειδικά για την επεξεργασία εξαιρετικά ευαίσθητων δεδομένων. Αξιοποιώντας το AWS Nitro System, αυτές οι enclaves διασφαλίζουν ισχυρή απομόνωση και ασφάλεια, ιδανικές για διαχείριση εμπιστευτικών πληροφοριών όπως PII ή οικονομικά αρχεία. Διαθέτουν ένα μινιμαλιστικό περιβάλλον, μειώνοντας σημαντικά τον κίνδυνο έκθεσης δεδομένων. Επιπλέον, οι Nitro Enclaves υποστηρίζουν κρυπτογραφική πιστοποίηση, επιτρέποντας στους χρήστες να επαληθεύουν ότι εκτελείται μόνο εξουσιοδοτημένος κώδικας, κρίσιμο για τη διατήρηση αυστηρών προτύπων συμμόρφωσης και προστασίας δεδομένων.
Οι εικόνες Nitro Enclave τρέχουν από μέσα στις περιπτώσεις EC2 και δεν μπορείτε να δείτε από την κονσόλα ιστού AWS αν μια περίπτωση EC2 εκτελεί εικόνες σε Nitro Enclave ή όχι.
Ακολουθήστε όλες τις οδηγίες από την τεκμηρίωση. Ωστόσο, αυτές είναι οι πιο σημαντικές:
Οι εικόνες που μπορείτε να εκτελέσετε στο Nitro Enclave βασίζονται σε εικόνες docker, οπότε μπορείτε να δημιουργήσετε τις εικόνες Nitro Enclave σας από εικόνες docker όπως:
Όπως μπορείτε να δείτε, οι εικόνες Nitro Enclave χρησιμοποιούν την επέκταση eif
(Enclave Image File).
Η έξοδος θα μοιάζει με:
Σύμφωνα με την τεκμηρίωση, για να εκτελέσετε μια εικόνα enclave πρέπει να της αναθέσετε μνήμη τουλάχιστον 4 φορές το μέγεθος του αρχείου eif
. Είναι δυνατόν να ρυθμίσετε τους προεπιλεγμένους πόρους που θα της δώσετε στο αρχείο.
Πάντα να θυμάστε ότι πρέπει να κρατήσετε κάποιους πόρους για την κύρια EC2 παρουσία!
Μετά την κατανόηση των πόρων που πρέπει να δοθούν σε μια εικόνα και ακόμη και αφού έχετε τροποποιήσει το αρχείο ρύθμισης, είναι δυνατόν να εκτελέσετε μια εικόνα enclave με:
Αν παραβιάσετε έναν EC2 host, είναι δυνατόν να αποκτήσετε μια λίστα με τις τρέχουσες εικόνες ενκλάβων με:
Δεν είναι δυνατό να αποκτήσετε ένα shell μέσα σε μια εκτελούμενη εικόνα enclave γιατί αυτός είναι ο κύριος σκοπός της enclave, ωστόσο, αν χρησιμοποιήσατε την παράμετρο --debug-mode
, είναι δυνατό να αποκτήσετε το stdout της με:
Αν ένας επιτιθέμενος παραβιάσει μια EC2 instance, από προεπιλογή δεν θα μπορεί να αποκτήσει πρόσβαση σε shell μέσα σε αυτές, αλλά θα μπορεί να τις τερματίσει με:
Ο μόνος τρόπος για να επικοινωνήσετε με μια enclave που εκτελεί εικόνα είναι χρησιμοποιώντας vsocks.
Virtual Socket (vsock) είναι μια οικογένεια socket στο Linux που έχει σχεδιαστεί ειδικά για να διευκολύνει την επικοινωνία μεταξύ εικονικών μηχανών (VMs) και των hypervisors τους, ή μεταξύ των VMs αυτών. Το vsock επιτρέπει αποδοτική, διπλής κατεύθυνσης επικοινωνία χωρίς να βασίζεται στο δίκτυο του host. Αυτό καθιστά δυνατή την επικοινωνία των VMs ακόμη και χωρίς ρυθμίσεις δικτύου, χρησιμοποιώντας ένα 32-bit Context ID (CID) και αριθμούς θυρών για να προσδιορίσουν και να διαχειριστούν τις συνδέσεις. Η API του vsock υποστηρίζει τόσο τύπους socket ροής όσο και datagram, παρόμοια με TCP και UDP, παρέχοντας ένα ευέλικτο εργαλείο για εφαρμογές επιπέδου χρήστη σε εικονικά περιβάλλοντα.
Επομένως, μια διεύθυνση vsock φαίνεται έτσι: <CID>:<Port>
Για να βρείτε τα CIDs των εικόνων enclave που εκτελούνται, μπορείτε απλά να εκτελέσετε την παρακάτω εντολή και να πάρετε το EnclaveCID
:
Σημειώστε ότι από τον host δεν υπάρχει κανένας τρόπος να γνωρίζετε αν ένα CID εκθέτει οποιαδήποτε θύρα! Εκτός αν χρησιμοποιήσετε κάποιο vsock port scanner όπως https://github.com/carlospolop/Vsock-scanner.
Βρείτε εδώ μερικά παραδείγματα: