Uso de reenvío de eventos de Windows para facilitar la detección de intrusiones

Obtén información acerca de un enfoque para recopilar eventos de dispositivos de tu organización. En este artículo se habla acerca de eventos en operaciones normales y cuando se sospecha que hay una intrusión.

El reenvío de eventos de Windows (WEF) lee cualquier registro de eventos operativos o administrativos en un dispositivo de su organización y reenvía los eventos que elija a un servidor de Recopilador de eventos de Windows (WEC).

Para lograr esta funcionalidad, hay dos suscripciones diferentes publicadas en los dispositivos cliente: la suscripción de línea base y la suscripción sospechosa. La suscripción de línea base inscribe todos los dispositivos de su organización y una suscripción sospechosa solo incluye los dispositivos que ha agregado usted. La suscripción Suspect recopila más eventos para ayudar a crear contexto para la actividad del sistema y se puede actualizar rápidamente para dar cabida a nuevos eventos o escenarios según sea necesario sin afectar a las operaciones de línea base.

Esta implementación ayuda a diferenciar dónde se almacenan los eventos en última instancia. Los eventos de línea base se pueden enviar a dispositivos con funcionalidad analítica en línea, como Security Event Manager (SEM), al tiempo que se envían eventos a un sistema MapReduce, como HDInsight o Hadoop, para un almacenamiento a largo plazo y un análisis más profundo. Los eventos de la suscripción Suspect se envían directamente a un sistema MapReduce debido al volumen y a una menor relación señal/ruido, que se usan en gran medida para el análisis forense del host.

La fuerza de un SEM radica en poder inspeccionar, correlacionar eventos y generar alertas para patrones conocidos y alertar al personal de seguridad a la velocidad de la máquina.

Un sistema MapReduce tiene un tiempo de retención más largo (años frente a meses para un SEM), una mayor capacidad de entrada (cientos de terabytes al día) y la capacidad de realizar operaciones más complejas en los datos, como análisis estadístico y de tendencias, análisis de clústeres de patrones o aplicación de algoritmos de Machine Learning.

Esta es una guía de escalado aproximada para eventos WEF:

Intervalo de eventos/segundo Almacén de datos
0 - 5,000 SQL o SEM
5,000 - 50,000 SEM
50,000+ Hadoop/HDInsight/Data Lake

La generación de eventos en un dispositivo debe habilitarse por separado o como parte del GPO para la implementación de WEF de línea base, incluida la habilitación de registros de eventos deshabilitados y la configuración de permisos de canal. Para obtener más información, vea Apéndice C: Configuración del canal de eventos (habilitar y acceder al canal). Esta condición se debe a que WEF es un sistema pasivo con respecto al registro de eventos. No puede cambiar el tamaño de los archivos de registro de eventos, habilitar canales de eventos deshabilitados, cambiar los permisos de canal ni ajustar una directiva de auditoría de seguridad. WEF solo consulta los canales de eventos para los eventos existentes. Además, tener que la generación de eventos ya se produzca en un dispositivo permite crear una recopilación de eventos más completa con un historial completo de la actividad del sistema. De lo contrario, se limitará a la velocidad de los ciclos de actualización de suscripciones de GPO y WEF para realizar cambios en lo que se genera en el dispositivo. En los dispositivos modernos, habilitar más canales de eventos y expandir el tamaño de los archivos de registro de eventos no ha dado lugar a diferencias de rendimiento notables.

Para obtener la directiva de auditoría mínima recomendada y la configuración de ACL del sistema de registro, consulte Apéndice A - Directiva de auditoría mínima recomendada y Apéndice B: Directiva de ACL de sistema de registro mínima recomendada.

Nota

Estos son solo los valores mínimos que deben cumplir con lo que selecciona la suscripción de WEF.

Desde una perspectiva de administración de suscripciones WEF, las consultas de eventos proporcionadas deben usarse en dos suscripciones independientes para facilitar el mantenimiento; solo se permitiría el acceso a la suscripción de destino a las máquinas que cumplen criterios específicos; este acceso se determinaría mediante un algoritmo o la dirección de un analista. Todos los dispositivos deben tener acceso a la suscripción de línea base.

Este sistema de suscripción dual significa que crearía dos suscripciones base:

  • Suscripción de WEF de línea base. Eventos recopilados de todos los hosts; Estos eventos incluyen algunos eventos específicos del rol, que solo los emitirán esas máquinas.
  • Suscripción de WEF de destino. Eventos recopilados de un conjunto limitado de hosts debido a una actividad inusual o a un mayor reconocimiento de esos sistemas.

Cada una de ellas con la consulta de eventos correspondiente a continuación. Para la suscripción de destino, la habilitación de la opción "leer eventos existentes" debe establecerse en true para permitir la recopilación de eventos existentes de los sistemas. De forma predeterminada, las suscripciones DE WEF solo reenviarán los eventos generados después de que el cliente haya recibido la suscripción de WEF.

En el Apéndice E: Consulta de eventos de suscripción de línea base anotada y Apéndice F - Consulta de eventos de suscripción sospechosa anotada, el XML de consulta de eventos se incluye al crear suscripciones DE WEF. Estas suscripciones se anotan con fines de consulta y claridad. El elemento individual <Query> se puede quitar o editar sin afectar al resto de la consulta.

Preguntas comunes de WEF

En esta sección se abordan las preguntas comunes de los profesionales de TI y los clientes.

¿Observará el usuario si su máquina está habilitada para WEF o si WEF encuentra un error?

La respuesta corta es: No.

La respuesta más larga es: el canal de eventos Eventlog-forwardingPlugin/Operational registra los eventos de éxito, advertencia y error relacionados con las suscripciones de WEF presentes en el dispositivo. A menos que el usuario abra Visor de eventos y navegue a ese canal, no observará WEF a través del consumo de recursos ni de los elementos emergentes de la interfaz gráfica de usuario. Incluso si hay un problema con la suscripción de WEF, no hay ninguna interacción del usuario ni degradación del rendimiento. Todos los eventos de éxito, advertencia y error se registran en este canal de eventos operativos.

¿Es WEF Push o Pull?

Una suscripción de WEF se puede configurar para insertarse o extraerse, pero no ambas. La implementación de TI más sencilla y flexible con la mayor escalabilidad se puede lograr mediante una suscripción de inserción o iniciada por el origen. Los clientes WEF se configuran mediante un GPO y se activa el cliente de reenvío integrado. En el caso de la extracción iniciada por el recopilador, la suscripción en el servidor WEC está preconfigurada con los nombres de los dispositivos cliente WEF desde los que se seleccionarán los eventos. Esos clientes deben configurarse con antelación para permitir que las credenciales usadas en la suscripción accedan a sus registros de eventos de forma remota (normalmente agregando la credencial al grupo de seguridad local integrado Lectores de registro de eventos). Un escenario útil: supervisar estrechamente un conjunto específico de máquinas.

¿WEF funcionará a través de VPN o RAS?

WEF controla bien los escenarios de VPN, RAS y DirectAccess y se volverá a conectar y enviará cualquier trabajo pendiente acumulado de eventos cuando se restablezca la conexión al recopilador de WEF.

¿Cómo se realiza el seguimiento del progreso del cliente?

El servidor WEC mantiene en su registro la información del marcador y la hora del último latido de cada origen de eventos para cada suscripción de WEF. Cuando un origen de eventos se vuelve a conectar a un servidor WEC, la última posición del marcador se envía al dispositivo para usarla como punto de partida para reanudar los eventos de reenvío. Si un cliente WEF no tiene eventos para enviar, el cliente WEF se conectará periódicamente para enviar un latido al servidor WEC para indicar que está activo. Este valor de latido se puede configurar individualmente para cada suscripción.

¿WEF funcionará en un entorno IPv4, IPv6 o mixto IPv4/IPv6?

Sí. WEF es independiente del transporte y funcionará a través de IPv4 o IPv6.

¿Se cifran los eventos WEF? Veo una opción HTTP/HTTPS.

En una configuración de dominio, la conexión usada para transmitir eventos WEF se cifra mediante Kerberos de forma predeterminada (con NTLM como opción de reserva, que se puede deshabilitar mediante un GPO). Solo el recopilador wef puede descifrar la conexión. Además, la conexión entre el cliente WEF y el servidor WEC se autentica mutuamente independientemente del tipo de autenticación (Kerberos o NTLM). Hay opciones de GPO para forzar a la autenticación a usar solo Kerberos.

Esta autenticación y cifrado se realizan independientemente de si se selecciona HTTP o HTTPS.

La opción HTTPS está disponible si se usa la autenticación basada en certificados, en los casos en los que la autenticación mutua basada en Kerberos no es una opción. El certificado SSL y los certificados de cliente aprovisionados se usan para proporcionar autenticación mutua.

¿Los clientes WEF tienen un búfer independiente para eventos?

El registro de eventos local de máquinas cliente WEF es el búfer de WEF para cuando se pierde la conexión con el servidor WEC. Para aumentar el "tamaño del búfer", aumente el tamaño máximo de archivo del archivo de registro de eventos específico donde se seleccionan los eventos. Para obtener más información, consulte Apéndice C : Métodos de configuración del canal de eventos (habilitar y acceso de canal).

Cuando el registro de eventos sobrescribe los eventos existentes (lo que da lugar a la pérdida de datos si el dispositivo no está conectado al recopilador de eventos), no se envía ninguna notificación al recopilador WEF de que los eventos se pierden del cliente. Tampoco hay un indicador de que se encontró una brecha en el flujo de eventos.

¿Qué formato se usa para los eventos reenviados?

WEF tiene dos modos para eventos reenviados. El valor predeterminado es "Texto representado" que incluye la descripción textual del evento como lo vería en Visor de eventos. La inclusión de esta descripción significa que el tamaño del evento se duplica o se triplica en función del tamaño de la descripción representada. El modo alternativo es "Eventos" (también conocido a veces como formato "binario") que es simplemente el propio XML de evento enviado en formato XML binario (como se escribiría en el archivo evtx). Este formato es compacto y puede duplicar más del doble el volumen de eventos que un único servidor WEC puede acomodar.

Se puede configurar una suscripción "testSubscription" para usar el formato Eventos a través de la utilidad WECUTIL:

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "testSubscription" /cf:Events

¿Con qué frecuencia se entregan los eventos WEF?

Las opciones de entrega de eventos forman parte de los parámetros de configuración de la suscripción de WEF: hay tres opciones de entrega de suscripciones integradas: Normal, Minimizar ancho de banda y Minimizar latencia. Hay disponible un cuarto objeto catch-all denominado "Personalizado", pero no se puede seleccionar ni configurar a través de la interfaz de usuario de WEF mediante Visor de eventos. La opción Entrega personalizada debe seleccionarse y configurarse mediante la aplicación de línea de comandos WECUTIL.EXE. Todas las opciones de suscripción definen un recuento máximo de eventos y una antigüedad máxima de eventos, si se supera cualquiera de los límites, los eventos acumulados se envían al recopilador de eventos.

En esta tabla se describen las opciones de entrega integradas:

Opciones de optimización de entrega de eventos Descripción
Normal Esta opción garantiza la entrega confiable de eventos y no intenta conservar el ancho de banda. Es la opción adecuada a menos que necesite un control más estricto sobre el uso del ancho de banda o necesite eventos reenviados entregados lo antes posible. Usa el modo de entrega de extracción, procesa por lotes 5 elementos a la vez y establece un tiempo de espera de lote de 15 minutos.
Minimizar el ancho de banda Esta opción garantiza que el uso del ancho de banda de red para la entrega de eventos esté estrictamente controlado. Es una opción adecuada si desea limitar la frecuencia de las conexiones de red realizadas para entregar eventos. Usa el modo de entrega push y establece un tiempo de espera por lotes de 6 horas. Además, usa un intervalo de latido de 6 horas.
Minimizar la latencia Esta opción garantiza que los eventos se entreguen con un retraso mínimo. Es una opción adecuada si va a recopilar alertas o eventos críticos. Usa el modo de entrega push y establece un tiempo de espera por lotes de 30 segundos.

Para obtener más información sobre las opciones de entrega, vea Configurar opciones avanzadas de suscripción.

La diferencia principal está en la latencia que los eventos se envían desde el cliente. Si ninguna de las opciones integradas cumple sus requisitos, puede establecer opciones de entrega de eventos personalizados para una suscripción determinada desde un símbolo del sistema con privilegios elevados:

@rem required to set the DeliveryMaxItems or DeliveryMaxLatencyTime
Wecutil ss "SubscriptionNameGoesHere" /cm:Custom
@rem set DeliveryMaxItems to 1 event
Wecutil ss "SubscriptionNameGoesHere" /dmi:1
@rem set DeliveryMaxLatencyTime to 10 ms
Wecutil ss "SubscriptionNameGoesHere" /dmlt:10

Cómo controlar qué dispositivos tienen acceso a una suscripción de WEF?

Para las suscripciones iniciadas por el origen: cada suscripción de WEF en un servidor WEC tiene su propia ACL para cuentas de equipo o grupos de seguridad que contienen cuentas de equipo (no cuentas de usuario) que pueden participar explícitamente en esa suscripción o que tienen acceso denegado explícitamente. Esta ACL solo se aplica a una sola suscripción de WEF (ya que puede haber varias suscripciones WEF en un servidor WEC determinado), otras suscripciones WEF tienen su propia ACL independiente.

Para las suscripciones iniciadas por el recopilador: la suscripción contiene la lista de máquinas desde las que el servidor WEC va a recopilar eventos. Esta lista se administra en el servidor WEC y las credenciales usadas para la suscripción deben tener acceso para leer los registros de eventos de los clientes WEF: las credenciales pueden ser la cuenta de equipo o una cuenta de dominio.

¿Puede un cliente comunicarse con varios recopiladores de eventos WEF?

Sí. Si desea un entorno de High-Availability, configure varios servidores WEC con la misma configuración de suscripción y publique ambos URI de servidor WEC en clientes WEF. Los clientes WEF reenviarán eventos simultáneamente a las suscripciones configuradas en los servidores WEC, si tienen el acceso adecuado.

¿Cuáles son las limitaciones del servidor WEC?

Hay tres factores que limitan la escalabilidad de los servidores WEC. La regla general para un servidor WEC estable en hardware básico está planeando un total de 3000 eventos por segundo en promedio para todas las suscripciones configuradas.

  • E/S de disco. El servidor WEC no procesa ni valida el evento recibido, sino que almacena en búfer el evento recibido y, a continuación, lo registra en un archivo de registro de eventos local (archivo EVTX). La velocidad de registro en el archivo EVTX está limitada por la velocidad de escritura del disco. Aislar el archivo EVTX en su propia matriz o usar discos de alta velocidad puede aumentar el número de eventos por segundo que puede recibir un único servidor WEC.

  • Connections de red. Aunque un origen WEF no mantiene una conexión permanente y persistente con el servidor WEC, no se desconecta inmediatamente después de enviar sus eventos. Esta clemencia significa que el número de orígenes WEF que pueden conectarse simultáneamente al servidor WEC se limita a los puertos TCP abiertos disponibles en el servidor WEC.

  • Tamaño del Registro. Para cada dispositivo único que se conecta a una suscripción de WEF, hay una clave del Registro (correspondiente al FQDN del cliente WEF) creada para almacenar información de marcador y latido de origen. Si esta información no se elimina para quitar clientes inactivos, este conjunto de claves del Registro puede aumentar a un tamaño que no se puede administrar con el tiempo.

    • Cuando una suscripción tiene >1000 orígenes WEF conectados a ella a lo largo de su duración operativa, también conocida como orígenes WEF de duración, Visor de eventos puede dejar de responder durante unos minutos al seleccionar el nodo Suscripciones en el panel de navegación izquierdo, pero funcionará normalmente después.
    • Con >50 000 orígenes WEF de duración, Visor de eventos ya no es una opción y wecutil.exe (incluido con Windows) debe usarse para configurar y administrar suscripciones.
    • Con >100 000 orígenes WEF de duración, el registro no será legible y es probable que el servidor WEC tenga que volver a generarse.

Información sobre la suscripción

A continuación se enumeran todos los elementos que recopila cada suscripción, el XML de suscripción real está disponible en un apéndice. Estos elementos se separan en Línea base y Destino. La intención es suscribir todos los hosts a línea base y, a continuación, inscribir (y quitar) hosts según sea necesario en la suscripción de destino.

Suscripción de línea base

Aunque esta suscripción parece ser la suscripción más grande, realmente es el volumen más bajo por dispositivo. (Se deben permitir excepciones para dispositivos inusuales: se puede esperar que un dispositivo que realice tareas complejas relacionadas con desarrolladores cree un volumen inusualmente alto de eventos de creación de procesos y AppLocker). Esta suscripción no requiere una configuración especial en los dispositivos cliente para habilitar canales de eventos o modificar permisos de canal.

La suscripción es básicamente una colección de instrucciones de consulta aplicadas al registro de eventos. Esta suscripción significa que es modular por naturaleza y una instrucción de consulta determinada se puede quitar o cambiar sin afectar a otra instrucción de consulta de la suscripción. Además, suprima las instrucciones que filtran eventos específicos, solo se aplican dentro de esa instrucción de consulta y no se aplican a toda la suscripción.

Requisitos de suscripción de línea base

Para obtener el máximo valor de la suscripción de línea base, se recomienda establecer los siguientes requisitos en el dispositivo para asegurarse de que los clientes ya están generando los eventos necesarios para reenviarse fuera del sistema.

  • Aplique una directiva de auditoría de seguridad que sea un superconjunto de la directiva de auditoría mínima recomendada. Para obtener más información, consulte Apéndice A: Directiva de auditoría mínima recomendada. Esta directiva garantiza que el registro de eventos de seguridad genera los eventos necesarios.

  • Aplique al menos una directiva de AppLocker Audit-Only a los dispositivos.

    • Si ya está permitiendo o restringendo eventos mediante AppLocker, se cumple este requisito.
    • Los eventos de AppLocker contienen información útil, como el hash de archivos y la información de firma digital para archivos ejecutables y scripts.
  • Habilite los canales de eventos deshabilitados y establezca el tamaño mínimo para los archivos de eventos modernos.

  • Actualmente, no hay ninguna plantilla de GPO para habilitar o establecer el tamaño máximo de los archivos de eventos modernos. Este umbral debe definirse mediante un GPO. Para obtener más información, consulte Apéndice C : Métodos de configuración del canal de eventos (habilitar y acceso de canal).

La consulta de eventos anotados se puede encontrar en lo siguiente. Para obtener más información, vea Apéndice F - Consulta de eventos de suscripción sospechosa anotada.

  • Eventos antimalware de Microsoft Antimalware o Windows Defender. Estos eventos se pueden configurar para cualquier producto antimalware determinado fácilmente si escribe en el registro de eventos de Windows.

  • Proceso de proceso de registro de eventos de seguridad Crear eventos.

  • Eventos de creación de procesos de AppLocker (EXE, script, instalación y ejecución de aplicaciones empaquetadas).

  • Eventos de modificación del Registro. Para obtener más información, consulte Apéndice B: Directiva de ACL de sistema de registro mínima recomendada.

  • Inicio y apagado del sistema operativo

    • Los eventos de inicio incluyen la versión del sistema operativo, el nivel de Service Pack, la versión de QFE y el modo de arranque.
  • Instalación del servicio

    • Incluye el nombre del servicio, la ruta de acceso de la imagen y quién instaló el servicio.
  • Eventos de auditoría de entidad de certificación

    • Estos eventos solo son aplicables en sistemas con el rol entidad de certificación instalado.
    • Registra las solicitudes y respuestas de certificado.
  • Eventos de perfil de usuario

    • El uso de un perfil temporal o la imposibilidad de crear un perfil de usuario puede indicar que un intruso inicia sesión de forma interactiva en un dispositivo, pero no quiere dejar un perfil persistente atrás.
  • Error de inicio del servicio

    • Los códigos de error se localizan, por lo que debe comprobar los valores en el archivo DLL del mensaje.
  • Eventos de acceso a recursos compartidos de red

    • Filtre los recursos compartidos de archivos IPC$ y /NetLogon, que son esperados y ruidosos.
  • Solicitudes de inicio de cierre del sistema

    • Averigüe qué inició el reinicio de un dispositivo.
  • Evento de cierre de sesión interactivo iniciado por el usuario

  • Las sesiones de Servicios de Escritorio remoto se conectan, vuelven a conectar o desconectan.

  • Eventos EMET, si está instalado EMET.

  • Eventos del complemento de reenvío de eventos

    • Para supervisar las operaciones de suscripción de WEF, como eventos de éxito parcial. Este evento es útil para diagnosticar problemas de implementación.
  • Creación y eliminación de recursos compartidos de red

    • Permite la detección de la creación de recursos compartidos no autorizados.

      Nota

      Todos los recursos compartidos se vuelven a crear cuando se inicia el dispositivo.

  • Sesiones de inicio de sesión

    • Inicio de sesión correcto para interactivo (local y remoto interactivo/Escritorio remoto)
    • Inicie sesión correcta para los servicios de cuentas no integradas, como LocalSystem, LocalNetwork, etc.
    • Inicio de sesión correcto para sesiones por lotes
    • Cierre de sesión de inicio de sesión, que es eventos de cierre de sesión para sesiones que no son de red.
  • Informe de errores de Windows (solo eventos de bloqueo de aplicación)

    • Esta sesión puede ayudar a detectar los primeros signos de intruso que no están familiarizados con el entorno empresarial mediante malware de destino.
  • Eventos del servicio de registro de eventos

    • Errores, eventos de inicio y detención de eventos para el servicio de registro de eventos de Windows.
  • Registro de eventos desactivado (incluido el registro de eventos de seguridad)

    • Este evento podría indicar un intruso que cubre sus pistas.
  • Privilegios especiales asignados al nuevo inicio de sesión

    • Esta asignación indica que, en el momento de iniciar sesión, un usuario es administrador o tiene el acceso suficiente para hacerse administrador.
  • Intentos de sesión de Servicios de Escritorio remoto de salida

    • Visibilidad de posibles cabezas de playa para intrusos
  • Tiempo del sistema cambiado

  • Cliente SMB (conexiones de unidad asignadas)

  • Validación de credenciales de cuenta

    • Cuentas locales o cuentas de dominio en controladores de dominio
  • Se ha agregado o quitado un usuario del grupo de seguridad administradores local.

  • Clave privada de Crypto API a la que se tiene acceso

    • Asociado a objetos de firma mediante la clave privada almacenada localmente.
  • Creación y eliminación de tareas del Programador de tareas

    • El Programador de tareas permite a los intrusos ejecutar código en horas especificadas como LocalSystem.
  • Inicio de sesión con credenciales explícitas

    • Detecte cambios de uso de credenciales por parte de intrusos para acceder a más recursos.
  • Eventos de verificación del titular de tarjetas inteligentes

    • Este evento detecta cuándo se usa una tarjeta inteligente.

Suscripción sospechosa

Esta suscripción agrega alguna actividad posible relacionada con el intruso para ayudar a los analistas a refinar aún más sus determinaciones sobre el estado del dispositivo.

  • Creación de sesiones de inicio de sesión para sesiones de red

    • Permite el análisis de series temporales de gráficos de red.
  • Eventos RADIUS y VPN

    • Útil si usa una implementación de RADIUS/VPN de Microsoft IAS. Muestra la asignación de direcciones IP de usuario> con dirección IP remota que se conecta a la empresa.
  • Objetos X509 de crypto API y eventos de cadena de compilación

    • Detecta un certificado incorrecto conocido, una ca o una sub ca
    • Detecta el uso inusual del proceso de CAPI
  • Grupos asignados al inicio de sesión local

    • Proporciona visibilidad a los grupos que habilitan el acceso a toda la cuenta
    • Permite un mejor planeamiento de los esfuerzos de corrección
    • Excluye cuentas del sistema bien conocidas e integradas.
  • Cierre de sesión de inicio de sesión

    • Específico para las sesiones de inicio de sesión de red.
  • Eventos de búsqueda de DNS de cliente

    • Devuelve qué proceso realizó una consulta DNS y los resultados devueltos desde el servidor DNS.
  • Salida del proceso

    • Permite comprobar si los procesos finalizan inesperadamente.
  • Validación de credenciales locales o inicio de sesión con credenciales explícitas

    • Se genera cuando el SAM local es autoritativo para las credenciales de cuenta que se autentican.
    • Ruido en los controladores de dominio
    • En los dispositivos cliente, solo se genera cuando las cuentas locales inician sesión.
  • Eventos de auditoría de modificación del Registro

    • Solo cuando se crea, modifica o elimina un valor del Registro.
  • Autenticación inalámbrica 802.1x

    • Detección de una conexión inalámbrica con una dirección MAC del mismo nivel
  • registro de Windows PowerShell

    • Cubre Windows PowerShell 2.0 y versiones posteriores e incluye las mejoras de registro de Windows PowerShell 5.0 para ataques en memoria mediante Windows PowerShell.
    • Incluye Windows PowerShell registro remoto
  • Evento "Driver Loaded" de Marco de controladores en modo de usuario

    • Es posible que detecte un dispositivo USB que cargue varios controladores de dispositivo. Por ejemplo, un USB_STOR dispositivo que carga el controlador de teclado o de red.

Si la directiva de auditoría de la organización permite realizar más auditorías para satisfacer sus necesidades, no pasa nada. La directiva siguiente es la configuración mínima de la directiva de auditoría necesaria para habilitar los eventos recopilados por las suscripciones de línea base y de destino.

Categoría Subcategoría Configuración de auditoría
Inicio de sesión de la cuenta Validación de credenciales Éxito y error
Administración de cuentas Administración de grupos de seguridad Correcto
Administración de cuentas Administración de cuentas de usuario Éxito y error
Administración de cuentas Administración de cuentas de equipo Éxito y error
Administración de cuentas Otros eventos de administración de cuentas Éxito y error
Seguimiento detallado Creación de procesos Correcto
Seguimiento detallado Finalización del proceso Correcto
Inicio de sesión o cierre de sesión Notificaciones de usuario o dispositivo No configurado
Inicio de sesión o cierre de sesión Modo extendido de IPsec No configurado
Inicio de sesión o cierre de sesión Modo rápido de IPsec No configurado
Inicio de sesión o cierre de sesión Sesión Éxito y error
Inicio de sesión o cierre de sesión La opción de cierre de sesión Correcto
Inicio de sesión o cierre de sesión Otros eventos de inicio de sesión o cierre de sesión Éxito y error
Inicio de sesión o cierre de sesión Inicio de sesión especial Éxito y error
Inicio de sesión o cierre de sesión Bloqueo de cuenta Correcto
Acceso a objetos Generado por la aplicación No configurado
Acceso a objetos Recurso compartido de archivos Correcto
Acceso a objetos Sistema de archivos No configurado
Acceso a objetos Otros eventos de acceso a objetos No configurado
Acceso a objetos Registro No configurado
Acceso a objetos Almacenamiento extraíble Correcto
Cambio de directiva Cambio de directiva de auditoría Éxito y error
Cambio de directiva Cambio de directiva de MPSSVC Rule-Level Éxito y error
Cambio de directiva Otros eventos de cambio de directiva Éxito y error
Cambio de directiva Cambio de directiva de autenticación Éxito y error
Cambio de directiva Cambio de directiva de autorización Éxito y error
Uso de privilegios Uso de privilegios confidenciales No configurado
Sistema Cambio de estado de seguridad Éxito y error
Sistema Extensión del sistema de seguridad Éxito y error
Sistema Integridad del sistema Éxito y error

Las claves Run y RunOnce son útiles para los intrusos y la persistencia de malware. Permite ejecutar código (o ejecutarlo solo una vez, respectivamente) cuando un usuario inicia sesión en el sistema.

Esta implicación se puede extender fácilmente a otras claves de puntos de inicio de ejecución automática en el Registro.

Use las siguientes ilustraciones para ver cómo puede configurar esas claves del Registro.

acl predeterminada para la clave de ejecución.

acl predeterminada para la clave runonce.

Apéndice C: métodos de configuración del canal de eventos (habilitación y acceso de canal)

Algunos canales están deshabilitados de forma predeterminada y deben estar habilitados. Otros, como Microsoft-Windows-CAPI2/Operational, deben tener el acceso al canal modificado para permitir que el grupo de seguridad integrado Lectores de registro de eventos lea de él.

La manera recomendada y más eficaz de realizar esta personalización es configurar el GPO de línea base para ejecutar una tarea programada para configurar los canales de evento (habilitar, establecer el tamaño máximo y ajustar el acceso al canal). Esta configuración surtirá efecto en el siguiente ciclo de actualización de GPO y tendrá un impacto mínimo en el dispositivo cliente.

El siguiente fragmento de código de GPO realiza las siguientes tareas:

  • Habilita el canal de eventos Microsoft-Windows-Capi2/Operational .
  • Establece el tamaño máximo de archivo para Microsoft-Windows-Capi2/Operational en 100 MB.
  • Establece el tamaño máximo de archivo para Microsoft-Windows-AppLocker/EXE y DLL en 100 MB.
  • Establece el acceso máximo al canal para Microsoft-Windows-Capi2/Operational para incluir el grupo de seguridad lectores de registro de eventos integrado.
  • Habilita el canal de eventos Microsoft-Windows-DriverFrameworks-UserMode/Operational .
  • Establece el tamaño máximo de archivo para Microsoft-Windows-DriverFrameworks-UserMode/Operational en 50 MB.

configurar canales de eventos.

La tabla siguiente también contiene las seis acciones que se configurarán en el GPO:

Programa o script Argumentos
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /e:true
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ms:102432768
%SystemRoot%\System32\wevtutil.exe sl "Microsoft-Windows-AppLocker/EXE y DLL" /ms:102432768
%SystemRoot%\System32\wevtutil.exe sl Microsoft-Windows-CAPI2/Operational /ca:"O:BAG:SYD:(A;; 0x7;;; BA)(A;; 0x2;;; AU)(A;; 0x1;;; S-1-5-32-573)"
%SystemRoot%\System32\wevtutil.exe sl "Microsoft-Windows-DriverFrameworks-UserMode/Operational" /e:true
%SystemRoot%\System32\wevtutil.exe sl "Microsoft-Windows-DriverFrameworks-UserMode/Operational" /ms:52432896

Apéndice D: GPO mínimo para la configuración del cliente WEF

Estos son los pasos mínimos para que WEF funcione:

  1. Configure los URI del recopilador.
  2. Inicie el servicio WinRM.
  3. Agregue la cuenta de servicio de red al grupo de seguridad lectores de registro de eventos integrado. Esta adición permite leer desde un canal de eventos protegido, como el canal de eventos de seguridad.

configurar el cliente de wef.

Apéndice E: consulta de eventos de suscripción de línea base anotada

<QueryList>
  <Query Id="0" Path="System">
    <!-- Anti-malware *old* events, but only detect events (cuts down noise) -->
    <Select Path="System">*[System[Provider[@Name='Microsoft Antimalware'] and (EventID &gt;= 1116 and EventID &lt;= 1119)]]</Select>
  </Query>
  <!-- AppLocker EXE events or Script events -->
  <Query Id="1" Path="Microsoft-Windows-AppLocker/EXE and DLL">
    <Select Path="Microsoft-Windows-AppLocker/EXE and DLL">*[UserData[RuleAndFileData[PolicyName="EXE"]]]</Select>
    <Select Path="Microsoft-Windows-AppLocker/MSI and Script">*</Select>
  </Query>
  <Query Id="2" Path="Security">
    <!-- Wireless Lan 802.1x authentication events with Peer MAC address -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="3" Path="Microsoft-Windows-TaskScheduler/Operational">
    <!-- Task scheduler Task Registered (106),  Task Registration Deleted (141), Task Deleted (142) -->
    <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and (EventID=106 or EventID=141 or EventID=142 )]]</Select>
  </Query>
  <Query Id="4" Path="System">
    <!-- System startup (12 - includes OS/SP/Version) and shutdown -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=12 or EventID=13)]]</Select>
  </Query>
  <Query Id="5" Path="System">
    <!-- Service Install (7000), service start failure (7045), new service (4697) -->
    <Select Path="System">*[System[Provider[@Name='Service Control Manager'] and (EventID = 7000 or EventID=7045)]]</Select>
<Select Path="Security">*[System[(EventID=4697)]]</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- TS Session reconnect (4778), TS Session disconnect (4779) -->
    <Select Path="Security">*[System[(EventID=4778 or EventID=4779)]]</Select>
  </Query>
  <Query Id="7" Path="Security">
    <!-- Network share object access without IPC$ and Netlogon shares -->
    <Select Path="Security">*[System[(EventID=5140)]] and (*[EventData[Data[@Name="ShareName"]!="\\*\IPC$"]]) and (*[EventData[Data[@Name="ShareName"]!="\\*\NetLogon"]])</Select>
  </Query>
  <Query Id="8" Path="Security">
    <!-- System Time Change (4616)  -->
    <Select Path="Security">*[System[(EventID=4616)]]</Select>
  </Query>
  <Query Id="9" Path="System">
    <!-- Shutdown initiate requests, with user, process and reason (if supplied) -->
    <Select Path="System">*[System[Provider[@Name='USER32'] and (EventID=1074)]]</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app execution -->
  <Query Id="10" Path="Microsoft-Windows-AppLocker/Packaged app-Execution">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Execution">*</Select>
  </Query>
  <!-- AppLocker packaged (Modern UI) app installation -->
  <Query Id="11" Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">
    <Select Path="Microsoft-Windows-AppLocker/Packaged app-Deployment">*</Select>
  </Query>
  <Query Id="12" Path="Application">
    <!-- EMET events -->
    <Select Path="Application">*[System[Provider[@Name='EMET']]]</Select>
  </Query>
  <Query Id="13" Path="System">
    <!-- Event log service events -->
    <Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="14" Path="Security">
    <!-- Local logons without network or service events -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]!="3"]]) and (*[EventData[Data[@Name="LogonType"]!="5"]])</Select>
  </Query>
  <Query Id="15" Path="Application">
    <!-- WER events for application crashes only -->
    <Select Path="Application">*[System[Provider[@Name='Windows Error Reporting']]] and (*[EventData[Data[3] ="APPCRASH"]])</Select>
  </Query>
  <Query Id="16" Path="Security">
    <!-- Security Log cleared events (1102), EventLog Service shutdown (1100)-->
    <Select Path="Security">*[System[(EventID=1102 or EventID = 1100)]]</Select>
  </Query>
  <Query Id="17" Path="System">
    <!-- Other Log cleared events (104)-->
    <Select Path="System">*[System[(EventID=104)]]</Select>
  </Query>
  <Query Id="18" Path="Security">
    <!--  user initiated logoff -->
    <Select Path="Security">*[System[(EventID=4647)]]</Select>
  </Query>
  <Query Id="19" Path="Security">
    <!-- user logoff for all non-network logon sessions-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] != "3"]])</Select>
  </Query>
  <Query Id="20" Path="Security">
    <!-- Service logon events if the user account isn't LocalSystem, NetworkService, LocalService -->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="5"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]])</Select>
  </Query>
  <Query Id="21" Path="Security">
    <!-- Network Share create (5142), Network Share Delete (5144)  -->
    <Select Path="Security">*[System[(EventID=5142 or EventID=5144)]]</Select>
  </Query>
  <Query Id="22" Path="Security">
    <!-- Process Create (4688) -->
    <Select Path="Security">*[System[EventID=4688]]</Select>
  </Query>
  <Query Id="23" Path="Security">
    <!-- Event log service events specific to Security channel -->
    <Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Eventlog']]]</Select>
  </Query>
  <Query Id="26" Path="Security">
    <!-- Special Privileges (Admin-equivalent Access) assigned to new logon, excluding LocalSystem-->
    <Select Path="Security">*[System[(EventID=4672)]]</Select>
    <Suppress Path="Security">*[EventData[Data[1]="S-1-5-18"]]</Suppress>
  </Query>
  <Query Id="27" Path="Security">
    <!-- New user added to local security group-->
    <Select Path="Security">*[System[(EventID=4732)]]</Select>
  </Query>
  <Query Id="28" Path="Security">
    <!-- New user added to global security group-->
    <Select Path="Security">*[System[(EventID=4728)]]</Select>
  </Query>
  <Query Id="29" Path="Security">
    <!-- New user added to universal security group-->
    <Select Path="Security">*[System[(EventID=4756)]]</Select>
  </Query>
  <Query Id="30" Path="Security">
    <!-- User removed from local Administrators group-->
    <Select Path="Security">*[System[(EventID=4733)]] and (*[EventData[Data[@Name="TargetUserName"]="Administrators"]])</Select>
  </Query>
  <Query Id="31" Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">
    <!-- Log attempted TS connect to remote server -->
    <Select Path="Microsoft-Windows-TerminalServices-RDPClient/Operational">*[System[(EventID=1024)]]</Select>
  </Query>
  <Query Id="32" Path="Security">
    <!-- Certificate Services received certificate request (4886), Approved and Certificate issued (4887), Denied request (4888) -->
    <Select Path="Security">*[System[(EventID=4886 or EventID=4887 or EventID=4888)]]</Select>
  </Query>
  <Query Id="34" Path="Security">
    <!-- New User Account Created(4720), User Account Enabled (4722), User Account Disabled (4725), User Account Deleted (4726) -->
    <Select Path="Security">*[System[(EventID=4720 or EventID=4722 or EventID=4725 or EventID=4726)]]</Select>
  </Query>
  <Query Id="35" Path="Microsoft-Windows-SmartCard-Audit/Authentication">
    <!-- Gets all Smart-card Card-Holder Verification (CHV) events (success and failure) performed on the host. -->
    <Select Path="Microsoft-Windows-SmartCard-Audit/Authentication">*</Select>
  </Query>
  <Query Id="36" Path="Microsoft-Windows-SMBClient/Operational">
    <!-- get all UNC/mapped drive successful connection -->
    <Select Path="Microsoft-Windows-SMBClient/Operational">*[System[(EventID=30622 or EventID=30624)]]</Select>
  </Query>
  <Query Id="37" Path="Application">
    <!-- User logging on with Temporary profile (1511), cannot create profile, using temporary profile (1518)-->
    <Select Path="Application">*[System[Provider[@Name='Microsoft-Windows-User Profiles Service'] and (EventID=1511 or EventID=1518)]]</Select>
  </Query>
  <Query Id="39" Path="Microsoft-Windows-Sysmon/Operational">
    <!-- Modern SysMon event provider-->
    <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
  </Query>
  <Query Id="40" Path="Application">
    <!-- Application crash/hang events, similar to WER/1001. These include full path to faulting EXE/Module.-->
    <Select Path="Application">*[System[Provider[@Name='Application Error'] and (EventID=1000)]]</Select>
    <Select Path="Application">*[System[Provider[@Name='Application Hang'] and (EventID=1002)]]</Select>
  </Query>
  <Query Id="41" Path="Microsoft-Windows-Windows Defender/Operational">
    <!-- Modern Windows Defender event provider Detection events (1006-1009) and (1116-1119) -->
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1006 and EventID &lt;= 1009) )]]</Select>
    <Select Path="Microsoft-Windows-Windows Defender/Operational">*[System[( (EventID &gt;= 1116 and EventID &lt;= 1119) )]]</Select>
  </Query>
  <Query Id="42" Path="Security">
    <!-- An account Failed to Log on events -->
    <Select Path="Security">*[System[(EventID=4625)]] and (*[EventData[Data[@Name="LogonType"]!="2"]]) </Select>
  </Query>

</QueryList>

Apéndice F: Consulta de eventos de suscripción sospechosa anotada

<QueryList>
  <Query Id="0" Path="Security">
    <!-- Network logon events-->
    <Select Path="Security">*[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]="3"]])</Select>
  </Query>
  <Query Id="1" Path="System">
    <!-- RADIUS authentication events User Assigned IP address (20274), User successfully authenticated (20250), User Disconnected (20275)  -->
    <Select Path="System">*[System[Provider[@Name='RemoteAccess'] and (EventID=20274 or EventID=20250 or EventID=20275)]]</Select>
  </Query>
  <Query Id="2" Path="Microsoft-Windows-CAPI2/Operational">
    <!-- CAPI events Build Chain (11), Private Key accessed (70), X509 object (90)-->
    <Select Path="Microsoft-Windows-CAPI2/Operational">*[System[(EventID=11 or EventID=70 or EventID=90)]]</Select>
  </Query>
  <Query Id="3" Path="Security">
    <!-- CA stop/Start events CA Service Stopped (4880), CA Service Started (4881), CA DB row(s) deleted (4896), CA Template loaded (4898) -->
    <Select Path="Security">*[System[(EventID=4880 or EventID = 4881 or EventID = 4896 or EventID = 4898)]]</Select>
  </Query>
  <Query Id="4" Path="Microsoft-Windows-LSA/Operational">
    <!-- Groups assigned to new login (except for well known, built-in accounts)-->
    <Select Path="Microsoft-Windows-LSA/Operational">*[System[(EventID=300)]] and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-20"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-18"]]) and (*[EventData[Data[@Name="TargetUserSid"] != "S-1-5-19"]])</Select>
  </Query>
  <Query Id="5" Path="Security">
    <!-- Logoff events - for Network Logon events-->
    <Select Path="Security">*[System[(EventID=4634)]] and (*[EventData[Data[@Name="LogonType"] = "3"]])</Select>
  </Query>
  <Query Id="6" Path="Security">
    <!-- RRAS events - only generated on Microsoft IAS server -->
    <Select Path="Security">*[System[( (EventID &gt;= 6272 and EventID &lt;= 6280) )]]</Select>
  </Query>
  <Query Id="7" Path="Microsoft-Windows-DNS-Client/Operational">
    <!-- DNS Client events Query Completed (3008) -->
    <Select Path="Microsoft-Windows-DNS-Client/Operational">*[System[(EventID=3008)]]</Select>
<!-- suppresses local machine name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryOptions"]="140737488355328"]]</Suppress>
<!-- suppresses empty name resolution events -->
<Suppress Path="Microsoft-Windows-DNS-Client/Operational">*[EventData[Data[@Name="QueryResults"]=""]]</Suppress>
  </Query>
  <Query Id="8" Path="Security">
    <!-- Process Terminate (4689) -->
    <Select Path="Security">*[System[(EventID = 4689)]]</Select>
  </Query>
  <Query Id="9" Path="Security">
    <!-- Local credential authentication events (4776), Logon with explicit credentials (4648) -->
    <Select Path="Security">*[System[(EventID=4776 or EventID=4648)]]</Select>
  </Query>
  <Query Id="10" Path="Security">
    <!-- Registry modified events for Operations: New Registry Value created (%%1904), Existing Registry Value modified (%%1905), Registry Value Deleted (%%1906) -->
    <Select Path="Security">*[System[(EventID=4657)]] and ((*[EventData[Data[@Name="OperationType"] = "%%1904"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1905"]]) or (*[EventData[Data[@Name="OperationType"] = "%%1906"]]))</Select>
  </Query>
  <Query Id="11" Path="Security">
    <!-- Request made to authenticate to Wireless network (including Peer MAC (5632) -->
    <Select Path="Security">*[System[(EventID=5632)]]</Select>
  </Query>
  <Query Id="12" Path="Microsoft-Windows-PowerShell/Operational">
    <!-- PowerShell execute block activity (4103), Remote Command(4104), Start Command(4105), Stop Command(4106) -->
    <Select Path="Microsoft-Windows-PowerShell/Operational">*[System[(EventID=4103 or EventID=4104 or EventID=4105 or EventID=4106)]]</Select>
  </Query>
  <Query Id="13" Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">
    <!-- Detect User-Mode drivers loaded - for potential BadUSB detection. -->
    <Select Path="Microsoft-Windows-DriverFrameworks-UserMode/Operational">*[System[(EventID=2004)]]</Select>
  </Query>
<Query Id="14" Path="Windows PowerShell">
    <!-- Legacy PowerShell pipeline execution details (800) -->
    <Select Path="Windows PowerShell">*[System[(EventID=800)]]</Select>
  </Query>
</QueryList>

Apéndice G: Recursos en línea

Puede obtener más información con los vínculos siguientes: