AWS - KMS Enum

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

KMS - Υπηρεσία Διαχείρισης Κλειδιών

Η Υπηρεσία Διαχείρισης Κλειδιών του 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 χρόνια και δεν είναι δυνατή η αλλαγή του.

  • Διαχειριστής CMK πελάτη: Ευελιξία, περιστροφή, προσαρμόσιμη πρόσβαση και πολιτική κλειδιού. Ενεργοποίηση και απενεργοποίηση κλειδ

{
"Sid": "Enable IAM policies",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:*",
"Resource": "*"
}

Εάν ο λογαριασμός επιτρέπεται ("arn:aws:iam::111122223333:root"), ένας αρχέτυπος από τον λογαριασμό θα χρειαστεί εξουσιοδότηση IAM για να χρησιμοποιήσει το KMS κλειδί. Ωστόσο, εάν το ARN ενός ρόλου για παράδειγμα επιτρέπεται ειδικά στην Πολιτική Κλειδιού, αυτός ο ρόλος δεν χρειάζεται εξουσιοδότηση IAM.

Λεπτομέρειες Πολιτικής

Ιδιότητες μιας πολιτικής:

  • Έγγραφο βασισμένο σε JSON

  • Πόρος --> Επηρεαζόμενοι πόροι (μπορεί να είναι "*")

  • Δράση --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (δικαιώματα)

  • Επίδραση --> Επιτρέπεται/Απαγορεύεται

  • Αρχέτυπο --> arn επηρεαζόμενο

  • Συνθήκες (προαιρετικό) --> Συνθήκη για την παροχή των δικαιωμάτων

Παραχωρήσεις:

  • Επιτρέπουν την αναθέτηση των δικαιωμάτων σας σε άλλον αρχέτυπο AWS εντός του λογαριασμού AWS σας. Πρέπει να τις δημιουργήσετε χρησιμοποιώντας τις διεπαφές προγραμματισμού εφαρμογών του AWS KMS. Μπορεί να υποδειχθεί ο αναγνωριστής CMK, ο αρχέτυπος παραχώρησης και το απαιτούμενο επίπεδο λειτουργίας (Decrypt, Encrypt, GenerateDataKey...)

  • Αφού δημιουργηθεί η παραχώρηση, εκδίδονται ένα GrantToken και ένα GratID

Πρόσβαση:

  • Μέσω πολιτικής κλειδιού -- Εάν αυτή υπάρχει, αυτή έχει προτεραιότητα έναντι της πολιτικής IAM

  • Μέσω πολιτικής IAM

  • Μέσω παραχωρήσεων

Διαχειριστές Κλειδιού

Ο προεπιλεγμένος διαχειριστής κλειδιού:

  • Έχει πρόσβαση για να διαχειριστεί το KMS αλλά όχι για να κρυπτογραφήσει ή να αποκρυπτογραφήσει δεδομένα

  • Μόνο οι χρήστες και οι ρόλοι IAM μπορούν να προστεθούν στη λίστα των Διαχειριστών Κλειδιού (όχι ομάδες)

  • Εάν χρησιμοποιείται εξωτερικό CMK, οι Διαχειριστές Κλειδιού έχουν την άδεια να εισαγάγουν υλικό κλειδιού

Περιστροφή των CMKs

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

  • Το KMS περιστρέφει τα κλειδιά πελατών κάθε 365 ημέρες (ή μπορείτε να εκτελέσετε τη διαδικασία χειροκίνητα όποτε θέλετε) και τα κλειδιά που διαχειρίζονται από το AWS κάθε 3 χρόνια και αυτός ο χρόνος δεν μπορεί να αλλάξει.

  • Διατηρούνται τα παλαιότερα κλειδιά για να αποκρυπτογραφήσουν δεδομένα που κρυπτογραφήθηκαν πριν από την περιστροφή

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

  • Εάν το CMK βρίσκεται σε κατάσταση απενεργοποίησης ή εκκρεμείς διαγραφής, το KMS δεν θα πραγματοποιήσει περιστροφή κλειδιού μέχρι να επανενεργοποιηθεί το CMK ή να ακυρωθεί η διαγραφή.

Χειροκίνητη περιστροφή

  • Πρέπει να δημιουργηθεί ένα νέο CMK, στη συνέχεια, δημιουργείται ένα νέο CMK-ID, οπότε θα χρειαστεί να ενημερώσετε οποιαδήποτε εφαρμογή για να αναφέρετε το νέο CMK-ID.

  • Για να διευκολύνετε αυτήν τη διαδικασία, μπορείτε να χρησιμοποιήσετε ψευδώνυμα για να αναφέρετε ένα αναγνωριστικό κλειδιού και στη συνέχεια απλά να ενημερώσετε το κλειδί στο οποίο αναφέρεται το ψευδώνυμο.

  • Πρέπει να διατηρήσετε τα παλιά κλειδιά για να αποκρυπτογραφήσετε παλιά αρχεία που έχουν κρυπτογραφηθεί με αυτά.

Μπορείτε να εισαγάγετε κλειδιά από την υποδομή κλειδιών στον τόπο εργασίας σας.

Άλλες σχετικές πληροφορίες για το KMS

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

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

Με την πο

aws kms list-keys
aws kms list-key-policies --key-id <id>
aws kms list-grants --key-id <id>
aws kms describe-key --key-id <id>
aws kms get-key-policy --key-id <id> --policy-name <name> # Default policy name is "default"
aws kms describe-custom-key-stores

Ανέλεγκτη Προνομιοποίηση

pageAWS - KMS Privesc

Μετά την Εκμετάλλευση

pageAWS - KMS Post Exploitation

Διατήρηση

pageAWS - KMS Persistence

Αναφορές

Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated