Freigeben über


Überwachen von Sicherheitsereignissen

Mit Windows Communication Foundation (WCF) erstellte Anwendungen können Sicherheitsereignisse (entweder Erfolg, Fehler oder beides) mit dem Überwachungsfeature protokollieren. Die Ereignisse werden in das Windows-Systemereignisprotokoll geschrieben und können mithilfe 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 unter Security Overview. Weitere Informationen zum Programmieren von WCF finden Sie unter "Grundlegende WCF-Programmierung".

Überwachungsstufe und -verhalten

Es gibt zwei Sicherheitsüberwachungsebenen:

  • Dienstautorisierungsstufe, in der ein Anrufer autorisiert ist.

  • Nachrichtenebene, auf der WCF die Gültigkeit von Nachrichten überprüft und den Aufrufer authentifiziert.

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

Speicherort des Auditprotokolls

Nachdem Sie eine Überwachungsstufe und ein Verhalten ermittelt haben, können Sie (oder ein Administrator) einen Speicherort für das Überwachungsprotokoll angeben. Die drei Optionen umfassen: Standard, Anwendung und Sicherheit. Wenn Sie "Standard" angeben, hängt das tatsächliche Protokoll davon ab, welches System Sie verwenden und ob das System das Schreiben in das Sicherheitsprotokoll unterstützt. Weitere Informationen finden Sie im Abschnitt "Betriebssystem" weiter unten in diesem Thema.

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

Im Gegensatz dazu können authentifizierte Benutzer das Anwendungsprotokoll lesen und schreiben. Windows XP schreibt Überwachungsereignisse standardmäßig in das Anwendungsprotokoll. Das Protokoll kann auch persönliche Informationen enthalten, die für alle authentifizierten Benutzer sichtbar sind.

Unterdrückung von Auditfehlern

Eine weitere Option während der Überwachung besteht darin, ob ein Überwachungsfehler unterdrückt werden soll. Standardmäßig wirkt sich ein Überwachungsfehler nicht auf eine Anwendung aus. Bei Bedarf können Sie die Option falsejedoch auf festlegen, wodurch eine Ausnahme ausgelöst wird.

Programmierungsüberwachung

Sie können das Überwachungsverhalten entweder programmgesteuert oder über die Konfiguration angeben.

Auditkurse

In der folgenden Tabelle werden die Klassen und Eigenschaften beschrieben, die zum Programmieren des Überwachungsverhaltens verwendet werden.

Klasse BESCHREIBUNG
ServiceSecurityAuditBehavior Ermöglicht das Festlegen von Optionen für die Überwachung als Dienstverhalten.
AuditLogLocation Aufzählung, um anzugeben, in welches Protokoll geschrieben werden soll. Die möglichen Werte sind "Default", "Application" und "Security". Wenn Sie "Standard" auswählen, bestimmt das Betriebssystem den tatsächlichen Protokollspeicherort. Weitere Informationen finden Sie im Abschnitt "Anwendungs- oder Sicherheitsereignisprotokollauswahl" weiter unten in diesem Thema.
MessageAuthenticationAuditLevel Gibt an, welche Typen von Nachrichtenauthentifizierungsereignissen auf Nachrichtenebene überwacht werden. Die Auswahlmöglichkeiten sind None, Failure, Success, und SuccessOrFailure.
ServiceAuthorizationAuditLevel Gibt an, welche Typen von Dienstautorisierungsereignissen auf Dienstebene überwacht werden. Die Auswahlmöglichkeiten sind None, Failure, Success, und SuccessOrFailure.
SuppressAuditFailure Gibt an, was mit der Clientanforderung passiert, wenn die Überwachung fehlschlägt. Zum Beispiel, wenn der Dienst versucht, in das Sicherheitsprotokoll zu schreiben, ohne über die SeAuditPrivilege-Berechtigung zu verfügen. Der Standardwert gibt true an, dass Fehler ignoriert werden und die Clientanforderung normal verarbeitet wird.

Ein Beispiel zum Einrichten einer Anwendung zum Protokollieren von Überwachungsereignissen finden Sie unter How to: Audit Security Events.

Konfiguration

Sie können auch die Konfiguration verwenden, um das Überwachungsverhalten anzugeben, indem Sie unter den <Verhaltensweisen> ein <serviceSecurityAudit> hinzufügen. Sie müssen das Element im Rahmen eines <Verhaltens> hinzufügen, wie es im folgenden Code gezeigt wird.

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

Wenn die Überwachung aktiviert ist und kein auditLogLocation Wert angegeben ist, ist der Standardprotokollname das Protokoll "Sicherheit" für die Plattform, die das Schreiben in das Sicherheitsprotokoll unterstützt. Andernfalls handelt es sich um das Protokoll "Anwendung". Nur die Betriebssysteme Windows Server 2003 und Windows Vista unterstützen das Schreiben in das Sicherheitsprotokoll. Weitere Informationen finden Sie im Abschnitt "Betriebssystem" weiter unten in diesem Thema.

Sicherheitsüberlegungen

Wenn ein böswilliger Benutzer weiß, dass die Überwachung aktiviert ist, kann dieser Angreifer ungültige Nachrichten senden, die dazu führen, dass Überwachungseinträge geschrieben werden. Wenn das Überwachungsprotokoll auf diese Weise ausgefüllt ist, schlägt das Überwachungssystem fehl. Um dies zu vermeiden, legen Sie die SuppressAuditFailure-Eigenschaft auf true fest und verwenden Sie die Eigenschaften der Ereignisanzeige, um das Überwachungsverhalten zu steuern.

Überwachungsereignisse, die in das Anwendungsprotokoll unter Windows XP geschrieben wurden, sind für jeden authentifizierten Benutzer sichtbar.

Auswählen zwischen Anwendungs- und Sicherheitsereignisprotokollen

Die folgenden Tabellen enthalten Informationen, mit denen Sie auswählen können, ob Sie sich beim Anwendungs- oder Sicherheitsereignisprotokoll anmelden möchten.

Betriebssystem

System Anwendungsprotokoll Sicherheitsprotokoll
Windows XP SP2 oder höher Unterstützt Nicht unterstützt
Windows Server 2003 SP1 und Windows Vista Unterstützt Der Thread-Kontext muss SeAuditPrivilege enthalten

Andere Faktoren

Zusätzlich zum Betriebssystem beschreibt die folgende Tabelle weitere Einstellungen, die die Aktivierung der Protokollierung steuern.

Faktor Anwendungsprotokoll Sicherheitsprotokoll
Audit-Richtlinienverwaltung 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.
Standardbenutzerfreundlichkeit Alle authentifizierten Benutzer können in das Anwendungsprotokoll schreiben, sodass kein zusätzlicher Berechtigungsschritt für Anwendungsprozesse erforderlich ist. Der Anwendungsprozess (Kontext) muss über die SeAuditPrivilege-Berechtigung verfügen.

Siehe auch