Comment obtenir les horaires des sessions de connexion des utilisateurs

Si vous êtes travailleur du savoir, vous avez sans doute besoin d’un compte utilisateur pour être productif dans votre environnement de travail. Et vous devez probablement utiliser ce compte pour vous connecter à votre bureau et à vos appareils mobiles. Si vous ne le faites pas, vous n’allez peut-être pas rester très longtemps dans votre entreprise.

En tant qu’administrateurs informatiques, nous voyons en permanence des utilisateurs qui se connectent et se déconnectent. Si l’audit d’Active Directory (AD) est correctement configuré, chacun de ces événements de connexion/déconnexion est enregistré dans le journal des événements de la source de l’événement. Avec un peu d’habileté en rédaction de script ou à l’aide de logiciel spécialisé, nous pouvons assez facilement extraire tous ces événements de connexion/déconnexion, puisque chacun est assorti d’un identifiant unique. On ne peut cependant pas savoir pendant combien de temps un compte utilisateur particulier s’est connecté. Avec un peu de patience, en fouillant le journal des événements, cela est tout de même possible.

Pour connaître les horaires des sessions utilisateur, il faut d’abord activer trois politiques d’audit avancées : Auditer la fermeture de session, Auditer l’ouverture de session et Auditer d’autres événements d’ouverture/fermeture de session. La combinaison de ces trois politiques permet d’obtenir tous les événements d’ouverture/fermeture de session typiques, mais aussi les événements de verrouillage/déverrouillage des postes de travail et même les connexions/déconnexions de RDP. Il est ainsi possible d’obtenir tous les événements de début et fin de session.

Lorsque ces politiques sont activées dans un objet de stratégie de groupe et appliquées à un ensemble d’ordinateurs, divers identifiants d’événements commencent à être générés. Il s’agit de :

  • Ouverture de session – 4624 (Journal des événements de sécurité)
  • Fermeture de session – 4647 (Journal des événements de sécurité)
  • Démarrage – 6005 (Journal des événements système)
  • Reconnexion à la session RDP – 4778 (Journal des événements de sécurité)
  • Déconnexion de la session RDP – 4779 (Journal des événements de sécurité)
  • Verrouillé – 4800 (Journal des événements de sécurité)
  • Déverrouillé – 4801 (Journal des événements de sécurité)

Vous avez remarqué l’événement Démarrage ? À quoi sert-il ? Et si la prise d’alimentation de l’ordinateur venait à être débranchée alors qu’un utilisateur est connecté ? Comment saurions-nous quand cet événement a eu lieu ? Ce n’est certes pas une donnée idéale, mais c’est la seule date/heure dont nous disposons pour indiquer quand cela s’est produit.

Une fois rassemblés tous ces identifiants, nous devons associer l’événement de début de session à l’événement de fin de session le plus proche. Mais si plusieurs utilisateurs se sont connectés à un même ordinateur ? Pour les différencier, nous pouvons utiliser le champ ID de connexion. Il s’agit d’un champ unique pour chaque session de connexion. Si nous arrivons à trouver une heure de début de session, puis l’heure de fin de session suivante avec le même ID de connexion dans le journal des événements, nous connaissons la durée totale de la session de cet utilisateur.

Dans cet exemple, vous pouvez voir que le compte LAB\Administrator s’est connecté (ID 4624) le 27/8/2015 à 17h28 avec l’ID de connexion 0x146FF6. J’ai ensuite consulté les messages suivants du journal des événements jusqu’à ce que je trouve un événement de fin de session (ID 4634) affichant le même ID de connexion, à 17h30 le même jour. Connaissant cet ID de connexion, j’ai pu déduire que le compte LAB\Administrator s’était connecté pendant environ trois minutes.

Ceci n’est qu’une brève illustration de scénarios réels de connexion/déconnexion. Vous constaterez que lorsque vous examinez un ordinateur « dans la vraie vie », vous ne pouvez pas toujours vous appuyer sur les événements de connexion/déconnexion pour trouver la durée des sessions utilisateur. Plusieurs scénarios peuvent survenir ; un utilisateur peut par exemple verrouiller son ordinateur puis revenir le déverrouiller. Le courant a pu être coupé alors que son ordinateur était verrouillé. Il n’y a alors pas d’événement de déverrouillage, seulement un événement de démarrage. Ce sont les aléas que vous devez surveiller pour pouvoir déterminer avec précision l’historique des sessions utilisateur.