Journaux d'audit Google Workspace : conservation et limites
Ce que les journaux d'audit Google Workspace ne disent pas : 6 mois de conservation, délais, plafonds d'export, CSV contre API Reports, trous liés aux licences.
En bref. Les journaux d'audit Workspace sont de bonnes preuves, mais leurs bords sont nets. La conservation est d'environ six mois pour les sources utiles en enquête. Les délais vont de quelques minutes à quelques heures (plusieurs jours pour la fin d'un Takeout). Les exports de la console sont plafonnés à 100 000 lignes. Les exports CSV perdent des champs que l'API Reports conserve (informations réseau, paramètres imbriqués). Les filtres Gmail ne figurent pas du tout dans le journal d'audit. Et selon la licence, certaines activités ne sont pas journalisées. Écrivez ces limites dans chaque rapport, et ne qualifiez jamais de « sain » un jeu de données incomplet.
C'est pour cette raison que l'analyseur affiche, à côté de son verdict, les sources que vous n'avez pas fournies. Cet article est la version longue de cet avertissement.
Conservation : six mois, non prolongeables sur place
Le tableau conservation des données et délais de Google indique six mois pour les événements Admin, User (connexions), jetons OAuth, Gmail, Drive, SAML, Takeout et Groups. Six mois, c'est aussi la valeur générale pour les données de l'API Reports. La référence de l'API Reports limite par ailleurs la plupart des applications à 180 jours d'historique par requête. Les administrateurs ne peuvent ni supprimer les événements, ni modifier la durée pendant laquelle Google les garde.
En pratique :
- Une intrusion découverte tard peut commencer avant vos données. Les acteurs BEC peuvent rester des semaines dans une boîte. Si la première connexion à risque date de plus de six mois, vous verrez la persistance mais pas l'accès initial.
- Exportez au début de l'enquête, pas à la fin. Chaque jour de retard fait glisser la fenêtre.
- Pour une conservation longue, transférez les journaux vers un espace que vous maîtrisez. Google documente le partage d'une partie des journaux d'audit Workspace avec Cloud Logging, et des exports vers BigQuery existent dans certaines éditions.
Délais : l'absence d'événement n'est pas l'absence d'activité
Selon le même tableau de Google :
| Source | Délai documenté |
|---|---|
| Connexions, Admin, Gmail, Drive, SAML | Quasi temps réel (quelques minutes) |
| Événements de compte utilisateur | Des dizaines de minutes |
| Journal des jetons OAuth | Quelques heures |
| Groups | Des dizaines de minutes, jusqu'à quelques heures |
| Takeout | Événements de démarrage en quasi temps réel. Fin « jusqu'à plusieurs jours » selon la taille |
Si vous exportez une heure après le clic sur le lien d'hameçonnage, l'autorisation OAuth n'y est peut-être tout simplement pas encore. Réexportez le lendemain avant de conclure « aucune application n'a été autorisée ».
Plafonds et formats d'export
Plafonds de lignes. Les exports de la console sont limités à 100 000 lignes dans les éditions standard et à 30 millions avec l'outil d'enquête de sécurité (aide sur les événements du journal Admin). Un journal Drive d'un mois pour toute l'organisation dépasse facilement ce seuil. Découpez par date ou par utilisateur, ou passez par l'API.
CSV contre API Reports. Les deux portent les mêmes événements, pas le même niveau de détail :
| CSV de la console | JSON de l'API Reports | |
|---|---|---|
| Noms d'événements | Libellés d'affichage, localisés (« Successful login ») | Noms d'API stables (login_success) |
| Colonnes | Seulement celles choisies dans Manage columns | Tous les paramètres |
| Informations réseau (ASN, région) | Seulement si la colonne existe et a été choisie | networkInfo sur chaque enregistrement |
| Données imbriquées (infos message Gmail, scopes OAuth) | Aplaties ou perdues | Conservées |
| Format de date | Dépend de la langue de la console et du navigateur | RFC 3339, UTC |
| Volume | Plafonné | Paginé, scriptable |
Conséquences pour l'analyseur. Il retraduit les libellés anglais de la console en noms d'API : les exports d'une console dans une autre langue ne sont donc pas encore reconnus. Les règles fondées sur le pays (nouveau pays, voyage impossible) ne tournent que si les enregistrements portent une région, c'est-à-dire en pratique avec l'API Reports ou une colonne pays. Il n'y a pas de géolocalisation d'IP. Quand les dates d'un CSV n'ont pas de fuseau horaire, l'outil le signale.
La fenêtre de 30 jours de Gmail. Pour gmail, l'API Reports exige un startTime et un endTime espacés de 30 jours au plus (référence). Les scripts qui l'oublient reçoivent des erreurs, ou des données partielles si les erreurs sont ignorées.
Ce que le journal d'audit n'enregistre pas
- Filtres Gmail, délégués, « envoyer en tant que ». Ce sont des paramètres de boîte, lisibles via l'API Gmail ou les pages de paramètres de l'utilisateur, pas des événements d'audit. Le transfert est à moitié couvert : le journal des comptes utilisateur enregistre
email_forwarding_out_of_domainquand il est activé. Voir les règles de transfert Gmail. - Le contenu des messages. Le journal Gmail contient des métadonnées (objet, expéditeur, destinataires, type d'événement), pas le corps. Le contenu exige Vault ou la boîte elle-même, et un cadre juridique.
- Ce qu'une application OAuth a fait des données. Le journal des jetons montre les appels et méthodes API, pas le contenu récupéré.
- L'activité hors de Google. Une fois un fichier téléchargé ou un e-mail transféré, la suite se passe hors de vos journaux.
- Les actions sous certaines licences. En 2023, Mitiga a signalé que l'activité dans le Drive personnel des utilisateurs sans licence Workspace payante (Cloud Identity Free) n'était pas journalisée. Vérifiez ce que vos éditions enregistrent avant de vous appuyer sur l'absence d'événements Drive.
Les heuristiques ont des marges d'erreur
Les détections sont des règles, pas la vérité :
- Faux positifs. Salariés en déplacement, sorties VPN et proxys d'entreprise hébergés chez des fournisseurs cloud, applications légitimes aux scopes larges (sauvegarde, signature électronique, synchronisation CRM), comptes créés par l'informatique.
- Faux négatifs. Un attaquant qui passe par un proxy résidentiel dans le pays de la victime ne déclenche ni la règle d'ASN d'hébergeur ni celle du nouveau pays. Un attaquant patient qui télécharge 15 fichiers par heure reste sous le seuil de 20 en 15 minutes. Un filtre utilisant des mots absents de la liste financière ne sera pas classé comme « masquant le courrier financier ». Il apparaîtra tout de même parmi les paramètres.
- Fenêtres de corrélation. Les règles de chaîne regardent 14 jours en avant sur le même compte. Une campagne qui passe d'un compte à l'autre (hameçonner un utilisateur, pivoter vers un autre) demande un humain pour relier les points, à l'aide du pivot par entité sur les IP et les applications.
Comment le rédiger
Un rapport défendable dit ce qui a été examiné et ce qui ne l'a pas été :
- Sources et période, par journal (le panneau de couverture de l'outil vous les donne).
- Lacunes connues : limite de conservation, sources manquantes, CSV sans données réseau, trous liés aux licences.
- Constats avec références aux preuves (ID d'événements, heures, IP).
- Conclusions formulées à hauteur des preuves : « aucun indice de X dans les journaux examinés », pas « X n'a pas eu lieu ».
À lire aussi
- Comment exporter les journaux d'audit Google Workspace
- L'analyse pas à pas
- Le guide d'investigation
- Glossaire : API Reports
FAQ
Combien de temps Google Workspace conserve-t-il les journaux d'audit ?
Le tableau de conservation de Google indique six mois pour les événements Admin, User (connexions), jetons OAuth, Gmail, Drive, SAML, Takeout et Groups, et six mois comme valeur générale pour les données de l'API Reports. Les administrateurs ne peuvent pas prolonger cette durée sur place. Pour garder plus longtemps, exportez ou transférez vers Cloud Logging ou BigQuery.
Pourquoi ne vois-je pas les derniers événements dans le journal d'audit ?
À cause des délais. La plupart des sources arrivent en quelques minutes, mais Google documente quelques heures pour les jetons OAuth, des dizaines de minutes (jusqu'à quelques heures) pour Groups et jusqu'à plusieurs jours pour la fin d'un Takeout. Réexportez plus tard avant de conclure que quelque chose n'a pas eu lieu.