Az - Βασικές Πληροφορίες

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Ιεραρχία Οργάνωσης

https://www.tunecom.be/stg_ba12f/wp-content/uploads/2020/01/VDC-Governance-ManagementGroups-1536x716.png

Ομάδες Διαχείρισης

  • Μπορεί να περιέχει άλλες ομάδες διαχείρισης ή συνδρομές.
  • Αυτό επιτρέπει την εφαρμογή ελέγχων διακυβέρνησης όπως RBAC και Azure Policy μία φορά σε επίπεδο ομάδας διαχείρισης και να κληρονομούνται από όλες τις συνδρομές στην ομάδα.
  • 10.000 ομάδες διαχείρισης μπορούν να υποστηριχθούν σε έναν μόνο κατάλογο.
  • Ένα δέντρο ομάδων διαχείρισης μπορεί να υποστηρίξει έως έξι επίπεδα βάθους. Αυτό το όριο δεν περιλαμβάνει το ριζικό επίπεδο ή το επίπεδο συνδρομής.
  • Κάθε ομάδα διαχείρισης και συνδρομή μπορεί να υποστηρίξει μόνο έναν γονέα.
  • Ακόμα και αν μπορούν να δημιουργηθούν πολλές ομάδες διαχείρισης, υπάρχει μόνο 1 ριζική ομάδα διαχείρισης.
  • Η ριζική ομάδα διαχείρισης περιέχει όλες τις άλλες ομάδες διαχείρισης και συνδρομές και δεν μπορεί να μετακινηθεί ή να διαγραφεί.
  • Όλες οι συνδρομές εντός μιας μόνο ομάδας διαχείρισης πρέπει να εμπιστεύονται τον ίδιο ενοικιαστή Entra ID.

https://td-mainsite-cdn.tutorialsdojo.com/wp-content/uploads/2023/02/managementgroups-768x474.png

Συνδρομές Azure

  • Είναι ένα άλλο λογικό δοχείο όπου μπορούν να εκτελούνται πόροι (VMs, DBs…) και θα χρεώνονται.
  • Ο γονέας του είναι πάντα μια ομάδα διαχείρισης (και μπορεί να είναι η ριζική ομάδα διαχείρισης) καθώς οι συνδρομές δεν μπορούν να περιέχουν άλλες συνδρομές.
  • Εμπιστεύεται μόνο έναν κατάλογο Entra ID
  • Οι άδειες που εφαρμόζονται σε επίπεδο συνδρομής (ή σε οποιοδήποτε από τους γονείς της) κληρονομούνται σε όλους τους πόρους μέσα στη συνδρομή.

Ομάδες Πόρων

Από τα έγγραφα: Μια ομάδα πόρων είναι ένα δοχείο που περιέχει σχετικούς πόρους για μια λύση Azure. Η ομάδα πόρων μπορεί να περιλαμβάνει όλους τους πόρους για τη λύση ή μόνο εκείνους τους πόρους που θέλετε να διαχειριστείτε ως ομάδα. Γενικά, προσθέστε πόρους που μοιράζονται τον ίδιο κύκλο ζωής στην ίδια ομάδα πόρων ώστε να μπορείτε να τους αναπτύσσετε, να τους ενημερώνετε και να τους διαγράφετε εύκολα ως ομάδα.

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

https://i0.wp.com/azuredays.com/wp-content/uploads/2020/05/org.png?resize=748%2C601&ssl=1

IDs Πόρων Azure

Κάθε πόρος στο Azure έχει ένα Azure Resource ID που τον προσδιορίζει.

Η μορφή ενός Azure Resource ID είναι η εξής:

  • /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

Για μια εικονική μηχανή ονόματι myVM σε μια ομάδα πόρων myResourceGroup κάτω από το ID συνδρομής 12345678-1234-1234-1234-123456789012, το Azure Resource ID φαίνεται έτσι:

  • /subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM

Azure vs Entra ID vs Υπηρεσίες Τομέα Azure AD

Azure

Το Azure είναι η ολοκληρωμένη πλατφόρμα υπολογιστικού νέφους της Microsoft, προσφέροντας μια ευρεία γκάμα υπηρεσιών, συμπεριλαμβανομένων εικονικών μηχανών, βάσεων δεδομένων, τεχνητής νοημοσύνης και αποθήκευσης. Λειτουργεί ως θεμέλιο για τη φιλοξενία και τη διαχείριση εφαρμογών, την κατασκευή κλιμακούμενων υποδομών και την εκτέλεση σύγχρονων φορτίων εργασίας στο νέφος. Το Azure παρέχει εργαλεία για προγραμματιστές και επαγγελματίες IT για να δημιουργούν, να αναπτύσσουν και να διαχειρίζονται εφαρμογές και υπηρεσίες χωρίς προβλήματα, καλύπτοντας μια ποικιλία αναγκών από νεοφυείς επιχειρήσεις έως μεγάλες επιχειρήσεις.

Entra ID (πρώην Azure Active Directory)

Το Entra ID είναι μια υπηρεσία διαχείρισης ταυτότητας και πρόσβασης που βασίζεται στο νέφος, σχεδιασμένη να χειρίζεται την αυθεντικοποίηση, την εξουσιοδότηση και τον έλεγχο πρόσβασης χρηστών. Εξασφαλίζει ασφαλή πρόσβαση σε υπηρεσίες της Microsoft όπως το Office 365, το Azure και πολλές τρίτες SaaS εφαρμογές. Με δυνατότητες όπως η ενιαία είσοδος (SSO), η πολυπαραγοντική αυθεντικοποίηση (MFA) και οι πολιτικές πρόσβασης υπό προϋποθέσεις μεταξύ άλλων.

Υπηρεσίες Τομέα Entra (πρώην Azure AD DS)

Οι Υπηρεσίες Τομέα Entra επεκτείνουν τις δυνατότητες του Entra ID προσφέροντας διαχειριζόμενες υπηρεσίες τομέα συμβατές με παραδοσιακά περιβάλλοντα Windows Active Directory. Υποστηρίζει παλαιές πρωτόκολλες όπως LDAP, Kerberos και NTLM, επιτρέποντας στις οργανώσεις να μεταναστεύσουν ή να εκτελούν παλαιότερες εφαρμογές στο νέφος χωρίς να αναπτύσσουν τοπικούς ελεγκτές τομέα. Αυτή η υπηρεσία υποστηρίζει επίσης την Πολιτική Ομάδας για κεντρική διαχείριση, καθιστώντας την κατάλληλη για σενάρια όπου τα φορτία εργασίας που βασίζονται σε AD ή κληρονομικά πρέπει να συνυπάρχουν με σύγχρονα περιβάλλοντα νέφους.

Principals Entra ID

Χρήστες

  • Νέοι χρήστες
  • Υποδείξτε το όνομα email και το τομέα από τον επιλεγμένο ενοικιαστή
  • Υποδείξτε το όνομα εμφάνισης
  • Υποδείξτε τον κωδικό πρόσβασης
  • Υποδείξτε τις ιδιότητες (όνομα, τίτλος εργασίας, πληροφορίες επαφής…)
  • Ο προεπιλεγμένος τύπος χρήστη είναι “μέλος
  • Εξωτερικοί χρήστες
  • Υποδείξτε το email για πρόσκληση και το όνομα εμφάνισης (μπορεί να είναι ένα μη Microsoft email)
  • Υποδείξτε τις ιδιότητες
  • Ο προεπιλεγμένος τύπος χρήστη είναι “Επισκέπτης

Προεπιλεγμένες Άδειες Μελών & Επισκεπτών

Μπορείτε να τις ελέγξετε στο https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions αλλά μεταξύ άλλων ενεργειών, ένα μέλος θα μπορεί να:

  • Διαβάσει όλους τους χρήστες, Ομάδες, Εφαρμογές, Συσκευές, Ρόλους, Συνδρομές και τις δημόσιες ιδιότητές τους
  • Προσκαλέσει Επισκέπτες (μπορεί να απενεργοποιηθεί)
  • Δημιουργήσει Ομάδες Ασφαλείας
  • Διαβάσει μη κρυφές συμμετοχές Ομάδας
  • Προσθέσει επισκέπτες σε Ιδιοκτησίες ομάδων
  • Δημιουργήσει νέα εφαρμογή (μπορεί να απενεργοποιηθεί)
  • Προσθέσει έως 50 συσκευές στο Azure (μπορεί να απενεργοποιηθεί)

Note

Θυμηθείτε ότι για να απαριθμήσετε τους πόρους Azure, ο χρήστης χρειάζεται ρητή χορήγηση της άδειας.

Προεπιλεγμένες Ρυθμίσεις Άδειας Χρηστών

  • Μέλη (έγγραφα)
  • Εγγραφή Εφαρμογών: Προεπιλογή Ναι
  • Περιορισμός μη διαχειριστικών χρηστών από τη δημιουργία ενοικιαστών: Προεπιλογή Όχι
  • Δημιουργία ομάδων ασφαλείας: Προεπιλογή Ναι
  • Περιορισμός πρόσβασης στην πύλη διαχείρισης Microsoft Entra: Προεπιλογή Όχι
  • Αυτό δεν περιορίζει την πρόσβαση API στην πύλη (μόνο στο web)
  • Επιτρέψτε στους χρήστες να συνδέουν τον λογαριασμό εργασίας ή σχολείου με το LinkedIn: Προεπιλογή Ναι
  • Εμφάνιση διατήρησης του χρήστη συνδεδεμένου: Προεπιλογή Ναι
  • Περιορισμός χρηστών από την ανάκτηση του κλειδιού BitLocker για τις ιδιοκτησίες τους: Προεπιλογή Όχι (ελέγξτε στις Ρυθμίσεις Συσκευής)
  • Διαβάστε άλλους χρήστες: Προεπιλογή Ναι (μέσω Microsoft Graph)
  • Επισκέπτες
  • Περιορισμοί πρόσβασης επισκεπτών επιλογές:
  • Οι επισκέπτες έχουν την ίδια πρόσβαση με τα μέλη.
  • Οι επισκέπτες έχουν περιορισμένη πρόσβαση σε ιδιότητες και συμμετοχές αντικειμένων καταλόγου (προεπιλογή). Αυτό περιορίζει την πρόσβαση των επισκεπτών μόνο στο δικό τους προφίλ χρήστη από προεπιλογή. Η πρόσβαση σε άλλους χρήστες και πληροφορίες ομάδας δεν επιτρέπεται πλέον.
  • Η πρόσβαση των επισκεπτών περιορίζεται σε ιδιότητες και συμμετοχές των δικών τους αντικειμένων καταλόγου είναι η πιο περιοριστική.
  • Επισκέπτες μπορούν να προσκαλέσουν επιλογές:
  • Οποιοσδήποτε στην οργάνωση μπορεί να προσκαλέσει επισκέπτες, συμπεριλαμβανομένων των επισκεπτών και μη διαχειριστών (η πιο περιεκτική) - Προεπιλογή
  • Χρήστες μέλη και χρήστες που έχουν ανατεθεί σε συγκεκριμένους ρόλους διαχειριστή μπορούν να προσκαλέσουν επισκέπτες, συμπεριλαμβανομένων των επισκεπτών με άδειες μέλους
  • Μόνο χρήστες που έχουν ανατεθεί σε συγκεκριμένους ρόλους διαχειριστή μπορούν να προσκαλέσουν επισκέπτες
  • Κανείς στην οργάνωση δεν μπορεί να προσκαλέσει επισκέπτες, συμπεριλαμβανομένων των διαχειριστών (η πιο περιοριστική)
  • Αποχώρηση εξωτερικού χρήστη: Προεπιλογή Αληθές
  • Επιτρέψτε στους εξωτερικούς χρήστες να αποχωρήσουν από την οργάνωση

Tip

Ακόμα και αν περιορίζονται από προεπιλογή, οι χρήστες (μέλη και επισκέπτες) με χορηγημένες άδειες θα μπορούσαν να εκτελέσουν τις προηγούμενες ενέργειες.

Ομάδες

Υπάρχουν 2 τύποι ομάδων:

  • Ασφαλείας: Αυτός ο τύπος ομάδας χρησιμοποιείται για να δώσει πρόσβαση στα μέλη σε εφαρμογές, πόρους και να αναθέσει άδειες. Χρήστες, συσκευές, υπηρεσίες και άλλες ομάδες μπορούν να είναι μέλη.
  • Microsoft 365: Αυτός ο τύπος ομάδας χρησιμοποιείται για συνεργασία, δίνοντας στα μέλη πρόσβαση σε κοινόχρηστο ταχυδρομείο, ημερολόγιο, αρχεία, SharePoint site, κ.λπ. Τα μέλη της ομάδας μπορούν να είναι μόνο χρήστες.
  • Αυτή θα έχει μια διεύθυνση email με το τομέα του ενοικιαστή EntraID.

Υπάρχουν 2 τύποι συμμετοχών:

  • Καθορισμένες: Επιτρέπουν την προσθήκη συγκεκριμένων μελών σε μια ομάδα χειροκίνητα.
  • Δυναμική συμμετοχή: Διαχειρίζεται αυτόματα τη συμμετοχή χρησιμοποιώντας κανόνες, ενημερώνοντας την ένταξη της ομάδας όταν αλλάζουν τα χαρακτηριστικά των μελών.

Υπηρεσίες Principals

Ένας Service Principal είναι μια ταυτότητα που δημιουργείται για χρήση με εφαρμογές, φιλοξενούμενες υπηρεσίες και αυτοματοποιημένα εργαλεία για πρόσβαση σε πόρους Azure. Αυτή η πρόσβαση είναι περιορισμένη από τους ρόλους που ανατίθενται στον service principal, δίνοντάς σας έλεγχο σχετικά με ποιοι πόροι μπορούν να προσπελαστούν και σε ποιο επίπεδο. Για λόγους ασφαλείας, συνιστάται πάντα να χρησιμοποιείτε service principals με αυτοματοποιημένα εργαλεία αντί να τους επιτρέπετε να συνδέονται με μια ταυτότητα χρήστη.

Είναι δυνατή η άμεση σύνδεση ως service principal δημιουργώντας του ένα μυστικό (κωδικό πρόσβασης), ένα πιστοποιητικό ή παρέχοντας ομοσπονδιακή πρόσβαση σε τρίτες πλατφόρμες (π.χ. Github Actions) μέσω αυτού.

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

Εγγραφές Εφαρμογών

Μια Εγγραφή Εφαρμογής είναι μια ρύθμιση που επιτρέπει σε μια εφαρμογή να ενσωματωθεί με το Entra ID και να εκτελεί ενέργειες.

Κύρια Στοιχεία:

  1. Application ID (Client ID): Ένας μοναδικός αναγνωριστικός αριθμός για την εφαρμογή σας στο Azure AD.
  2. Redirect URIs: URLs όπου το Azure AD στέλνει τις απαντήσεις αυθεντικοποίησης.
  3. Πιστοποιητικά, Μυστικά & Ομοσπονδιακές Πιστοληπτικές Δεσμεύσεις: Είναι δυνατή η δημιουργία ενός μυστικού ή ενός πιστοποιητικού για σύνδεση ως service principal της εφαρμογής ή για παροχή ομοσπονδιακής πρόσβασης σε αυτήν (π.χ. Github Actions).
  4. Εάν δημιουργηθεί ένα πιστοποιητικό ή μυστικό, είναι δυνατή η σύνδεση ως service principal με εργαλεία CLI γνωρίζοντας το application ID, το μυστικό ή το πιστοποιητικό και τον ενοικιαστή (τομέας ή ID).
  5. API Permissions: Προσδιορίζει ποιους πόρους ή APIs μπορεί να προσπελάσει η εφαρμογή.
  6. Ρυθμίσεις Αυθεντικοποίησης: Ορίζει τις υποστηριζόμενες ροές αυθεντικοποίησης της εφαρμογής (π.χ., OAuth2, OpenID Connect).
  7. Service Principal: Ένας service principal δημιουργείται όταν δημιουργείται μια εφαρμογή (εάν γίνει από την ιστοσελίδα) ή όταν εγκαθίσταται σε έναν νέο ενοικιαστή.
  8. Ο service principal θα αποκτήσει όλες τις ζητούμενες άδειες με τις οποίες έχει ρυθμιστεί.

Προεπιλεγμένες Άδειες Συγκατάθεσης

Συγκατάθεση χρηστών για εφαρμογές

  • Μην επιτρέπετε τη συγκατάθεση χρηστών
  • Ένας διαχειριστής θα απαιτείται για όλες τις εφαρμογές.
  • Επιτρέψτε τη συγκατάθεση χρηστών για εφαρμογές από επαληθευμένους εκδότες, εσωτερικές εφαρμογές και εφαρμογές που ζητούν μόνο επιλεγμένες άδειες (Συνιστάται)
  • Όλοι οι χρήστες μπορούν να δώσουν συγκατάθεση σε εφαρμογές που ζητούν μόνο άδειες που ταξινομούνται ως “χαμηλού αντίκτυπου”, εφαρμογές από επαληθευμένους εκδότες και εφαρμογές που είναι εγγεγραμμένες στον ενοικιαστή.
  • Προεπιλογή χαμηλού αντίκτυπου άδειες (αν και πρέπει να αποδεχθείτε να τις προσθέσετε ως χαμηλές):
  • User.Read - σύνδεση και ανάγνωση προφίλ χρήστη
  • offline_access - διατήρηση πρόσβασης σε δεδομένα που οι χρήστες έχουν δώσει πρόσβαση
  • openid - σύνδεση χρηστών
  • profile - προβολή βασικού προφίλ χρήστη
  • email - προβολή διεύθυνσης email χρήστη
  • Επιτρέψτε τη συγκατάθεση χρηστών για εφαρμογές (Προεπιλογή)
  • Όλοι οι χρήστες μπορούν να δώσουν συγκατάθεση για οποιαδήποτε εφαρμογή να έχει πρόσβαση στα δεδομένα της οργάνωσης.

Αιτήματα συγκατάθεσης διαχειριστή: Προεπιλογή Όχι

  • Οι χρήστες μπορούν να ζητήσουν συγκατάθεση διαχειριστή για εφαρμογές που δεν μπορούν να δώσουν συγκατάθεση
  • Εάν Ναι: Είναι δυνατή η ένδειξη Χρηστών, Ομάδων και Ρόλων που μπορούν να δώσουν συγκατάθεση
  • Ρυθμίστε επίσης αν οι χρήστες θα λαμβάνουν ειδοποιήσεις μέσω email και υπενθυμίσεις λήξης

Διαχειριζόμενη Ταυτότητα (Μεταδεδομένα)

Οι διαχειριζόμενες ταυτότητες στο Azure Active Directory προσφέρουν μια λύση για αυτόματη διαχείριση της ταυτότητας των εφαρμογών. Αυτές οι ταυτότητες χρησιμοποιούνται από τις εφαρμογές για τον σκοπό της σύνδεσης σε πόρους συμβατούς με την αυθεντικοποίηση Azure Active Directory (Azure AD). Αυτό επιτρέπει την αφαίρεση της ανάγκης σκληρής κωδικοποίησης διαπιστευτηρίων νέφους στον κώδικα καθώς η εφαρμογή θα μπορεί να επικοινωνεί με την υπηρεσία μεταδεδομένων για να αποκτήσει ένα έγκυρο διακριτικό για εκτέλεση ενεργειών ως η υποδεικνυόμενη διαχειριζόμενη ταυτότητα στο Azure.

Υπάρχουν δύο τύποι διαχειριζόμενων ταυτοτήτων:

  • Συστημικά ανατεθειμένες. Ορισμένες υπηρεσίες Azure σας επιτρέπουν να ενεργοποιήσετε μια διαχειριζόμενη ταυτότητα απευθείας σε μια υπηρεσία. Όταν ενεργοποιείτε μια συστημικά ανατεθειμένη διαχειριζόμενη ταυτότητα, δημιουργείται ένας service principal στον ενοικιαστή Entra ID που εμπιστεύεται τη συνδρομή όπου βρίσκεται ο πόρος. Όταν ο πόρος διαγραφεί, το Azure αυτόματα διαγράφει την ταυτότητα για εσάς.
  • Χρήστη-ανατεθειμένες. Είναι επίσης δυνατή η δημιουργία διαχειριζόμενων ταυτοτήτων από τους χρήστες. Αυτές δημιουργούνται μέσα σε μια ομάδα πόρων σε μια συνδρομή και θα δημιουργηθεί ένας service principal στον EntraID που εμπιστεύεται τη συνδρομή. Στη συνέχεια, μπορείτε να αναθέσετε τη διαχειριζόμενη ταυτότητα σε μία ή περισσότερες περιπτώσεις μιας υπηρεσίας Azure (πολλοί πόροι). Για τις διαχειριζόμενες ταυτότητες που ανατίθενται από χρήστες, η ταυτότητα διαχειρίζεται ξεχωριστά από τους πόρους που τη χρησιμοποιούν.

Οι Διαχειριζόμενες Ταυτότητες δεν δημιουργούν αιώνια διαπιστευτήρια (όπως κωδικούς πρόσβασης ή πιστοποιητικά) για πρόσβαση ως ο service principal που συνδέεται με αυτήν.

Επιχειρησιακές Εφαρμογές

Είναι απλώς ένας πίνακας στο Azure για φιλτράρισμα service principals και έλεγχο των εφαρμογών που έχουν ανατεθεί.

Δεν είναι άλλος τύπος “εφαρμογής”, δεν υπάρχει κανένα αντικείμενο στο Azure που να είναι “Επιχειρησιακή Εφαρμογή”, είναι απλώς μια αφαίρεση για έλεγχο των Service principals, Εγγραφών εφαρμογών και διαχειριζόμενων ταυτοτήτων.

Διοικητικές Μονάδες

Οι διοικητικές μονάδες επιτρέπουν να δώσουν άδειες από έναν ρόλο σε μια συγκεκριμένη περιοχή μιας οργάνωσης.

Παράδειγμα:

  • Σενάριο: Μια εταιρεία θέλει οι περιφερειακοί διαχειριστές IT να διαχειρίζονται μόνο τους χρήστες στην περιοχή τους.
  • Υλοποίηση:
  • Δημιουργήστε Διοικητικές Μονάδες για κάθε περιοχή (π.χ., “Βόρεια Αμερική AU”, “Ευρώπη AU”).
  • Συμπληρώστε τις Διοικητικές Μονάδες με χρήστες από τις αντίστοιχες περιοχές τους.
  • Οι Διοικητικές Μονάδες μπορούν να περιέχουν χρήστες, ομάδες ή συσκευές
  • Υποστηρίζουν δυναμικές συμμετοχές
  • Οι Διοικητικές Μονάδες δεν μπορούν να περιέχουν Διοικητικές Μονάδες
  • Αναθέστε Ρόλους Διαχειριστή:
  • Δώστε τον ρόλο “Διαχειριστής Χρηστών” στο περιφερειακό προσωπικό IT, περιορισμένο στην AU της περιοχής τους.
  • Αποτέλεσμα: Οι περιφερειακοί διαχειριστές IT μπορούν να διαχειρίζονται λογαριασμούς χρηστών εντός της περιοχής τους χωρίς να επηρεάζουν άλλες περιοχές.

Ρόλοι & Άδειες Entra ID

  • Για να διαχειριστείτε το Entra ID υπάρχουν ορισμένοι ενσωματωμένοι ρόλοι που μπορούν να ανατεθούν σε principals Entra ID για να διαχειριστούν το Entra ID
  • Ελέγξτε τους ρόλους στο https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference
  • Οι ρόλοι που σημειώνονται ως PRIVILEGED από το EntraID θα πρέπει να ανατίθενται με προσοχή, διότι όπως εξηγεί η Microsoft στα έγγραφα: Οι αναθέσεις προνομιακών ρόλων μπορεί να οδηγήσουν σε αύξηση προνομίων αν δεν χρησιμοποιηθούν με ασφαλή και προορισμένο τρόπο.
  • Ο πιο προνομιακός ρόλος είναι ο Παγκόσμιος Διαχειριστής
  • Οι ρόλοι ομαδοποιούν λεπτομερείς άδειες και μπορούν να βρεθούν στις περιγραφές τους.
  • Είναι δυνατή η δημιουργία προσαρμοσμένων ρόλων με τις επιθυμητές άδειες. Αν και για κάποιο λόγο δεν είναι διαθέσιμες όλες οι λεπτομερείς άδειες για τους διαχειριστές για τη δημιουργία προσαρμοσμένων ρόλων.
  • Οι ρόλοι στο Entra ID είναι εντελώς ανεξάρτητοι από τους ρόλους στο Azure. Η μόνη σχέση είναι ότι οι principals με τον ρόλο Παγκόσμιος Διαχειριστής στο Entra ID μπορούν να αναβαθμιστούν στον ρόλο Διαχειριστής Πρόσβασης Χρηστών στο Azure.
  • Είναι αδύνατο να χρησιμοποιηθούν χαρακτήρες μπαλαντέρ στους ρόλους Entra ID.

Ρόλοι & Άδειες Azure

  • Ρόλοι ανατίθενται σε principals σε ένα πεδίο: principal -[HAS ROLE]->(scope)
  • Ρόλοι που ανατίθενται σε ομάδες κληρονομούνται από όλα τα μέλη της ομάδας.
  • Ανάλογα με το πεδίο στο οποίο ανατέθηκε ο ρόλος, ο ρόλος μπορεί να κληρονομηθεί σε άλλους πόρους μέσα στο δοχείο πεδίου. Για παράδειγμα, αν ο χρήστης A έχει έναν ρόλο στη συνδρομή, θα έχει αυτόν τον ρόλο σε όλες τις ομάδες πόρων μέσα στη συνδρομή και σε όλους τους πόρους μέσα στην ομάδα πόρων.

Ενσωματωμένοι ρόλοι

Από τα έγγραφα: Ο έλεγχος πρόσβασης βάσει ρόλων Azure (Azure RBAC) έχει αρκετούς ενσωματωμένους ρόλους Azure που μπορείτε να αναθέσετε σε χρήστες, ομάδες, service principals και διαχειριζόμενες ταυτότητες. Οι αναθέσεις ρόλων είναι ο τρόπος που ελέγχετε την πρόσβαση στους πόρους Azure. Εάν οι ενσωματωμένοι ρόλοι δεν καλύπτουν τις συγκεκριμένες ανάγκες της οργάνωσής σας, μπορείτε να δημιουργήσετε τους δικούς σας προσαρμοσμένους ρόλους Azure.

Ενσωματωμένοι ρόλοι ισχύουν μόνο για τους πόρους για τους οποίους είναι προορισμένοι, για παράδειγμα ελέγξτε αυτά τα 2 παραδείγματα Ενσωματωμένων ρόλων πάνω σε Πόρους Υπολογισμού:

Disk Backup ReaderΠαρέχει άδεια στο vault backup για να εκτελεί αντίγραφα δίσκων.3e5e47e6-65f7-47ef-90b5-e5dd4d455f24
Virtual Machine User LoginΠροβολή Εικονικών Μηχανών στην πύλη και σύνδεση ως κανονικός χρήστης.fb879df8-f326-4884-b1cf-06f3ad86be52

Αυτοί οι ρόλοι μπορούν επίσης να ανατεθούν πάνω σε λογικά δοχεία (όπως ομάδες διαχείρισης, συνδρομές και ομάδες πόρων) και οι principals που επηρεάζονται θα τους έχουν πάνω στους πόρους μέσα σε αυτά τα δοχεία.

Προσαρμοσμένοι Ρόλοι

  • Είναι επίσης δυνατή η δημιουργία προσαρμοσμένων ρόλων
  • Δημιουργούνται μέσα σε ένα πεδίο, αν και ένας ρόλος μπορεί να είναι σε αρκετά πεδία (ομάδες διαχείρισης, συνδρομή και ομάδες πόρων)
  • Είναι δυνατή η ρύθμιση όλων των λεπτομερών αδειών που θα έχει ο προσαρμοσμένος ρόλος
  • Είναι δυνατή η εξαίρεση αδειών
  • Ένας principal με μια εξαιρεθείσα άδεια δεν θα μπορεί να τη χρησιμοποιήσει ακόμα και αν η άδεια χορηγείται αλλού
  • Είναι δυνατή η χρήση χαρακτήρων μπαλαντέρ
  • Η χρησιμοποιούμενη μορφή είναι JSON
  • actions αναφέρονται σε άδειες για διαχειριστικές ενέργειες στους πόρους, όπως η δημιουργία, η ενημέρωση ή η διαγραφή ορισμών και ρυθμίσεων πόρων.
  • dataActions είναι άδειες για ενέργειες δεδομένων εντός του πόρου, επιτρέποντάς σας να διαβάσετε, να γράψετε ή να διαγράψετε τα πραγματικά δεδομένα που περιέχονται στον πόρο.
  • notActions και notDataActions χρησιμοποιούνται για να εξαιρέσουν συγκεκριμένες άδειες από τον ρόλο. Ωστόσο, δεν τις αρνούνται, αν ένας διαφορετικός ρόλος τις χορηγεί, ο principal θα τις έχει.
  • assignableScopes είναι ένας πίνακας πεδίων όπου μπορεί να ανατεθεί ο ρόλος (όπως ομάδες διαχείρισης, συνδρομές ή ομάδες πόρων).

Παράδειγμα αδειών JSON για έναν προσαρμοσμένο ρόλο:

{
"properties": {
"roleName": "",
"description": "",
"assignableScopes": ["/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f"],
"permissions": [
{
"actions": [
"Microsoft.DigitalTwins/register/action",
"Microsoft.DigitalTwins/unregister/action",
"Microsoft.DigitalTwins/operations/read",
"Microsoft.DigitalTwins/digitalTwinsInstances/read",
"Microsoft.DigitalTwins/digitalTwinsInstances/write",
"Microsoft.CostManagement/exports/*"
],
"notActions": [
"Astronomer.Astro/register/action",
"Astronomer.Astro/unregister/action",
"Astronomer.Astro/operations/read",
"Astronomer.Astro/organizations/read"
],
"dataActions": [],
"notDataActions": []
}
]
}
}

Permissions order

  • Για να έχει ένα principal πρόσβαση σε έναν πόρο, χρειάζεται να του παραχωρηθεί ρητά ένας ρόλος (με οποιονδήποτε τρόπο) που του δίνει αυτή την άδεια.
  • Μια ρητή ανάθεση άρνησης έχει προτεραιότητα σε σχέση με τον ρόλο που παραχωρεί την άδεια.

https://link.springer.com/chapter/10.1007/978-1-4842-7325-8_10

Global Administrator

Ο Global Administrator είναι ένας ρόλος από το Entra ID που παραχωρεί πλήρη έλεγχο πάνω στον ενοικιαστή Entra ID. Ωστόσο, δεν παραχωρεί καμία άδεια σε πόρους Azure από προεπιλογή.

Οι χρήστες με τον ρόλο του Global Administrator έχουν τη δυνατότητα να ‘ανεβάσουν’ σε ρόλο User Access Administrator Azure στην Κεντρική Διαχείριση. Έτσι, οι Global Administrators μπορούν να διαχειρίζονται την πρόσβαση σε όλες τις συνδρομές Azure και τις ομάδες διαχείρισης.
Αυτή η αναβάθμιση μπορεί να γίνει στο τέλος της σελίδας: https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties

Assignments Conditions & MFA

Σύμφωνα με the docs: Αυτή τη στιγμή, οι συνθήκες μπορούν να προστεθούν σε ενσωματωμένες ή προσαρμοσμένες αναθέσεις ρόλων που έχουν δράσεις δεδομένων blob storage ή δράσεις δεδομένων queue storage.

Deny Assignments

Ακριβώς όπως οι αναθέσεις ρόλων, οι αναθέσεις άρνησης χρησιμοποιούνται για έλεγχο πρόσβασης σε πόρους Azure. Ωστόσο, οι αναθέσεις άρνησης χρησιμοποιούνται για ρητή άρνηση πρόσβασης σε έναν πόρο, ακόμη και αν έχει παραχωρηθεί πρόσβαση σε έναν χρήστη μέσω μιας ανάθεσης ρόλου. Οι αναθέσεις άρνησης έχουν προτεραιότητα σε σχέση με τις αναθέσεις ρόλων, πράγμα που σημαίνει ότι αν σε έναν χρήστη παραχωρηθεί πρόσβαση μέσω μιας ανάθεσης ρόλου αλλά του αρνηθεί ρητά η πρόσβαση μέσω μιας ανάθεσης άρνησης, η ανάθεση άρνησης θα έχει προτεραιότητα.

Ακριβώς όπως οι αναθέσεις ρόλων, οι αναθέσεις άρνησης εφαρμόζονται σε κάποιο πεδίο που υποδεικνύει τους επηρεαζόμενους principals και τις άδειες που αρνούνται. Επιπλέον, στην περίπτωση των αναθέσεων άρνησης, είναι δυνατό να αποτραπεί η κληρονομία της άρνησης από τους πόρους παιδιών.

Azure Policies

Οι Azure Policies είναι κανόνες που βοηθούν τις οργανώσεις να διασφαλίσουν ότι οι πόροι τους πληρούν συγκεκριμένα πρότυπα και απαιτήσεις συμμόρφωσης. Επιτρέπουν την επιβολή ή τον έλεγχο ρυθμίσεων σε πόρους στο Azure. Για παράδειγμα, μπορείτε να αποτρέψετε τη δημιουργία εικονικών μηχανών σε μη εξουσιοδοτημένη περιοχή ή να διασφαλίσετε ότι όλοι οι πόροι έχουν συγκεκριμένες ετικέτες για παρακολούθηση.

Οι Azure Policies είναι προληπτικές: μπορούν να σταματήσουν τη δημιουργία ή την αλλαγή μη συμμορφούμενων πόρων. Είναι επίσης αντιδραστικές, επιτρέποντάς σας να βρείτε και να διορθώσετε υπάρχοντες μη συμμορφούμενους πόρους.

Key Concepts

  1. Policy Definition: Ένας κανόνας, γραμμένος σε JSON, που καθορίζει τι επιτρέπεται ή απαιτείται.
  2. Policy Assignment: Η εφαρμογή μιας πολιτικής σε ένα συγκεκριμένο πεδίο (π.χ. συνδρομή, ομάδα πόρων).
  3. Initiatives: Μια συλλογή πολιτικών που ομαδοποιούνται για ευρύτερη επιβολή.
  4. Effect: Καθορίζει τι συμβαίνει όταν ενεργοποιείται η πολιτική (π.χ. “Deny,” “Audit,” ή “Append”).

Ορισμένα παραδείγματα:

  1. Διασφάλιση Συμμόρφωσης με Συγκεκριμένες Περιοχές Azure: Αυτή η πολιτική διασφαλίζει ότι όλοι οι πόροι αναπτύσσονται σε συγκεκριμένες περιοχές Azure. Για παράδειγμα, μια εταιρεία μπορεί να θέλει να διασφαλίσει ότι όλα τα δεδομένα της αποθηκεύονται στην Ευρώπη για συμμόρφωση με τον GDPR.
  2. Επιβολή Προτύπων Ονοματοδοσίας: Οι πολιτικές μπορούν να επιβάλλουν συμβάσεις ονοματοδοσίας για τους πόρους Azure. Αυτό βοηθά στην οργάνωση και την εύκολη αναγνώριση των πόρων με βάση τα ονόματά τους, κάτι που είναι χρήσιμο σε μεγάλες περιβάλλοντα.
  3. Περιορισμός Ορισμένων Τύπων Πόρων: Αυτή η πολιτική μπορεί να περιορίσει τη δημιουργία ορισμένων τύπων πόρων. Για παράδειγμα, μια πολιτική θα μπορούσε να ρυθμιστεί ώστε να αποτρέπει τη δημιουργία ακριβών τύπων πόρων, όπως ορισμένα μεγέθη VM, για τον έλεγχο του κόστους.
  4. Επιβολή Πολιτικών Ετικετών: Οι ετικέτες είναι ζεύγη κλειδιού-τιμής που σχετίζονται με τους πόρους Azure και χρησιμοποιούνται για τη διαχείριση πόρων. Οι πολιτικές μπορούν να επιβάλλουν ότι ορισμένες ετικέτες πρέπει να είναι παρούσες ή να έχουν συγκεκριμένες τιμές για όλους τους πόρους. Αυτό είναι χρήσιμο για την παρακολούθηση κόστους, την ιδιοκτησία ή την κατηγοριοποίηση πόρων.
  5. Περιορισμός Δημόσιας Πρόσβασης σε Πόρους: Οι πολιτικές μπορούν να επιβάλλουν ότι ορισμένοι πόροι, όπως οι λογαριασμοί αποθήκευσης ή οι βάσεις δεδομένων, δεν έχουν δημόσιες τελικές σημεία, διασφαλίζοντας ότι είναι προσβάσιμοι μόνο εντός του δικτύου της οργάνωσης.
  6. Αυτόματη Εφαρμογή Ρυθμίσεων Ασφαλείας: Οι πολιτικές μπορούν να χρησιμοποιηθούν για την αυτόματη εφαρμογή ρυθμίσεων ασφαλείας σε πόρους, όπως η εφαρμογή μιας συγκεκριμένης ομάδας ασφαλείας δικτύου σε όλες τις VM ή η διασφάλιση ότι όλοι οι λογαριασμοί αποθήκευσης χρησιμοποιούν κρυπτογράφηση.

Σημειώστε ότι οι Azure Policies μπορούν να προσαρτηθούν σε οποιοδήποτε επίπεδο της ιεραρχίας Azure, αλλά χρησιμοποιούνται συνήθως στην κεντρική ομάδα διαχείρισης ή σε άλλες ομάδες διαχείρισης.

Azure policy json example:

{
"policyRule": {
"if": {
"field": "location",
"notIn": ["eastus", "westus"]
},
"then": {
"effect": "Deny"
}
},
"parameters": {},
"displayName": "Allow resources only in East US and West US",
"description": "This policy ensures that resources can only be created in East US or West US.",
"mode": "All"
}

Κληρονομικότητα Δικαιωμάτων

Στο Azure τα δικαιώματα μπορούν να ανατεθούν σε οποιοδήποτε μέρος της ιεραρχίας. Αυτό περιλαμβάνει ομάδες διαχείρισης, συνδρομές, ομάδες πόρων και μεμονωμένους πόρους. Τα δικαιώματα κληρονομούνται από τους περιεχόμενους πόρους της οντότητας όπου ανατέθηκαν.

Αυτή η ιεραρχική δομή επιτρέπει την αποδοτική και κλιμακούμενη διαχείριση των δικαιωμάτων πρόσβασης.

Azure RBAC vs ABAC

RBAC (έλεγχος πρόσβασης βάσει ρόλου) είναι αυτό που έχουμε δει ήδη στις προηγούμενες ενότητες: Ανάθεση ενός ρόλου σε έναν κύριο για να του παραχωρηθεί πρόσβαση σε έναν πόρο.
Ωστόσο, σε ορισμένες περιπτώσεις μπορεί να θέλετε να παρέχετε πιο λεπτομερή διαχείριση πρόσβασης ή να απλοποιήσετε τη διαχείριση εκατοντάδων αναθέσεων ρόλων.

Το Azure ABAC (έλεγχος πρόσβασης βάσει χαρακτηριστικών) βασίζεται στο Azure RBAC προσθέτοντας συνθήκες ανάθεσης ρόλου με βάση χαρακτηριστικά στο πλαίσιο συγκεκριμένων ενεργειών. Μια συνθήκη ανάθεσης ρόλου είναι ένας επιπλέον έλεγχος που μπορείτε προαιρετικά να προσθέσετε στην ανάθεση ρόλου σας για να παρέχετε πιο λεπτομερή έλεγχο πρόσβασης. Μια συνθήκη φιλτράρει τα δικαιώματα που παραχωρούνται ως μέρος του ορισμού ρόλου και της ανάθεσης ρόλου. Για παράδειγμα, μπορείτε να προσθέσετε μια συνθήκη που απαιτεί ένα αντικείμενο να έχει μια συγκεκριμένη ετικέτα για να διαβάσετε το αντικείμενο.
Δεν μπορείτε να αρνηθείτε ρητά την πρόσβαση σε συγκεκριμένους πόρους χρησιμοποιώντας συνθήκες.

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks