Recopila registros de Microsoft System Center Endpoint Protection (SCEP)
En este documento, se describe cómo recopilar registros de Microsoft System Center Endpoint Protection (SCEP) configurando un feed de Google Security Operations con Microsoft Azure Blob Storage V2.
Microsoft System Center Endpoint Protection (SCEP) es una solución antivirus y antimalware empresarial integrada en System Center Configuration Manager (SCCM). SCEP proporciona protección en tiempo real contra software malicioso, virus, software espía y otros programas maliciosos para los endpoints basados en Windows. SCEP escribe eventos de seguridad en el canal Microsoft-Windows-Windows Defender/Operational del registro de eventos de Windows, que se puede recopilar con el agente de Azure Monitor y exportar a Azure Blob Storage.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Acceso con privilegios al portal de Microsoft Azure con los siguientes permisos:
- Crea cuentas de almacenamiento
- Crea y administra espacios de trabajo de Log Analytics
- Crea y administra reglas de recopilación de datos
- Configura reglas de exportación de datos
- Administra las claves de acceso
- Windows Server 2012 R2 o posterior con SCEP instalado, o Windows Server 2016 o posterior con Antivirus de Windows Defender
- Agente de Azure Monitor instalado en el servidor de Windows (requiere Azure Arc para servidores locales o compatibilidad nativa con VMs de Azure)
Acceso de administrador en el servidor de Windows en el que se implementa SCEP
Configura la cuenta de Azure Storage
Crea una cuenta de almacenamiento
- En el portal de Azure, busca Cuentas de almacenamiento.
- Haz clic en + Crear.
Proporciona los siguientes detalles de configuración:
Parámetro de configuración Valor Suscripción Selecciona tu suscripción a Azure Grupo de recursos Selecciona una existente o crea una nueva Nombre de la cuenta de almacenamiento Ingresa un nombre único (por ejemplo, sceplogssa).Región Selecciona la región (por ejemplo, East US).Rendimiento Estándar (recomendado) Redundancia GRS (almacenamiento con redundancia geográfica) o LRS (almacenamiento con redundancia local) Haz clic en Revisar + crear.
Revisa el resumen de la cuenta y haz clic en Crear.
Espera a que se complete la implementación.
Obtén credenciales de la cuenta de almacenamiento
- Ve a la cuenta de almacenamiento que acabas de crear.
- En la navegación de la izquierda, selecciona Claves de acceso en Seguridad y redes.
- Haz clic en Mostrar claves.
- Copia y guarda lo siguiente para usarlo más tarde:
- Nombre de la cuenta de almacenamiento: El nombre que creaste (por ejemplo,
sceplogssa) - Clave 1 o Clave 2: La clave de acceso compartida (una cadena aleatoria de 512 bits en codificación base-64)
- Nombre de la cuenta de almacenamiento: El nombre que creaste (por ejemplo,
Obtén el extremo del servicio Blob
- En la misma cuenta de almacenamiento, selecciona Extremos en la navegación de la izquierda.
- Copia y guarda la URL del extremo del servicio de Blob.
- Ejemplo:
https://sceplogssa.blob.core.windows.net/
- Ejemplo:
Crea un espacio de trabajo de Log Analytics
- En el portal de Azure, busca Espacios de trabajo de Log Analytics.
- Haz clic en + Crear.
Proporciona los siguientes detalles de configuración:
Parámetro de configuración Valor Suscripción Selecciona tu suscripción a Azure Grupo de recursos Selecciona el mismo grupo de recursos que la cuenta de almacenamiento. Nombre Ingresa un nombre único (por ejemplo, scep-logs-workspace).Región Selecciona la misma región que la cuenta de almacenamiento. Haz clic en Revisar y crear.
Haz clic en Crear.
Espera a que se complete la implementación.
Instala el agente de Azure Monitor en el servidor de Windows
En el caso de los servidores locales que ejecutan SCEP, primero debes incorporar el servidor a Azure Arc y, luego, instalar el agente de Azure Monitor.
Incorporación a Azure Arc (solo para servidores locales)
- En el portal de Azure, busca Azure Arc.
- Selecciona Servidores en Infraestructura.
- Haz clic en + Agregar.
- Selecciona Agregar un solo servidor y haz clic en Generar secuencia de comandos.
- Proporciona los siguientes detalles de configuración:
- Suscripción: Selecciona tu suscripción a Azure.
- Grupo de recursos: Selecciona tu grupo de recursos.
- Región: Selecciona la misma región que la cuenta de almacenamiento.
- Sistema operativo: Selecciona Windows.
- Haz clic en Descargar y ejecutar la secuencia de comandos.
- En el servidor de Windows que ejecuta SCEP, abre PowerShell como administrador.
Ejecuta la secuencia de comandos descargada para completar la incorporación de Azure Arc.
Instala el agente de Azure Monitor
- En el Azure Portal, ve a Azure Arc > Servidores (o Máquinas virtuales para las VMs de Azure).
- Selecciona el servidor que ejecuta SCEP.
- En la navegación de la izquierda, selecciona Extensiones en Configuración.
- Haz clic en + Agregar.
- Busca y selecciona Agente de Azure Monitor.
- Haz clic en Siguiente y, luego, en Revisar + crear.
- Haz clic en Crear.
- Espera a que se complete la instalación de la extensión.
Crea una regla de recopilación de datos para los eventos de SCEP
- En el portal de Azure, busca Monitor.
- Selecciona Reglas de recopilación de datos en Configuración.
- Haz clic en + Crear.
- En la pestaña Básicos, proporciona los siguientes detalles de configuración:
- Nombre de la regla: Ingresa un nombre descriptivo (por ejemplo,
dcr-scep-events). - Suscripción: Selecciona tu suscripción a Azure.
- Grupo de recursos: Selecciona tu grupo de recursos.
- Región: Selecciona la misma región que el espacio de trabajo de Log Analytics.
- Tipo de plataforma: Selecciona Windows.
- Nombre de la regla: Ingresa un nombre descriptivo (por ejemplo,
- Haz clic en Siguiente: Recursos.
- En la pestaña Recursos, haz lo siguiente:
- Haz clic en + Agregar recursos.
- Expande el grupo de recursos y selecciona el servidor que ejecuta SCEP (servidor de Azure Arc o VM de Azure).
- Haz clic en Aplicar.
- Haz clic en Siguiente: Recopila y entrega.
En la pestaña Recolección y entrega, haz lo siguiente:
- Haz clic en + Agregar fuente de datos.
- En el menú desplegable Tipo de fuente de datos, selecciona Registros de eventos de Windows.
- Selecciona Personalizado para ingresar consultas XPath.
Haz clic en + Agregar consulta XPath y, luego, ingresa la siguiente consulta XPath para recopilar todos los eventos de SCEP y Windows Defender:
Microsoft-Windows-Windows Defender/Operational!*[System[(Level=1 or Level=2 or Level=3 or Level=4 or Level=5)]]Esta consulta XPath recopila todos los eventos (Crítico, Error, Advertencia, Información y Verbose) del canal operativo de Windows Defender. Para recopilar solo IDs de eventos específicos (por ejemplo, detecciones de software malicioso), usa una búsqueda más segmentada, como la siguiente:
Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1006 or EventID=1007 or EventID=1116 or EventID=1117 or EventID=2000 or EventID=2001 or EventID=5007)]]En la pestaña Destino, haz clic en + Agregar destino.
Selecciona Registros de Azure Monitor como el Tipo de destino.
Selecciona el espacio de trabajo de Log Analytics que creaste antes (por ejemplo,
scep-logs-workspace).
Haz clic en Agregar fuente de datos.
Haz clic en Revisar + crear.
Haz clic en Crear.
IDs de eventos clave recopilados
La regla de recopilación de datos recopila eventos del canal Microsoft-Windows-Windows Defender/Operational, que incluye los siguientes IDs de eventos clave de SCEP:
| ID del evento | Descripción |
|---|---|
| 1006 | Se detectó software malicioso con el motor de protección contra software malicioso |
| 1007 | Se tomó una medida de protección contra software malicioso en el software malicioso detectado |
| 1116 | La protección en tiempo real detectó software malicioso o potencialmente no deseado |
| 1117 | La Protección en tiempo real tomó medidas contra el software malicioso |
| 2000 | Se inició la actualización de firmas de software malicioso |
| 2001 | Se completó la actualización de firmas de software malicioso |
| 5007 | Se cambió la configuración de la plataforma de software antimalware |
Configura la exportación de datos desde el espacio de trabajo de Log Analytics a Azure Blob Storage
Registra el proveedor de recursos de Microsoft.Insights
- En el portal de Azure, ve a Suscripciones.
- Selecciona tu suscripción.
- En la navegación de la izquierda, selecciona Proveedores de recursos en Configuración.
- Busca Microsoft.Insights.
- Si el estado no es Registrado, selecciónalo y haz clic en Registrar.
Crea una regla de exportación de datos
- En el portal de Azure, ve a tu espacio de trabajo de Log Analytics (por ejemplo,
scep-logs-workspace). - En la navegación de la izquierda, selecciona Exportación de datos en Configuración.
- Haz clic en + Nueva regla de exportación.
- En la pestaña Basics, haz lo siguiente:
- Nombre de la regla de exportación de datos: Ingresa un nombre descriptivo (por ejemplo,
export-scep-to-blob).
- Nombre de la regla de exportación de datos: Ingresa un nombre descriptivo (por ejemplo,
- Haz clic en Siguiente: Fuente.
En la pestaña Fuente, selecciona la tabla Evento.
Haz clic en Siguiente: Destino.
En la pestaña Destino, haz lo siguiente:
- Tipo de destino: Selecciona Cuenta de almacenamiento.
- Suscripción: Selecciona la suscripción que contiene la cuenta de almacenamiento.
- Cuenta de almacenamiento: Selecciona la cuenta de almacenamiento que creaste antes (por ejemplo,
sceplogssa).
Haz clic en Siguiente: Revisar y crear.
Haz clic en Crear.
Después de la configuración, los eventos se exportan automáticamente a la cuenta de almacenamiento. Se crea un contenedor llamado
am-Eventen la cuenta de almacenamiento. Los BLOB se almacenan en carpetas de 5 minutos con la siguiente estructura de ruta:am-Event/ └── WorkspaceResourceId=/subscriptions/{subscription-id}/resourcegroups/{resource-group}/providers/microsoft.operationalinsights/workspaces/{workspace}/ └── y={year}/m={month}/d={day}/h={hour}/m={minute}/ └── PT05M.json
Verifica la exportación de datos
- En el portal de Azure, ve a la cuenta de almacenamiento (por ejemplo,
sceplogssa). - En la navegación de la izquierda, selecciona Contenedores en Almacenamiento de datos.
- Verifica que exista el contenedor
am-Event. - Navega al contenedor y verifica que se estén creando archivos JSON con datos de eventos en la estructura de carpetas.
Configura un feed en Google SecOps para transferir registros de Microsoft System Center Endpoint Protection (SCEP)
- Ve a Configuración de SIEM > Feeds.
- Haz clic en Agregar feed nuevo.
- En la siguiente página, haz clic en Configurar un solo feed.
- En el campo Nombre del feed, ingresa un nombre para el feed (por ejemplo,
Microsoft SCEP Logs). - Selecciona Microsoft Azure Blob Storage V2 como el Tipo de fuente.
- Selecciona Microsoft System Center Endpoint Protection (SCEP) como el Tipo de registro.
- Haz clic en Siguiente.
Especifica valores para los siguientes parámetros de entrada:
- URI de Azure: Ingresa la URL del extremo del servicio Blob con la ruta de acceso del contenedor:
https://sceplogssa.blob.core.windows.net/am-Event/Reemplaza lo siguiente:
sceplogssa: Es el nombre de tu cuenta de almacenamiento de Azure.am-Event: Es el nombre del contenedor de blobs en el que se almacenan los eventos exportados.
- Opción de eliminación del código fuente: Selecciona la opción de eliminación según tu preferencia:
- Nunca: Nunca borra ningún archivo después de las transferencias.
- Borrar archivos transferidos: Borra los archivos después de que se transfirieron correctamente.
- Borrar los archivos transferidos y los directorios vacíos: Borra los archivos y los directorios vacíos después de que se transfirieron correctamente.
- Antigüedad máxima del archivo: Incluye los archivos modificados en la cantidad de días más reciente (el valor predeterminado es 180 días).
- Llave compartida: Ingresa el valor de la llave compartida (llave de acceso) que capturaste de la cuenta de almacenamiento.
- Espacio de nombres del recurso: Es el espacio de nombres del recurso.
- Etiquetas de transferencia: Es la etiqueta que se aplicará a los eventos de este feed.
Haz clic en Siguiente.
Revisa la nueva configuración del feed en la pantalla Finalizar y, luego, haz clic en Enviar.
Configura el firewall de Azure Storage (si está habilitado)
Si tu cuenta de Azure Storage usa un firewall, debes agregar los rangos de IP de Google SecOps.
- En el portal de Azure, ve a tu cuenta de almacenamiento.
- Selecciona Herramientas de redes en Seguridad y redes.
- En Firewalls and virtual networks, selecciona Enabled from selected virtual networks and IP addresses.
- En la sección Firewall, en Rango de direcciones, haz clic en + Agregar rango de IP.
Agrega cada rango de IP de Google SecOps en notación CIDR.
Para obtener los rangos de IP actuales, haz lo siguiente:
- Consulta la documentación sobre la inclusión en la lista de anunciantes permitidos de IP
- O bien, recupéralos de manera programática con la API de Feed Management
Además, selecciona la casilla de verificación Permitir que los servicios de Azure de la lista de servicios de confianza accedan a esta cuenta de almacenamiento para permitir que la exportación de datos del espacio de trabajo de Log Analytics escriba en la cuenta de almacenamiento.
Haz clic en Guardar.
Tabla de asignación de UDM
| Campo de registro | Asignación de UDM | Lógica |
|---|---|---|
| about.hostname | about.hostname | Se estableció en "%{_DB_HOST}" |
| _DB_PORT | about.port | Valor copiado directamente y convertido en número entero |
| _DB_DRIVER | about.resource.name | Se establece en "%{_DB_DRIVER}". |
| _DB_URL | about.url | Se estableció en "%{_DB_URL}". |
| signature_labels | event.idm.read_only_udm.additional.fields | Se fusiona de signature_labels si la firma no está vacía, pending_action si PendingAction no está vacío, execution_status si ExecutionStatus no está vacío, record_id si RecordID no está vacío, error_code si ErrorCode no está vacío y action_success si ActionSuccess no está vacío. |
| pending_action | event.idm.read_only_udm.additional.fields | |
| execution_status | event.idm.read_only_udm.additional.fields | |
| record_id | event.idm.read_only_udm.additional.fields | |
| error_code | event.idm.read_only_udm.additional.fields | |
| action_success | event.idm.read_only_udm.additional.fields | |
| source_url | event.idm.read_only_udm.src.url | Valor de source_url si no está vacío; de lo contrario, de my_string1 si no está vacío |
| my_string1 | event.idm.read_only_udm.src.url | |
| has_principal | metadata.event_type | Se establece en "NETWORK_CONNECTION" si has_principal y has_target son verdaderos; de lo contrario, se establece en "STATUS_UPDATE" si has_principal es verdadero, en "SCAN_FILE" si no es no_target_host y path_available es verdadero, en "STATUS_UNCATEGORIZED" si no es no_target_host, en "USER_UNCATEGORIZED" si has_user es verdadero y en "GENERIC_EVENT" en los demás casos. |
| has_user | metadata.event_type | |
| has_target | metadata.event_type | |
| no_target_host | metadata.event_type | |
| path_available | metadata.event_type | |
| Nombre | metadata.product_event_type | Valor copiado directamente |
| DetectionID | metadata.product_log_id | Valor copiado directamente |
| metadata.product_name | metadata.product_name | Se debe establecer en "MICROSOFT SYSTEM CENTER ENDPOINT PROTECTION". |
| metadata.vendor_name | metadata.vendor_name | Se establece en "MICROSOFT". |
| NTdomain | principal.administrative_domain | Valor copiado directamente |
| Nombre de host | principal.asset.hostname | Valor del nombre de host si no está vacío; de lo contrario, se toma de TargetHost |
| TargetHost | principal.asset.hostname | |
| action_type | principal.group.attribute.labels | Se fusionó de action_type_label si action_type no está vacío |
| Nombre de host | principal.hostname | Valor del nombre de host si no está vacío; de lo contrario, se toma de TargetHost |
| TargetHost | principal.hostname | |
| Proceso | principal.process.file.full_path | El valor se copia directamente si el proceso no está vacío. |
| NOMBRE DE USUARIO | principal.user.user_display_name | Valor copiado directamente |
| UserName | principal.user.userid | Valor de UserName si no está vacío; de lo contrario, valor del usuario si no está vacío |
| usuario | principal.user.userid | |
| acción | security_result.action | Se establece según los valores de acción (ALLOW para éxito/creado/iniciado/entregado/permitido, BLOCK para falla/bloqueado/desactivación/diferido/borrado/rechazado/descartado/error/bloqueado, ALLOW_WITH_MODIFICATION para acl_modified/modified, QUARANTINE para en cuarentena) o CleanAction (FAIL si falló, QUARANTINE si está en cuarentena, ALLOW si se permitió, BLOCK si se bloqueó) |
| CleanAction | security_result.action | |
| CleanAction | security_result.action_details | El valor se copia directamente si CleanAction no está vacío |
| categoría | security_result.category_details | Se fusionó de la categoría si no está vacío; de lo contrario, de Category |
| Categoría | security_result.category_details | |
| DetectionID | security_result.detection_fields | Se fusiona desde DetectionID_field si DetectionID no está vacío, detectionid_field si detectionid no está vacío, detection_source_labels si detection_source no está vacío, pending_action_labels si pending_action no está vacío, detection_Path si source_url, file_path y Path no están vacíos. |
| detectionid | security_result.detection_fields | |
| detection_source | security_result.detection_fields | |
| pending_action | security_result.detection_fields | |
| Ruta | security_result.detection_fields | |
| gravedad, | security_result.severity | Se establece según la gravedad (BAJA para 0/1/2/3/BAJA, MEDIA para 4/5/6/MEDIA/SUBSTANCIAL/INFO, ALTA para 7/8/ALTA/GRAVE, CRÍTICA para 9/10/MUY ALTA/CRÍTICA) o SeverityID (BAJA para 1, MEDIA para 2, ALTA para 4, CRÍTICA para 5, UNKNOWN_SEVERITY para el resto) |
| SeverityID | security_result.severity | |
| SeverityID | security_result.severity_details | Valor copiado directamente |
| ThreatID | security_result.threat_id | Valor copiado directamente |
| ThreatName | security_result.threat_name | Valor copiado directamente |
| MaliciousFileCt | security_result.verdict_info | Valor copiado directamente, convertido en número entero y combinado como malicious_file_ct |
| dest_nt_domain | target.administrative_domain | Valor copiado directamente |
| dest_name | target.asset.hostname | El valor se copia directamente si dest_name no está vacío. |
| file_path | target.file.full_path | Valor de file_path si no está vacío; de lo contrario, de Path si file_path está vacío; de lo contrario, de my_string si no está vacío |
| Ruta | target.file.full_path | |
| my_string | target.file.full_path | |
| dest_name | target.hostname | El valor se copia directamente si dest_name no está vacío. |
| ResourceID | target.resource.name | Valor de ResourceID si no está vacío; de lo contrario, de resourceid si no está vacío |
| resourceid | target.resource.name | |
| usuario | target.user.userid | El valor se copia directamente si el usuario no está vacío. |
| hora | metadata.event_timestamp | Se convierte a partir de la hora con el formato "MMM dd HH:mm:ss" si la hora no está vacía; de lo contrario, se convierte a partir de DetectionTime o detectiontime con UNIX_MS. |
| DetectionTime | metadata.event_timestamp | |
| detectiontime | metadata.event_timestamp |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.