Az - Informations de base

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Hiérarchie Organisationnelle

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

Groupes de Gestion

  • Il peut contenir d’autres groupes de gestion ou abonnements.
  • Cela permet d’appliquer des contrĂŽles de gouvernance tels que RBAC et Azure Policy une fois au niveau du groupe de gestion et de les hĂ©riter par tous les abonnements dans le groupe.
  • 10 000 groupes de gestion peuvent ĂȘtre pris en charge dans un seul annuaire.
  • Un arbre de groupes de gestion peut supporter jusqu’à six niveaux de profondeur. Cette limite n’inclut pas le niveau racine ou le niveau d’abonnement.
  • Chaque groupe de gestion et abonnement peut supporter uniquement un parent.
  • MĂȘme si plusieurs groupes de gestion peuvent ĂȘtre créés, il n’y a qu’un seul groupe de gestion racine.
  • Le groupe de gestion racine contient tous les autres groupes de gestion et abonnements et ne peut pas ĂȘtre dĂ©placĂ© ou supprimĂ©.
  • Tous les abonnements au sein d’un seul groupe de gestion doivent faire confiance au mĂȘme locataire Entra ID.

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

Abonnements Azure

  • C’est un autre conteneur logique oĂč les ressources (VMs, DBs
) peuvent ĂȘtre exĂ©cutĂ©es et seront facturĂ©es.
  • Son parent est toujours un groupe de gestion (et cela peut ĂȘtre le groupe de gestion racine) car les abonnements ne peuvent pas contenir d’autres abonnements.
  • Il fait confiance Ă  un seul annuaire Entra ID
  • Les permissions appliquĂ©es au niveau de l’abonnement (ou Ă  l’un de ses parents) sont hĂ©ritĂ©es par toutes les ressources Ă  l’intĂ©rieur de l’abonnement.

Groupes de Ressources

Dans la documentation : Un groupe de ressources est un conteneur qui contient des ressources liĂ©es pour une solution Azure. Le groupe de ressources peut inclure toutes les ressources pour la solution, ou seulement celles que vous souhaitez gĂ©rer en tant que groupe. En gĂ©nĂ©ral, ajoutez des ressources qui partagent le mĂȘme cycle de vie au mĂȘme groupe de ressources afin que vous puissiez facilement les dĂ©ployer, les mettre Ă  jour et les supprimer en tant que groupe.

Toutes les ressources doivent ĂȘtre dans un groupe de ressources et ne peuvent appartenir qu’à un seul groupe et si un groupe de ressources est supprimĂ©, toutes les ressources Ă  l’intĂ©rieur sont Ă©galement supprimĂ©es.

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

Identifiants de Ressources Azure

Chaque ressource dans Azure a un identifiant de ressource Azure qui l’identifie.

Le format d’un identifiant de ressource Azure est le suivant :

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

Pour une machine virtuelle nommĂ©e myVM dans un groupe de ressources myResourceGroup sous l’ID d’abonnement 12345678-1234-1234-1234-123456789012, l’identifiant de ressource Azure ressemble Ă  ceci :

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

Azure vs Entra ID vs Services de Domaine Azure AD

Azure

Azure est la plateforme de cloud computing complĂšte de Microsoft, offrant une large gamme de services, y compris des machines virtuelles, des bases de donnĂ©es, de l’intelligence artificielle et du stockage. Elle sert de fondation pour hĂ©berger et gĂ©rer des applications, construire des infrastructures Ă©volutives et exĂ©cuter des charges de travail modernes dans le cloud. Azure fournit des outils pour les dĂ©veloppeurs et les professionnels de l’informatique afin de crĂ©er, dĂ©ployer et gĂ©rer des applications et des services de maniĂšre transparente, rĂ©pondant Ă  une variĂ©tĂ© de besoins allant des startups aux grandes entreprises.

Entra ID (anciennement Azure Active Directory)

Entra ID est un service de gestion des identitĂ©s et des accĂšs basĂ© sur le cloud conçu pour gĂ©rer l’authentification, l’autorisation et le contrĂŽle d’accĂšs des utilisateurs. Il permet un accĂšs sĂ©curisĂ© aux services Microsoft tels qu’Office 365, Azure et de nombreuses applications SaaS tierces. Avec des fonctionnalitĂ©s telles que l’authentification unique (SSO), l’authentification multi-facteurs (MFA) et des politiques d’accĂšs conditionnel, entre autres.

Services de Domaine Entra (anciennement Azure AD DS)

Les Services de Domaine Entra Ă©tendent les capacitĂ©s d’Entra ID en offrant des services de domaine gĂ©rĂ©s compatibles avec les environnements traditionnels de Windows Active Directory. Il prend en charge des protocoles hĂ©ritĂ©s tels que LDAP, Kerberos et NTLM, permettant aux organisations de migrer ou d’exĂ©cuter des applications plus anciennes dans le cloud sans dĂ©ployer de contrĂŽleurs de domaine sur site. Ce service prend Ă©galement en charge les stratĂ©gies de groupe pour une gestion centralisĂ©e, ce qui le rend adaptĂ© aux scĂ©narios oĂč des charges de travail hĂ©ritĂ©es ou basĂ©es sur AD doivent coexister avec des environnements cloud modernes.

Principaux Entra ID

Utilisateurs

  • Nouveaux utilisateurs
  • Indiquer le nom et le domaine de l’email du locataire sĂ©lectionnĂ©
  • Indiquer le nom affichĂ©
  • Indiquer le mot de passe
  • Indiquer les propriĂ©tĂ©s (prĂ©nom, titre de poste, informations de contact
)
  • Le type d’utilisateur par dĂ©faut est “membre”
  • Utilisateurs externes
  • Indiquer l’email Ă  inviter et le nom affichĂ© (peut ĂȘtre un email non Microsoft)
  • Indiquer les propriĂ©tĂ©s
  • Le type d’utilisateur par dĂ©faut est “InvitĂ©â€

Permissions par Défaut des Membres & Invités

Vous pouvez les vĂ©rifier dans https://learn.microsoft.com/en-us/entra/fundamentals/users-default-permissions mais parmi d’autres actions, un membre pourra :

  • Lire tous les utilisateurs, groupes, applications, appareils, rĂŽles, abonnements et leurs propriĂ©tĂ©s publiques
  • Inviter des invitĂ©s (peut ĂȘtre dĂ©sactivĂ©)
  • CrĂ©er des groupes de sĂ©curitĂ©
  • Lire les adhĂ©sions de groupe non cachĂ©es
  • Ajouter des invitĂ©s aux groupes possĂ©dĂ©s
  • CrĂ©er une nouvelle application (peut ĂȘtre dĂ©sactivĂ©)
  • Ajouter jusqu’à 50 appareils Ă  Azure (peut ĂȘtre dĂ©sactivĂ©)

Note

N’oubliez pas que pour Ă©numĂ©rer les ressources Azure, l’utilisateur a besoin d’une attribution explicite de la permission.

Permissions Configurables par Défaut des Utilisateurs

  • Membres (docs)
  • Enregistrer des applications : Par dĂ©faut Oui
  • Restreindre les utilisateurs non administrateurs de crĂ©er des locataires : Par dĂ©faut Non
  • CrĂ©er des groupes de sĂ©curitĂ© : Par dĂ©faut Oui
  • Restreindre l’accĂšs au portail d’administration Microsoft Entra : Par dĂ©faut Non
  • Cela ne restreint pas l’accĂšs API au portail (uniquement web)
  • Autoriser les utilisateurs Ă  connecter un compte de travail ou d’école avec LinkedIn : Par dĂ©faut Oui
  • Afficher garder l’utilisateur connectĂ© : Par dĂ©faut Oui
  • Restreindre les utilisateurs de rĂ©cupĂ©rer la ou les clĂ©s BitLocker pour leurs appareils possĂ©dĂ©s : Par dĂ©faut Non (vĂ©rifiez dans les paramĂštres de l’appareil)
  • Lire d’autres utilisateurs : Par dĂ©faut Oui (via Microsoft Graph)
  • InvitĂ©s
  • Options de restrictions d’accĂšs des utilisateurs invitĂ©s :
  • Les utilisateurs invitĂ©s ont le mĂȘme accĂšs que les membres.
  • Les utilisateurs invitĂ©s ont un accĂšs limitĂ© aux propriĂ©tĂ©s et adhĂ©sions des objets d’annuaire (par dĂ©faut). Cela restreint l’accĂšs des invitĂ©s uniquement Ă  leur propre profil utilisateur par dĂ©faut. L’accĂšs Ă  d’autres utilisateurs et informations de groupe n’est plus autorisĂ©.
  • L’accĂšs des utilisateurs invitĂ©s est restreint aux propriĂ©tĂ©s et adhĂ©sions de leurs propres objets d’annuaire est la plus restrictive.
  • Options d’invitation des invitĂ©s :
  • Quiconque dans l’organisation peut inviter des utilisateurs invitĂ©s, y compris des invitĂ©s et des non-administrateurs (le plus inclusif) - Par dĂ©faut
  • Les utilisateurs membres et les utilisateurs assignĂ©s Ă  des rĂŽles administratifs spĂ©cifiques peuvent inviter des utilisateurs invitĂ©s, y compris des invitĂ©s avec des permissions de membre
  • Seuls les utilisateurs assignĂ©s Ă  des rĂŽles administratifs spĂ©cifiques peuvent inviter des utilisateurs invitĂ©s
  • Personne dans l’organisation ne peut inviter des utilisateurs invitĂ©s, y compris les administrateurs (le plus restrictif)
  • Les utilisateurs externes peuvent quitter : Par dĂ©faut Vrai
  • Autoriser les utilisateurs externes Ă  quitter l’organisation

Tip

MĂȘme s’ils sont restreints par dĂ©faut, les utilisateurs (membres et invitĂ©s) avec des permissions accordĂ©es pourraient effectuer les actions prĂ©cĂ©dentes.

Groupes

Il existe 2 types de groupes :

  • SĂ©curitĂ© : Ce type de groupe est utilisĂ© pour donner aux membres accĂšs aux applications, ressources et assigner des licences. Les utilisateurs, appareils, principaux de service et autres groupes peuvent ĂȘtre membres.
  • Microsoft 365 : Ce type de groupe est utilisĂ© pour la collaboration, donnant aux membres accĂšs Ă  une boĂźte aux lettres partagĂ©e, un calendrier, des fichiers, un site SharePoint, etc. Les membres du groupe ne peuvent ĂȘtre que des utilisateurs.
  • Cela aura une adresse email avec le domaine du locataire EntraID.

Il existe 2 types d’adhĂ©sions :

  • AssignĂ© : Permet d’ajouter manuellement des membres spĂ©cifiques Ă  un groupe.
  • AdhĂ©sion dynamique : GĂšre automatiquement l’adhĂ©sion en utilisant des rĂšgles, mettant Ă  jour l’inclusion du groupe lorsque les attributs des membres changent.

Principaux de Service

Un Principal de Service est une identitĂ© créée pour ĂȘtre utilisĂ©e avec des applications, des services hĂ©bergĂ©s et des outils automatisĂ©s pour accĂ©der aux ressources Azure. Cet accĂšs est restreint par les rĂŽles assignĂ©s au principal de service, vous donnant le contrĂŽle sur quelles ressources peuvent ĂȘtre accessibles et Ă  quel niveau. Pour des raisons de sĂ©curitĂ©, il est toujours recommandĂ© d’utiliser des principaux de service avec des outils automatisĂ©s plutĂŽt que de leur permettre de se connecter avec une identitĂ© utilisateur.

Il est possible de se connecter directement en tant que principal de service en lui générant un secret (mot de passe), un certificat, ou en accordant un accÚs fédéré à des plateformes tierces (par exemple, Github Actions) à son sujet.

  • Si vous choisissez l’authentification par mot de passe (par dĂ©faut), enregistrez le mot de passe gĂ©nĂ©rĂ© car vous ne pourrez plus y accĂ©der.
  • Si vous choisissez l’authentification par certificat, assurez-vous que l’application aura accĂšs Ă  la clĂ© privĂ©e.

Enregistrements d’Applications

Un Enregistrement d’Application est une configuration qui permet Ă  une application de s’intĂ©grer avec Entra ID et d’effectuer des actions.

Composants Clés :

  1. ID d’Application (Client ID) : Un identifiant unique pour votre application dans Azure AD.
  2. URIs de Redirection : URLs oĂč Azure AD envoie les rĂ©ponses d’authentification.
  3. Certificats, Secrets & Identifiants FĂ©dĂ©rĂ©s : Il est possible de gĂ©nĂ©rer un secret ou un certificat pour se connecter en tant que principal de service de l’application, ou pour lui accorder un accĂšs fĂ©dĂ©rĂ© (par exemple, Github Actions).
  4. Si un certificat ou un secret est gĂ©nĂ©rĂ©, il est possible pour une personne de se connecter en tant que principal de service avec des outils CLI en connaissant l’ID d’application, le secret ou le certificat et le locataire (domaine ou ID).
  5. Permissions API : SpĂ©cifie quelles ressources ou APIs l’application peut accĂ©der.
  6. ParamĂštres d’Authentification : DĂ©finit les flux d’authentification pris en charge par l’application (par exemple, OAuth2, OpenID Connect).
  7. Principal de Service : Un principal de service est créé lorsqu’une application est créée (si cela est fait depuis la console web) ou lorsqu’elle est installĂ©e dans un nouveau locataire.
  8. Le principal de service obtiendra toutes les permissions demandées avec lesquelles il a été configuré.

Permissions de Consentement par Défaut

Consentement des utilisateurs pour les applications

  • Ne pas autoriser le consentement des utilisateurs
  • Un administrateur sera requis pour toutes les applications.
  • Autoriser le consentement des utilisateurs pour les applications de publishers vĂ©rifiĂ©s, applications internes et applications demandant uniquement des permissions sĂ©lectionnĂ©es (RecommandĂ©)
  • Tous les utilisateurs peuvent consentir aux applications demandant uniquement des permissions classĂ©es comme “impact faible”, applications de publishers vĂ©rifiĂ©s et applications enregistrĂ©es dans le locataire.
  • Permissions par dĂ©faut Ă  faible impact (bien que vous deviez accepter de les ajouter comme faibles) :
  • User.Read - se connecter et lire le profil utilisateur
  • offline_access - maintenir l’accĂšs aux donnĂ©es auxquelles les utilisateurs ont donnĂ© accĂšs
  • openid - connecter les utilisateurs
  • profile - voir le profil de base de l’utilisateur
  • email - voir l’adresse email de l’utilisateur
  • Autoriser le consentement des utilisateurs pour les applications (Par dĂ©faut)
  • Tous les utilisateurs peuvent consentir pour toute application Ă  accĂ©der aux donnĂ©es de l’organisation.

Demandes de consentement administratives : Par défaut Non

  • Les utilisateurs peuvent demander le consentement administratif pour des applications auxquelles ils ne peuvent pas consentir
  • Si Oui : Il est possible d’indiquer les Utilisateurs, Groupes et RĂŽles qui peuvent consentir aux demandes
  • Configurer Ă©galement si les utilisateurs recevront des notifications par email et des rappels d’expiration

Identité Gérée (Métadonnées)

Les identitĂ©s gĂ©rĂ©es dans Azure Active Directory offrent une solution pour gĂ©rer automatiquement l’identitĂ© des applications. Ces identitĂ©s sont utilisĂ©es par les applications dans le but de se connecter aux ressources compatibles avec l’authentification Azure Active Directory (Azure AD). Cela permet de supprimer le besoin de coder en dur les identifiants cloud dans le code car l’application pourra contacter le service de mĂ©tadonnĂ©es pour obtenir un jeton valide afin de rĂ©aliser des actions en tant qu’identitĂ© gĂ©rĂ©e indiquĂ©e dans Azure.

Il existe deux types d’identitĂ©s gĂ©rĂ©es :

  • AssignĂ©e au systĂšme. Certains services Azure vous permettent d’activer une identitĂ© gĂ©rĂ©e directement sur une instance de service. Lorsque vous activez une identitĂ© gĂ©rĂ©e assignĂ©e au systĂšme, un principal de service est créé dans le locataire Entra ID de confiance par l’abonnement oĂč la ressource est situĂ©e. Lorsque la ressource est supprimĂ©e, Azure supprime automatiquement l’identitĂ© pour vous.
  • AssignĂ©e par l’utilisateur. Il est Ă©galement possible pour les utilisateurs de gĂ©nĂ©rer des identitĂ©s gĂ©rĂ©es. Celles-ci sont créées Ă  l’intĂ©rieur d’un groupe de ressources dans un abonnement et un principal de service sera créé dans l’EntraID de confiance par l’abonnement. Ensuite, vous pouvez assigner l’identitĂ© gĂ©rĂ©e Ă  une ou plusieurs instances d’un service Azure (plusieurs ressources). Pour les identitĂ©s gĂ©rĂ©es assignĂ©es par l’utilisateur, l’identitĂ© est gĂ©rĂ©e sĂ©parĂ©ment des ressources qui l’utilisent.

Les Identités Gérées ne génÚrent pas de credentials éternels (comme des mots de passe ou des certificats) pour accéder en tant que principal de service qui y est attaché.

Applications d’Entreprise

C’est juste une table dans Azure pour filtrer les principaux de service et vĂ©rifier les applications qui ont Ă©tĂ© assignĂ©es.

Ce n’est pas un autre type d’“application”, il n’y a aucun objet dans Azure qui est une “Application d’Entreprise”, c’est juste une abstraction pour vĂ©rifier les Principaux de Service, les Enregistrements d’Applications et les IdentitĂ©s GĂ©rĂ©es.

Unités Administratives

Les unitĂ©s administratives permettent de donner des permissions d’un rĂŽle sur une portion spĂ©cifique d’une organisation.

Exemple :

  • ScĂ©nario : Une entreprise souhaite que les administrateurs informatiques rĂ©gionaux gĂšrent uniquement les utilisateurs de leur propre rĂ©gion.
  • Mise en Ɠuvre :
  • CrĂ©er des UnitĂ©s Administratives pour chaque rĂ©gion (par exemple, “AU AmĂ©rique du Nord”, “AU Europe”).
  • Peupler les AU avec des utilisateurs de leurs rĂ©gions respectives.
  • Les AU peuvent contenir des utilisateurs, groupes ou appareils
  • Les AU prennent en charge les adhĂ©sions dynamiques
  • Les AU ne peuvent pas contenir d’AU
  • Attribuer des RĂŽles Administrateurs :
  • Accorder le rĂŽle “Administrateur des Utilisateurs” au personnel informatique rĂ©gional, limitĂ© Ă  l’AU de leur rĂ©gion.
  • RĂ©sultat : Les administrateurs informatiques rĂ©gionaux peuvent gĂ©rer les comptes utilisateurs au sein de leur rĂ©gion sans affecter d’autres rĂ©gions.

RĂŽles & Permissions Entra ID

  • Afin de gĂ©rer Entra ID, il existe certains rĂŽles intĂ©grĂ©s qui peuvent ĂȘtre assignĂ©s aux principaux Entra ID pour gĂ©rer Entra ID
  • VĂ©rifiez les rĂŽles dans https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference
  • Les rĂŽles marquĂ©s comme PRIVILÉGIÉ par EntraID doivent ĂȘtre assignĂ©s avec prudence car comme l’explique Microsoft dans la documentation : Les attributions de rĂŽles privilĂ©giĂ©s peuvent entraĂźner une Ă©lĂ©vation de privilĂšges si elles ne sont pas utilisĂ©es de maniĂšre sĂ©curisĂ©e et intentionnelle.
  • Le rĂŽle le plus privilĂ©giĂ© est Administrateur Global
  • Les rĂŽles regroupent des permissions granulaires et elles peuvent ĂȘtre trouvĂ©es dans leurs descriptions.
  • Il est possible de crĂ©er des rĂŽles personnalisĂ©s avec les permissions souhaitĂ©es. Bien que pour une raison quelconque, toutes les permissions granulaires ne soient pas disponibles pour que les administrateurs crĂ©ent des rĂŽles personnalisĂ©s.
  • Les rĂŽles dans Entra ID sont complĂštement indĂ©pendants des rĂŽles dans Azure. La seule relation est que les principaux avec le rĂŽle Administrateur Global dans Entra ID peuvent s’élever au rĂŽle Administrateur d’AccĂšs Utilisateur dans Azure.
  • Il est impossible d’utiliser des jokers dans les rĂŽles Entra ID.

RĂŽles & Permissions Azure

  • Les RĂŽles sont assignĂ©s aux principaux sur un scope : principal -[A UN RÔLE]->(scope)
  • Les RĂŽles assignĂ©s Ă  des groupes sont hĂ©ritĂ©s par tous les membres du groupe.
  • En fonction du scope auquel le rĂŽle a Ă©tĂ© assignĂ©, le rĂŽle peut ĂȘtre hĂ©ritĂ© par d’autres ressources Ă  l’intĂ©rieur du conteneur de scope. Par exemple, si un utilisateur A a un rĂŽle sur l’abonnement, il aura ce rĂŽle sur tous les groupes de ressources Ă  l’intĂ©rieur de l’abonnement et sur toutes les ressources Ă  l’intĂ©rieur du groupe de ressources.

RÎles Intégrés

Dans la documentation : Le contrĂŽle d’accĂšs basĂ© sur les rĂŽles Azure (Azure RBAC) a plusieurs rĂŽles intĂ©grĂ©s Azure que vous pouvez assigner Ă  des utilisateurs, groupes, principaux de service et identitĂ©s gĂ©rĂ©es. Les attributions de rĂŽles sont la maniĂšre dont vous contrĂŽlez l’accĂšs aux ressources Azure. Si les rĂŽles intĂ©grĂ©s ne rĂ©pondent pas aux besoins spĂ©cifiques de votre organisation, vous pouvez crĂ©er vos propres rĂŽles personnalisĂ©s Azure.

Les RĂŽles IntĂ©grĂ©s s’appliquent uniquement aux ressources auxquelles ils sont destinĂ©s, par exemple, vĂ©rifiez ces 2 exemples de RĂŽles IntĂ©grĂ©s sur les ressources de Calcul :

Lecteur de Sauvegarde de DisqueFournit la permission au coffre de sauvegarde pour effectuer une sauvegarde de disque.3e5e47e6-65f7-47ef-90b5-e5dd4d455f24
Connexion Utilisateur de Machine VirtuelleVoir les Machines Virtuelles dans le portail et se connecter en tant qu’utilisateur rĂ©gulier.fb879df8-f326-4884-b1cf-06f3ad86be52

Ces rĂŽles peuvent Ă©galement ĂȘtre assignĂ©s sur des conteneurs logiques (tels que des groupes de gestion, des abonnements et des groupes de ressources) et les principaux affectĂ©s les auront sur les ressources Ă  l’intĂ©rieur de ces conteneurs.

RÎles Personnalisés

  • Il est Ă©galement possible de crĂ©er des rĂŽles personnalisĂ©s
  • Ils sont créés Ă  l’intĂ©rieur d’un scope, bien qu’un rĂŽle puisse ĂȘtre dans plusieurs scopes (groupes de gestion, abonnements et groupes de ressources)
  • Il est possible de configurer toutes les permissions granulaires que le rĂŽle personnalisĂ© aura
  • Il est possible d’exclure des permissions
  • Un principal avec une permission exclue ne pourra pas l’utiliser mĂȘme si la permission est accordĂ©e ailleurs
  • Il est possible d’utiliser des jokers
  • Le format utilisĂ© est un JSON
  • actions se rĂ©fĂšre aux permissions pour les opĂ©rations de gestion sur les ressources, telles que la crĂ©ation, la mise Ă  jour ou la suppression des dĂ©finitions et paramĂštres de ressources.
  • dataActions sont des permissions pour les opĂ©rations de donnĂ©es au sein de la ressource, vous permettant de lire, Ă©crire ou supprimer les donnĂ©es rĂ©elles contenues dans la ressource.
  • notActions et notDataActions sont utilisĂ©s pour exclure des permissions spĂ©cifiques du rĂŽle. Cependant, elles ne les refusent pas, si un rĂŽle diffĂ©rent les accorde, le principal les aura.
  • assignableScopes est un tableau de scopes oĂč le rĂŽle peut ĂȘtre assignĂ© (comme des groupes de gestion, des abonnements ou des groupes de ressources).

Exemple de permissions JSON pour un rÎle personnalisé :

{
"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

  • Afin qu’un principal ait un accĂšs Ă  une ressource, il a besoin d’un rĂŽle explicite qui lui est accordĂ© (de quelque maniĂšre que ce soit) lui accordant cette permission.
  • Une attribution de refus explicite a la prioritĂ© sur le rĂŽle accordant la permission.

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

Global Administrator

Global Administrator est un rĂŽle d’Entra ID qui accorde un contrĂŽle total sur le locataire Entra ID. Cependant, il n’accorde par dĂ©faut aucune permission sur les ressources Azure.

Les utilisateurs ayant le rĂŽle de Global Administrator ont la capacitĂ© de ‘s’élever’ au rĂŽle d’Administrateur d’AccĂšs Utilisateur Azure dans le Groupe de Gestion Racine. Ainsi, les Global Administrators peuvent gĂ©rer l’accĂšs dans toutes les souscriptions Azure et groupes de gestion.
Cette Ă©lĂ©vation peut ĂȘtre effectuĂ©e en bas de la page : https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/Properties

Assignments Conditions & MFA

Selon la documentation : Actuellement, des conditions peuvent ĂȘtre ajoutĂ©es aux attributions de rĂŽles intĂ©grĂ©s ou personnalisĂ©s qui ont des actions de donnĂ©es de stockage blob ou des actions de donnĂ©es de stockage de files d’attente.

Deny Assignments

Tout comme les attributions de rĂŽles, les attributions de refus sont utilisĂ©es pour contrĂŽler l’accĂšs aux ressources Azure. Cependant, les attributions de refus sont utilisĂ©es pour refuser explicitement l’accĂšs Ă  une ressource, mĂȘme si un utilisateur a Ă©tĂ© accordĂ© l’accĂšs par le biais d’une attribution de rĂŽle. Les attributions de refus ont la prioritĂ© sur les attributions de rĂŽle, ce qui signifie que si un utilisateur se voit accorder l’accĂšs par le biais d’une attribution de rĂŽle mais se voit Ă©galement explicitement refuser l’accĂšs par une attribution de refus, l’attribution de refus prĂ©vaudra.

Tout comme les attributions de rÎles, les attributions de refus sont appliquées sur un certain périmÚtre indiquant les principaux affectés et les permissions qui sont refusées. De plus, dans le cas des attributions de refus, il est possible de prévenir que le refus soit hérité par les ressources enfants.

Azure Policies

Azure Policies sont des rĂšgles qui aident les organisations Ă  s’assurer que leurs ressources rĂ©pondent Ă  des normes spĂ©cifiques et Ă  des exigences de conformitĂ©. Elles vous permettent de faire respecter ou d’auditer les paramĂštres sur les ressources dans Azure. Par exemple, vous pouvez empĂȘcher la crĂ©ation de machines virtuelles dans une rĂ©gion non autorisĂ©e ou vous assurer que toutes les ressources ont des balises spĂ©cifiques pour le suivi.

Les Azure Policies sont proactives : elles peuvent empĂȘcher la crĂ©ation ou la modification de ressources non conformes. Elles sont Ă©galement rĂ©actives, vous permettant de trouver et de corriger les ressources non conformes existantes.

Key Concepts

  1. Policy Definition : Une rÚgle, écrite en JSON, qui spécifie ce qui est autorisé ou requis.
  2. Policy Assignment : L’application d’une politique Ă  un pĂ©rimĂštre spĂ©cifique (par exemple, souscription, groupe de ressources).
  3. Initiatives : Une collection de politiques regroupées pour une application plus large.
  4. Effect : SpĂ©cifie ce qui se passe lorsque la politique est dĂ©clenchĂ©e (par exemple, “Deny”, “Audit” ou “Append”).

Quelques exemples :

  1. Assurer la conformitĂ© avec des rĂ©gions Azure spĂ©cifiques : Cette politique garantit que toutes les ressources sont dĂ©ployĂ©es dans des rĂ©gions Azure spĂ©cifiques. Par exemple, une entreprise pourrait vouloir s’assurer que toutes ses donnĂ©es sont stockĂ©es en Europe pour se conformer au RGPD.
  2. Faire respecter les normes de nommage : Les politiques peuvent faire respecter des conventions de nommage pour les ressources Azure. Cela aide Ă  organiser et Ă  identifier facilement les ressources en fonction de leurs noms, ce qui est utile dans de grands environnements.
  3. Restreindre certains types de ressources : Cette politique peut restreindre la crĂ©ation de certains types de ressources. Par exemple, une politique pourrait ĂȘtre dĂ©finie pour empĂȘcher la crĂ©ation de types de ressources coĂ»teux, comme certaines tailles de VM, pour contrĂŽler les coĂ»ts.
  4. Faire respecter les politiques de balisage : Les balises sont des paires clĂ©-valeur associĂ©es aux ressources Azure utilisĂ©es pour la gestion des ressources. Les politiques peuvent faire respecter que certaines balises doivent ĂȘtre prĂ©sentes, ou avoir des valeurs spĂ©cifiques, pour toutes les ressources. Cela est utile pour le suivi des coĂ»ts, la propriĂ©tĂ© ou la catĂ©gorisation des ressources.
  5. Limiter l’accĂšs public aux ressources : Les politiques peuvent faire respecter que certaines ressources, comme les comptes de stockage ou les bases de donnĂ©es, n’ont pas de points de terminaison publics, garantissant qu’elles ne sont accessibles que dans le rĂ©seau de l’organisation.
  6. Appliquer automatiquement des paramĂštres de sĂ©curitĂ© : Les politiques peuvent ĂȘtre utilisĂ©es pour appliquer automatiquement des paramĂštres de sĂ©curitĂ© aux ressources, comme appliquer un groupe de sĂ©curitĂ© rĂ©seau spĂ©cifique Ă  toutes les VM ou s’assurer que tous les comptes de stockage utilisent le chiffrement.

Notez que les Azure Policies peuvent ĂȘtre attachĂ©es Ă  n’importe quel niveau de la hiĂ©rarchie Azure, mais elles sont gĂ©nĂ©ralement utilisĂ©es dans le groupe de gestion racine ou dans d’autres groupes de gestion.

Exemple de politique Azure json :

{
"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"
}

Héritage des autorisations

Dans Azure, les autorisations peuvent ĂȘtre attribuĂ©es Ă  n’importe quelle partie de la hiĂ©rarchie. Cela inclut les groupes de gestion, les abonnements, les groupes de ressources et les ressources individuelles. Les autorisations sont hĂ©ritĂ©es par les ressources contenues de l’entitĂ© oĂč elles ont Ă©tĂ© attribuĂ©es.

Cette structure hiĂ©rarchique permet une gestion efficace et Ă©volutive des autorisations d’accĂšs.

Azure RBAC vs ABAC

RBAC (contrĂŽle d’accĂšs basĂ© sur les rĂŽles) est ce que nous avons dĂ©jĂ  vu dans les sections prĂ©cĂ©dentes : Attribuer un rĂŽle Ă  un principal pour lui accorder l’accĂšs Ă  une ressource.
Cependant, dans certains cas, vous pourriez vouloir fournir une gestion des accùs plus granulaire ou simplifier la gestion de centaines d’attributions de rîles.

Azure ABAC (contrĂŽle d’accĂšs basĂ© sur les attributs) s’appuie sur Azure RBAC en ajoutant des conditions d’attribution de rĂŽle basĂ©es sur des attributs dans le contexte d’actions spĂ©cifiques. Une condition d’attribution de rĂŽle est un vĂ©rification supplĂ©mentaire que vous pouvez ajouter Ă  votre attribution de rĂŽle pour fournir un contrĂŽle d’accĂšs plus granulaire. Une condition filtre les autorisations accordĂ©es dans le cadre de la dĂ©finition de rĂŽle et de l’attribution de rĂŽle. Par exemple, vous pouvez ajouter une condition qui exige qu’un objet ait une Ă©tiquette spĂ©cifique pour lire l’objet.
Vous ne pouvez pas explicitement refuser l’accĂšs Ă  des ressources spĂ©cifiques en utilisant des conditions.

Références

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks