Análisis de riesgos para UEBA

Se admite en los siguientes sistemas operativos:

En este documento, se proporciona una descripción general de los conjuntos de reglas en la categoría de Análisis de riesgos para UEBA, los datos requeridos y la configuración que puedes usar para ajustar las alertas que genera cada conjunto de reglas. Estos conjuntos de reglas ayudan a identificar amenazas mediante la evaluación de las fuentes de registros admitidas.

Descripciones de los conjuntos de reglas

Los siguientes conjuntos de reglas están disponibles en la categoría Análisis de riesgo para UEBA y se agrupan según el tipo de patrones detectados:

Autenticación

  • New Login by User to Device: Un usuario se conectó a un dispositivo nuevo.
  • Anomalous Authentication Events by User: Una sola entidad de usuario tuvo eventos de autenticación anómalos recientemente, en comparación con el uso histórico.
  • Failed Authentications by Device: Una entidad de un solo dispositivo tuvo muchos intentos de acceso fallidos recientemente, en comparación con el uso histórico.
  • Failed Authentications by User: Una entidad de usuario único tuvo muchos intentos de acceso fallidos recientemente, en comparación con el uso histórico.

Análisis del tráfico de red

  • Bytes entrantes anómalos por dispositivo: Se subió una cantidad significativa de datos recientemente a una sola entidad de dispositivo, en comparación con el uso histórico.
  • Bytes salientes anómalos por dispositivo: Se descargó una cantidad significativa de datos recientemente desde una sola entidad de dispositivo, en comparación con el uso histórico.
  • Anomalous Total Bytes by Device: Una entidad de dispositivo subió y descargó recientemente una cantidad significativa de datos en comparación con el uso histórico.
  • Anomalous Inbound Bytes by User: Una entidad de un solo usuario descargó recientemente una cantidad significativa de datos en comparación con el uso histórico.
  • Anomalous Total Bytes by User: Una entidad de usuario subió y descargó recientemente una cantidad significativa de datos en comparación con el uso histórico.
  • Fuerza bruta y, luego, acceso exitoso del usuario: Una entidad de un solo usuario de una dirección IP tuvo varios intentos fallidos de autenticación en una aplicación determinada antes de acceder correctamente.

Detecciones basadas en grupos de empresas similares

  • Anomalous or Excessive Logins for a Newly Created User: Actividad de autenticación anómala o excesiva para un usuario creado recientemente. Esto usa la hora de creación de los datos de contexto del anuncio.

  • Acciones sospechosas anómalas o excesivas para un usuario recién creado: Actividad anómala o excesiva (incluida, sin limitaciones, la telemetría HTTP, la ejecución de procesos y la modificación de grupos) para un usuario creado recientemente. Esto usa la hora de creación de los datos de contexto del anuncio.

Acciones sospechosas

  • Creación excesiva de cuentas por dispositivo: Una entidad de dispositivo creó varias cuentas de usuario nuevas.
  • Alertas excesivas por usuario: Se informó una gran cantidad de alertas de seguridad de un antivirus o un dispositivo de extremo (por ejemplo, se bloqueó la conexión, se detectó software malicioso) sobre una entidad de usuario, que fue mucho mayor que los patrones históricos. Estos son eventos en los que el campo security_result.action del UDM está establecido en BLOCK.

Detecciones basadas en la prevención de pérdida de datos

  • Procesos anómalos o excesivos con capacidades de robo de datos: Actividad anómala o excesiva para procesos asociados con capacidades de robo de datos, como registradores de teclas, capturas de pantalla y acceso remoto. Esto usa el enriquecimiento de metadatos de archivos de VirusTotal.

Datos obligatorios que necesita el análisis de riesgos para la categoría de UEBA

En esta sección, se detallan los datos que requiere cada categoría de conjunto de reglas para un rendimiento óptimo. Si bien las detecciones de UEBA están diseñadas para funcionar con todos los analizadores predeterminados compatibles, el uso de los siguientes tipos de datos específicos maximiza sus beneficios. Para obtener una lista completa de los analizadores predeterminados admitidos, consulta Tipos de registros y analizadores predeterminados admitidos.

Autenticación

Para usar cualquiera de estos conjuntos de reglas, recopila datos de registro del registro de auditoría de directorios de Azure AD (AZURE_AD_AUDIT) o del registro de eventos de Windows (WINEVTLOG).

En el caso de WINEVTLOG, debes configurar la recopilación de datos para incluir el siguiente Event IDs de Windows en el registro de eventos Security Channel. Estos eventos se asignan directamente al Event types (por ejemplo, USER_LOGIN o PROCESS_LAUNCH) que usa el motor de detección.

Requisitos del ID de evento de Windows

Tipo de evento ID de evento de Windows
USER_LOGIN 529, 4624, 4625, 4626, 4648, 4672, 4768, 4769, 4770, 4771, 4777, 4820, 4821, 4964
USER_CREATION 4720
NETWORK_CONNECTION 4096, 4097, 4321, 5156, 5632, 5633, 5157
GROUP_MODIFICATION 4728, 4729, 4732, 4733, 4735, 4737, 4745, 4746, 4747, 4750, 4751, 4752, 4755, 4756, 4757, 4760, 4761, 4762, 4764, 4784, 4785, 4786, 4787, 4788, 4791
PROCESS_LAUNCH 4688
PROCESS_OPEN 4663, 4670, 4691, 8002

Análisis del tráfico de red

Para usar cualquiera de estos conjuntos de reglas, recopila datos de registro que capturen la actividad de la red. Por ejemplo, desde dispositivos como FortiGate (FORTINET_FIREWALL), Check Point (CHECKPOINT_FIREWALL), Zscaler (ZSCALER_WEBPROXY), CrowdStrike Falcon (CS_EDR) o Carbon Black (CB_EDR).

Detecciones basadas en grupos de empresas similares

Para usar cualquiera de estos conjuntos de reglas, recopila datos de registro del registro de auditoría de directorios de Azure AD (AZURE_AD_AUDIT) o del registro de eventos de Windows (WINEVTLOG).

Acciones sospechosas

Cada conjunto de reglas de este grupo usa un tipo de datos diferente.

Conjunto de reglas de creación excesiva de cuentas por dispositivo

Para usar este conjunto de reglas, recopila datos de registro del registro de auditoría de directorio de Azure AD (AZURE_AD_AUDIT) o del registro de eventos de Windows (WINEVTLOG).

Conjunto de reglas de Alertas excesivas por usuario

Para usar este conjunto de reglas, recopila datos de registro que capturen las actividades de los extremos o los datos de auditoría, como los que registran CrowdStrike Falcon (CS_EDR), Carbon Black (CB_EDR) o Azure AD Directory Audit (AZURE_AD_AUDIT).

Detecciones basadas en la prevención de pérdida de datos

Para usar cualquiera de estos conjuntos de reglas, recopila datos de registro que capturen las actividades de procesos y archivos, como los que registran CrowdStrike Falcon (CS_EDR), Carbon Black (CB_EDR) o SentinelOne EDR (SENTINEL_EDR).

Dependencias de campos

En esta sección, se describen los campos de métricas y dimensiones que usan las reglas de UEBA de Google SecOps.

Dependencias de métricas

En la siguiente tabla, se enumeran las métricas y las consultas de búsqueda correspondientes del UDM que definen los eventos que contribuyen a cada métrica.

Métrica Búsqueda de UDM para los eventos que contribuyen a la métrica
AUTH_ATTEMPTS_FAIL metadata.event_type = "USER_LOGIN"
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
AUTH_ATTEMPTS_SUCCESS metadata.event_type = "USER_LOGIN"
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
AUTH_ATTEMPTS_TOTAL metadata.event_type = "USER_LOGIN"
AND security_result.action >= "UNKNOWN_ACTION"
DNS_BYTES_OUTBOUND network.sent_bytes > 0
AND (network.ip_protocol = "UDP" AND target.port = 53)
OR (network.ip_protocol = "TCP" AND (target.port = 53 OR target.port=3000))
DNS_QUERIES_FAIL network.dns.id > 0
AND network.dns.response_code != 0
DNS_QUERIES_SUCCESS network.dns.id > 0
AND network.dns.response_code = 0
DNS_QUERIES_TOTAL network.dns.id > 0
FILE_EXECUTIONS_FAIL metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action != "ALLOW"
FILE_EXECUTIONS_SUCCESS metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action = "ALLOW"
FILE_EXECUTIONS_TOTAL metadata.event_type = "PROCESS_LAUNCH"
HTTP_QUERIES_FAIL network.http.method != ""
AND (network.http.response_code >= 400 OR network.http.response_code = 0)
HTTP_QUERIES_SUCCESS network.http.method != ""
AND network.http.response_code < 400
HTTP_QUERIES_TOTAL network.http.method != ""
NETWORK_BYTES_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_BYTES_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_BYTES_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
NETWORK_FLOWS_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_FLOWS_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_FLOWS_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
RESOURCE_READ_FAIL (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_READ_SUCCESS (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
RESOURCE_READ_TOTAL (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
RESOURCE_WRITTEN_FAIL (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_WRITTEN_SUCCESS (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
RESOURCE_WRITTEN_TOTAL (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")

Dependencias de dimensiones

En la siguiente tabla, se enumeran las dimensiones y las opciones de campos de UDM correspondientes disponibles para filtrar o agrupar.

Dimensión Opciones de campos
Dispositivo principal principal.asset.asset_id
principal.asset.hostname
principal.asset.ip
principal.asset.mac
principal.asset.product_object_id
Dispositivo de destino target.asset.asset_id
target.asset.hostname
target.asset.ip
target.asset.mac
target.asset.product_object_id
Usuario principal principal.user.email_addresses
principal.user.employee_id
principal.user.product_object_id
principal.user.userid
principal.user.windows_sid
Destinatario target.user.email_addresses
target.user.employee_id
target.user.product_object_id
target.user.userid
target.user.windows_sid
Servicio de destino target.application
IP de destino target.ip
Ruta de acceso al archivo del proceso principal principal.process.file.full_path
Hash del archivo del proceso principal principal.process.file.sha256
Hash del archivo principal principal.file.sha256
País principal principal.ip_geo_artifact.location.country_or_region
Categoría de seguridad security_result.category
Nombre de la organización de la red principal principal.ip_geo_artifact.network.organization_name
Nombre de la organización de la red de destino target.ip_geo_artifact.network.organization_name
Hash del certificado de cliente network.tls.client.certificate.sha256
Tipo de consulta de DNS network.dns.questions.type
Dominio de DNS network.dns_domain
Usuario-agente HTTP network.http.user_agent
Tipo de evento metadata.event_type
Sistema operativo principal.platform

Ajusta las alertas que devuelven los conjuntos de reglas de esta categoría

Puedes reducir la cantidad de detecciones que genera una regla o un conjunto de reglas con las exclusiones de reglas.

Una exclusión de regla define los criterios que se utilizan para excluir un evento de la evaluación del conjunto de reglas o de reglas específicas del conjunto de reglas. Crea una o más exclusiones de reglas para reducir la cantidad de detecciones. Consulta Configura exclusiones de reglas para obtener información sobre cómo hacerlo.

Ejemplo de una regla para la categoría de análisis de riesgo de UEBA

En el siguiente ejemplo, se muestra cómo crear una regla para generar detecciones en cualquier nombre de host de entidad cuyo puntaje de riesgo sea superior a 100:

rule EntityRiskScore {
  meta:
  events:
    $e1.principal.hostname != ""
    $e1.principal.hostname = $hostname

    $e2.graph.entity.hostname = $hostname
    $e2.graph.risk_score.risk_window_size.seconds = 86400 // 24 hours
    $e2.graph.risk_score.risk_score >= 100

    // Run deduplication across the risk score.
    $rscore = $e2.graph.risk_score.risk_score

  match:
    // Dedup on hostname and risk score across a 4 hour window.
    $hostname, $rscore over 4h

  outcome:
    // Force these risk score based rules to have a risk score of zero to
    // prevent self feedback loops.
    $risk_score = 0

  condition:
    $e1 and $e2
}

Esta regla de ejemplo también realiza una deduplicación automática con la sección de coincidencias. Si es posible que se active una detección de regla, pero el nombre de host y la puntuación de riesgo permanecen sin cambios en un período de 4 horas, no se crearán detecciones nuevas.

Los únicos períodos de riesgo posibles para las reglas de puntuación de riesgo de la entidad son de 24 horas o 7 días (86,400 o 604,800 segundos, respectivamente). Si no incluyes el tamaño del período de riesgo en la regla, esta devolverá resultados imprecisos.

Los datos de la puntuación de riesgo de la entidad se almacenan por separado de los datos de contexto de la entidad. Para usar ambos en una regla, esta debe tener dos eventos de entidad separados, uno para el contexto de la entidad y otro para la puntuación de riesgo de la entidad, como se muestra en el siguiente ejemplo:

rule EntityContextAndRiskScore {
  meta:
  events:
    $log_in.metadata.event_type = "USER_LOGIN"
    $log_in.principal.hostname = $host

    $context.graph.entity.hostname = $host
    $context.graph.metadata.entity_type = "ASSET"

    $risk_score.graph.entity.hostname = $host
    $risk_score.graph.risk_score.risk_window_size.seconds = 604800

  match:
    $host over 2m

  outcome:
    $entity_risk_score = max($risk_score.graph.risk_score.normalized_risk_score)

  condition:
    $log_in and $context and $risk_score and $entity_risk_score > 100
}

¿Qué sigue?

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.