Introduction
Google Workspace (anciennement G Suite) est une suite d’outils et de logiciels de productivité proposée par Google sous la forme d’abonnement.
La suite inclut les applications Web de Google les plus courantes, comme Gmail, Google Chat, Google Meet, Google Agenda, Currents, Google Drive, Google Docs, Sheets, Slides, Forms & Google.
L’ensemble de ces fonctionnalités augmente significativement la surface à couvrir pour la personne en charge de gérer la sécurité.
Les groupes
Pour simplifier la gestion des utilisateurs (entre autres) au quotidien, il est possible pour les administrateurs de créer des groupes d’utilisateurs.
L’ensemble des utilisateurs (même un utilisateur compromis) est en mesure d’accéder à l’ensemble des groupes de la société en se rendant sur https://groups.google.com/all-groups
Dans la configuration par défaut, l’ensemble des utilisateurs de la société est en mesure d’accéder aux échanges, de poster ainsi que de voir les membres du groupe en question. L’accès à ces informations pourrait permettre à un attaquant ayant compromis un compte de se déplacer facilement au sein de la société :
Les types d’accès « Public », « Team » ou encore « Annoucement Only » disposent de ce souci de configuration alors que « Restricted » est quant à lui plus proche des meilleures pratiques de sécurité :
En fonction de la taille de la société et du nombre de groupe, il peut devenir complexe de faire cela manuellement.
Préparons la découverte automatique
Avant de se lancer à corps perdu dans le développement, il est nécessaire de disposer d’un projet Google Cloud ainsi que des identifiants associés. Pour cela, il est nécessaire de créer le projet à partir de https://console.cloud.google.com (GroupCheck dans notre exemple) :
Une fois le groupe créé, il est nécessaire de créer un compte de service associé :
Une fois le compte de service créé, il est nécessaire de créer un accès au format JSON à ce dernier :
Le groupe étant créé, il est maintenant nécessaire de lui attribuer les accès nécessaires. En effet, pour accéder aux informations de groupe, il est nécessaire d’ajouter l’API « Admin SDK API » au sein du groupe :
Il est nécessaire d’ajouter également l’API « Groups Settings API » de la même manière.
A ce stade-là, la dernière étape est proche. Il ne reste plus qu’à activer la délégation d’autorité permettant d’accorder aux applications tierces et internes l’accès aux données de vos utilisateurs. Cette délégation d’autorité est possible depuis https://admin.google.com/ac/owl en utilisant l’ID du compte de service nouvellement créé comme Client ID et en acceptant l’accès aux informations suivantes :
- https://www.googleapis.com/auth/admin.directory.user
- https://www.googleapis.com/auth/admin.directory.group
- https://www.googleapis.com/auth/apps.groups.settings
Automatisons la découverte
A présent que l’ensemble des prérequis est disponible, il ne nous reste plus qu’à télécharger l’outil gooGroup nous permettant d’afficher les groupes et les détails d’accès :