Auditoría de eventos de seguridadAuditing Security Events

Las aplicaciones creadas con Windows Communication Foundation (WCF) pueden registrar eventos de seguridad (correcto, error o ambos) con la característica de auditoría.Applications created with Windows Communication Foundation (WCF) can log security events (either success, failure, or both) with the auditing feature. Los eventos se escriben al registro de eventos del sistema de Windows y se pueden examinar utilizando el Visor de eventos.The events are written to the Windows system event log and can be examined using the Event Viewer.

La auditoría proporciona un método para que un administrador detecte un ataque que ya se ha producido o que está en curso.Auditing provides a way for an administrator to detect an attack that has already occurred or is in progress. Además, auditar puede ayudar un desarrollador a depurar problemas relacionados con la seguridad.In addition, auditing can help a developer to debug security-related problems. Por ejemplo, si un error en la configuración de la autorización o al comprobar la directiva niega accidentalmente el acceso a un usuario autorizado, un programador puede detectar y aislar rápidamente la causa de este error examinando el registro de eventos.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.

Para obtener más información sobre la seguridad de WCF, vea información general sobre seguridad.For more information about WCF security, see Security Overview. Para obtener más información acerca de la programación de WCF, vea programación básica de WCF.For more information about programming WCF, see Basic WCF Programming.

Nivel de auditoría y comportamientoAudit Level and Behavior

Existen dos niveles de auditorías de seguridad:Two levels of security audits exist:

  • Nivel de autorización de servicio, en el que un llamador está autorizado.Service authorization level, in which a caller is authorized.

  • Nivel de mensaje, en el que WCF comprueba la validez del mensaje y autentica al autor de la llamada.Message level, in which WCF checks for message validity and authenticates the caller.

Puede comprobar si ambos niveles de auditoría son correctos o erróneos, lo que se conoce como comportamiento de auditoría.You can check both audit levels for success or failure, which is known as the audit behavior.

Ubicación del registro de auditoríaAudit Log Location

Una vez que determina el nivel y comportamiento de una auditoría, usted (o un administrador) puede especificar una ubicación para el registro de auditoría.Once you determine an audit level and behavior, you (or an administrator) can specify a location for the audit log. Hay tres opciones: valor predeterminado, aplicación y seguridad.The three choices include: Default, Application, and Security. Al especificar Predeterminado, el registro real depende de qué sistema esté usando y de si el sistema permite escribir en el registro de seguridad.When you specify Default, the actual log depends on which system you are using and whether the system supports writing to the security log. Para obtener más información, vea la sección "sistema operativo" más adelante en este tema.For more information, see the "Operating System" section later in this topic.

Para escribir en el registro de seguridad es necesario el SeAuditPrivilege.To write to the Security log requires the SeAuditPrivilege. De forma predeterminada, solo las cuentas de Sistema local y Servicio de red tienen este privilegio.By default, only Local System and Network Service accounts have this privilege. Para administrar las funciones del registro de seguridad read y delete es necesario SeSecurityPrivilege.To manage the Security log functions read and delete requires the SeSecurityPrivilege. De forma predeterminada, solo los administradores tienen este privilegio.By default, only administrators have this privilege.

En cambio, los usuarios autenticados pueden leer y escribir en el registro de aplicaciones.In contrast, authenticated users can read and write to the Application log. Windows XP escribe los eventos de auditoría en el registro de la aplicación de forma predeterminada.Windows XP writes audit events to the Application log by default. El registro también puede contener datos personales que son visibles para todos los usuarios autenticados.The log can also contain personal information that is visible to all authenticated users.

Suprimir los errores de la auditoríaSuppressing Audit Failures

Otra opción durante la auditoría es la de suprimir los errores de la auditoría.Another option during auditing is whether to suppress any audit failure. De forma predeterminada, un error de la auditoría no afecta a una aplicación.By default, an audit failure does not affect an application. Si fuese necesario, sin embargo, puede establecer la opción en false, que hace que se produzca una excepción.If required, however, you can set the option to false, which causes an exception to be thrown.

Programación de auditoríaProgramming Auditing

Puede especificar el comportamiento de la auditoría mediante configuración o programación.You can specify auditing behavior either programmatically or through configuration.

Clases de auditoríasAuditing Classes

La tabla siguiente describe las clases y propiedades utilizadas para programar el comportamiento de la auditoría.The following table describes the classes and properties used to program auditing behavior.

ClaseClass DescripciónDescription
ServiceSecurityAuditBehavior Habilita opciones de configuración para la auditoría como un comportamiento de servicio.Enables setting options for auditing as a service behavior.
AuditLogLocation Enumeración para especificar en qué registro escribir.Enumeration to specify which log to write to. Los valores posibles son Predeterminado, Aplicación y Seguridad.The possible values are Default, Application, and Security. Si se selecciona Predeterminado, el sistema operativo determina la ubicación del registro real.When you select Default, the operating system determines the actual log location. Vea la sección "Elección de registro de eventos de seguridad o aplicación" más adelante en este tema.See the "Application or Security Event Log Choice" section later in this topic.
MessageAuthenticationAuditLevel Especifica qué tipos de eventos de autenticación de mensajes se auditan en el nivel de mensaje.Specifies which types of message authentication events are audited at the message level. Las opciones son None, Failure, Success y SuccessOrFailure.The choices are None, Failure, Success, and SuccessOrFailure.
ServiceAuthorizationAuditLevel Especifica qué tipos de eventos de autorización de servicio se auditan en el nivel de servicio.Specifies which types of service authorization events are audited at the service level. Las opciones son None, Failure, Success y SuccessOrFailure.The choices are None, Failure, Success, and SuccessOrFailure.
SuppressAuditFailure Especifica lo que pasa a la solicitud de cliente cuando se produce un error al auditar.Specifies what happens to the client request when auditing fails. Por ejemplo, cuando el servicio intenta escribir en el registro de seguridad, pero no tiene SeAuditPrivilege.For example, when the service attempts to write to the security log, but does not have SeAuditPrivilege. El valor predeterminado de true indica que se pasan por alto los errores, y se procesa la solicitud de cliente como de costumbre.The default value of true indicates that failures are ignored, and the client request is processed normally.

Para obtener un ejemplo de cómo configurar una aplicación para registrar eventos de auditoría, consulte Cómo: auditar eventos de seguridad.For an example of setting up an application to log audit events, see How to: Audit Security Events.

ConfiguraciónConfiguration

También puede usar la configuración de para especificar el comportamiento de auditoría agregando <serviceSecurityAudit> en <behaviors> .You can also use configuration to specify auditing behavior by adding a <serviceSecurityAudit> under the <behaviors>. Debe agregar el elemento bajo un <behavior> , tal y como se muestra en el código siguiente.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>  

Si auditar está habilitado y no se especifica una auditLogLocation, el nombre del registro predeterminado es "Seguridad", para que la plataforma admita la escritura en el registro de seguridad; de lo contrario, el nombre será "Aplicación".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. Solo los sistemas operativos Windows Server 2003 y Windows Vista admiten la escritura en el registro de seguridad.Only the Windows Server 2003 and Windows Vista operating systems support writing to the Security log. Para obtener más información, vea la sección "sistema operativo" más adelante en este tema.For more information, see the "Operating System" section later in this topic.

Consideraciones de seguridadSecurity Considerations

Si un usuario malintencionado sabe que la auditoría está habilitada, el atacante puede enviar mensajes no válidos y de este modo hacer que se escriban entradas de auditoría.If a malicious user knows that auditing is enabled, that attacker can send invalid messages that cause audit entries to be written. Si el registro de auditoría se rellena de esta manera, el sistema de auditoría falla.If the audit log is filled in this manner, the auditing system fails. Para mitigar esto, establezca la propiedad SuppressAuditFailure en true y use las propiedades del Visor de eventos para controlar el comportamiento de la auditoría.To mitigate this, set the SuppressAuditFailure property to true and use the properties of the Event Viewer to control the auditing behavior.

Los eventos de auditoría que se escriben en el registro de aplicaciones en Windows XP son visibles para cualquier usuario autenticado.Audit events that are written to the Application Log on Windows XP are visible to any authenticated user.

Elegir entre registros de eventos de seguridad o aplicaciónChoosing Between Application and Security Event Logs

Las siguientes tablas proporcionan información para ayudarle a decidir si registrar en el registro de eventos de aplicación o de seguridad.The following tables provide information to help you choose whether to log into the Application or the Security event log.

Sistema operativoOperating System

SistemaSystem Registro de aplicacionesApplication log Registro de seguridadSecurity log
Windows XP SP2 o posteriorWindows XP SP2 or later CompatibleSupported No compatibleNot supported
Windows Server 2003 SP1 y Windows VistaWindows Server 2003 SP1 and Windows Vista CompatibleSupported El contexto del subproceso debe poseer SeAuditPrivilegeThread context must possess SeAuditPrivilege

Otros factoresOther Factors

Además del sistema operativo, la tabla siguiente describe otros valores que controlan la habilitación de los registros.In addition to the operating system, the following table describes other settings that control the enablement of logging.

FactorFactor Registro de aplicacionesApplication log Registro de seguridadSecurity log
Administración de la directiva de auditoríaAudit policy management No es aplicable.Not applicable. La directiva de la autoridad de seguridad local (LSA) controla el registro de Seguridad, además de la configuración.Along with configuration, the Security log is also controlled by the local security authority (LSA) policy. También se ha de habilitar la categoría “Acceso a objetos de auditoría”.The "Audit object access" category must also be enabled.
Experiencia de usuario predeterminadaDefault user experience Todos los usuarios autenticados pueden escribir en el registro de aplicaciones, por lo que no es necesario ningún paso de permiso adicional para los procesos de aplicación.All authenticated users can write to the Application log, so no additional permission step is needed for application processes. El proceso de aplicación (contexto) debe tener SeAuditPrivilege.The application process (context) must have SeAuditPrivilege.

Vea tambiénSee also