Partager via


Audit des événements de sécurité

Les applications créées avec Windows Communication Foundation (WCF) peuvent consigner les événements de sécurité (réussite, échec ou les deux) avec la fonctionnalité d’audit. Les événements sont écrits dans le journal des événements système Windows et peuvent être examinés à l’aide de l’Observateur d’événements.

L'audit permet à un administrateur de détecter une attaque que s'est déjà produite ou qui est en cours. En outre, l'audit permet de déboguer des problèmes relatifs à la sécurité. Par exemple, si une erreur dans la configuration de la stratégie d'autorisation ou de vérification refuse accidentellement l'accès à un utilisateur autorisé, un développeur peut la détecter rapidement et en isoler la cause en examinant le journal des événements.

Pour plus d’informations sur la sécurité WCF, consultez Vue d’ensemble de la sécurité. Pour plus d’informations sur la programmation de WCF, consultez Programmation WCF de base.

Niveau d’audit et comportement

Deux niveaux d’audits de sécurité existent :

  • Niveau d’autorisation de service, dans lequel un appelant est autorisé.

  • Niveau de message, dans lequel WCF vérifie la validité des messages et authentifie l’appelant.

Vous pouvez vérifier les deux niveaux d’audit pour la réussite ou l’échec, qui est appelé comportement d’audit.

Emplacement du journal d’audit

Une fois que vous avez déterminé un niveau d’audit et un comportement, vous (ou un administrateur) pouvez spécifier un emplacement pour le journal d’audit. Les trois choix sont les suivants : Par défaut, Application et Sécurité. Lorsque vous spécifiez La valeur par défaut, le journal réel dépend du système que vous utilisez et de la prise en charge de l’écriture dans le journal de sécurité. Pour plus d’informations, consultez la section « Système d’exploitation » plus loin dans cette rubrique.

Pour écrire dans le journal de sécurité, vous devez disposer du SeAuditPrivilegefichier . Par défaut, seuls les comptes De système local et de service réseau disposent de ce privilège. Pour gérer les fonctions read du journal de sécurité et delete nécessite le SeSecurityPrivilege. Par défaut, seuls les administrateurs ont ce privilège.

En revanche, les utilisateurs authentifiés peuvent lire et écrire dans le journal des applications. Windows XP écrit des événements d’audit dans le journal des applications par défaut. Le journal peut également contenir des informations personnelles visibles par tous les utilisateurs authentifiés.

Suppression des échecs d’audit

Une autre option lors de l’audit consiste à supprimer toute défaillance d’audit. Par défaut, un échec d’audit n’affecte pas une application. Si nécessaire, toutefois, vous pouvez définir l’option falsesur , ce qui entraîne la levée d’une exception.

Audit de programmation

Vous pouvez spécifier le comportement d’audit par programmation ou par le biais de la configuration.

Classes d’audit

Le tableau suivant décrit les classes et propriétés utilisées pour programmer le comportement d’audit.

classe Descriptif
ServiceSecurityAuditBehavior Active la définition des options d’audit en tant que comportement de service.
AuditLogLocation Énumération pour spécifier le journal dans lequel écrire. Les valeurs possibles sont Default, Application et Security. Lorsque vous sélectionnez Par défaut, le système d’exploitation détermine l’emplacement du journal réel. Consultez la section « Choix du journal des événements d’application ou de sécurité » plus loin dans cette rubrique.
MessageAuthenticationAuditLevel Spécifie les types d’événements d’authentification de message audités au niveau du message. Les choix sont None, Failure, Success, et SuccessOrFailure.
ServiceAuthorizationAuditLevel Spécifie les types d’événements d’autorisation de service audités au niveau du service. Les choix sont None, Failure, Success, et SuccessOrFailure.
SuppressAuditFailure Spécifie ce qui arrive à la demande du client lors de l’échec de l’audit. Par exemple, lorsque le service tente d’écrire dans le journal de sécurité, mais n’a SeAuditPrivilegepas . La valeur par défaut indique true que les échecs sont ignorés et que la demande du client est traitée normalement.

Pour obtenir un exemple de configuration d’une application pour journaliser les événements d’audit, consultez Guide pratique pour auditer les événements de sécurité.

Paramétrage

Vous pouvez également utiliser la configuration pour spécifier le comportement d’audit en ajoutant un <serviceSecurityAudit> sous les <comportements>. Vous devez ajouter l’élément sous un <comportement> , comme indiqué dans le code suivant.

<configuration>  
  <system.serviceModel>  
    <behaviors>  
      <behavior>  
        <!-- auditLogLocation="Application" or "Security" -->  
        <serviceSecurityAudit  
                  auditLogLocation="Application"  
                  suppressAuditFailure="true"  
                  serviceAuthorizationAuditLevel="Failure"  
                  messageAuthenticationAuditLevel="SuccessOrFailure" />
      </behavior>  
    </behaviors>  
  </system.serviceModel>  
</configuration>  

Si l’audit est activé et qu’aucun auditLogLocation nom de journal n’est spécifié, le nom du journal par défaut est « Sécurité » pour la plateforme prenant en charge l’écriture dans le journal de sécurité ; sinon, il s’agit du journal « Application ». Seuls les systèmes d’exploitation Windows Server 2003 et Windows Vista prennent en charge l’écriture dans le journal de sécurité. Pour plus d’informations, consultez la section « Système d’exploitation » plus loin dans cette rubrique.

Considérations relatives à la sécurité

Si un utilisateur malveillant sait que l’audit est activé, cet attaquant peut envoyer des messages non valides qui provoquent l’écriture d’entrées d’audit. Si le journal d’audit est rempli de cette façon, le système d’audit échoue. Pour atténuer ce problème, définissez la SuppressAuditFailure propriété sur true et utilisez les propriétés de l’Observateur d’événements pour contrôler le comportement d’audit.

Les événements d’audit écrits dans le journal des applications sur Windows XP sont visibles par n’importe quel utilisateur authentifié.

Choix entre les journaux des événements d’application et de sécurité

Les tableaux suivants fournissent des informations pour vous aider à choisir si vous souhaitez vous connecter à l’application ou au journal des événements de sécurité.

Système d’exploitation

Système Journal des applications Journal de sécurité
Windows XP SP2 ou version ultérieure Soutenu Non prise en charge
Windows Server 2003 SP1 et Windows Vista Soutenu Le contexte de thread doit posséder SeAuditPrivilege

Autres facteurs

Outre le système d’exploitation, le tableau suivant décrit d’autres paramètres qui contrôlent l’activation de la journalisation.

Facteur Journal des applications Journal de sécurité
Gestion des stratégies d’audit Non applicable. En plus de la configuration, le journal de sécurité est également contrôlé par la stratégie de l’autorité de sécurité locale (LSA). La catégorie « Auditer l’accès aux objets » doit également être activée.
Expérience utilisateur par défaut Tous les utilisateurs authentifiés peuvent écrire dans le journal des applications. Par conséquent, aucune étape d’autorisation supplémentaire n’est nécessaire pour les processus d’application. Le processus d’application (contexte) doit avoir SeAuditPrivilege.

Voir aussi