Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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. |