AWS - KMS 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 (AWS KMS) παρουσιάζεται ως μια διαχειριζόμενη υπηρεσία, απλοποιώντας τη διαδικασία για τους χρήστες να δημιουργούν και να διαχειρίζονται τα κλειδιά πελάτη (CMKs). Αυτά τα CMKs είναι αναπόσπαστα στην κρυπτογράφηση των δεδομένων των χρηστών. Μια αξιοσημείωτη δυνατότητα του AWS KMS είναι ότι τα CMKs είναι κυρίως ασφαλισμένα από υλικές μονάδες ασφαλείας (HSMs), ενισχύοντας την προστασία των κλειδιών κρυπτογράφησης.
Το KMS χρησιμοποιεί συμμετρική κρυπτογραφία. Αυτό χρησιμοποιείται για να κρυπτογραφεί πληροφορίες σε κατάσταση ηρεμίας (για παράδειγμα, μέσα σε ένα S3). Εάν χρειάζεστε να κρυπτογραφήσετε πληροφορίες σε μετάβαση, πρέπει να χρησιμοποιήσετε κάτι όπως το TLS.
Το KMS είναι μια υπηρεσία συγκεκριμένης περιοχής.
Οι διαχειριστές στην Amazon δεν έχουν πρόσβαση στα κλειδιά σας. Δεν μπορούν να ανακτήσουν τα κλειδιά σας και δεν σας βοηθούν με την κρυπτογράφηση των κλειδιών σας. Το AWS απλώς διαχειρίζεται το λειτουργικό σύστημα και την υποκείμενη εφαρμογή, είναι δική μας ευθύνη να διαχειριζόμαστε τα κλειδιά κρυπτογράφησης και να διαχειριζόμαστε πώς χρησιμοποιούνται αυτά τα κλειδιά.
Κλειδιά Πελάτη (CMK): Μπορούν να κρυπτογραφήσουν δεδομένα έως 4KB σε μέγεθος. Χρησιμοποιούνται συνήθως για τη δημιουργία, κρυπτογράφηση και αποκρυπτογράφηση των DEKs (Κλειδιά Κρυπτογράφησης Δεδομένων). Στη συνέχεια, τα DEKs χρησιμοποιούνται για την κρυπτογράφηση των δεδομένων.
Ένα κλειδί πελάτη (CMK) είναι μια λογική αναπαράσταση ενός κύριου κλειδιού στο AWS KMS. Εκτός από τους αναγνωριστικούς του κύριου κλειδιού και άλλα μεταδεδομένα, συμπεριλαμβανομένης της ημερομηνίας δημιουργίας του, της περιγραφής και της κατάστασης του κλειδιού, ένα CMK περιέχει το υλικό κλειδιού που χρησιμοποιείται για την κρυπτογράφηση και αποκρυπτογράφηση των δεδομένων. Όταν δημιουργείτε ένα CMK, από προεπιλογή, το AWS KMS δημιουργεί το υλικό κλειδιού για αυτό το CMK. Ωστόσο, μπορείτε να επιλέξετε να δημιουργήσετε ένα CMK χωρίς υλικό κλειδιού και στη συνέχεια να εισάγετε το δικό σας υλικό κλειδιού σε αυτό το CMK.
Υπάρχουν 2 τύποι κύριων κλειδιών:
CMKs διαχειριζόμενα από το AWS: Χρησιμοποιούνται από άλλες υπηρεσίες για την κρυπτογράφηση δεδομένων. Χρησιμοποιούνται από την υπηρεσία που τα δημιούργησε σε μια περιοχή. Δημιουργούνται την πρώτη φορά που εφαρμόζετε την κρυπτογράφηση σε αυτή την υπηρεσία. Περιστρέφονται κάθε 3 χρόνια και δεν είναι δυνατή η αλλαγή τους.
CMKs διαχειριζόμενα από τον πελάτη: Ευελιξία, περιστροφή, ρυθμιζόμενη πρόσβαση και πολιτική κλειδιού. Ενεργοποίηση και απενεργοποίηση κλειδιών.
Κρυπτογράφηση Φακέλου στο πλαίσιο της Υπηρεσίας Διαχείρισης Κλειδιών (KMS): Σύστημα ιεραρχίας δύο επιπέδων για να κρυπτογραφεί δεδομένα με το κλειδί δεδομένων και στη συνέχεια να κρυπτογραφεί το κλειδί δεδομένων με το κύριο κλειδί.
Αυτές καθορίζουν ποιος μπορεί να χρησιμοποιήσει και να έχει πρόσβαση σε ένα κλειδί στο KMS.
Από προεπιλογή:
Δίνει την πρόσβαση στο IAM του λογαριασμού AWS που κατέχει το κλειδί KMS για να διαχειρίζεται την πρόσβαση στο κλειδί KMS μέσω IAM.
Σε αντίθεση με άλλες πολιτικές πόρων AWS, μια πολιτική κλειδιού AWS KMS δεν δίνει αυτόματα άδεια σε κανέναν από τους φορείς του λογαριασμού. Για να δώσετε άδεια στους διαχειριστές του λογαριασμού, η πολιτική κλειδιού πρέπει να περιλαμβάνει μια ρητή δήλωση που παρέχει αυτή την άδεια, όπως αυτή.
Χωρίς να επιτρέπεται στον λογαριασμό("AWS": "arn:aws:iam::111122223333:root"
) οι άδειες IAM δεν θα λειτουργήσουν.
Επιτρέπει στον λογαριασμό να χρησιμοποιεί πολιτικές IAM για να επιτρέπει την πρόσβαση στο κλειδί KMS, εκτός από την πολιτική κλειδιού.
Χωρίς αυτή την άδεια, οι πολιτικές IAM που επιτρέπουν την πρόσβαση στο κλειδί είναι αναποτελεσματικές, αν και οι πολιτικές IAM που αρνούνται την πρόσβαση στο κλειδί παραμένουν αποτελεσματικές.
Μειώνει τον κίνδυνο το κλειδί να γίνει μη διαχειρίσιμο δίνοντας άδεια ελέγχου πρόσβασης στους διαχειριστές του λογαριασμού, συμπεριλαμβανομένου του χρήστη ρίζας του λογαριασμού, ο οποίος δεν μπορεί να διαγραφεί.
Παράδειγμα προεπιλεγμένης πολιτικής:
Εάν ο λογαριασμός επιτρέπεται ("arn:aws:iam::111122223333:root"
), ένας κύριος από τον λογαριασμό θα χρειαστεί IAM δικαιώματα για να χρησιμοποιήσει το KMS κλειδί. Ωστόσο, εάν το ARN ενός ρόλου για παράδειγμα είναι συγκεκριμένα επιτρεπτό στην Πολιτική Κλειδιού, αυτός ο ρόλος δεν χρειάζεται IAM δικαιώματα.
Διαχειριστής κλειδιών από προεπιλογή:
Έχει πρόσβαση στη διαχείριση του KMS αλλά όχι στην κρυπτογράφηση ή αποκρυπτογράφηση δεδομένων
Μόνο οι χρήστες και οι ρόλοι IAM μπορούν να προστεθούν στη λίστα Διαχειριστών Κλειδιών (όχι ομάδες)
Εάν χρησιμοποιείται εξωτερικό CMK, οι Διαχειριστές Κλειδιών έχουν την άδεια να εισάγουν υλικό κλειδιού
Όσο περισσότερο παραμένει το ίδιο κλειδί στη θέση του, τόσο περισσότερα δεδομένα κρυπτογραφούνται με αυτό το κλειδί, και εάν αυτό το κλειδί παραβιαστεί, τότε η περιοχή έκρηξης των δεδομένων είναι σε κίνδυνο. Επιπλέον, όσο περισσότερο είναι ενεργό το κλειδί, αυξάνεται η πιθανότητα να παραβιαστεί.
Το KMS περιστρέφει τα κλειδιά πελατών κάθε 365 ημέρες (ή μπορείτε να εκτελέσετε τη διαδικασία χειροκίνητα όποτε θέλετε) και τα κλειδιά που διαχειρίζεται η AWS κάθε 3 χρόνια και αυτή τη φορά δεν μπορεί να αλλάξει.
Τα παλαιότερα κλειδιά διατηρούνται για να αποκρυπτογραφούν δεδομένα που κρυπτογραφήθηκαν πριν από την περιστροφή
Σε περίπτωση παραβίασης, η περιστροφή του κλειδιού δεν θα αφαιρέσει την απειλή καθώς θα είναι δυνατή η αποκρυπτογράφηση όλων των δεδομένων που κρυπτογραφήθηκαν με το παραβιασμένο κλειδί. Ωστόσο, τα νέα δεδομένα θα κρυπτογραφηθούν με το νέο κλειδί.
Εάν το CMK είναι σε κατάσταση απενεργοποιημένο ή σε εκκρεμότητα διαγραφής, το KMS δεν θα εκτελέσει περιστροφή κλειδιού μέχρι να επανενεργοποιηθεί το CMK ή να ακυρωθεί η διαγραφή.
Ένα νέο CMK πρέπει να δημιουργηθεί, στη συνέχεια, δημιουργείται ένα νέο CMK-ID, οπότε θα χρειαστεί να ενημερώσετε οποιαδήποτε εφαρμογή για να αναφέρεται στο νέο CMK-ID.
Για να διευκολύνετε αυτή τη διαδικασία, μπορείτε να χρησιμοποιήσετε ψευδώνυμα για να αναφέρετε ένα key-id και στη συνέχεια απλώς να ενημερώσετε το κλειδί στο οποίο αναφέρεται το ψευδώνυμο.
Πρέπει να διατηρήσετε τα παλιά κλειδιά για να αποκρυπτογραφήσετε παλιά αρχεία που κρυπτογραφήθηκαν με αυτό.
Μπορείτε να εισάγετε κλειδιά από την υποδομή κλειδιών σας στις εγκαταστάσεις.
Το KMS χρεώνεται ανά αριθμό αιτημάτων κρυπτογράφησης/αποκρυπτογράφησης που λαμβάνονται από όλες τις υπηρεσίες ανά μήνα.
Το KMS έχει πλήρη έλεγχο και συμμόρφωση ενσωμάτωσης με το CloudTrail; εδώ μπορείτε να ελέγξετε όλες τις αλλαγές που πραγματοποιήθηκαν στο KMS.
Με την πολιτική KMS μπορείτε να κάνετε τα εξής:
Περιορίστε ποιος μπορεί να δημιουργήσει κλειδιά δεδομένων και ποιες υπηρεσίες έχουν πρόσβαση στη χρήση αυτών των κλειδιών
Περιορίστε την πρόσβαση των συστημάτων μόνο στην κρυπτογράφηση, μόνο στην αποκρυπτογράφηση ή και τα δύο
Ορίστε να επιτρέπεται στα συστήματα να έχουν πρόσβαση σε κλειδιά σε διάφορες περιοχές (αν και δεν συνιστάται καθώς μια αποτυχία στην περιοχή που φιλοξενεί το KMS θα επηρεάσει τη διαθεσιμότητα των συστημάτων σε άλλες περιοχές).
Δεν μπορείτε να συγχρονίσετε ή να μετακινήσετε/αντιγράψετε κλειδιά σε διάφορες περιοχές; μπορείτε μόνο να ορίσετε κανόνες για να επιτρέψετε την πρόσβαση σε διάφορες περιοχές.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)