Secrets et certificats des inscriptions d'applications : l'hygiène des informations d'identification
Une inscription d'application dotée de permissions Microsoft Graph est une identité à part entière. Ses secrets et certificats valent un mot de passe, sans MFA pour les protéger. Pourtant, ils sont souvent créés pour deux ans, copiés dans un fichier de configuration puis oubliés.
Secret client ou certificat
Une application qui s'authentifie en son nom propre (flux des informations d'identification du client) présente l'un des deux types d'informations d'identification :
- Le secret client : une chaîne de caractères transmise telle quelle. Quiconque la lit dans un dépôt de code, une variable d'environnement ou un journal peut l'utiliser depuis n'importe où ;
- Le certificat : l'application prouve la possession d'une clé privée en signant une assertion. Si la clé privée est stockée de façon non exportable, dans un coffre de clés ou un module matériel, elle est bien plus difficile à dérober.
Le certificat est donc préférable au secret. Mieux encore : pour les charges de travail hébergées dans Azure ou dans une chaîne CI/CD compatible, les identités managées et la fédération d'identité de charge de travail suppriment totalement les informations d'identification stockées.
Durée de validité et rotation
Le portail propose des durées limitées pour les secrets, mais les API permettaient historiquement de créer des secrets et certificats valables de nombreuses années. Dans les locataires que nous auditons, il n'est pas rare de trouver des secrets valides jusqu'en 2299. Un secret de longue durée n'est jamais renouvelé, donc jamais révoqué quand un prestataire part ou qu'un poste est compromis.
Les stratégies de gestion des applications permettent d'imposer des règles à l'échelle du locataire : interdire les secrets, limiter leur durée de vie, restreindre la durée des certificats. Certaines de ces fonctions dépendent d'une licence Workload ID ; vérifiez la documentation Microsoft actuelle. À défaut, un inventaire régulier des dates d'expiration et une procédure de rotation documentée sont un minimum.
Deux emplacements. Les informations d'identification peuvent être ajoutées à l'objet application, mais aussi directement au principal de service. Ces dernières n'apparaissent pas dans la page « Certificats et secrets » du portail. Un attaquant qui cherche la discrétion privilégie cet emplacement : votre inventaire doit couvrir les deux.
Les propriétaires : un chemin d'élévation
Le propriétaire d'une inscription d'application peut lui ajouter des secrets et des certificats. Si l'application détient des permissions élevées, son propriétaire peut donc agir avec ces permissions, quel que soit son propre niveau de privilège. Un utilisateur standard propriétaire d'une application disposant de Application.ReadWrite.All est en pratique un administrateur caché.
Les rôles Administrateur d'application et Administrateur d'application cloud offrent le même pouvoir sur toutes les applications du locataire. Ils doivent être traités comme des rôles privilégiés, attribués via PIM.
Les applications orphelines
Une application orpheline n'a plus de propriétaire identifié, ou plus d'usage réel, mais conserve ses permissions et ses informations d'identification. Pour les repérer :
- Lister les inscriptions sans propriétaire, ou dont les propriétaires sont désactivés ou supprimés ;
- Consulter l'activité de connexion des principaux de service pour identifier celles qui ne s'authentifient plus ;
- Croiser avec les permissions accordées pour prioriser les plus sensibles ;
- Contacter les équipes, puis désactiver avant de supprimer, afin de pouvoir revenir en arrière.
Ce qu'un audit vérifie
- La répartition entre secrets et certificats, et les informations d'identification présentes sur les principaux de service.
- Les secrets et certificats de durée excessive, expirés ou multiples sur une même application.
- L'existence de stratégies de gestion des applications.
- Les propriétaires des applications à permissions élevées et les titulaires des rôles d'administration des applications.
- Les applications sans propriétaire ou sans activité récente.