Auditoría de eventos de seguridad

Las aplicaciones creadas con Windows Communication Foundation (WCF) pueden registrar eventos de seguridad (éxito, error o ambos) con la característica de auditoría. Los eventos se escriben al registro de eventos del sistema de Windows y se pueden examinar utilizando 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 Información general sobre seguridad. 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 llamador.

Puede comprobar el éxito o el fracaso en ambos niveles de auditoría, conocido como comportamiento de auditoría.

Ubicación del registro de auditoría

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. Hay tres opciones: valor predeterminado, aplicación y seguridad. Al especificar Predeterminado, el registro real depende de qué sistema esté utilizando y si el sistema permite escribir 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 es necesario 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.

Por el contrario, los usuarios autenticados pueden leer y escribir en el registro de la aplicación. Windows XP escribe de forma predeterminada los eventos de auditoría en el registro de la aplicación. El registro también puede contener datos personales que son visibles para todos los usuarios autenticados.

Suprimir los errores de la auditoría

Otra opción durante la auditoría es la de suprimir los errores de la auditoría. De forma predeterminada, un error de la auditoría no afecta a una aplicación. Si fuese necesario, sin embargo, puede establecer la opción en false, que hace que se produzca una excepción.

Programación de auditoría

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

Clases de auditorías

La tabla siguiente describe las clases y propiedades utilizadas para programar el comportamiento de la 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 Predeterminado, Aplicación y Seguridad. Si se selecciona Predeterminado, el sistema operativo determina la ubicación del registro real. Vea la sección "Elección de registro de eventos de seguridad o aplicación" 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, Success y SuccessOrFailure.

ServiceAuthorizationAuditLevel

Especifica qué tipos de eventos de autorización de servicio se auditan en el nivel de servicio. Las opciones son None, Failure, Success y SuccessOrFailure.

SuppressAuditFailure

Especifica lo que pasa a la solicitud de cliente cuando se produce un error al auditar. Por ejemplo, cuando el servicio intenta escribir en el registro de seguridad, pero no tiene SeAuditPrivilege. El valor predeterminado de true indica que se pasan por alto los errores, y se procesa la solicitud de cliente como de costumbre.

Para obtener un ejemplo de configurar una aplicación para que registre los eventos de auditoría, vea Cómo auditar los eventos de seguridad de Windows Communication Foundation.

Configuración

También puede utilizar la configuración para especificar el comportamiento de auditoría agregando un serviceSecurityAudit element bajo el Behaviors element. Debe agregar como el elemento bajo un Behavior element 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 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". Solo los sistemas operativos Windows Vista y Windows Server 2003 permiten escribir 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, el atacante puede enviar mensajes no válidos y de este modo hacer que se escriban entradas de auditoría. Si el registro de auditoría se rellena de esta manera, el sistema de auditoría falla. Para mitigar esta situación, establezca la propiedad SuppressAuditFailure en true y use las propiedades del Visor de eventos para controlar el comportamiento de la auditoría. Para obtener más información, vea el artículo de Soporte técnico de Microsoft sobre la visualización y administración de registros mediante el Visor de eventos de Windows XP disponible en Cómo ver y administrar registros de sucesos en el Visor de sucesos de Windows XP.

Los eventos de auditoría que se escriben en el registro de aplicación en Windows XP puede verlos cualquier usuario autenticado.

Elegir entre registros de eventos de seguridad o aplicación

Las siguientes tablas proporcionan información para ayudarle a decidir si registrar en el registro de eventos de aplicación o de seguridad.

Sistema operativo

Sistema Registro de la aplicación Registro de seguridad

Windows XP SP2 o posterior

Admitido

No admitido

Windows Server 2003 SP1 y Windows Vista

Supported

El contexto del subproceso debe poseer SeAuditPrivilege

Otros factores

Además del sistema operativo, la tabla siguiente describe otros valores que controlan la habilitación de los registros.

Factor Registro de la aplicación Registro de seguridad

Administración de la directiva de auditoría

No es aplicable.

La directiva de la autoridad de seguridad local (LSA) controla el registro de Seguridad, además de la configuración. 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 aplicación, por lo que no es necesario ningún paso de permiso adicional para los procesos de aplicación.

El proceso de aplicación (contexto) debe tener SeAuditPrivilege.

Vea también

Tareas

Cómo auditar los eventos de seguridad de Windows Communication Foundation

Referencia

ServiceSecurityAuditBehavior
AuditLogLocation

Conceptos

Información general sobre seguridad

Otros recursos

Programación básica de WCF
serviceSecurityAudit element
Behaviors element
Modelo de seguridad para Windows Server App Fabric