Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.
Η Υπηρεσία Διαχείρισης Κλειδιών του 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": "*"
}
{% hint style="warning" %}
Εάν ο λογαριασμός επιτρέπεται ("arn:aws:iam::111122223333:root"
), ένας αρχέτυπος από τον λογαριασμό θα χρειαστεί εξουσιοδότηση IAM για να χρησιμοποιήσει το KMS κλειδί. Ωστόσο, εάν το ARN ενός ρόλου για παράδειγμα επιτρέπεται ειδικά στην Πολιτική Κλειδιού, αυτός ο ρόλος δεν χρειάζεται εξουσιοδότηση IAM.
{% endhint %}
Λεπτομέρειες Πολιτικής
Ιδιότητες μιας πολιτικής:
- Έγγραφο βασισμένο σε JSON
- Πόρος --> Επηρεαζόμενοι πόροι (μπορεί να είναι "*")
- Δράση --> kms:Encrypt, kms:Decrypt, kms:CreateGrant ... (δικαιώματα)
- Επίδραση --> Επιτρέπεται/Απαγορεύεται
- Αρχέτυπο --> arn επηρεαζόμενο
- Συνθήκες (προαιρετικό) --> Συνθήκη για την παροχή των δικαιωμάτων
Παραχωρήσεις:
- Επιτρέπουν την αναθέτηση των δικαιωμάτων σας σε άλλον αρχέτυπο AWS εντός του λογαριασμού AWS σας. Πρέπει να τις δημιουργήσετε χρησιμοποιώντας τις διεπαφές προγραμματισμού εφαρμογών του AWS KMS. Μπορεί να υποδειχθεί ο αναγνωριστής CMK, ο αρχέτυπος παραχώρησης και το απαιτούμενο επίπεδο λειτουργίας (Decrypt, Encrypt, GenerateDataKey...)
- Αφού δημιουργηθεί η παραχώρηση, εκδίδονται ένα GrantToken και ένα GratID
Πρόσβαση:
- Μέσω πολιτικής κλειδιού -- Εάν αυτή υπάρχει, αυτή έχει προτεραιότητα έναντι της πολιτικής IAM
- Μέσω πολιτικής IAM
- Μέσω παραχωρήσεων
Ο προεπιλεγμένος διαχειριστής κλειδιού:
- Έχει πρόσβαση για να διαχειριστεί το KMS αλλά όχι για να κρυπτογραφήσει ή να αποκρυπτογραφήσει δεδομένα
- Μόνο οι χρήστες και οι ρόλοι IAM μπορούν να προστεθούν στη λίστα των Διαχειριστών Κλειδιού (όχι ομάδες)
- Εάν χρησιμοποιείται εξωτερικό CMK, οι Διαχειριστές Κλειδιού έχουν την άδεια να εισαγάγουν υλικό κλειδιού
- Όσο περισσότερο κρατιέται το ίδιο κλειδί στη θέση του, τόσα περισσότερα δεδομένα κρυπτογραφούνται με αυτό το κλειδί και εάν αυτό το κλειδί παραβιαστεί, τότε το ευρύτερο πεδίο επιρροής των δεδομένων βρίσκεται σε κίνδυνο. Επιπλέον, όσο περισσότερο είναι ενεργό το κλειδί, αυξάνεται η πιθανότητα να παραβιαστεί.
- Το KMS περιστρέφει τα κλειδιά πελατών κάθε 365 ημέρες (ή μπορείτε να εκτελέσετε τη διαδικασία χειροκίνητα όποτε θέλετε) και τα κλειδιά που διαχειρίζονται από το AWS κάθε 3 χρόνια και αυτός ο χρόνος δεν μπορεί να αλλάξει.
- Διατηρούνται τα παλαιότερα κλειδιά για να αποκρυπτογραφήσουν δεδομένα που κρυπτογραφήθηκαν πριν από την περιστροφή
- Σε μια παραβίαση, η περιστροφή του κλειδιού δεν θα αφαιρέσει τον κίνδυνο καθώς θα είναι δυνατή η αποκρυπτογράφηση όλων των δεδομένων που κρυπτογραφήθηκαν με τον παραβιασμένο κλειδί. Ωστόσο, τα νέα δεδομένα θα κρυπτογραφούνται με το νέο κλειδί.
- Εάν το CMK βρίσκεται σε κατάσταση απενεργοποίησης ή εκκρεμείς διαγραφής, το KMS δεν θα πραγματοποιήσει περιστροφή κλειδιού μέχρι να επανενεργοποιηθεί το CMK ή να ακυρωθεί η διαγραφή.
- Πρέπει να δημιουργηθεί ένα νέο CMK, στη συνέχεια, δημιουργείται ένα νέο CMK-ID, οπότε θα χρειαστεί να ενημερώσετε οποιαδήποτε εφαρμογή για να αναφέρετε το νέο CMK-ID.
- Για να διευκολύνετε αυτήν τη διαδικασία, μπορείτε να χρησιμοποιήσετε ψευδώνυμα για να αναφέρετε ένα αναγνωριστικό κλειδιού και στη συνέχεια απλά να ενημερώσετε το κλειδί στο οποίο αναφέρεται το ψευδώνυμο.
- Πρέπει να διατηρήσετε τα παλιά κλειδιά για να αποκρυπτογραφήσετε παλιά αρχεία που έχουν κρυπτογραφηθεί με αυτά.
Μπορείτε να εισαγάγετε κλειδιά από την υποδομή κλειδιών στον τόπο εργασίας σας.
Το 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
{% content-ref url="../aws-privilege-escalation/aws-kms-privesc.md" %} aws-kms-privesc.md {% endcontent-ref %}
{% content-ref url="../aws-post-exploitation/aws-kms-post-exploitation.md" %} aws-kms-post-exploitation.md {% endcontent-ref %}
{% content-ref url="../aws-persistence/aws-kms-persistence.md" %} aws-kms-persistence.md {% endcontent-ref %}
Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!
Άλλοι τρόποι για να υποστηρίξετε το HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε The PEASS Family, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια του github.