Überwachen von Sicherheitsereignissen

Anwendungen, die mit Windows Communication Foundation (WCF) erstellt wurden, können Sicherheitsereignisse (entweder Erfolg, Misserfolg oder beides) mit der Auditing-Funktion protokollieren. Die Ereignisse werden in das Ereignisprotokoll von Windows geschrieben und können in der Ereignisanzeige untersucht werden.

Mithilfe der Überwachung können Administratoren bereits stattgefundene oder gerade laufende Angriffe erkennen. Darüber hinaus können Entwickler mittels Überwachung sicherheitsrelevante Probleme debuggen. Falls beispielsweise berechtigten Benutzern versehentlich aufgrund eines Fehlers in der Konfiguration der Autorisierung oder Überprüfungsrichtlinie der Zugriff verweigert wird, kann die Ursache für diesen Fehler schnell durch Überprüfung des Ereignisprotokolls erkannt und isoliert werden.

Weitere Informationen zur WCF-Sicherheit finden Sie in der Sicherheitsübersicht. Weitere Informationen zur Programmierung von WCF finden Sie unter Grundlegende WCF-Programmierung.

Überwachungsstufe und Überwachungsverhalten

Es gibt zwei Stufen für die Sicherheitsüberwachung:

  • Autorisierung auf Dienstebene: Es wird ein Aufrufer autorisiert.

  • Nachrichtenebene, bei der WCF die Gültigkeit der Nachricht prüft und den Anrufer authentifiziert.

Sie können beide Überwachungsstufen auf Erfolg oder Fehler hin überprüfen. Dies wird als Überwachungsverhalten bezeichnet.

Auswahl des Überwachungsprotokolls

Nachdem Überwachungsstufe und Überwachungsverhalten festgelegt wurden, können Sie (oder ein Administrator) angeben, in welches Überwachungsprotokoll geschrieben werden soll. Zur Auswahl stehen drei Optionen: Standard (Default), Anwendung (Application) und Sicherheit (Security). Wenn Sie Standard auswählen, ist das tatsächlich verwendete Protokoll vom verwendeten Betriebssystem abhängig und davon, ob auf diesem System in das Sicherheitsprotokoll geschrieben werden darf. Weitere Informationen finden Sie unter „Betriebssystem“ weiter unten in diesem Thema.

Zum Schreiben in das Sicherheitsprotokoll ist die Berechtigungsstufe SeAuditPrivilege erforderlich. Standardmäßig verfügen nur die Konten "Lokales System" und "Netzwerkdienst" über diese Berechtigung. Zum Verwalten der Sicherheitsprotokollfunktionen read und delete ist die Berechtigungsstufe SeSecurityPrivilege erforderlich. Standardmäßig verfügen nur Administratoren über diese Berechtigung.

Authentifizierte Benutzer dagegen dürfen das Anwendungsprotokoll anzeigen und in dieses Protokoll schreiben. Windows XP schreibt standardmäßig Überwachungsereignisse in das Anwendungsprotokoll. Dieses Protokoll kann auch persönliche Daten enthalten, die allen authentifizierten Benutzern zugänglich sind.

Unterdrücken von Überwachungsfehlern

Eine weitere Option bei der Überwachung ist die Unterdrückung von Überwachungsfehlern. Standardmäßig wirken sich Überwachungsfehler nicht auf die Anwendung aus. Bei Bedarf können Sie diese Option jedoch auf false setzen. In diesem Fall wird eine Ausnahme ausgelöst.

Programmieren der Überwachung

Sie können das Überwachungsverhalten entweder programmatisch oder über die Konfiguration festlegen.

Überwachen von Klassen

In der folgenden Tabelle werden die Klassen und Eigenschaften vorgestellt, mit denen das Überwachungsverhalten programmiert wird.

Klasse Beschreibung
ServiceSecurityAuditBehavior Ermöglicht das Festlegen von Optionen für die Überwachung als Dienstverhalten.
AuditLogLocation Eine Enumeration, mit der festgelegt wird, in welches Protokoll geschrieben werden soll. Die möglichen Werte sind Standard (Default), Anwendung (Application) und Sicherheit (Security). Bei Auswahl von "Standard" (Default) wird das Protokoll durch das Betriebssystem bestimmt. Weitere Informationen finden Sie unter "Auswählen des Anwendungsereignisprotokolls oder des Sicherheitsereignisprotokolls" weiter unten in diesem Thema.
MessageAuthenticationAuditLevel Legt fest, welche Arten von Ereignissen für die Nachrichtenauthentifizierung auf Nachrichtenebene überwacht werden. Zur Auswahl stehen None, Failure, Success und SuccessOrFailure.
ServiceAuthorizationAuditLevel Legt fest, welche Arten von Ereignissen für die Dienstautorisierung auf Dienstebene überwacht werden. Zur Auswahl stehen None, Failure, Success und SuccessOrFailure.
SuppressAuditFailure Legt fest, was mit der Clientanforderung geschieht, wenn bei der Überwachung ein Fehler auftritt. Zum Beispiel, wenn der Dienst versucht, in das Sicherheitsprotokoll zu schreiben, ohne über die SeAuditPrivilege-Berechtigung zu verfügen. Der Standardwert true gibt an, dass Fehler ignoriert werden und die Clientanforderung normal verarbeitet wird.

Ein Beispiel für die Einrichtung einer Anwendung zur Protokollierung von Audit-Ereignissen finden Sie unter Gewusst wie: Audit von Sicherheitsereignissen.

Konfiguration

Sie können auch die Konfiguration verwenden, um das Überprüfungsverhalten festzulegen, indem Sie einen <serviceSecurityAudit> unter den <Verhaltensweisen> hinzufügen. Sie müssen das Element wie im folgenden Code gezeigt unter <behavior> hinzufügen.

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

Falls bei aktivierter Überwachung auditLogLocation nicht angegeben wird, lautet der standardmäßige Protokollname "Security" bei Plattformen, auf denen in das Sicherheitsprotokoll geschrieben werden darf. Andernfalls wird "Application" verwendet. Nur die Windows Server 2003- und Windows Vista-Betriebssysteme unterstützen das Schreiben in das Sicherheitsprotokoll. Weitere Informationen finden Sie unter „Betriebssystem“ weiter unten in diesem Thema.

Sicherheitsüberlegungen

Wenn böswillige Benutzer erkennen, dass die Überwachung aktiviert ist, können diese Angreifer ungültige Nachrichten senden, die dazu führen, dass Überwachungseinträge geschrieben werden. Wenn das Überwachungsprotokoll auf diese Weise ausgefüllt wird, schlägt das Überwachungssystem fehl. Legen Sie die SuppressAuditFailure-Eigenschaft auf true fest, und verwenden Sie die Eigenschaften der Ereignisanzeige zum Steuern des Überwachungsverhaltens, um diese Gefahr zu umgehen.

Unter Windows XP sind die in das Anwendungsprotokoll geschriebenen Überwachungsereignisse für alle authentifizierten Benutzer sichtbar.

Auswählen des Anwendungsereignisprotokolls oder des Sicherheitsereignisprotokolls

Die folgenden Tabellen enthalten Informationen, die Ihnen dabei helfen sollen zu entscheiden, ob in das Anwendungsereignisprotokoll oder in das Sicherheitsereignisprotokoll geschrieben werden soll.

Betriebssystem

System Anwendungsprotokoll Sicherheitsprotokoll
Windows XP SP2 oder höher Unterstützt Nicht unterstützt
Windows Server 2003 SP1 und Windows Vista Unterstützt Threadkontext muss SeAuditPrivilege verarbeiten

Andere Faktoren

Neben dem Betriebssystem wird die Aktivierung der Protokollierung noch durch andere, in der folgenden Tabelle beschriebene Einstellungen gesteuert.

Faktor Anwendungsprotokoll Sicherheitsprotokoll
Überwachungsrichtlinienverwaltung Nicht zutreffend Das Sicherheitsprotokoll wird nicht nur über die Konfiguration, sondern auch über die Richtlinie der lokalen Sicherheitsautorität (LSA) gesteuert. Darüber hinaus muss die Kategorie "Objektzugriffsversuche überwachen" aktiviert sein.
Standardmäßige Benutzerfreundlichkeit Alle authentifizierten Benutzer können in das Anwendungsprotokoll schreiben, es sind also für Anwendungsprozesse keine weiteren Berechtigungsschritte erforderlich. Der Anwendungsprozess (Kontext) muss über die SeAuditPrivilege-Berechtigung verfügen.

Siehe auch