Comment activer l’audit de SQL Server et consulter le journal d’audit

Afin d’identifier les problèmes et les failles de sécurité, il est essentiel d’auditer Microsoft SQL Server. De plus, l’audit de SQL Server fait partie des exigences de conformité aux réglementations telles que PCI DSS et HIPAA.

La première étape consiste à définir ce qui doit faire l’objet d’un audit. Vous pouvez, par exemple, auditer les connexions des utilisateurs, la configuration des serveurs, les modifications de schéma et de données d’audit. Ensuite, vous devez choisir quelles fonctionnalités d’audit de sécurité utiliser. Parmi les fonctionnalités utiles, mentionnons les suivantes :

  • Audit C2
  • Conformité aux critères communs
  • Audit des connexions
  • Audit de SQL Server
  • Trace SQL
  • Événements étendus
  • Capture des données de modification
  • Déclencheurs DML, DDL et de connexion

Cet article s’adresse aux administrateurs de bases de données qui envisagent d’utiliser l’audit C2, la conformité aux critères communs et l’audit de SQL Server. Nous n’aborderons pas les outils d’audit tiers, bien qu’ils puissent être d’une grande utilité, surtout pour des environnements vastes et dans les secteurs réglementés.

Activation de l’audit C2 et de la conformité aux critères communs

Si actuellement, vous n’auditez pas SQL Server, le plus simple est de commencer par activer l’audit C2. L’audit C2 est une norme mondialement reconnue, qui peut être activée dans SQL Server. Il contrôle des événements tels que les connexions utilisateur, les procédures stockées, la création et la suppression d’objets. Mais c’est tout ou rien : vous ne pouvez pas choisir ce qu’il vérifie, et il peut générer beaucoup de données. De plus, l’audit C2 est en mode de maintenance et risque d’être supprimé dans une version ultérieure de SQL Server.

La conformité aux critères communs est une nouvelle norme qui remplace l’audit C2. Elle a été développée par l’Union européenne et peut être activée dans les éditions Enterprise et Datacenter de SQL Server 2008 R2 et ultérieures. Mais elle peut entraîner des problèmes de performance si votre serveur n’est pas suffisamment puissant pour absorber la surcharge.

Voici comment activer l’audit C2 dans SQL Server 2017 :

1. Ouvrez le SQL Server Management Studio.

2. Connectez-vous au moteur de la base de données pour laquelle vous souhaitez activer l’audit C2. Dans la boîte de dialogue « Connect to Server » (Connexion au serveur), assurez-vous que le type de serveur est « Database Engine » (Moteur de base de données), puis cliquez sur Connect (Connexion).

3. Dans le volet de gauche de l’Object Explorer (Explorateur d’objets), cliquez avec le bouton droit de la souris sur votre instance SQL Server, en haut, et sélectionnez Properties (Propriétés) dans le menu.

4. Dans la fenêtre Server Properties (Propriétés du serveur), cliquez sur Security (Sécurité) sous « Select a page » (Sélectionner une page).

5. Dans la page Security (Sécurité), vous pouvez configurer la surveillance des connexions. Par défaut, seules les connexions échouées sont enregistrées, mais vous pouvez tout aussi bien auditer les connexions réussies uniquement, ou les connexions échouées et réussies.

SQL Server Audit Configuring Access Auditing

Figure 1. Configurer l’audit des accès

6. Sous Options, cochez la case « Enable C2 audit tracing » (Activer le suivi d’audit C2).

7. Pour activer l’audit de conformité aux critères communs C2, cochez « Enable Common Criteria compliance » (Activer la conformité aux critères communs).

La conformité aux critères communs est une norme souple qui peut être appliquée avec différents niveaux d’assurance d’évaluation (EAL), de 1 à 7. Les EAL élevés correspondent à un processus de vérification plus exigeant. En cochant « Enable Common Criteria compliance » (Activer la conformité aux critères communs) dans SQL Server, vous activez le niveau EAL1 de conformité aux critères communs. Il est possible de configurer manuellement SQL Server pour EAL4+.

L’activation de la conformité aux critères communs modifie le comportement de SQL Server. Par exemple, les autorisations DENY (REFUSER) de niveau table auront priorité sur les autorisations GRANT (ACCORDER) de niveau colonne, et les connexions réussies et échouées seront toutes deux auditées. De plus, la protection des informations résiduelles (RIP) est activée ; celle-ci écrase les allocations de mémoire avec un motif de bits avant qu’elles ne soient utilisées par une nouvelle ressource.

8. Cliquez sur OK.

9. Selon les options sélectionnées, il se peut que vous soyez invité à redémarrer SQL Server. Si tel est le cas, cliquez sur OK dans la boîte de dialogue d’avertissement. Si vous avez activé la conformité aux critères communs C2, redémarrez le serveur. Sinon, cliquez à nouveau avec le bouton droit de la souris sur votre instance SQL Server dans l’Explorateur d’objets et sélectionnez Restart (Redémarrer) dans le menu. Dans la boîte de dialogue d’avertissement, cliquez sur Yes (Oui) pour confirmer que vous voulez redémarrer SQL Server.

Activer l’audit de SQL Server

Il est possible d’activer l’audit de SQL Server au lieu de l’audit C2, ou vous pouvez également choisir d’activer les deux. Les objets d’audit de SQL Server peuvent être configurés de manière à collecter les événements au niveau du serveur ou de la base de données SQL Server.

Créer un objet d’audit de serveur

Créons à présent un objet d’audit de SQL Server de niveau serveur :

1. Dans le volet de gauche de l’Explorateur d’objets, développez Security (Sécurité).

2. Cliquez avec le bouton droit sur Audits et sélectionnez « New Audit… » (Nouvel audit…) dans le menu. Cela aura pour effet de créer un nouvel objet d’audit de SQL Server pour l’audit de niveau serveur.

3. Dans la fenêtre « Create Audit » (Créer un audit), donnez un nom aux paramètres d’audit dans le champ « Audit name » (Nom de l’audit).

4. Spécifiez ce qui doit se passer si l’audit de SQL Server échoue, en utilisant l’option « On Audit Log Failure » (En cas d’échec du journal d’audit). Vous pouvez choisir parmi les options suivantes : Continue (Continuer), « Shut down server » (Arrêter le serveur) ou « Fail operation », qui interrompt les opérations de base de données en cours d’audit (les autres opérations se poursuivent).

SQL Server Audit Creating a server-level SQL Server audit object

Figure 2. Créer un objet d’audit de SQL Server de niveau serveur

5. Dans le menu déroulant « Audit destination » (Destination de l’audit), vous pouvez choisir d’écrire la piste d’audit de SQL Server dans un fichier ou d’auditer les événements dans le journal de sécurité Windows ou dans le journal des événements des applications. Si vous choisissez d’écrire dans un fichier, vous devez spécifier le chemin d’accès de ce fichier.

Notez que si vous écrivez dans le journal des événements de sécurité de Windows, SQL Server devra disposer de l’autorisation adéquate. Par souci de simplicité, sélectionnez le journal des événements des applications. Vous pouvez également inclure un filtre dans l’objet d’audit, afin d’obtenir un nombre limité de résultats ; les filtres doivent être écrits en Transact-SQL (T-SQL).

6. Cliquez sur OK.

7. La nouvelle configuration d’audit se trouve désormais dans l’Explorateur d’objets sous Audits. Cliquez avec le bouton droit sur la nouvelle configuration d’audit et sélectionnez « Enable Audit » (Activer l’audit) dans le menu.

8. Cliquez sur Close (Fermer) dans la boîte de dialogue Enable Audit.

Créer un objet d’audit de base de données

Pour créer un objet d’audit de SQL Server pour un audit de niveau base de données, le processus est un peu différent et vous devez d’abord créer au moins un objet d’audit de niveau serveur.

1. Dans l’Object Explorer (Explorateur d’objets), développez le dossier Databases (Bases de données) et développez la base de données dont vous souhaitez configurer l’audit.

2. Développez le dossier Security (Sécurité), cliquez avec le bouton droit de la souris sur « Database Audit Specifications » (Spécifications d’audit de base de données) et sélectionnez « New Database Audit Specification… » (Nouvelle spécification d’audit de base de données…) dans le menu.

SQL Server Audit Creating a server audit specification for database-level auditing

Figure 3. Créer une spécification d’audit de serveur pour un audit de niveau base de données

3. Dans la fenêtre Properties (Propriétés) sous Actions, servez-vous des menus déroulants pour configurer un ou plusieurs types d’actions d’audit, en sélectionnant les instructions que vous voulez auditer (par exemple DELETE/SUPPRIMER ou INSERT/INSÉRER), la classe d’objets sur laquelle l’action est effectuée, etc.

4. Une fois cela fait, cliquez sur OK, puis activez l’objet d’audit en cliquant avec le bouton droit et en sélectionnant « Enable Database Audit Specification » (Activer la spécification d’audit de base de données).

Afficher les journaux d’audit de SQL Server

Les journaux d’audit C2 de SQL Server sont stockés dans le répertoire de données par défaut de l’instance SQL Server. Chaque fichier journal peut contenir un maximum de 200 mégaoctets. Lorsque cette limite est atteinte, un nouveau fichier est automatiquement créé.

Une solution native est recommandée pour consulter les journaux d’audit de SQL Server : il s’agit de Log File Viewer (Visionneuse du fichier journal). Pour l’utiliser, procédez comme suit :

1. Dans SQL Server Management Studio, dans l’Explorateur d’objets, développez Security (Sécurité).

2. Cliquez avec le bouton droit sur l’objet d’audit que vous souhaitez consulter et sélectionnez « View Audit Logs » (Afficher les journaux d’audit) dans le menu.

3. Dans Log File Viewer, les journaux sont affichés du côté droit. Que les journaux soient écrits dans un fichier ou dans le journal des événements Windows, Log File Viewer les affiche.

4. En haut, vous pouvez cliquer sur Filter (Filtrer) pour préciser quelles entrées du journal sont affichées. Les fichiers journaux de SQL Server sont enregistrés au format .sqlaudit et ne sont pas lisibles. Mais dans Log File Explorer (Explorateur de fichiers journaux), vous pouvez cliquer sur Export (Exporter) pour enregistrer les journaux au format .log délimité par des virgules.

SQL Server Audit Reviewing SQL Server audit logging in the Log File Viewer

Figure 4. Vérifier la journalisation de l’audit de SQL Server dans Log File Viewer

Tenez-vous informé des modifications à votre Microsoft SQL Server