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 |
---|---|
Habilita opciones de configuración para la auditoría como un comportamiento de servicio. |
|
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. |
|
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. |
|
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. |
|
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