Überwachen von SicherheitsereignissenAuditing Security Events

Mit der Windows Communication Foundation (WCF) erstellte Anwendungen können mit der Überwachungsfunktion Sicherheitsereignisse (Erfolg, Fehler, oder beides) protokollieren.Applications created with Windows Communication Foundation (WCF) can log security events (either success, failure, or both) with the auditing feature. Die Ereignisse werden in das Ereignisprotokoll von Windows geschrieben und können in der Ereignisanzeige untersucht werden.The events are written to the Windows system event log and can be examined using the Event Viewer.

Mithilfe der Überwachung können Administratoren bereits stattgefundene oder gerade laufende Angriffe erkennen.Auditing provides a way for an administrator to detect an attack that has already occurred or is in progress. Darüber hinaus können Entwickler mittels Überwachung sicherheitsrelevante Probleme debuggen.In addition, auditing can help a developer to debug security-related problems. 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.For example, if an error in the configuration of the authorization or checking policy accidentally denies access to an authorized user, a developer can quickly discover and isolate the cause of this error by examining the event log.

Weitere Informationen zu WCF-Sicherheit, finden Sie unter Sicherheitsübersicht.For more information about WCF security, see Security Overview. Weitere Informationen zur Programmierung WCF finden Sie unter grundlegende WCF-Programmierung.For more information about programming WCF, see Basic WCF Programming.

Überwachungsstufe und ÜberwachungsverhaltenAudit Level and Behavior

Es gibt zwei Stufen für die Sicherheitsüberwachung:Two levels of security audits exist:

  • Autorisierung auf Dienstebene: Es wird ein Aufrufer autorisiert.Service authorization level, in which a caller is authorized.

  • Nachrichtenebene, in denen WCF Gültigkeit der Nachricht überprüft und authentifiziert den Aufrufer.Message level, in which WCF checks for message validity and authenticates the caller.

Sie können beide Überwachungsstufen auf Erfolg oder Fehler, die so genannte Überprüfen der Überwachungsverhalten.You can check both audit levels for success or failure, which is known as the audit behavior.

Auswahl des ÜberwachungsprotokollsAudit Log Location

Nachdem Überwachungsstufe und Überwachungsverhalten festgelegt wurden, können Sie (oder ein Administrator) angeben, in welches Überwachungsprotokoll geschrieben werden soll.Once you determine an audit level and behavior, you (or an administrator) can specify a location for the audit log. Zur Auswahl stehen drei Optionen: Standard (Default), Anwendung (Application) und Sicherheit (Security).The three choices include: Default, Application, and 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.When you specify Default, the actual log depends on which system you are using and whether the system supports writing to the security log. Weitere Informationen finden Sie im Abschnitt "Betriebssystem" weiter unten in diesem Thema.For more information, see the "Operating System" section later in this topic.

Zum Schreiben in das Sicherheitsprotokoll ist die Berechtigungsstufe SeAuditPrivilege erforderlich.To write to the Security log requires the SeAuditPrivilege. Standardmäßig verfügen nur die Konten "Lokales System" und "Netzwerkdienst" über diese Berechtigung.By default, only Local System and Network Service accounts have this privilege. Zum Verwalten der Sicherheitsprotokollfunktionen read und delete ist die Berechtigungsstufe SeSecurityPrivilege erforderlich.To manage the Security log functions read and delete requires the SeSecurityPrivilege. Standardmäßig verfügen nur Administratoren über diese Berechtigung.By default, only administrators have this privilege.

Authentifizierte Benutzer dagegen dürfen das Anwendungsprotokoll anzeigen und in dieses Protokoll schreiben.In contrast, authenticated users can read and write to the Application log. Windows XPWindows XP schreibt standardmäßig Überwachungsereignisse in das Anwendungsprotokoll. writes audit events to the Application log by default. Dieses Protokoll kann auch persönliche Daten enthalten, die allen authentifizierten Benutzern zugänglich sind.The log can also contain personal information that is visible to all authenticated users.

Unterdrücken von ÜberwachungsfehlernSuppressing Audit Failures

Eine weitere Option bei der Überwachung ist die Unterdrückung von Überwachungsfehlern.Another option during auditing is whether to suppress any audit failure. Standardmäßig wirken sich Überwachungsfehler nicht auf die Anwendung aus.By default, an audit failure does not affect an application. Bei Bedarf können Sie diese Option jedoch auf false setzen. In diesem Fall wird eine Ausnahme ausgelöst.If required, however, you can set the option to false, which causes an exception to be thrown.

Programmieren der ÜberwachungProgramming Auditing

Sie können das Überwachungsverhalten entweder programmatisch oder über die Konfiguration festlegen.You can specify auditing behavior either programmatically or through configuration.

Überwachen von KlassenAuditing Classes

In der folgenden Tabelle werden die Klassen und Eigenschaften vorgestellt, mit denen das Überwachungsverhalten programmiert wird.The following table describes the classes and properties used to program auditing behavior.

KlasseClass BeschreibungDescription
ServiceSecurityAuditBehavior Ermöglicht das Festlegen von Optionen für die Überwachung als Dienstverhalten.Enables setting options for auditing as a service behavior.
AuditLogLocation Eine Enumeration, mit der festgelegt wird, in welches Protokoll geschrieben werden soll.Enumeration to specify which log to write to. Die möglichen Werte sind Standard (Default), Anwendung (Application) und Sicherheit (Security).The possible values are Default, Application, and Security. Bei Auswahl von "Standard" (Default) wird das Protokoll durch das Betriebssystem bestimmt.When you select Default, the operating system determines the actual log location. Weitere Informationen finden Sie unter "Auswählen des Anwendungsereignisprotokolls oder des Sicherheitsereignisprotokolls" weiter unten in diesem Thema.See the "Application or Security Event Log Choice" section later in this topic.
MessageAuthenticationAuditLevel Legt fest, welche Arten von Ereignissen für die Nachrichtenauthentifizierung auf Nachrichtenebene überwacht werden.Specifies which types of message authentication events are audited at the message level. Zur Auswahl stehen None, Failure, Success und SuccessOrFailure.The choices are None, Failure, Success, and SuccessOrFailure.
ServiceAuthorizationAuditLevel Legt fest, welche Arten von Ereignissen für die Dienstautorisierung auf Dienstebene überwacht werden.Specifies which types of service authorization events are audited at the service level. Zur Auswahl stehen None, Failure, Success und SuccessOrFailure.The choices are None, Failure, Success, and SuccessOrFailure.
SuppressAuditFailure Legt fest, was mit der Clientanforderung geschieht, wenn bei der Überwachung ein Fehler auftritt.Specifies what happens to the client request when auditing fails. Zum Beispiel, wenn der Dienst versucht, in das Sicherheitsprotokoll zu schreiben, ohne über die SeAuditPrivilege-Berechtigung zu verfügen.For example, when the service attempts to write to the security log, but does not have SeAuditPrivilege. Der Standardwert true gibt an, dass Fehler ignoriert werden und die Clientanforderung normal verarbeitet wird.The default value of true indicates that failures are ignored, and the client request is processed normally.

Ein Beispiel für das Einrichten einer Anwendung, Überwachungsereignisse zu protokollieren, finden Sie unter Vorgehensweise: Überwachen von Sicherheitsereignissen.For an example of setting up an application to log audit events, see How to: Audit Security Events.

KonfigurationConfiguration

Sie können auch Configuration an Überwachungsverhalten durch Hinzufügen einer <ServiceSecurityAudit > unter der <Verhalten >.You can also use configuration to specify auditing behavior by adding a <serviceSecurityAudit> under the <behaviors>. Sie müssen das Element unter Hinzufügen einer <Verhalten > wie im folgenden Code gezeigt.You must add the element under a <behavior> as shown in the following code.

<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.If auditing is enabled and an auditLogLocation is not specified, the default log name is "Security" log for the platform supporting writing to the Security log; otherwise, it is "Application" log. Das Schreiben in das Sicherheitsprotokoll wird nur von den Betriebssystemen Windows Server 2003Windows Server 2003 und Windows VistaWindows Vista unterstützt.Only the Windows Server 2003Windows Server 2003 and Windows VistaWindows Vista operating systems support writing to the Security log. Weitere Informationen finden Sie im Abschnitt "Betriebssystem" weiter unten in diesem Thema.For more information, see the "Operating System" section later in this topic.

SicherheitsüberlegungenSecurity Considerations

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.If a malicious user knows that auditing is enabled, that attacker can send invalid messages that cause audit entries to be written. Wenn das Überwachungsprotokoll auf diese Weise ausgefüllt wird, schlägt das Überwachungssystem fehl.If the audit log is filled in this manner, the auditing system fails. Legen Sie die SuppressAuditFailure-Eigenschaft auf true fest, und verwenden Sie die Eigenschaften der Ereignisanzeige zum Steuern des Überwachungsverhaltens, um diese Gefahr zu umgehen.To mitigate this, set the SuppressAuditFailure property to true and use the properties of the Event Viewer to control the auditing behavior. Weitere Informationen finden Sie unter den Microsoft Support-Artikel anzeigen und Verwalten von Ereignisprotokollen mithilfe der Ereignisanzeige in Windows XP unter anzeigen und Verwalten von Ereignisprotokollen in der Ereignisanzeige in Windows XP.For more information, see the Microsoft Support article on viewing and managing event logs by using the Event Viewer in Windows XP available at How to view and manage event logs in Event Viewer in Windows XP.

Unter Windows XPWindows XP sind die in das Anwendungsprotokoll geschriebenen Überwachungsereignisse für alle authentifizierten Benutzer sichtbar.Audit events that are written to the Application Log on Windows XPWindows XP are visible to any authenticated user.

Auswählen des Anwendungsereignisprotokolls oder des SicherheitsereignisprotokollsChoosing Between Application and Security Event Logs

Die folgenden Tabellen enthalten Informationen, die Ihnen dabei helfen sollen zu entscheiden, ob in das Anwendungsereignisprotokoll oder in das Sicherheitsereignisprotokoll geschrieben werden soll.The following tables provide information to help you choose whether to log into the Application or the Security event log.

BetriebssystemOperating System

SystemSystem AnwendungsprotokollApplication log SicherheitsprotokollSecurity log
Windows XP SP2Windows XP SP2 oder höher or later UnterstütztSupported Nicht unterstütztNot supported
Windows Server 2003 SP1Windows Server 2003 SP1 und Windows VistaWindows Vista and Windows VistaWindows Vista UnterstütztSupported Threadkontext muss SeAuditPrivilege verarbeitenThread context must possess SeAuditPrivilege

Andere FaktorenOther Factors

Neben dem Betriebssystem wird die Aktivierung der Protokollierung noch durch andere, in der folgenden Tabelle beschriebene Einstellungen gesteuert.In addition to the operating system, the following table describes other settings that control the enablement of logging.

FaktorFactor AnwendungsprotokollApplication log SicherheitsprotokollSecurity log
ÜberwachungsrichtlinienverwaltungAudit policy management Nicht zutreffend.Not applicable. Das Sicherheitsprotokoll wird nicht nur über die Konfiguration, sondern auch über die Richtlinie der lokalen Sicherheitsautorität (LSA) gesteuert.Along with configuration, the Security log is also controlled by the local security authority (LSA) policy. Darüber hinaus muss die Kategorie "Objektzugriffsversuche überwachen" aktiviert sein.The "Audit object access" category must also be enabled.
Standardmäßige BenutzerfreundlichkeitDefault user experience Alle authentifizierten Benutzer können in das Anwendungsprotokoll schreiben, es sind also für Anwendungsprozesse keine weiteren Berechtigungsschritte erforderlich.All authenticated users can write to the Application log, so no additional permission step is needed for application processes. Der Anwendungsprozess (Kontext) muss über die SeAuditPrivilege-Berechtigung verfügen.The application process (context) must have SeAuditPrivilege.

Siehe auchSee Also

ServiceSecurityAuditBehavior
AuditLogLocation
Übersicht über die SicherheitSecurity Overview
Einfache WCF-ProgrammierungBasic WCF Programming
Vorgehensweise: Überwachen von SicherheitsereignissenHow to: Audit Security Events
<ServiceSecurityAudit ><serviceSecurityAudit>
<behaviors><behaviors>
Sicherheitsmodell für Windows Server AppFabricSecurity Model for Windows Server App Fabric