Depuis longtemps, les techniques de mouvement latéral jouent un rôle essentiel dans la compromission des réseaux traditionnels. Elles sont utilisées par les groupes de ransomware pour atteindre les contrôleurs de domaine et déployer leurs attaques paralysantes et hautement perturbatrices. Elles sont tout autant utilisées par les groupes de cyber-espions pour gagner en persistance et accéder aux systèmes abritant la propriété intellectuelle sensible. Ces procédés sont aussi prisés des groupes de cybercriminels pour naviguer dans un réseau sensible et atteindre des guichets automatiques et autres systèmes financiers.

CTS, une fonction importante pour les grands comptes

Avec l'accélération du déploiement de réseaux hybrides combinant des infrastructures sur site et dans le cloud, les attaquants recherchent d’autres tactiques pour réaliser des mouvements latéraux dans ces environnements. L'une de ces méthodes, récemment imaginée et documentée par des chercheurs de l’entreprise de sécurité Vectra AI, consiste à abuser d'une fonctionnalité d'Azure Active Directory (AD) appelée cross-tenant synchronization (CTS) ou synchronisation inter-locataire. Celle-ci offre aux entreprises de synchroniser les utilisateurs et les groupes à travers différentes instances Azure AD pour qu’ils puissent accéder aux applications Microsoft et tierces liées à différents tenants.

Cette fonction est utile pour les grands comptes et les sociétés disposant de filiales ou succursales disposant de plusieurs tenants Azure AD. Certains utilisateurs ont besoin d'accéder aux applications ou aux ressources d'une autre succursale ou d'une filiale. « Ce vecteur offre à un attaquant opérant dans un tenant compromis d'abuser d'une mauvaise configuration de synchronisation entre les tenants et d'accéder à d'autres tenants connectés ou de déployer une configuration CTS malveillante pour maintenir la persistance au sein de l’instance », ont déclaré les chercheurs de Vectra AI dans leur rapport. « Nous n'avons pas observé l'utilisation de ce procédé dans la nature, mais étant donné l'abus historique d'une fonctionnalité similaire, nous présentons la technique en détails pour que les défenseurs comprennent comment se passerait une telle attaque et comment surveiller son exécution », ont-ils ajouté.

Des politiques d’accès et de configuration vulnérables

Dans le détail, la fonction CTS synchronise les droits et les permissions des utilisateurs d’un tenant source vers une instance cible. Ce rapprochement s’effectue par le biais de requêtes push depuis le tenant source et sur la base des politiques d'accès interlocataires (Cross-Tenant Access, CTA) configurées dans les deux tenants. Ces derniers doivent avoir une politique d’accès similaire et réciproque. Comme pour toutes les techniques de mouvement latéral, l'abus de CTS implique la compromission supposée d’identifiants privilégiés au sein d'une instance.

Pour qu'une attaque fonctionne, les deux tenants doivent disposer de licences Azure AD Premium P1 ou P2 incluant l’usage de la CTS. L'attaquant doit avoir accès à un compte avec un rôle d'administrateur de sécurité pour configurer les politiques d'accès interlocataires, un rôle d'administrateur d'identité hybride pour modifier la configuration de synchronisation interlocataires, ou un rôle d'administrateur cloud ou d'application pour assigner des nouveaux utilisateurs à une configuration CTS existante. Ainsi, en fonction des politiques d'accès et de la configuration CTS existantes dans un tenant, et donc des privilèges obtenus par l'attaquant, il existe différentes façons d'abuser de cette situation pour un mouvement latéral ou une persistance. Le PoC de Vectra AI suppose que le tenant dispose déjà des politiques d'accès configurées pour d'autres tenants. Dans un premier temps, l'attaquant utilisera la commande shell admin pour lister tous les instances avec lesquels le tenant actuel a des politiques d'accès. Ensuite, il examinera chacune des politiques afin d’en identifier un pour lequel une politique de sortie existe. Cela signifie que le locataire actuel est configuré pour synchroniser les utilisateurs avec ce locataire cible.

Backdoor et persistance

L'étape suivante consisterait à localiser l'identifiant de l'application exécutée dans le tenant compromis, responsable de la synchronisation, pour pouvoir modifier sa configuration. Les chercheurs de Vectra ont créé et publié un script PowerShell qui automatise l'ensemble du processus. « Il n'y a pas de moyen direct de trouver l'application de synchronisation CTS liée au tenant cible », ont déclaré les chercheurs. « L'attaquant peut énumérer les principaux services du tenant en essayant de valider les identifiants avec le tenant cible pour finalement trouver l'application qui héberge le travail de synchronisation avec le locataire cible. Il peut le faire à l'aide d'un simple module comme celui-ci ». Après avoir identifié l'application de synchronisation, l'attaquant peut ajouter le compte compromis pour lequel il possède déjà des identifiants à la synchronisation étendue ou il peut examiner la synchronisation étendue de l'application, qui pourrait, par exemple, indiquer que tous les utilisateurs d'un groupe particulier sont synchronisés dans le locataire cible. Ils peuvent alors essayer d'ajouter directement ou indirectement leur utilisateur compromis à ce groupe.

Outre l'utilisation d'un locataire compromis comme source de mouvement latéral, la synchronisation interlocataire CTS peut également être utilisée comme porte dérobée pour maintenir la persistance au sein d’une instance compromise. Par exemple, l'attaquant pourrait créer une politique d'accès croisé entrant dans le locataire victime pour permettre à un locataire externe sous son contrôle de synchroniser les utilisateurs dans ce locataire. Il pourrait ensuite activer l'option « consentement automatique de l'utilisateur » afin que l'utilisateur synchronisé ne soit pas invité à donner son accord. Le résultat serait que l'attaquant pourrait synchroniser de nouveaux utilisateurs de son locataire externe avec le locataire victime à tout moment dans le futur pour accéder aux ressources, même s'il perd l'accès au compte initial qu'il a compromis.

Quelles parades ?

Étant donné que cette technique suppose qu'un compte existant a été compromis, les entreprises doivent appliquer des pratiques de sécurité strictes et surveiller les comptes, en particulier ceux qui ayant des privilèges d’administration. Les locataires pour lesquels la CTS est activée doivent éviter les politiques d'accès interlocataires entrantes qui synchronisent tous les utilisateurs, groupes ou applications d'un locataire source. « Déployez une configuration Cross-Tenant Access (CTA) entrante moins inclusive, en définissant par exemple explicitement les comptes (si possible) ou les groupes qui peuvent obtenir un accès via la CTS », recommandent les chercheurs de Vectra AI. « Combinez la politique d’accès interlocataires CTA avec d'autres politiques d'accès conditionnel pour empêcher les accès non autorisés ».