Compartir a través de


Auditoría de eventos de seguridad

Las aplicaciones creadas con Windows Communication Foundation (WCF) pueden registrar eventos de seguridad (correctos, erróneos o ambos) con la característica de auditoría. Los eventos se escriben en el registro de eventos del sistema de Windows y se pueden examinar mediante el Visor de eventos.

La auditoría proporciona un método para que un administrador detecte un ataque que ya se ha producido o que está en curso. Además, auditar puede ayudar un desarrollador a depurar problemas relacionados con la seguridad. 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.

Para obtener más información sobre la seguridad de WCF, vea Security Overview. Para obtener más información sobre la programación de WCF, vea Programación básica de WCF.

Nivel de auditoría y comportamiento

Existen dos niveles de auditorías de seguridad:

  • Nivel de autorización de servicio, en el que un llamador está autorizado.

  • Nivel de mensaje, en el que WCF comprueba la validez del mensaje y autentica al autor de la llamada.

Puede comprobar ambos niveles de auditoría si hay éxito o error, lo que se conoce como comportamiento de auditoría.

Ubicación del registro de auditoría

Una vez que determine un nivel de auditoría y un comportamiento, usted (o un administrador) puede especificar una ubicación para el registro de auditoría. Entre las tres opciones se incluyen: Default, Application y Security. Cuando se especifica Default, el registro real depende del sistema que use y de si el sistema admite la escritura en el registro de seguridad. Para obtener más información, vea la sección "Sistema operativo" más adelante en este tema.

Para escribir en el registro de seguridad, se requiere el SeAuditPrivilege. De forma predeterminada, solo las cuentas de sistema local y servicio de red tienen este privilegio. Para administrar las funciones del registro de seguridad read y delete es necesario SeSecurityPrivilege. De forma predeterminada, solo los administradores tienen este privilegio.

En cambio, los usuarios autenticados pueden leer y escribir en el registro de aplicaciones. Windows XP escribe eventos de auditoría en el registro de aplicaciones de forma predeterminada. El registro también puede contener información personal visible para todos los usuarios autenticados.

Suprimir errores de auditoría

Otra opción durante la auditoría es si se debe suprimir cualquier error de auditoría. De forma predeterminada, un error de auditoría no afecta a una aplicación. Sin embargo, si es necesario, puede establecer la opción en false, lo que hace que se lance una excepción.

Auditoría de programación

Puede especificar el comportamiento de auditoría mediante programación o a través de la configuración.

Clases de auditoría

En la tabla siguiente se describen las clases y propiedades que se usan para programar el comportamiento de auditoría.

Clase Descripción
ServiceSecurityAuditBehavior Habilita opciones de configuración para la auditoría como un comportamiento de servicio.
AuditLogLocation Enumeración para especificar en qué registro escribir. Los valores posibles son Default, Application y Security. Al seleccionar Predeterminado, el sistema operativo determina la ubicación del registro real. Consulte la sección "Application or Security Event Log Choice" más adelante en este tema.
MessageAuthenticationAuditLevel Especifica qué tipos de eventos de autenticación de mensajes se auditan en el nivel de mensaje. Las opciones son None, Failure, Successy SuccessOrFailure.
ServiceAuthorizationAuditLevel Especifica qué tipos de eventos de autorización de servicio se auditan en el nivel de servicio. Las opciones son None, Failure, Successy SuccessOrFailure.
SuppressAuditFailure Especifica lo que sucede con la solicitud de cliente cuando se produce un error en la auditoría. Por ejemplo, cuando el servicio intenta escribir en el registro de seguridad, pero no tiene SeAuditPrivilege. El valor predeterminado de true indica que se omiten los errores y la solicitud de cliente se procesa normalmente.

Para obtener un ejemplo de configuración de una aplicación para registrar eventos de auditoría, consulte Cómo: Auditar eventos de seguridad.

Configuración

También puede usar la configuración para especificar el comportamiento de auditoría mediante la adición de un elemento <serviceSecurityAudit> en el esquema <behaviors>. Debes añadir el elemento bajo un <behavior>, tal y como se muestra en el código siguiente.

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

Si la auditoría está habilitada y auditLogLocation no se especifica , el nombre de registro predeterminado es "Seguridad" para la plataforma que admite la escritura en el registro de seguridad; de lo contrario, es el registro "Aplicación". Solo los sistemas operativos Windows Server 2003 y Windows Vista admiten la escritura en el registro de seguridad. Para obtener más información, vea la sección "Sistema operativo" más adelante en este tema.

Consideraciones de seguridad

Si un usuario malintencionado sabe que la auditoría está habilitada, ese atacante puede enviar mensajes no válidos que hacen que se escriban entradas de auditoría. Si el registro de auditoría se rellena de esta manera, se produce un error en el sistema de auditoría. Para mitigar esto, establezca la propiedad SuppressAuditFailure en true y utilice las propiedades del Visor de eventos para controlar el comportamiento de auditoría.

Los eventos de auditoría que se escriben en el registro de aplicaciones en Windows XP son visibles para cualquier usuario autenticado.

Elegir entre registros de eventos de aplicación y seguridad

En las tablas siguientes se proporciona información que le ayudará a elegir si desea iniciar sesión en la aplicación o en el registro de eventos de seguridad.

Sistema operativo

Sistema Registro de aplicaciones Registro de seguridad
Windows XP SP2 o posterior Compatible No está soportado
Windows Server 2003 SP1 y Windows Vista Compatible El contexto del subproceso debe poseer SeAuditPrivilege

Otros factores

Además del sistema operativo, en la tabla siguiente se describen otras opciones de configuración que controlan la habilitación del registro.

Factor Registro de aplicaciones Registro de seguridad
Gestión de políticas de auditoría No aplicable. Junto con la configuración, el registro de seguridad también se controla mediante la directiva de la autoridad de seguridad local (LSA). También se ha de habilitar la categoría “Acceso a objetos de auditoría”.
Experiencia de usuario predeterminada Todos los usuarios autenticados pueden escribir en el registro de aplicaciones, por lo que no se necesita ningún paso de permiso adicional para los procesos de aplicación. El proceso de aplicación (contexto) debe tener SeAuditPrivilege.

Consulte también