Cet article à pour objectif de vous présenter simplement l’outil Microsoft LogParser afin de réaliser des rapports d’audits sous un format HTML.

Dans le cadre de mes missions chez divers clients ne disposants pas d’outils d’audits centraliser souvent payant, il est reste essentiel de réaliser divers audits sur les serveurs Microsoft afin de répondre aux besoins initiaux.

Dans les petites et moyennes entreprises aujourd’*** plusieurs personnes disposent de droits de création, modification et suppressions d’objets dans l’Active Directory. Il est donc intéressant de pouvoir disposer rapidement d’informations sur les actions réalisées.

Dans cet article nous allons effectuer un Audit de « Qui fait quoi sur l’Active Directory » et le sortir un rapport en format HTML.

Comment Auditer les actions de l’Active Directory :

Avant de nous lancer dans la réalisation technique, voici un petit aperçu du résultat final :

clip_image002

Dans cet extrait de rapport, un objet de type « contact » à été crée par l’utilisateur « Admin1 » sur le contrôleur de domaine « AD01.domaine.local » le « 20/07/2012 à 17h26 » portant le nom de « TOTO ».

Cet extrait de rapport présente les 3 actions majeurs que nous allons auditer.

- Création d’objets Active Directory.

- Modification d’objets Active Directory.

- Suppression d’objets Active Directory.

Présentation des colonnes du rapport d’audit :

Colonne

Description

Serveur

Représente le contrôleur de domaine qui à traiter l’action.

Date et Heure

Représente la date d’exécution de l’action

Utilisateur Domaine

Représente l’utilisateur qui à exécuter l’action

Action

Représente l’action (création, modification, suppression)

AD-Objet

Path de l’objet Active Directoy

Type-Objet

Type d’objet Active Directory

Propriété

Propriété de l’objet modifié

Valeur

Valeur Enregistrée

Activation de l’Audit par GPO :

Pour réaliser cette GPO et comprendre le fonctionnement de l’Audit d’un domaine Active Directory, je vous conseil l’excellent article Microsoft Technet ci-dessous :

http://technet.microsoft.com/fr-fr/library/cc731607(v=ws.10)

Etape :

Propriété de l’objet modifié

Valeur

clip_image004

- Configurer votre GPO afin d’activer « Audit Directory Change »

clip_image006

- Enregistrer votre GPO et lier celle-ci à Unité d’Organisation (OU) Où sont stocké vos contrôleurs de domaine.

 

Configurer l’audit sur votre Domaine:

La GPO créé ne fait qu’activer l’audit sur vos contrôleurs de domaine, nous allons donc maintenant demander au service d’audit de nous envoyer toutes les informations sur les actions effectuées dans notre Active Directory.

Nous allons donc ajouter le compte « Tout le monde » ou « Everyone » (selon version de votre OS) dans les paramètres d’audit de l’Active Directory et configurer tout les types d’actions à auditer.

- Lancer la console « Active Directory Users and Computers »

clip_image008

- Dans la console « Active Directory Users and Computers », entrer dans les propriétés de votre domaine (cf : image ci-dessous)

clip_image010

- Dans les Propriétés du domaine, sélectionner l’onglet « Sécurité » puis cliquer sur « Avancer ».

- Dans la fenêtre des propriétés Avancer, sélectionner l’onglet « Audit » et cliquer sur « Add ».

clip_image012

- Dans la fenêtre d’ajout de compte, ajouter le compte « Tout le monde » ou « Everyone » (selon version de votre OS) puis cliquer sur « OK »

- Dans la configuration de l’audit sélectionner toutes les actions à Auditer et cliquer sur « OK » autant de fois que nécessaires pour valider la configuration. (cf : image ci-dessous)

clip_image014

Nous venons de configurer par GPO l’activation de l’audit sur l’ensemble de votre domaine et configurer les comptes qui doivent être audités. Dans notre cas, nous auditons tous les comptes qui effectuent des tentatives d’actions sur l’Active Directory.

 

L’Audit :

Bon c’est pas mal tout cela mais les informations d’Audit cela ce trouvent où ?

- Microsoft enregistre toutes les informations d’audit dans les journaux d’événements sous des ID spécifiques.

Ok, Mais comment savoir quel ID correspond à l’audit de notre AD ?

- Microsoft propose de télécharger un fichier sous un format Excel qui référence les ID des journaux d’événement.

Le lien  http://www.microsoft.com/en-us/download/details.aspx?id=21561

Voici un petit extrait qui nous sera bien utile :

 

DS Access

Directory Service Changes

5136

A directory service object was modified.

DS Access

Directory Service Changes

5137

A directory service object was created.

DS Access

Directory Service Changes

5138

A directory service object was undeleted.

DS Access

Directory Service Changes

5139

A directory service object was moved.

DS Access

Directory Service Changes

5141

A directory service object was deleted.

Vous l’aurez donc compris, les événements enregistrés avec les ID 5136, 5137, 5139, 5139, 5141 nous permettrons de pouvoir connaître les actions réalisées.

Seulement voila les journaux d’événement enregistrent seulement les événements d’audit que le serveur à traité, et dans une infrastructure Active Directory il y plusieurs domaines contrôleurs. Il serait long de devoir détailler tous les logs d’audit de tous nos contrôleurs de domaines afin de trouver l’information recherchée.

 

Microsoft LogParser :

Microsoft propose l’outil LogParser qui permet de pouvoir lire et traiter des logs.

Il serait bien long de décrire toutes les possibilités de cet outil mais en voici quelques unes que nous allons utiliser.

- Lecture des journaux d’événement.

- Ecriture des requêtes de filtrage des logs en format SQL.

- Sortie de traitement dans un fichier HTML.

Voir : http://technet.microsoft.com/fr-fr/scriptcenter/dd919274.aspx

Installation de LogParser 2.2 :

L’installation de l’outil ne vous posera aucuns problèmes particuliers sauf que je vous recommande personnellement d’installer l’outil dans un répertoire de type C:\Log-Parser-2.2.

Cela vous permettra d’accéder plus simplement à l’outil dans vos scripts de développement.

Comment accéder aux journaux d’événement avec LogParser :

Pour effectuer cela nous allons créer 2 fichiers dans C:\AUDIT.

Fichier Audit-AD.sql :

Select 
    COMPUTERNAME AS [SERVEUR], 
    TimeGenerated As [Date-Heure],
    EXTRACT_TOKEN(Strings,3,'|') As Utilisateur,
     EXTRACT_TOKEN(Strings,6,'|') As Domaine,
    CASE Eventid
              WHEN 5136 THEN 'Modification'
              WHEN 5137 THEN 'Creation'
              WHEN 5138 THEN 'Recuperation'
              WHEN 5139 THEN 'Deplacement'
              WHEN 5141 THEN 'Suppression'            

    END AS Action,
     EXTRACT_TOKEN(Strings,8,'|') As AD-Objet, 
     EXTRACT_TOKEN(Strings,10,'|') As Type-Objet,
     EXTRACT_TOKEN(Strings,11,'|') As Propriéte,
    SUBSTR(EXTRACT_TOKEN(Strings,13,'|'),0,30) As Valeur
    
FROM 
\\AD01\security,\\AD02\security,\\AD03\security
Where Eventid=5136 OR Eventid=5137 OR Eventid=5138 OR Eventid=5139 OR Eventid=5141 
ORDER BY [Date-Heure] DESC

Ce fichier est la requête SQL que nous allons appliquer aux journaux d’événements de sécurité.

Dans cet exemple je dispose de 3 contrôleurs Active Directory, AD01, AD02, AD03, l’accès de la requête aux contrôleurs de domaines s’effectue via la ligne :

FROM

\\AD01\security,\\AD02\security,\\AD03\security

Nous souhaitons récupérer les ID 5136, 5137, 5139, 5139, 5141, cela s’effectue via la ligne :

Where Eventid=5136 OR Eventid=5137 OR Eventid=5138 OR Eventid=5139 OR Eventid=5141

Les informations à récupérer dans les logs sélectionnées sont dans la balise SELECT.

Fichier Audit-AD.TPL :

<lpheader><html><head><title>Audit Active Directory</title></head>
<body><h1>Audit ActiveDirectory</h1>
<TABLE BORDER="1" style="font-family: Tahoma; font-size: 8pt" WIDTH=95% >   
<th VALIGN="left">%fieldname_1%</th>
<th VALIGN="left">%fieldname_2%</th>
<th VALIGN="left">%fieldname_3% %fieldname_4%</th>
<th VALIGN="left">%fieldname_5%</th>
<th VALIGN="left">%fieldname_6%</th>
<th VALIGN="left">%fieldname_7%</th>
<th VALIGN="left">%fieldname_8%</th>
<th VALIGN="left">%fieldname_9%</th>
</tr>
</lpheader>
<lpbody>
  <tr>
     <td><tt>%field_1%</tt></td>
     <td><tt>%field_2%</tt></td>
     <td><tt>%field_3% %field_4%</tt></td>
     <td><tt>%field_5%</tt></td>
     <td><tt>%field_6%</tt></td>
     <td><tt>%field_7%</tt></td>
     <td><tt>%field_8%</tt></td>
     <td><tt>%field_9%</tt></td>
   </tr>
</lpbody>
<lpfooter>
</table>
</body>
</html>
</lpfooter>

Ce fichier est le « Template » de sortie, il permet de structurer les réponses de LogParser dans un fichier au format HTML.

Lancement de la commande

C:\Log-Parser-2.2\LogParser -i:EVT file:C:\Audit\audit-ad.sql -o:TPL -tpl:C:\Audit\EVT\audit-ad.tpl -stats:off > C:\Audit\Audit-AD.HTML

Résultat de la commande est un fichier HTML nommé Audit-AD.HTML dans C:\Audit

clip_image015

Grace à cette commande, nous disposons d’un rapport d’Audit simple et rapide à étudier.

Le logiciel LogParser vous permet de réaliser bien d’autres rapports d’audits sous plein d’autres formats. Cet outil n’est pas simple a prendre en main au début mais avec un peux d’utilisation celui-ci deviendra rapidement un allier dans vos audit.

Voici quelques exemples réalisés avec l’outil LogParser 2.2 :

Depuis un serveur Exchange 2007, rapport graphique des mails reçu / heure :

clip_image017

Nombre des Hits sur un IIS :

clip_image019

Lien : http://blogs.iis.net/rakkimk/archive/2008/11/18/logparser-useful-logparser-scripts.aspx

 

Conclusion :

En conclusion la réalisation d’un rapport d’audit au format html demande un peux d’utilisation de l’outil LogParser mais vous permettra à de disposer d’informations simple à étudier afin de capitaliser et améliorer vos environnements.

J’espère que cet article vous aura plu. Je reste a votre écoute si vous avez des questions sur celui-ci ainsi que sur sa mise en œuvre.

A bientôt sur le TechNet Microsoft.

 

Liens de l’article:

Activation de l’Audit sur Active Directory : http://technet.microsoft.com/fr-fr/library/cc731607(v=ws.10)

Microsoft Logparser 2.2 : http://www.microsoft.com/en-us/download/details.aspx?id=24659

Security Audit Events for Windows 2008R2 : http://www.microsoft.com/en-us/download/details.aspx?id=21561