Usar "o" en la sección de condiciones

Disponible en:

En este documento se explica cómo usar el operador or para escribir una lógica de detección flexible y concisa en la sección condition de su consulta.

Si usas or entre variables de evento o de marcador de posición, puedes combinar varias condiciones y reducir la complejidad general de la sintaxis de la consulta:

  • Comprueba la presencia de cualquiera de las variables especificadas. Por ejemplo, $e1 or $e2 requiere al menos una instancia de $e1 o una instancia de $e2.

Sintaxis de or en la sección de condiciones

Usa la palabra clave or directamente entre las variables. El siguiente ejemplo es equivalente a COUNT($e1)>0 or COUNT($e2)>0:

condition:
  $e1 or $e2  // True if $e1 exists or $e2 exists

Regla de ejemplo: ejecución de IP arriesgada o hash incorrecto

La siguiente regla de ejemplo detecta una amenaza si se detecta el inicio de un proceso desde una dirección IP de riesgo o si se ejecuta un hash incorrecto conocido:

rule MultiEventOr {
  meta:
    author = "google-secops"
  events:
    $e1.principal.ip = "1.1.1.1"
    $e1.metadata.event_type = "PROCESS_LAUNCH"
    $e2.target.file.sha256 = "badhash..."
    $user = $e1.principal.user.userid
    $user = $e2.principal.user.userid
  match:
    $user over 5m
  condition:
    $e1 or $e2
}

Ejemplo de búsqueda: IP arriesgada o ejecución de hash incorrecta

En el siguiente ejemplo se muestra cómo se podría reformatear la regla de ejemplo como una consulta de búsqueda.

$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid

match:
  $user over 5m

condition:
  $e1 or $e2

Limitaciones conocidas

  • Consumo de recursos: cuando usas or entre variables de evento, se consumen más recursos que al usar and, lo que puede provocar que las consultas tarden más en ejecutarse.

  • Límite de variables de evento: en la Búsqueda y los paneles de control, puedes usar un máximo de 3 eventos en la sintaxis or de varios eventos. En las reglas, puedes usar un máximo de dos eventos en la sintaxis de or de varios eventos.

  • Existencia de eventos obligatoria: las expresiones que usan or no pueden ser ilimitadas. La existencia del evento debe ser un requisito para que la cláusula sea verdadera (por ejemplo, $e1 o #e1 > 0).

  • Mezcla de tipos de variables: no puedes combinar variables que no sean de UDM con variables de evento de UDM en la misma lista or.

  • Restricción de ventana: no puedes usar ventanas de tiempo acumulado con la sintaxis or.

Siguientes pasos

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.