Office 365 : de gros trous dans l’authentification ?

Office 365 authentification

Microsoft minimise les déclarations alarmantes de chercheurs qui disent avoir pu détourner l’authentification d’Azure Active Directory pour se connecter à de multiples comptes Office 365 avec un unique mot de passe.

Alerte rouge sur la sécurité d’Office 365 ? Pas d’après Microsoft.

L’éditeur n’entend pas livrer de correctif en réponse aux trouvailles des équipes de Varonis.

Celles-ci avancent une méthode qui permet de pirater certaines installations d’Azure Active Directory (AD). Avec, à la clé :

  • la récupération, sous forme non chiffrée, des logins et des mots de passe de l’ensemble des utilisateurs qui se connectent ;
  • l’accès potentiel à tous ces comptes avec un mot de passe unique.

Identités hybrides

Azure AD donne la possibilité de constituer des identités « hybrides ». Grâce à elles, les utilisateurs peuvent s’authentifier et accéder à toutes les applications, peu importe leur emplacement.

La mise en place de ces identités hybrides passe par l’outil AD Connect. Son rôle : synchroniser les identifiants et les mots de passe entre un annuaire local et une instance cloud Azure AD.

L’une des méthodes consiste à synchroniser le hachage des mots de passe. Dans ce cas, l’authentification se fait côté cloud.

Si on souhaite la conserver en local, il y a la solution de la fédération, moyennant la mise en place d’une infrastructure supplémentaire qui inclut notamment un proxy.

Il existe une alternative plus « légère » : l’authentification directe. Elle repose sur un agent qui écoute et répond aux requêtes de validation du mot de passe. Généralement installé sur le même serveur qu’Azure AD Connect, il peut être déployé sur des serveurs complémentaires pour assurer une haute disponibilité.

authentification directe

Interception

Que se passe-t-il lors de la connexion à Office 365 en mode authentification directe ?
L’utilisateur renseigne son identifiant et son mot de passe, qu’Azure AD chiffre avant de les envoyer à l’agent. Celui-ci déchiffre les données, les compare à celles du contrôleur de domaine local et renvoie la réponse à Azure AD, qui peut valider la connexion.

Le processus de validation repose sur l’API LogonUser. L’agent (AzureADConnectAuthenticationAgentService.exe) y fait appel avec le paramètre LOGON32_LOGON_NETWORK, qui implique la communication de mots de passe en clair.

Les chercheurs de Varonis ont pu intercepter ces appels, puis automatiser la démarche en faisant en sorte de faire pointer l’exécutable vers une fausse fonction LogonUser. Celle-ci ajoute, dans un fichier texte, l’identifiant et le mot de passe de tout utilisateur qui se connecte à Office 365.

Une clé pour tous

L’attaque ne s’est pas arrêtée là. L’étape suivante a consisté à modifier la valeur de retour dans la fonction LogonUser, afin de pouvoir s’authentifier à tous les coups avec le même mot de passe.

Pour valider la connexion, LogonUser a besoin d’un jeton d’authentification. À défaut de pouvoir accéder à ceux des utilisateurs, les chercheurs ont extrait celui de l’agent, en utilisant la fonction OpenProcessToken.

À partir de là, on a le contrôle du locataire Azure AD. Une élévation de privilèges jusqu’au niveau d’administrateur global peut permettre d’élargir ce contrôle à l’environnement Azure. Tout en pénétrant éventuellement l’environnement sur site en réinitialisant le mot de passe administrateur d’un domaine.

Microsoft affirme ne pas percevoir de risque sérieux, du fait des prérequis. En l’occurrence, être parvenu à obtenir les droits d’administrateur sur un serveur où l’agent est installé.